Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart_gov_platform
Commits
a8aa14c3
Commit
a8aa14c3
authored
Dec 02, 2022
by
“yiyousong”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:应用集市接口调试完成
parent
73996d6b
Changes
17
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1325 additions
and
449 deletions
+1325
-449
base-manager-ui/admin/src/assets/css/common.css
base-manager-ui/admin/src/assets/css/common.css
+1
-1
base-manager-ui/admin/src/assets/css/common.less
base-manager-ui/admin/src/assets/css/common.less
+9
-0
base-manager-ui/admin/src/components/YQuillEditor.vue
base-manager-ui/admin/src/components/YQuillEditor.vue
+2
-2
base-manager-ui/admin/src/pages/basicset/appmarket/AppDetails.vue
...ager-ui/admin/src/pages/basicset/appmarket/AppDetails.vue
+23
-3
base-manager-ui/admin/src/pages/basicset/appmarket/Index.vue
base-manager-ui/admin/src/pages/basicset/appmarket/Index.vue
+37
-1
base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue
...rc/pages/basicset/appmarket/components/AppDetailsPage.vue
+116
-96
base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue
...in/src/pages/basicset/appmarket/components/DataUpdate.vue
+88
-135
base-manager-ui/admin/src/pages/basicset/appmarket/components/FieldConfig.vue
...n/src/pages/basicset/appmarket/components/FieldConfig.vue
+217
-0
base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue
...n/src/pages/basicset/appmarket/components/TerminalApp.vue
+141
-138
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue
...er-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue
+144
-30
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue
...r-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue
+64
-27
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddField.vue
...-ui/admin/src/pages/basicset/appmarket/modal/AddField.vue
+175
-0
base-manager-ui/admin/src/pages/basicset/appmarket/modal/CheckSite.vue
...ui/admin/src/pages/basicset/appmarket/modal/CheckSite.vue
+108
-0
base-manager-ui/admin/src/pages/basicset/business/components/businessTabs3.vue
.../src/pages/basicset/business/components/businessTabs3.vue
+0
-1
base-manager-ui/admin/src/services/basicsetApi.js
base-manager-ui/admin/src/services/basicsetApi.js
+38
-0
base-manager-ui/admin/src/services/market.js
base-manager-ui/admin/src/services/market.js
+134
-0
base-manager-ui/admin/src/store/modules/site.js
base-manager-ui/admin/src/store/modules/site.js
+28
-15
No files found.
base-manager-ui/admin/src/assets/css/common.css
View file @
a8aa14c3
base-manager-ui/admin/src/assets/css/common.less
View file @
a8aa14c3
...
...
@@ -70,3 +70,12 @@
.ant-input{
resize: none;
}
.ant-form-explain{
position:absolute
}
.ant-form-item {
display: flex;
align-items: center;
margin-bottom: 20px;
}
\ No newline at end of file
base-manager-ui/admin/src/components/YQuillEditor.vue
View file @
a8aa14c3
<
template
>
<div
style=
"margin-bottom: 25px"
:style=
"
{ height: height }">
<div
style=
"margin-bottom: 25px"
class=
"y-quill"
:style=
"
{ height: height }">
<!-- 图片上传组件辅助-->
<a-upload
name=
"uploadFile"
...
...
@@ -197,7 +197,7 @@ export default {
<
style
>
.editor
{
line-height
:
normal
!important
;
height
:
10
0%
;
height
:
9
0%
;
}
.SizeTiShi
{
font-size
:
12px
;
...
...
base-manager-ui/admin/src/pages/basicset/appmarket/AppDetails.vue
View file @
a8aa14c3
...
...
@@ -6,10 +6,13 @@
>
返回上一级
</a-button
>
<a-tab-pane
key=
"1"
tab=
"详情"
>
<AppDetailsPage></AppDetailsPage>
<AppDetailsPage
:appInfo=
"appInfo"
></AppDetailsPage>
</a-tab-pane>
<a-tab-pane
key=
"2"
tab=
"数据更新"
force-render
>
<DataUpdata></DataUpdata>
<DataUpdata
:appInfo=
"appInfo"
></DataUpdata>
</a-tab-pane>
<a-tab-pane
key=
"3"
tab=
"数据配置"
force-render
>
<FieldConfig
:appInfo=
"appInfo"
></FieldConfig>
</a-tab-pane>
</a-tabs>
</div>
...
...
@@ -18,15 +21,32 @@
<
script
>
import
AppDetailsPage
from
"
./components/AppDetailsPage.vue
"
;
import
DataUpdata
from
"
./components/DataUpdate.vue
"
;
import
FieldConfig
from
"
./components/FieldConfig.vue
"
;
import
{
getAppInfo
}
from
"
@/services/market
"
;
export
default
{
components
:
{
AppDetailsPage
,
DataUpdata
,
FieldConfig
,
},
data
()
{
return
{};
return
{
appId
:
this
.
$route
.
query
.
id
,
appInfo
:
{},
};
},
created
()
{
this
.
getAppInfo
();
},
methods
:
{
// 获取应用详情
async
getAppInfo
()
{
let
res
=
await
getAppInfo
({
id
:
this
.
appId
});
if
(
res
.
data
.
code
===
1
)
{
this
.
appInfo
=
res
.
data
.
data
;
}
},
handleBack
()
{
this
.
$router
.
back
();
},
...
...
base-manager-ui/admin/src/pages/basicset/appmarket/Index.vue
View file @
a8aa14c3
...
...
@@ -5,7 +5,43 @@
</
template
>
<
script
>
export
default
{};
import
{
getSiteTree
}
from
"
@/services/basicsetFun
"
;
import
{
mapMutations
}
from
"
vuex
"
;
export
default
{
data
()
{
return
{};
},
created
()
{
this
.
getSiteTree
();
},
methods
:
{
...
mapMutations
(
"
site
"
,
[
"
SET_SiteTree
"
]),
// 区域不能选择
editSelectable
(
arr
)
{
return
arr
.
map
((
v
)
=>
{
if
(
v
.
children
&&
v
.
children
.
length
>
0
)
{
this
.
editSelectable
(
v
.
children
);
}
if
(
v
.
type
===
"
area
"
)
{
v
.
selectable
=
false
;
v
.
checkable
=
false
;
}
else
{
v
.
selectable
=
true
;
v
.
checkable
=
true
;
}
return
v
;
});
},
// 获取站点树
async
getSiteTree
()
{
let
res
=
await
getSiteTree
({});
let
{
siteTree
}
=
res
.
data
.
data
;
siteTree
=
this
.
editSelectable
(
siteTree
);
this
.
SET_SiteTree
(
siteTree
);
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
...
...
base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue
View file @
a8aa14c3
...
...
@@ -7,10 +7,11 @@
class=
"logo"
width=
"50"
height=
"50"
src=
"../../../../assets/img/logo.png"
v-if=
"appInfo.appIconPath"
:src=
"api + appInfo.appIconPath"
/>
<div
class=
"name"
>
法律法规
</div>
<div
class=
"version"
>
当前版本:v
1.0
</div>
<div
class=
"name"
>
{{
appInfo
.
appName
}}
</div>
<div
class=
"version"
>
当前版本:v
{{
appInfo
.
version
}}
</div>
</div>
<div
class=
"right flex1"
>
<a-form-model
...
...
@@ -18,17 +19,25 @@
:label-col=
"
{ span: 2 }"
:wrapper-col="{ span: 22 }"
>
<a-form-model-item
label=
"应用主题"
>
公共服务
</a-form-model-item>
<a-form-model-item
label=
"应用主题"
>
{{
appInfo
.
appThemeName
}}
</a-form-model-item>
<a-form-model-item
label=
"应用简介"
>
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
{{
appInfo
.
summary
}}
</a-form-model-item>
<a-form-model-item
label=
"适用范围"
>
共计26个站点
<a
class=
"primary ml10"
>
查看详情
</a>
共计
<span
v-if=
"appInfo.siteIdList"
>
{{
appInfo
.
siteIdList
.
length
}}
</span>
个站点
<a
class=
"primary ml10"
@
click=
"checkSite(appInfo.siteIdList)"
>
查看详情
</a
>
</a-form-model-item>
<a-form-model-item
label=
"应用类型"
>
{{
appInfo
.
appType
===
1
?
"
应用程序
"
:
"
URL
"
}}
</a-form-model-item>
<a-form-model-item
label=
"应用类型"
>
应用程序
</a-form-model-item>
</a-form-model>
</div>
</div>
...
...
@@ -60,29 +69,42 @@
<span
slot=
"num"
slot-scope=
"text, record, index"
>
{{
(
current
-
1
)
*
size
+
index
+
1
}}
</span>
<!-- 版本号 -->
<template
slot=
"version"
slot-scope=
"text"
>
v
{{
text
.
version
}}
</
template
>
<!-- 应用包 -->
<template
slot=
"app"
slot-scope=
"text"
>
<a
class=
"primary"
>
{{
text
.
app
}}
</a>
<
template
slot=
"fileName"
slot-scope=
"text"
>
<a
v-if=
"text.fileName"
class=
"primary"
>
{{
text
.
fileName
}}
</a>
<span>
--
</span>
</
template
>
<!-- 当前是否使用 -->
<
template
slot=
"
danqian
"
slot-scope=
"text"
>
<a-tag
v-if=
"text.
danqian
"
color=
"blue"
>
正在使用
</a-tag>
<
template
slot=
"
used
"
slot-scope=
"text"
>
<a-tag
v-if=
"text.
used
"
color=
"blue"
>
正在使用
</a-tag>
<span
v-else
>
否
</span>
</
template
>
<!-- 操作 -->
<
template
slot=
"action"
slot-scope=
"text"
>
<a-space
size=
"middle"
>
<a
class=
"primary"
@
click=
"handleUse(text.id)"
>
使用
</a>
<a
class=
"primary"
@
click=
"handlePreview(text)"
>
预览
</a>
<a
class=
"primary"
@
click=
"handlePreview(text
.id
)"
>
预览
</a>
</a-space>
</
template
>
</a-table>
</div>
</div>
<!-- 站点树弹窗 -->
<CheckSite
ref=
"CheckSite"
:appList=
"[appId]"
:siteVisible.sync=
"siteVisible"
></CheckSite>
</div>
</template>
<
script
>
import
{
getVersionList
,
usedVersion
,
previewVersion
}
from
"
@/services/market
"
;
import
CheckSite
from
"
../modal/CheckSite.vue
"
;
const
columns
=
[
{
title
:
"
序号
"
,
...
...
@@ -94,20 +116,20 @@ const columns = [
},
{
title
:
"
版本号
"
,
dataIndex
:
"
banben
"
,
scopedSlots
:
{
customRender
:
"
version
"
}
,
},
{
title
:
"
更新说明
"
,
width
:
"
40%
"
,
dataIndex
:
"
shuom
"
,
dataIndex
:
"
notes
"
,
},
{
title
:
"
应用包
"
,
scopedSlots
:
{
customRender
:
"
app
"
},
scopedSlots
:
{
customRender
:
"
fileName
"
},
},
{
title
:
"
当前是否使用
"
,
scopedSlots
:
{
customRender
:
"
danqian
"
},
scopedSlots
:
{
customRender
:
"
used
"
},
},
{
title
:
"
操作
"
,
...
...
@@ -116,106 +138,104 @@ const columns = [
},
];
export
default
{
props
:
{
// 应用信息
appInfo
:
{
type
:
Object
,
required
:
true
,
default
:
()
=>
{
return
{};
},
},
},
components
:
{
CheckSite
,
},
data
()
{
return
{
api
:
process
.
env
.
VUE_APP_API_BASE_URL
.
includes
(
"
base
"
)
?
process
.
env
.
VUE_APP_API_BASE_URL
.
replace
(
"
base
"
,
""
)
:
process
.
env
.
VUE_APP_API_BASE_URL
,
columns
,
appId
:
this
.
$route
.
query
.
id
,
current
:
1
,
size
:
10
,
total
:
1
0
,
total
:
0
,
loading
:
false
,
pageSizeOptions
:
[
"
10
"
,
"
30
"
,
"
50
"
,
"
100
"
],
form
:
{},
tableData
:
[
{
id
:
1
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
1
,
},
{
id
:
2
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
0
,
},
{
id
:
3
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
0
,
},
{
id
:
4
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
1
,
},
{
id
:
5
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
1
,
tableData
:
[],
siteVisible
:
false
,
};
},
{
id
:
6
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
1
,
created
()
{
this
.
getVersions
();
},
{
id
:
7
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
1
,
},
{
id
:
8
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
1
,
},
{
id
:
9
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
1
,
methods
:
{
// 获取历史版本
async
getVersions
()
{
this
.
loading
=
true
;
let
res
=
await
getVersionList
({
page
:
this
.
current
,
size
:
this
.
size
,
appId
:
this
.
appId
,
});
this
.
loading
=
false
;
if
(
res
.
data
.
code
===
1
)
{
let
{
data
,
total
}
=
res
.
data
.
data
;
this
.
tableData
=
data
;
this
.
total
=
total
;
console
.
log
(
data
);
}
},
{
id
:
10
,
banben
:
"
v1.0
"
,
shuom
:
"
修复了页面
"
,
app
:
"
app.zip
"
,
danqian
:
1
,
// 使用
handleUse
(
appVersionId
)
{
let
_this
=
this
;
_this
.
$confirm
({
title
:
"
系统提示
"
,
content
:
"
确定要使用该版本吗?
"
,
okText
:
"
确定
"
,
okType
:
"
primary
"
,
cancelText
:
"
取消
"
,
centered
:
true
,
icon
:
"
question-circle
"
,
maskClosable
:
true
,
async
onOk
()
{
let
res
=
await
usedVersion
({
appVersionId
});
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
===
1
)
{
_this
.
$message
.
success
(
msg
);
_this
.
getVersions
();
}
},
],
}
;
onCancel
()
{
console
.
log
(
"
Cancel
"
)
;
},
methods
:
{
// 使用
handleUse
(
id
)
{
console
.
log
(
id
);
});
},
// 预览
handlePreview
(
row
)
{
console
.
log
(
row
);
async
handlePreview
(
appVersionId
)
{
let
res
=
await
previewVersion
({
appVersionId
});
let
{
code
,
data
}
=
res
.
data
;
if
(
code
===
1
)
{
window
.
open
(
data
);
}
},
// 翻页
handleChange
(
cur
)
{
this
.
current
=
cur
;
this
.
getVersions
();
},
// 改变每页显示数量
showSizeChange
(
cur
,
size
)
{
this
.
current
=
cur
;
this
.
size
=
size
;
this
.
getVersions
();
},
// 查看试用范围详情
checkSite
(
siteList
)
{
this
.
$refs
.
CheckSite
.
getSiteList
(
siteList
);
this
.
siteVisible
=
true
;
},
},
};
...
...
base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue
View file @
a8aa14c3
...
...
@@ -17,8 +17,8 @@
<a-table
:loading=
"loading"
bordered
:scroll=
"
{ y: 550 }"
:columns=
"columns"
:scroll=
"
{ y: 550 }"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: current,
...
...
@@ -49,6 +49,7 @@
<!-- 新增数据 -->
<AddData
ref=
"AddData"
@
addSuccess=
"getDatasetList"
:AddVisible.sync=
"AddVisible"
:title=
"title"
></AddData>
...
...
@@ -57,172 +58,119 @@
<
script
>
import
AddData
from
"
../modal/AddData.vue
"
;
const
columns
=
[
{
title
:
"
序号
"
,
dataIndex
:
"
num
"
,
width
:
"
65px
"
,
scopedSlots
:
{
customRender
:
"
num
"
,
},
},
{
title
:
"
标题
"
,
dataIndex
:
"
title
"
,
ellipsis
:
true
,
},
{
title
:
"
制定机关
"
,
dataIndex
:
"
dpt
"
,
ellipsis
:
true
,
},
{
title
:
"
法律性质
"
,
dataIndex
:
"
xingzhi
"
,
width
:
"
10%
"
,
},
{
title
:
"
公布日期
"
,
dataIndex
:
"
time
"
,
width
:
"
10%
"
,
import
{
mapGetters
}
from
"
vuex
"
;
import
{
getDatasetList
,
deleteDataset
}
from
"
@/services/market
"
;
export
default
{
props
:
{
// 应用信息
appInfo
:
{
type
:
Object
,
required
:
true
,
default
:
()
=>
{
return
{};
},
{
title
:
"
更新时间
"
,
dataIndex
:
"
time2
"
,
width
:
"
10%
"
,
},
{
title
:
"
操作
"
,
width
:
"
10%
"
,
scopedSlots
:
{
customRender
:
"
action
"
},
},
];
export
default
{
components
:
{
AddData
,
},
data
()
{
return
{
columns
,
appId
:
this
.
$route
.
query
.
id
,
loading
:
false
,
current
:
1
,
size
:
10
,
total
:
10
0
,
total
:
0
,
pageSizeOptions
:
[
"
10
"
,
"
30
"
,
"
50
"
,
"
100
"
],
searchVal
:
""
,
tableData
:
[
{
id
:
1
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
},
{
id
:
2
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
},
{
id
:
3
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
},
{
id
:
4
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
},
{
id
:
5
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
},
{
id
:
6
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
},
{
id
:
7
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
},
{
id
:
8
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
tableData
:
[],
AddVisible
:
false
,
title
:
""
,
};
},
{
id
:
9
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
computed
:
{
...
mapGetters
(
"
site
"
,
[
"
appTemplate
"
]),
// 初始化表头
columns
()
{
let
index
=
{
title
:
"
序号
"
,
width
:
"
65px
"
,
scopedSlots
:
{
customRender
:
"
num
"
,
},
{
id
:
10
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
};
let
action
=
{
title
:
"
操作
"
,
width
:
"
10%
"
,
scopedSlots
:
{
customRender
:
"
action
"
},
};
let
arr
=
this
.
appTemplate
.
filter
((
v
)
=>
{
return
v
.
isList
;
})
.
map
((
v
)
=>
{
return
{
title
:
v
.
fieldName
,
dataIndex
:
v
.
fieldCode
,
};
});
return
[
index
,
...
arr
,
action
];
},
{
id
:
11
,
title
:
"
中华人民共和国反电信网络诈骗法
"
,
dpt
:
"
全国人民代表大会常务委员会
"
,
xingzhi
:
"
法律
"
,
time
:
"
2022-10-30
"
,
time2
:
"
2022-10-30
"
,
},
],
AddVisible
:
false
,
title
:
""
,
};
created
()
{
this
.
getDatasetList
();
},
methods
:
{
// 获取数据列表
async
getDatasetList
()
{
this
.
loading
=
true
;
let
res
=
await
getDatasetList
({
page
:
this
.
current
,
size
:
this
.
size
,
appId
:
this
.
appId
,
});
this
.
loading
=
false
;
if
(
res
.
data
.
code
===
1
)
{
let
{
data
,
total
}
=
res
.
data
.
data
;
if
(
!
data
.
length
&&
this
.
current
>
1
)
{
this
.
current
-=
1
;
this
.
getDatasetList
();
}
data
.
forEach
((
v
)
=>
{
for
(
let
item
of
v
.
appInfoFieldList
)
{
v
[
item
.
fieldCode
]
=
item
.
fieldValue
;
}
});
this
.
total
=
total
;
this
.
tableData
=
data
;
}
},
// 新增
handleAdd
()
{
if
(
!
this
.
appTemplate
.
length
)
{
this
.
$message
.
warning
(
"
请先配置数据模板
"
);
return
;
}
this
.
title
=
"
新增
"
;
this
.
$refs
.
AddData
.
onAdd
();
let
arr
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
appTemplate
));
this
.
$refs
.
AddData
.
onAdd
(
arr
);
this
.
AddVisible
=
true
;
},
// 搜索
onSearch
()
{
console
.
log
(
2
);
this
.
current
=
1
;
this
.
getDatasetList
();
},
// 翻页
handleChange
(
cur
)
{
this
.
current
=
cur
;
this
.
getDatasetList
();
},
// 改变每页显示数量
showSizeChange
(
current
,
size
)
{
this
.
current
=
current
;
this
.
size
=
size
;
this
.
getDatasetList
();
},
// 编辑
handleEdit
(
row
)
{
...
...
@@ -243,7 +191,12 @@ export default {
icon
:
"
exclamation-circle
"
,
maskClosable
:
true
,
async
onOk
()
{
console
.
log
(
id
);
let
res
=
await
deleteDataset
({
id
});
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
===
1
)
{
_this
.
$message
.
success
(
msg
);
_this
.
getDatasetList
();
}
},
onCancel
()
{
console
.
log
(
"
Cancel
"
);
...
...
base-manager-ui/admin/src/pages/basicset/appmarket/components/FieldConfig.vue
0 → 100644
View file @
a8aa14c3
<
template
>
<div
class=
"field-config"
>
<!-- 头部 -->
<div
class=
"header flex aic jcb mb20"
>
<a-button
type=
"primary"
@
click=
"handleAdd"
>
新增字段
</a-button>
<a-input-search
style=
"width: 300px"
placeholder=
"请输入字段名称搜索"
enter-button=
"搜索"
v-model=
"searchVal"
allowClear
@
search=
"onSearch"
/>
</div>
<!-- 表格 -->
<div
class=
"table-content"
>
<a-table
:loading=
"loading"
bordered
:scroll=
"
{ y: 550 }"
:columns="columns"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: current,
total: total,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: handleChange,
onShowSizeChange: showSizeChange,
}"
:data-source="tableData"
:rowKey="(record) => record.id"
>
<!-- 序号 -->
<span
slot=
"num"
slot-scope=
"text, record, index"
>
{{
(
current
-
1
)
*
size
+
index
+
1
}}
</span>
<!-- 允许为空 -->
<template
slot=
"fieldNull"
slot-scope=
"text"
>
<a-tag
v-if=
"text.fieldNull === 1"
color=
"green"
>
是
</a-tag>
<a-tag
v-else
color=
"red"
>
否
</a-tag>
</
template
>
<!-- 操作 -->
<
template
slot=
"action"
slot-scope=
"text"
>
<a-space
size=
"middle"
>
<a
class=
"primary"
@
click=
"handleEdit(text)"
>
编辑
</a>
<a
class=
"delete"
@
click=
"handleDel(text.id)"
>
删除
</a>
</a-space>
</
template
>
</a-table>
</div>
<!-- 新增数据 -->
<AddField
ref=
"AddField"
@
addSuccess=
"getTempleteList"
:fieldVisible.sync=
"fieldVisible"
:title=
"title"
></AddField>
</div>
</template>
<
script
>
import
AddField
from
"
../modal/AddField.vue
"
;
import
{
getTempleteList
,
deleteTemplete
}
from
"
@/services/market
"
;
import
{
mapMutations
}
from
"
vuex
"
;
const
columns
=
[
{
title
:
"
序号
"
,
width
:
"
65px
"
,
scopedSlots
:
{
customRender
:
"
num
"
,
},
},
{
title
:
"
字段名称
"
,
dataIndex
:
"
fieldName
"
,
},
{
title
:
"
字段编码
"
,
dataIndex
:
"
fieldCode
"
,
},
{
title
:
"
字段类型
"
,
dataIndex
:
"
fieldType
"
,
ellipsis
:
true
,
},
{
title
:
"
数据类型
"
,
dataIndex
:
"
dataType
"
,
},
{
title
:
"
数据长度
"
,
dataIndex
:
"
fieldLen
"
,
},
{
title
:
"
允许为空
"
,
scopedSlots
:
{
customRender
:
"
fieldNull
"
},
},
{
title
:
"
操作
"
,
width
:
"
10%
"
,
scopedSlots
:
{
customRender
:
"
action
"
},
},
];
export
default
{
props
:
{
// 应用信息
appInfo
:
{
type
:
Object
,
required
:
true
,
default
:
()
=>
{
return
{};
},
},
},
components
:
{
AddField
,
},
data
()
{
return
{
appId
:
this
.
$route
.
query
.
id
,
columns
,
loading
:
false
,
current
:
1
,
size
:
10
,
total
:
100
,
pageSizeOptions
:
[
"
10
"
,
"
30
"
,
"
50
"
,
"
100
"
],
searchVal
:
""
,
tableData
:
[],
fieldVisible
:
false
,
title
:
""
,
};
},
created
()
{
this
.
getTempleteList
();
},
methods
:
{
...
mapMutations
(
"
site
"
,
[
"
SET_appTemplate
"
]),
// 获取数据模板
async
getTempleteList
()
{
let
res
=
await
getTempleteList
({
page
:
this
.
current
,
size
:
this
.
size
,
appId
:
this
.
appId
,
});
if
(
res
.
data
.
code
===
1
)
{
let
{
data
,
total
}
=
res
.
data
.
data
;
if
(
!
data
.
length
&&
this
.
current
>
1
)
{
this
.
current
-=
1
;
this
.
getTempleteList
();
}
this
.
tableData
=
data
;
this
.
SET_appTemplate
(
data
);
this
.
total
=
total
;
}
},
// 新增
handleAdd
()
{
this
.
title
=
"
新增
"
;
this
.
$refs
.
AddField
.
onAdd
();
this
.
fieldVisible
=
true
;
},
// 搜索
onSearch
()
{
this
.
current
=
1
;
this
.
getTempleteList
();
},
// 翻页
handleChange
(
cur
)
{
this
.
current
=
cur
;
this
.
getTempleteList
();
},
// 改变每页显示数量
showSizeChange
(
current
,
size
)
{
this
.
current
=
current
;
this
.
size
=
size
;
this
.
getTempleteList
();
},
// 编辑
handleEdit
(
row
)
{
this
.
title
=
"
编辑
"
;
this
.
$refs
.
AddField
.
onEdit
(
row
);
this
.
fieldVisible
=
true
;
},
// 删除
handleDel
(
id
)
{
let
_this
=
this
;
_this
.
$confirm
({
title
:
"
系统提示
"
,
content
:
"
删除不可恢复,确定要删除吗?
"
,
okText
:
"
确定
"
,
okType
:
"
danger
"
,
cancelText
:
"
取消
"
,
centered
:
true
,
icon
:
"
exclamation-circle
"
,
maskClosable
:
true
,
async
onOk
()
{
let
res
=
await
deleteTemplete
({
id
});
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
===
1
)
{
_this
.
$message
.
success
(
msg
);
_this
.
getTempleteList
();
}
},
onCancel
()
{
console
.
log
(
"
Cancel
"
);
},
});
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
</
style
>
\ No newline at end of file
base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue
View file @
a8aa14c3
...
...
@@ -3,7 +3,7 @@
<div
class=
"header flex aic jcb mb20"
>
<a-space>
<a-button
type=
"primary"
@
click=
"handleAdd"
>
新增应用
</a-button>
<a-button
type=
"primary"
>
克隆
</a-button>
<a-button
type=
"primary"
@
click=
"handleClone"
>
克隆
</a-button>
</a-space>
<a-input-search
style=
"width: 300px"
...
...
@@ -43,39 +43,69 @@
(
current
-
1
)
*
size
+
index
+
1
}}
</span>
<!-- 图标 -->
<template
slot=
"icon"
slot-scope=
"text"
>
<img
height=
"20"
width=
"20"
:src=
"text.icon"
/>
<template
slot=
"appIconPath"
slot-scope=
"text"
>
<img
v-if=
"text.appIconPath"
height=
"20"
width=
"20"
:src=
"api + text.appIconPath"
/>
<span
v-else
>
--
</span>
</
template
>
<!--
类型
-->
<
template
slot=
"
leix
"
slot-scope=
"text"
>
{{
text
.
leix
}}
<!--
简介
-->
<
template
slot=
"
summary
"
slot-scope=
"text"
>
{{
text
.
summary
?
text
.
summary
:
"
--
"
}}
</
template
>
<!--
下发设备
-->
<
template
slot=
"
xiaf
"
slot-scope=
"text"
>
{{
text
.
xiaf
}}
<!--
类型
-->
<
template
slot=
"
appType
"
slot-scope=
"text"
>
{{
text
.
appType
===
1
?
"
应用程序
"
:
"
URL
"
}}
</
template
>
<!-- 上下架 -->
<
template
slot=
"shangjia"
slot-scope=
"text"
>
<YSwitch
v-model=
"text.shangjia"
></YSwitch>
<
template
slot=
"shelves"
slot-scope=
"text"
>
<YSwitch
checkedChildren=
"上架"
unCheckedChildren=
"下架"
v-model=
"text.shelves"
@
change=
"changeShelves(text)"
></YSwitch>
</
template
>
<!-- 操作 -->
<
template
slot=
"action"
slot-scope=
"text"
>
<a-space
size=
"middle"
>
<a
class=
"primary"
@
click=
"handleEdit(text)"
>
编辑
</a>
<a
class=
"primary"
@
click=
"handleCheck(text.id)"
>
查看
</a>
<a
class=
"delete"
@
click=
"handleDel(text.id)"
>
删除
</a>
<a
class=
"delete"
:class=
"
{ unDelete: text.distribute }"
@click="handleDel(text.distribute, text.id)"
>删除
</a
>
</a-space>
</
template
>
</a-table>
</div>
<!-- 新增应用 -->
<AddApp
:AddVisible.sync=
"AddVisible"
:title=
"title"
></AddApp>
<AddApp
ref=
"AddApp"
@
success=
"getAppList"
:AddVisible.sync=
"AddVisible"
:title=
"title"
></AddApp>
<!-- 选择站点 -->
<CheckSite
ref=
"CheckSite"
@
checkSite=
"cloneSuccess"
:appList=
"selectedRowKeys"
:siteVisible.sync=
"siteVisible"
></CheckSite>
</div>
</template>
<
script
>
import
YSwitch
from
"
../../../../components/yswitch/YSwitch.vue
"
;
import
AddApp
from
"
../modal/AddApp.vue
"
;
import
CheckSite
from
"
../modal/CheckSite.vue
"
;
import
{
getAppList
,
deleteApp
,
saveApp
}
from
"
@/services/market
"
;
const
columns
=
[
{
title
:
"
序号
"
,
...
...
@@ -87,36 +117,36 @@ const columns = [
},
{
title
:
"
应用名称
"
,
dataIndex
:
"
n
ame
"
,
dataIndex
:
"
appN
ame
"
,
},
{
title
:
"
应用图标
"
,
scopedSlots
:
{
customRender
:
"
icon
"
},
scopedSlots
:
{
customRender
:
"
appIconPath
"
},
},
{
title
:
"
当前版本
"
,
dataIndex
:
"
banbe
n
"
,
dataIndex
:
"
versio
n
"
,
},
{
title
:
"
应用主题
"
,
dataIndex
:
"
zhuti
"
,
dataIndex
:
"
appThemeName
"
,
},
{
title
:
"
应用简介
"
,
width
:
"
20%
"
,
dataIndex
:
"
jianjie
"
,
scopedSlots
:
{
customRender
:
"
summary
"
}
,
},
{
title
:
"
应用类型
"
,
scopedSlots
:
{
customRender
:
"
leix
"
},
scopedSlots
:
{
customRender
:
"
appType
"
},
},
{
title
:
"
下发设备
"
,
scopedSlots
:
{
customRender
:
"
xiaf
"
}
,
dataIndex
:
"
downDevCount
"
,
},
{
title
:
"
上架/下架
"
,
scopedSlots
:
{
customRender
:
"
sh
angjia
"
},
scopedSlots
:
{
customRender
:
"
sh
elves
"
},
},
{
title
:
"
操作
"
,
...
...
@@ -128,151 +158,80 @@ export default {
components
:
{
YSwitch
,
AddApp
,
CheckSite
,
},
data
()
{
return
{
api
:
process
.
env
.
VUE_APP_API_BASE_URL
.
includes
(
"
base
"
)
?
process
.
env
.
VUE_APP_API_BASE_URL
.
replace
(
"
base
"
,
""
)
:
process
.
env
.
VUE_APP_API_BASE_URL
,
columns
,
tableData
:
[
{
id
:
1
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
{
id
:
2
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
{
id
:
3
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
{
id
:
4
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
{
id
:
5
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
{
id
:
6
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
{
id
:
7
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
{
id
:
8
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
{
id
:
9
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
{
id
:
10
,
name
:
"
法律法规
"
,
icon
:
require
(
"
../../../../assets/img/logo.png
"
),
banben
:
"
v1.0
"
,
zhuti
:
"
公共服务
"
,
jianjie
:
"
汇集婚姻法、劳动法、刑法等各种条例,让您能轻松获取法律知识
"
,
leix
:
"
应用程序
"
,
xiaf
:
"
自助服务
"
,
shangjia
:
1
,
},
],
// 表格数据
tableData
:
[],
// 表格数据
loading
:
false
,
searchVal
:
""
,
// 搜索
current
:
1
,
size
:
10
,
total
:
100
0
,
total
:
0
,
pageSizeOptions
:
[
"
10
"
,
"
30
"
,
"
50
"
,
"
100
"
],
selectedRowKeys
:
[],
// 表格勾选数据
AddVisible
:
false
,
title
:
"
新增应用
"
,
siteVisible
:
false
,
};
},
created
()
{
this
.
getAppList
();
},
methods
:
{
// 获取应用列表
async
getAppList
()
{
this
.
loading
=
true
;
let
res
=
await
getAppList
({
page
:
this
.
current
,
size
:
this
.
size
,
appName
:
`%
${
this
.
searchVal
}
%`
,
type
:
1
,
});
this
.
loading
=
false
;
let
{
data
,
total
}
=
res
.
data
.
data
;
if
(
res
.
data
.
code
===
1
)
{
if
(
!
data
.
length
&&
this
.
current
>
1
)
{
this
.
current
-=
1
;
this
.
getAppList
();
}
this
.
tableData
=
data
;
this
.
total
=
total
;
}
},
// 克隆
handleClone
()
{
if
(
!
this
.
selectedRowKeys
.
length
)
{
this
.
$message
.
warning
(
"
请先勾选应用
"
);
return
;
}
this
.
siteVisible
=
true
;
},
// 新增
handleAdd
()
{
this
.
title
=
"
新增应用
"
;
this
.
$refs
.
AddApp
.
onAdd
();
this
.
AddVisible
=
true
;
},
// 搜索
onSearch
()
{
console
.
log
(
1
);
this
.
current
=
1
;
this
.
getAppList
();
},
// 翻页
handleChange
(
cur
)
{
this
.
current
=
cur
;
this
.
getAppList
();
},
// 改变每页显示数量
showSizeChange
(
current
,
size
)
{
this
.
current
=
current
;
this
.
size
=
size
;
this
.
getAppList
();
},
// 勾选表格
onSelectChange
(
keys
)
{
...
...
@@ -280,7 +239,9 @@ export default {
},
// 编辑
handleEdit
(
row
)
{
console
.
log
(
row
);
this
.
title
=
"
编辑应用
"
;
this
.
$refs
.
AddApp
.
onEdit
(
row
);
this
.
AddVisible
=
true
;
},
// 查看
handleCheck
(
id
)
{
...
...
@@ -292,7 +253,26 @@ export default {
});
},
// 删除
handleDel
(
id
)
{
handleDel
(
distribute
,
id
)
{
if
(
distribute
)
{
this
.
$confirm
({
title
:
"
拒绝删除
"
,
content
:
"
该应用正在使用中。
"
,
okText
:
"
确定
"
,
okType
:
"
danger
"
,
cancelText
:
"
取消
"
,
centered
:
true
,
icon
:
"
exclamation-circle
"
,
maskClosable
:
true
,
onOk
()
{
console
.
log
(
"
ok
"
);
},
onCancel
()
{
console
.
log
(
"
Cancel
"
);
},
});
return
;
}
let
_this
=
this
;
_this
.
$confirm
({
title
:
"
系统提示
"
,
...
...
@@ -304,16 +284,39 @@ export default {
icon
:
"
exclamation-circle
"
,
maskClosable
:
true
,
async
onOk
()
{
console
.
log
(
id
);
let
res
=
await
deleteApp
({
id
});
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
===
1
)
{
_this
.
$message
.
success
(
msg
);
_this
.
getAppList
();
}
},
onCancel
()
{
console
.
log
(
"
Cancel
"
);
},
});
},
// 克隆成功
cloneSuccess
()
{
this
.
selectedRowKeys
=
[];
this
.
getAppList
();
},
// 上下架
async
changeShelves
(
row
)
{
let
res
=
await
saveApp
(
row
);
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
===
1
)
{
this
.
$message
.
success
(
msg
);
}
else
{
this
.
getAppList
();
}
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.unDelete {
color: #ff4d5075 !important;
}
</
style
>
\ No newline at end of file
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue
View file @
a8aa14c3
...
...
@@ -10,39 +10,46 @@
<div
class=
"main"
>
<a-form-model
:model=
"form"
:rules=
"rules"
ref=
"form"
:label-col=
"labelCol"
:wrapper-col=
"wrapperCol"
>
<a-form-model-item
label=
"应用名称"
prop=
""
>
<a-input
v-model=
"form.
n
ame"
placeholder=
"请输入应用名称"
/>
<a-form-model-item
label=
"应用名称"
prop=
"
appName
"
>
<a-input
v-model=
"form.
appN
ame"
placeholder=
"请输入应用名称"
/>
</a-form-model-item>
<a-form-model-item
label=
"应用主题"
prop=
""
>
<a-select
v-model=
"form.region"
placeholder=
"请选择应用主题"
>
<a-form-model-item
label=
"应用主题"
prop=
"appThemeName"
>
<a-input
v-model=
"form.appThemeName"
placeholder=
"请输入应用主题"
/>
<!--
<a-select
v-model=
"form.appThemeName"
placeholder=
"请选择应用主题"
>
<a-select-option
value=
"shanghai"
>
Zone one
</a-select-option>
<a-select-option
value=
"beijing"
>
Zone two
</a-select-option>
</a-select>
</a-select>
-->
</a-form-model-item>
<a-form-model-item
label=
"应用
主题"
prop=
"
"
>
<a-form-model-item
label=
"应用
图标"
prop=
"appIconPath
"
>
<a-upload
name=
"file"
list-type=
"picture-card"
class=
"avatar-uploader"
:show-upload-list=
"false"
action=
"https://www.mocky.io/v2/5cc8019d300000980a055e76
"
:action=
"api2 + 'file/commonupload'
"
:before-upload=
"iconBeforeUpload"
@
change=
"handleChangeIcon"
>
<img
v-if=
"imageUrl"
:src=
"imageUrl"
alt=
"avatar"
/>
<img
class=
"icon"
v-if=
"form.appIconPath"
:src=
"api + form.appIconPath"
/>
<div
v-else
>
<a-icon
:type=
"loading ? 'loading' : 'plus'"
/>
<div
class=
"ant-upload-text"
>
选择图标
</div>
</div>
</a-upload>
</a-form-model-item>
<a-form-model-item
label=
"应用简介"
prop=
""
>
<a-form-model-item
label=
"应用简介"
prop=
"
summary
"
>
<a-textarea
placeholder=
"请输入应用简介"
v-model=
"form.
name
"
v-model=
"form.
summary
"
allow-clear
:autoSize=
"
{
minRows: 4,
...
...
@@ -50,30 +57,47 @@
}"
/>
</a-form-model-item>
<a-form-model-item
label=
"适用范围"
prop=
""
>
<a-button
type=
"primary"
>
<a-form-model-item
label=
"适用站点"
prop=
"siteId"
>
<a-tree-select
v-model=
"form.siteId"
:tree-data=
"SiteTree"
style=
"width: 100%"
:dropdown-style=
"
{ maxHeight: '400px', overflow: 'auto' }"
placeholder="请选择站点"
allow-clear
:replaceFields="replaceFields"
@change="changeSite"
>
</a-tree-select>
<!--
<a-button
type=
"primary"
>
<span>
选择
</span>
<
!--
<span>
已选择(32)
</span>
--
>
</a-button>
<
span>
已选择(32)
</span
>
</a-button>
-->
</a-form-model-item>
<a-form-model-item
label=
"应用类型"
prop=
""
>
<a-radio-group
v-model=
"form.
resourc
e"
>
<a-radio
value=
"1"
>
应用程序
</a-radio>
<a-radio
value=
"2"
>
URL
</a-radio>
<a-form-model-item
label=
"应用类型"
prop=
"
appType
"
>
<a-radio-group
v-model=
"form.
appTyp
e"
>
<a-radio
:
value=
"1"
>
应用程序
</a-radio>
<a-radio
:
value=
"2"
>
URL
</a-radio>
</a-radio-group>
</a-form-model-item>
<a-form-model-item
class=
"upload-app"
label=
"上传应用"
prop=
""
>
<a-form-model-item
class=
"upload-app"
label=
"上传应用"
prop=
"filePath"
>
<a-upload
name=
"file"
action=
"https://www.mocky.io/v2/5cc8019d300000980a055e76
"
:action=
"api2 + 'file/commonupload'
"
:multiple=
"false"
:file-list=
"fileList"
@
change=
"handleChangeFile"
>
<a-button>
<a-icon
type=
"upload"
/>
选择文件
</a-button>
<a-button
type=
"primary"
>
<a-icon
type=
"upload"
/>
选择文件
</a-button>
</a-upload>
</a-form-model-item>
<a-form-model-item
label=
"更新说明"
prop=
""
>
<
!--
<
a-form-model-item
label=
"更新说明"
prop=
""
>
<a-textarea
placeholder=
"请输入应用简介"
v-model=
"form.name"
...
...
@@ -83,9 +107,13 @@
maxRows: 4,
}"
/>
</a-form-model-item>
<a-form-model-item
label=
"更新数据"
prop=
""
>
<YSwitch
v-model=
"form.name"
></YSwitch>
</a-form-model-item>
-->
<a-form-model-item
label=
"更新数据"
prop=
"dataUpdate"
>
<YSwitch
checkedChildren=
"有"
unCheckedChildren=
"无"
v-model=
"form.dataUpdate"
></YSwitch>
</a-form-model-item>
</a-form-model>
</div>
...
...
@@ -112,6 +140,8 @@
<
script
>
import
YSwitch
from
"
../../../../components/yswitch/YSwitch.vue
"
;
import
{
saveApp
}
from
"
@/services/market
"
;
import
{
mapGetters
}
from
"
vuex
"
;
export
default
{
components
:
{
YSwitch
,
...
...
@@ -130,6 +160,10 @@ export default {
},
data
()
{
return
{
api
:
process
.
env
.
VUE_APP_API_BASE_URL
.
includes
(
"
base
"
)
?
process
.
env
.
VUE_APP_API_BASE_URL
.
replace
(
"
base
"
,
""
)
:
process
.
env
.
VUE_APP_API_BASE_URL
,
api2
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
labelCol
:
{
span
:
3
,
},
...
...
@@ -137,8 +171,49 @@ export default {
span
:
21
,
},
loading
:
false
,
imageUrl
:
""
,
form
:
{},
form
:
{
siteId
:
undefined
,
// 站点id
siteName
:
""
,
// 站点名称
appName
:
""
,
// 应用名称
appIconPath
:
""
,
// 应用图标
appThemeName
:
""
,
// 应用主题名称
type
:
1
,
// 类型(1.终端应用,2.移动端应用)
appType
:
""
,
// 类型(1.应用程序,2.url)
shelves
:
0
,
fileName
:
""
,
// 文件名称
filePath
:
""
,
// 文件相对路径地址
summary
:
""
,
// 简介
dataUpdate
:
0
,
// 是否数据更新(0.否,1.是)
},
replaceFields
:
{
title
:
"
label
"
,
key
:
"
id
"
,
value
:
"
id
"
,
},
rules
:
{
siteId
:
[{
required
:
true
,
message
:
"
请选择站点
"
,
trigger
:
"
change
"
}],
appName
:
[
{
required
:
true
,
message
:
"
请输入应用名称
"
,
trigger
:
"
blur
"
},
],
appIconPath
:
[
{
required
:
true
,
message
:
"
请上传应用图标
"
,
trigger
:
"
change
"
},
],
appType
:
[
{
required
:
true
,
message
:
"
请选择应用类型
"
,
trigger
:
"
change
"
},
],
appThemeName
:
[
{
required
:
true
,
message
:
"
请输入主题名称
"
,
trigger
:
"
blur
"
},
],
summary
:
[
{
required
:
true
,
message
:
"
请输入应用简介
"
,
trigger
:
"
blur
"
},
],
filePath
:
[
{
required
:
true
,
message
:
"
请上传应用
"
,
trigger
:
"
change
"
},
],
dataUpdate
:
[
{
required
:
true
,
message
:
"
请选择是否有更新
"
,
trigger
:
"
change
"
},
],
},
fileList
:
[],
};
},
...
...
@@ -151,15 +226,29 @@ export default {
this
.
$emit
(
"
update:AddVisible
"
,
val
);
},
},
...
mapGetters
(
"
site
"
,
[
"
SiteTree
"
]),
},
created
()
{},
methods
:
{
// 关闭
onClose
()
{
this
.
$refs
.
form
.
resetFields
();
this
.
fileList
=
[];
this
.
Visible
=
false
;
},
// 提交
onSubmit
()
{
console
.
log
(
1
);
this
.
$refs
.
form
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
let
res
=
await
saveApp
(
this
.
form
);
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
===
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$emit
(
"
success
"
);
this
.
onClose
();
}
}
});
},
// 图标删除之前
iconBeforeUpload
(
file
)
{
...
...
@@ -181,6 +270,8 @@ export default {
return
;
}
if
(
info
.
file
.
status
===
"
done
"
)
{
console
.
log
(
info
);
this
.
form
.
appIconPath
=
info
.
file
.
response
.
url
;
this
.
loading
=
false
;
}
},
...
...
@@ -195,15 +286,34 @@ export default {
return
file
;
});
this
.
fileList
=
fileList
;
if
(
this
.
fileList
.
length
)
{
this
.
form
.
fileName
=
this
.
fileList
[
0
].
fileName
;
this
.
form
.
filePath
=
this
.
fileList
[
0
].
url
;
}
else
{
this
.
form
.
filePath
=
""
;
this
.
form
.
fileName
=
""
;
}
},
// 新增
onAdd
()
{
Object
.
assign
(
this
.
form
Info
,
this
.
$options
.
data
().
formInfo
);
this
.
form
Info
.
id
&&
this
.
$delete
(
this
.
formInfo
,
"
id
"
);
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
},
// 编辑
onEdit
(
data
)
{
this
.
form
=
{
...
data
};
this
.
fileList
=
[
{
uid
:
"
-1
"
,
name
:
this
.
form
.
fileName
,
status
:
"
done
"
,
url
:
this
.
form
.
filePath
,
},
];
},
// 选中站点
changeSite
(
value
,
label
)
{
this
.
form
.
siteName
=
label
[
0
];
},
},
};
...
...
@@ -232,5 +342,9 @@ export default {
padding: 24px;
flex: 1;
overflow-y: auto;
.icon {
width: 100%;
height: 100%;
}
}
</
style
>
\ No newline at end of file
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue
View file @
a8aa14c3
...
...
@@ -10,27 +10,44 @@
<div
class=
"main"
>
<a-form-model
:model=
"form"
ref=
"form"
:label-col=
"labelCol"
:wrapper-col=
"wrapperCol"
>
<a-form-model-item
label=
"标题"
prop=
""
>
<a-input
v-model=
"form.name"
placeholder=
"请输入标题"
/>
</a-form-model-item>
<a-form-model-item
label=
"制定机关"
prop=
""
>
<a-input
v-model=
"form.name"
placeholder=
"请输入制定机关"
/>
</a-form-model-item>
<a-form-model-item
label=
"法律性质"
prop=
""
>
<a-select
v-model=
"form.region"
placeholder=
"请选择法律性质"
>
<a-select-option
value=
"shanghai"
>
Zone one
</a-select-option>
<a-select-option
value=
"beijing"
>
Zone two
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item
label=
"公布日期"
prop=
""
>
<a-date-picker
valueFormat=
"x"
/>
</a-form-model-item>
<a-form-model-item
class=
"content"
label=
"内容"
prop=
""
>
<div
class=
"content-box"
>
<YQuillEditor
height=
"auto"
v-model=
"form.content"
></YQuillEditor>
<a-form-model-item
v-for=
"(v, i) in form.appInfoFieldList"
:key=
"v.fieldCode"
:label=
"v.fieldName"
class=
"content"
:prop=
"`appInfoFieldList.$
{i}.fieldValue`"
:rules="{
required: true,
message: `${v.fieldName}不能为空`,
trigger:
v.fieldType == 'date' || v.fieldType == 'text'
? 'change'
: 'blur',
}"
>
<a-input
v-if=
"v.fieldType == 'input'"
v-model=
"v.fieldValue"
:placeholder=
"`请输入$
{v.fieldName}`"
/>
<a-date-picker
v-else-if=
"v.fieldType == 'date'"
v-model=
"v.fieldValue"
:placeholder=
"`请选择$
{v.fieldName}`"
valueFormat="YYYY-MM-DD"
/>
<a-textarea
v-else-if=
"v.fieldType == 'textarea'"
v-model=
"v.fieldValue"
:placeholder=
"`请输入$
{v.fieldName}`"
allow-clear
/>
<div
v-else-if=
"v.fieldType == 'text'"
class=
"content-box"
>
<YQuillEditor
v-model=
"v.fieldValue"
height=
"auto"
></YQuillEditor>
</div>
</a-form-model-item>
</a-form-model>
...
...
@@ -58,6 +75,7 @@
<
script
>
import
YQuillEditor
from
"
@/components/YQuillEditor.vue
"
;
import
{
saveDataset
}
from
"
@/services/market
"
;
export
default
{
components
:
{
YQuillEditor
,
...
...
@@ -82,12 +100,10 @@ export default {
wrapperCol
:
{
span
:
22
,
},
loading
:
false
,
imageUrl
:
""
,
form
:
{
content
:
""
,
appId
:
""
,
appInfoFieldList
:
[],
},
fileList
:
[],
};
},
computed
:
{
...
...
@@ -103,16 +119,37 @@ export default {
methods
:
{
// 关闭
onClose
()
{
this
.
$refs
.
form
.
resetFields
();
this
.
Visible
=
false
;
},
// 提交
onSubmit
()
{
console
.
log
(
1
);
async
onSubmit
()
{
this
.
$refs
.
form
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
let
res
=
await
saveDataset
(
this
.
form
);
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
===
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$emit
(
"
addSuccess
"
);
this
.
onClose
();
}
}
else
{
this
.
$message
.
warning
(
"
请完善表单信息
"
);
}
});
},
// 新增
onAdd
()
{
Object
.
assign
(
this
.
formInfo
,
this
.
$options
.
data
().
formInfo
);
this
.
formInfo
.
id
&&
this
.
$delete
(
this
.
formInfo
,
"
id
"
);
onAdd
(
appTemplate
)
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
this
.
form
.
appInfoFieldList
=
appTemplate
.
map
((
v
)
=>
{
if
(
v
.
id
)
{
delete
v
.
id
;
}
v
.
fieldValue
=
""
;
return
v
;
});
this
.
form
.
appId
=
this
.
$route
.
query
.
id
;
},
// 编辑
onEdit
(
data
)
{
...
...
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddField.vue
0 → 100644
View file @
a8aa14c3
<
template
>
<div>
<a-modal
v-model=
"Visible"
title=
"新增数据字段"
>
<a-form-model
:model=
"form"
ref=
"form"
:rules=
"rules"
:label-col=
"
{ span: 4 }"
:wrapper-col="{ span: 20 }"
>
<a-form-model-item
label=
"字段名称"
prop=
"fieldName"
>
<a-input
v-model=
"form.fieldName"
placeholder=
"请输入字段名称"
/>
</a-form-model-item>
<a-form-model-item
label=
"字段编码"
prop=
"fieldCode"
>
<a-input
v-model=
"form.fieldCode"
placeholder=
"请输入字段编码"
/>
</a-form-model-item>
<a-form-model-item
label=
"字段类型"
prop=
"fieldType"
>
<a-select
v-model=
"form.fieldType"
placeholder=
"请选择字段类型"
>
<a-select-option
v-for=
"v in fieldTypeItem"
:key=
"v.value"
:value=
"v.value"
>
{{
v
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item
label=
"数据类型"
prop=
"dataType"
>
<a-radio-group
v-model=
"form.dataType"
>
<a-radio
value=
"number"
>
数字
</a-radio>
<a-radio
value=
"string"
>
字符串
</a-radio>
</a-radio-group>
</a-form-model-item>
<a-form-model-item
label=
"数据长度"
prop=
"fieldLen"
>
<a-input-number
v-model=
"form.fieldLen"
:min=
"1"
/>
</a-form-model-item>
<a-form-model-item
label=
"允许为空"
prop=
"fieldNull"
>
<a-radio-group
v-model=
"form.fieldNull"
>
<a-radio
:value=
"0"
>
否
</a-radio>
<a-radio
:value=
"1"
>
是
</a-radio>
</a-radio-group>
</a-form-model-item>
<a-form-model-item
label=
"列表显示"
prop=
"isList"
>
<a-radio-group
v-model=
"form.isList"
>
<a-radio
:value=
"0"
>
否
</a-radio>
<a-radio
:value=
"1"
>
是
</a-radio>
</a-radio-group>
</a-form-model-item>
<a-form-model-item
label=
"排序"
prop=
"fieldOrderNo"
>
<a-input-number
v-model=
"form.fieldOrderNo"
:min=
"0"
/>
</a-form-model-item>
<a-form-model-item
label=
"备注"
prop=
"remark"
>
<a-textarea
:autoSize=
"
{ minRows: 3, maxRows: 3 }"
v-model="form.remark"
placeholder="请输入备注"
allow-clear
/>
</a-form-model-item>
</a-form-model>
<div
slot=
"footer"
>
<a-button
@
click=
"handleCancel"
>
取消
</a-button>
<a-button
type=
"primary"
@
click=
"handleOk"
>
确定
</a-button>
</div>
</a-modal>
</div>
</
template
>
<
script
>
import
{
saveTemplete
}
from
"
@/services/market
"
;
const
fieldTypeItem
=
[
{
value
:
"
input
"
,
label
:
"
单行输入框
"
,
},
{
value
:
"
textarea
"
,
label
:
"
多行输入框
"
,
},
{
value
:
"
date
"
,
label
:
"
日期选择框
"
,
},
{
value
:
"
text
"
,
label
:
"
富文本
"
,
},
];
export
default
{
props
:
{
fieldVisible
:
{
required
:
true
,
type
:
Boolean
,
default
:
false
,
},
},
data
()
{
return
{
fieldTypeItem
,
form
:
{
appId
:
""
,
// 应用id
fieldCode
:
""
,
// 字段编码
fieldName
:
""
,
// 字段名称
fieldType
:
undefined
,
//字段类型(input.单行输入框,textarea.多行输入框,SELECT.下拉选项框,date.日期选择框)
dataType
:
""
,
// 数据类型(number.数字,string.字符串)
fieldLen
:
128
,
//数据长度,默认128
fieldNull
:
""
,
//是否允许为空,(0.否,1.是)
isList
:
""
,
//字段是否列表显示(0.否,1.是)
fieldOrderNo
:
""
,
// 排序号
remark
:
""
,
//
},
rules
:
{
fieldCode
:
[
{
required
:
true
,
message
:
"
请输入字段编码
"
,
trigger
:
"
blur
"
},
],
fieldName
:
[
{
required
:
true
,
message
:
"
请输入字段名称
"
,
trigger
:
"
blur
"
},
],
fieldTyp
:
[
{
required
:
true
,
message
:
"
请选择字段类型
"
,
trigger
:
"
change
"
},
],
fieldNull
:
[
{
required
:
true
,
message
:
"
请选择是否允许为空
"
,
trigger
:
"
change
"
},
],
isList
:
[
{
required
:
true
,
message
:
"
请选择是否列表显示
"
,
trigger
:
"
change
"
},
],
},
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
fieldVisible
;
},
set
(
val
)
{
this
.
$emit
(
"
update:fieldVisible
"
,
val
);
},
},
},
methods
:
{
handleOk
()
{
this
.
$refs
.
form
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
let
res
=
await
saveTemplete
(
this
.
form
);
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
===
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$emit
(
"
addSuccess
"
);
this
.
handleCancel
();
}
}
});
},
handleCancel
()
{
this
.
$refs
.
form
.
resetFields
();
this
.
Visible
=
false
;
},
// 新增
onAdd
()
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
appId
=
this
.
$route
.
query
.
id
;
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
console
.
log
(
this
.
form
);
},
// 编辑
onEdit
(
data
)
{
this
.
form
=
{
...
data
};
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
</
style
>
\ No newline at end of file
base-manager-ui/admin/src/pages/basicset/appmarket/modal/CheckSite.vue
0 → 100644
View file @
a8aa14c3
<
template
>
<div>
<a-modal
v-model=
"Visible"
title=
"适用范围"
>
<a-tree-select
v-model=
"siteIdList"
:tree-data=
"SiteTree"
style=
"width: 100%"
:dropdown-style=
"
{ maxHeight: '400px', overflow: 'auto' }"
placeholder="请选择站点"
allow-clear
treeCheckable
:replaceFields="replaceFields"
:treeCheckStrictly="true"
>
</a-tree-select>
<div
slot=
"footer"
>
<a-space
size=
"middle"
>
<div
class=
"tips"
>
已选择
<span
class=
"primary"
>
{{
siteIdList
.
length
}}
</span
>
个站点
</div>
<a-button
@
click=
"handleCancel"
>
取消
</a-button>
<a-button
type=
"primary"
@
click=
"handleOk"
>
确定
</a-button>
</a-space>
</div>
</a-modal>
</div>
</
template
>
<
script
>
import
{
mapGetters
}
from
"
vuex
"
;
import
{
cloneApp
}
from
"
@/services/market
"
;
export
default
{
props
:
{
siteVisible
:
{
required
:
true
,
type
:
Boolean
,
default
:
false
,
},
appList
:
{
required
:
true
,
type
:
Array
,
default
:
()
=>
{
return
[];
},
},
},
data
()
{
return
{
siteIdList
:
[],
// 站点id
replaceFields
:
{
title
:
"
label
"
,
key
:
"
id
"
,
value
:
"
id
"
,
},
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
siteVisible
;
},
set
(
val
)
{
this
.
$emit
(
"
update:siteVisible
"
,
val
);
},
},
...
mapGetters
(
"
site
"
,
[
"
SiteTree
"
]),
},
methods
:
{
async
handleOk
()
{
if
(
!
this
.
siteIdList
)
{
this
.
$message
.
warning
(
"
请先选择站点
"
);
return
;
}
let
res
=
await
cloneApp
({
siteIdList
:
this
.
siteIdList
.
map
((
v
)
=>
v
.
value
),
idList
:
this
.
appList
,
});
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
===
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$emit
(
"
checkSite
"
);
this
.
handleCancel
();
}
},
// 关闭
handleCancel
()
{
this
.
siteIdList
=
[];
this
.
Visible
=
false
;
},
// 获取站点回显
getSiteList
(
siteList
)
{
let
arr
=
siteList
.
map
((
v
)
=>
{
return
{
value
:
v
,
};
});
this
.
siteIdList
=
arr
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.tips {
font-weight: 600 !important;
}
</
style
>
\ No newline at end of file
base-manager-ui/admin/src/pages/basicset/business/components/businessTabs3.vue
View file @
a8aa14c3
...
...
@@ -407,7 +407,6 @@ export default {
getSiteInfo
(
siteId
)
{
Object
.
assign
(
this
.
$data
,
this
.
$options
.
data
());
//获取data源对象,覆盖当前data对象状态
this
.
siteId
=
siteId
;
console
.
log
(
this
.
siteId
);
this
.
getSiteBusinessData
({
siteId
});
this
.
getMatterSiteData
({
siteId
});
this
.
getBusinessMatterData
({
siteId
});
...
...
base-manager-ui/admin/src/services/basicsetApi.js
View file @
a8aa14c3
...
...
@@ -272,4 +272,42 @@ module.exports = {
save
:
`
${
BASE_URL
}
/skin/field/save`
,
delete
:
`
${
BASE_URL
}
/skin/field/delete`
,
},
// 应用集市
App
:
{
list
:
`
${
BASE_URL
}
/app/list`
,
info
:
`
${
BASE_URL
}
/app/info`
,
save
:
`
${
BASE_URL
}
/app/save`
,
delete
:
`
${
BASE_URL
}
/app/delete`
,
distribute
:
`
${
BASE_URL
}
/app/appDistribute`
,
clone
:
`
${
BASE_URL
}
/app/cloneAppsBySites`
,
},
// 应用数据
dataset
:
{
list
:
`
${
BASE_URL
}
/app/dataset/list`
,
info
:
`
${
BASE_URL
}
/app/dataset/info`
,
save
:
`
${
BASE_URL
}
/app/dataset/save`
,
delete
:
`
${
BASE_URL
}
/app/dataset/delete`
,
},
// 应用信息字段配置
appField
:
{
list
:
`
${
BASE_URL
}
/app/info/field/list`
,
info
:
`
${
BASE_URL
}
/app/info/field/info`
,
save
:
`
${
BASE_URL
}
/app/info/field/save`
,
delete
:
`
${
BASE_URL
}
/app/info/field/delete`
,
},
// 应用信息模板
templete
:
{
list
:
`
${
BASE_URL
}
/app/info/templete/field/list`
,
info
:
`
${
BASE_URL
}
/app/info/templete/field/info`
,
save
:
`
${
BASE_URL
}
/app/info/templete/field/save`
,
delete
:
`
${
BASE_URL
}
/app/info/templete/field/delete`
,
},
// 应用历史版本
version
:
{
list
:
`
${
BASE_URL
}
/app/version/list`
,
info
:
`
${
BASE_URL
}
/app/version/info`
,
delete
:
`
${
BASE_URL
}
/app/version/delete`
,
used
:
`
${
BASE_URL
}
/app/version/used`
,
preview
:
`
${
BASE_URL
}
/app/version/preview`
,
},
};
base-manager-ui/admin/src/services/market.js
0 → 100644
View file @
a8aa14c3
import
{
App
,
dataset
,
appField
,
templete
,
version
,
}
from
"
@/services/basicsetApi
"
;
import
{
request
,
METHOD
}
from
"
@/utils/request
"
;
/**
* 应用
*/
// 获取应用列表
export
async
function
getAppList
(
data
)
{
return
request
(
App
.
list
,
METHOD
.
POST
,
data
);
}
// 查看应用
export
async
function
getAppInfo
(
data
)
{
return
request
(
App
.
info
,
METHOD
.
GET
,
data
);
}
// 新增,修改应用
export
async
function
saveApp
(
data
)
{
return
request
(
App
.
save
,
METHOD
.
POST
,
data
);
}
// 删除应用
export
async
function
deleteApp
(
data
)
{
return
request
(
App
.
delete
,
METHOD
.
GET
,
data
);
}
// 克隆应用
export
async
function
cloneApp
(
data
)
{
return
request
(
App
.
clone
,
METHOD
.
POST
,
data
);
}
// 部署应用
export
async
function
deployApp
(
data
)
{
return
request
(
App
.
distribute
,
METHOD
.
POST
,
data
);
}
/**
* 应用数据
*/
// 获取数据列表
export
async
function
getDatasetList
(
data
)
{
return
request
(
dataset
.
list
,
METHOD
.
POST
,
data
);
}
// 查看数据
export
async
function
getDatasetInfo
(
data
)
{
return
request
(
dataset
.
info
,
METHOD
.
GET
,
data
);
}
// 新增,修改数据
export
async
function
saveDataset
(
data
)
{
return
request
(
dataset
.
save
,
METHOD
.
POST
,
data
);
}
// 删除数据
export
async
function
deleteDataset
(
data
)
{
return
request
(
dataset
.
delete
,
METHOD
.
GET
,
data
);
}
/**
* 应用信息字段配置
*/
// 获取信息字段列表
export
async
function
getAppFieldList
(
data
)
{
return
request
(
appField
.
list
,
METHOD
.
POST
,
data
);
}
// 查看信息字段
export
async
function
getAppFieldInfo
(
data
)
{
return
request
(
appField
.
info
,
METHOD
.
GET
,
data
);
}
// 新增,修改信息字段
export
async
function
saveAppField
(
data
)
{
return
request
(
appField
.
save
,
METHOD
.
POST
,
data
);
}
// 删除信息字段
export
async
function
deleteAppField
(
data
)
{
return
request
(
appField
.
delete
,
METHOD
.
GET
,
data
);
}
/**
* 应用信息模板
*/
// 获取应用信息模板列表
export
async
function
getTempleteList
(
data
)
{
return
request
(
templete
.
list
,
METHOD
.
POST
,
data
);
}
// 查看应用信息模板
export
async
function
getTempleteInfo
(
data
)
{
return
request
(
templete
.
info
,
METHOD
.
GET
,
data
);
}
// 新增,修改应用信息模板
export
async
function
saveTemplete
(
data
)
{
return
request
(
templete
.
save
,
METHOD
.
POST
,
data
);
}
// 删除应用信息模板
export
async
function
deleteTemplete
(
data
)
{
return
request
(
templete
.
delete
,
METHOD
.
GET
,
data
);
}
/**
* 应用历史版本
*/
// 获取应用历史版本列表
export
async
function
getVersionList
(
data
)
{
return
request
(
version
.
list
,
METHOD
.
POST
,
data
);
}
// 查看应用历史版本
export
async
function
getVersionInfo
(
data
)
{
return
request
(
version
.
info
,
METHOD
.
GET
,
data
);
}
// 新增,修改应用历史版本
export
async
function
saveVersion
(
data
)
{
return
request
(
version
.
save
,
METHOD
.
POST
,
data
);
}
// 删除应用历史版本
export
async
function
deleteVersion
(
data
)
{
return
request
(
version
.
delete
,
METHOD
.
GET
,
data
);
}
// 使用版本
export
async
function
usedVersion
(
data
)
{
return
request
(
version
.
used
,
METHOD
.
GET
,
data
);
}
// 预览版本
export
async
function
previewVersion
(
data
)
{
return
request
(
version
.
preview
,
METHOD
.
GET
,
data
);
}
base-manager-ui/admin/src/store/modules/site.js
View file @
a8aa14c3
export
default
{
namespaced
:
true
,
state
:
{
siteId
:
''
,
// 站点id
imageResolution
:[],
// 皮肤设置分辨率
siteId
:
""
,
// 站点id
imageResolution
:
[],
// 皮肤设置分辨率
SiteTree
:
[],
// 站点树
appTemplate
:
[],
// 应用模板属性
},
mutations
:{
SET_SITE_ID
(
state
,
newId
){
state
.
siteId
=
newId
getters
:
{
SiteTree
(
state
)
{
return
state
.
SiteTree
;
},
SET_imageResolution
(
state
,
imageResolution
){
state
.
imageResolution
=
imageResolution
appTemplate
(
state
)
{
return
state
.
appTemplate
;
},
},
mutations
:
{
SET_appTemplate
(
state
,
appTemplate
)
{
state
.
appTemplate
=
appTemplate
;
},
SET_SITE_ID
(
state
,
newId
)
{
state
.
siteId
=
newId
;
},
SET_SiteTree
(
state
,
SiteTree
)
{
state
.
SiteTree
=
SiteTree
;
},
SET_imageResolution
(
state
,
imageResolution
)
{
state
.
imageResolution
=
imageResolution
;
},
// 皮肤设置分辨率字典
},
}
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment