提交 8a734369 编写于 作者: ibizdev's avatar ibizdev

chitanda 发布系统代码 [TrainSys,网页端]

上级 360aeb6c
......@@ -6,8 +6,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link type="text/css" href="/css/app-loading.css" rel="stylesheet">
<script src="/environments/environment.js"></script>
<script src="/assets/ionicons/ionicons.js"></script>
<title>Vite + Vue + TS</title>
<script type="module" src="/assets/ionicons/ionicons/ionicons.esm.js"></script>
<script nomodule="" src="/assets/ionicons/ionicons/ionicons.js"></script>
<title></title>
</head>
<body>
<div id="app"></div>
......
......@@ -12,12 +12,12 @@
},
"dependencies": {
"@ibiz-template/command": "^0.0.1-alpha.2",
"@ibiz-template/controller": "^0.0.1-alpha.6",
"@ibiz-template/controller": "^0.0.1-alpha.9",
"@ibiz-template/core": "^0.0.1-alpha.6",
"@ibiz-template/model": "^0.0.1-alpha.6",
"@ibiz-template/runtime": "^0.0.1-alpha.6",
"@ibiz-template/service": "^0.0.1-alpha.6",
"@ibiz-template/vue-util": "^0.0.1-alpha.6",
"@ibiz-template/model": "^0.0.1-alpha.9",
"@ibiz-template/runtime": "^0.0.1-alpha.9",
"@ibiz-template/service": "^0.0.1-alpha.9",
"@ibiz-template/vue-util": "^0.0.1-alpha.9",
"ionicons": "^6.0.3",
"lodash-es": "^4.17.21",
"pinia": "^2.0.22",
......
......@@ -4,12 +4,12 @@ specifiers:
'@commitlint/cli': ^17.1.2
'@commitlint/config-conventional': ^17.1.0
'@ibiz-template/command': ^0.0.1-alpha.2
'@ibiz-template/controller': ^0.0.1-alpha.6
'@ibiz-template/controller': ^0.0.1-alpha.9
'@ibiz-template/core': ^0.0.1-alpha.6
'@ibiz-template/model': ^0.0.1-alpha.6
'@ibiz-template/runtime': ^0.0.1-alpha.6
'@ibiz-template/service': ^0.0.1-alpha.6
'@ibiz-template/vue-util': ^0.0.1-alpha.6
'@ibiz-template/model': ^0.0.1-alpha.9
'@ibiz-template/runtime': ^0.0.1-alpha.9
'@ibiz-template/service': ^0.0.1-alpha.9
'@ibiz-template/vue-util': ^0.0.1-alpha.9
'@types/lodash-es': ^4.17.6
'@types/node': ^18.7.18
'@types/qs': ^6.9.7
......@@ -59,12 +59,12 @@ specifiers:
dependencies:
'@ibiz-template/command': 0.0.1-alpha.2
'@ibiz-template/controller': 0.0.1-alpha.6_6ypfouewvbv2vmtdaobl3s6v3e
'@ibiz-template/controller': 0.0.1-alpha.9_pn5t7rzxoocvtaxoxnkcgu57aq
'@ibiz-template/core': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/model': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/runtime': 0.0.1-alpha.6_kijfprbda6vol2ucfxuxnn6eam
'@ibiz-template/service': 0.0.1-alpha.6_czjqytg4xyszdailmptirfqasq
'@ibiz-template/vue-util': 0.0.1-alpha.6_qu5iy6psrehbnvwcykg7n56fki
'@ibiz-template/model': 0.0.1-alpha.9_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/runtime': 0.0.1-alpha.9_2uvt75o6revqajpktymyrx7ge4
'@ibiz-template/service': 0.0.1-alpha.9_xbpycvz6bgykdro3aqncm424jq
'@ibiz-template/vue-util': 0.0.1-alpha.9_balyl6hutiruqe5gnsqct7zbfe
ionicons: 6.0.3
lodash-es: 4.17.21
pinia: 2.0.22_2yy4t5siusazdnz3rivdy3cuzy
......@@ -654,8 +654,8 @@ packages:
resolution: {integrity: sha512-C0T/Z5rAU4RISUchbayGoyBcxDJ29OinPsFR156Rtuckg/R0p52CTeoj20j83oSPzH5QQ9+SoSOdZlKAdQ8HXg==}
dev: false
/@ibiz-template/controller/0.0.1-alpha.6_6ypfouewvbv2vmtdaobl3s6v3e:
resolution: {integrity: sha512-LUK6tXHCCZWX1slasj/CPkMHIiRc/5gPIH4TJNhnY5u6kF5sG3h9b1GGBJnRsOr+lt2Cg5H3g9RfK9NXp74aoQ==}
/@ibiz-template/controller/0.0.1-alpha.9_pn5t7rzxoocvtaxoxnkcgu57aq:
resolution: {integrity: sha512-z2zIianI1t3sIVn4ArDJ1X65HQd6X2nqipehP3wRjxJ1HMlLSneQzEDdVRjegwVZJK1FbSf5CYzSpXHn3P+C4w==}
peerDependencies:
'@ibiz-template/core': ^0.0.1-alpha.2
'@ibiz-template/model': ^0.0.1-alpha.2
......@@ -664,9 +664,9 @@ packages:
qx-util: ^0.4.1
dependencies:
'@ibiz-template/core': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/model': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/runtime': 0.0.1-alpha.6_kijfprbda6vol2ucfxuxnn6eam
'@ibiz-template/service': 0.0.1-alpha.6_czjqytg4xyszdailmptirfqasq
'@ibiz-template/model': 0.0.1-alpha.9_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/runtime': 0.0.1-alpha.9_2uvt75o6revqajpktymyrx7ge4
'@ibiz-template/service': 0.0.1-alpha.9_xbpycvz6bgykdro3aqncm424jq
async-validator: 4.2.5
qx-util: 0.4.1
dev: false
......@@ -686,8 +686,8 @@ packages:
- debug
dev: false
/@ibiz-template/model/0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4:
resolution: {integrity: sha512-r+qysBAxQkI89WrdxC3httq9d2tJh9eiNhl/0MVh1Hqeb2YbigjM4UyvttO0c6rzhCjojbhZx5IB9YBg8LdZhg==}
/@ibiz-template/model/0.0.1-alpha.9_amgpmzcbvys7f63sicqtedd4k4:
resolution: {integrity: sha512-SdgY3FWs1nCdOiP0FsYb4vreFDnmyxgZTFnOB0ReB2lVOECf7twk0jWAws3OnY9MKvKCcY3JK/jKyBD32VmZuw==}
peerDependencies:
lodash-es: ^4.17.21
qx-util: ^0.4.1
......@@ -698,8 +698,8 @@ packages:
qx-util: 0.4.1
dev: false
/@ibiz-template/runtime/0.0.1-alpha.6_kijfprbda6vol2ucfxuxnn6eam:
resolution: {integrity: sha512-LGmjZEd9YBMoqQ6igFAUnx+1/V5AGLHdg2vMbn9DIhoGjNf9uqI75xlPXvOxvSB3kuTuOstcOBkrWA3E9Pk0VQ==}
/@ibiz-template/runtime/0.0.1-alpha.9_2uvt75o6revqajpktymyrx7ge4:
resolution: {integrity: sha512-Z5HH2IeNVWvuAx5pRVcAG5DlP44xbEqE81JFpDzDC8vJQYJ4ICutPDuIZEx6iGrUMf5ofPDpVlBowchIOyTmKw==}
peerDependencies:
'@ibiz-template/core': ^0.0.1-alpha.2
'@ibiz-template/model': ^0.0.1-alpha.2
......@@ -708,13 +708,13 @@ packages:
dependencies:
'@ibiz-template/command': 0.0.1-alpha.2
'@ibiz-template/core': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/model': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/service': 0.0.1-alpha.6_czjqytg4xyszdailmptirfqasq
'@ibiz-template/model': 0.0.1-alpha.9_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/service': 0.0.1-alpha.9_xbpycvz6bgykdro3aqncm424jq
qx-util: 0.4.1
dev: false
/@ibiz-template/service/0.0.1-alpha.6_czjqytg4xyszdailmptirfqasq:
resolution: {integrity: sha512-jlIlx4cozEe3ljmlkH4qIMa3GCTzYjXurY3cSuoVHbN56ziI5ORKyRp4cMsJhHD/pc6jFriMGM9NjeSUOWwDNQ==}
/@ibiz-template/service/0.0.1-alpha.9_xbpycvz6bgykdro3aqncm424jq:
resolution: {integrity: sha512-qXheY4vxsoMmv/SY2V2wjrc3Y27hm0HK/s5I2o7BqXjwA71B0+egeZjouxqMoI2inPFKyCWlUNrVA1sna5+KiA==}
peerDependencies:
'@ibiz-template/core': ^0.0.1-alpha.2
'@ibiz-template/model': ^0.0.1-alpha.2
......@@ -722,13 +722,13 @@ packages:
ramda: ^0.28.0
dependencies:
'@ibiz-template/core': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/model': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/model': 0.0.1-alpha.9_amgpmzcbvys7f63sicqtedd4k4
qx-util: 0.4.1
ramda: 0.28.0
dev: false
/@ibiz-template/vue-util/0.0.1-alpha.6_qu5iy6psrehbnvwcykg7n56fki:
resolution: {integrity: sha512-7IRyMN9CaI3eQKCKtvcZsngCkFgIt8y+UhvudFNQGaW9QKwU+o49ivjlSJAVoLGQ83yddxbOS3A8vSg+vsgMXw==}
/@ibiz-template/vue-util/0.0.1-alpha.9_balyl6hutiruqe5gnsqct7zbfe:
resolution: {integrity: sha512-miNSc5pqivLlDsPD7S956Ey37kSxLpjJ2s6/cWOWrgCD8lrOFJJYLw/TrcLVMrC1lWac4EvPjWYYR3AeMRgN2A==}
peerDependencies:
'@ibiz-template/controller': '>=0.0.1-alpha.2'
'@ibiz-template/core': '>=0.0.1-alpha.2'
......@@ -738,9 +738,9 @@ packages:
vue: ^2.7.10
vue-router: ^3.6.4
dependencies:
'@ibiz-template/controller': 0.0.1-alpha.6_6ypfouewvbv2vmtdaobl3s6v3e
'@ibiz-template/controller': 0.0.1-alpha.9_pn5t7rzxoocvtaxoxnkcgu57aq
'@ibiz-template/core': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/model': 0.0.1-alpha.6_amgpmzcbvys7f63sicqtedd4k4
'@ibiz-template/model': 0.0.1-alpha.9_amgpmzcbvys7f63sicqtedd4k4
qs: 6.11.0
qx-util: 0.4.1
vue: 2.7.10
......
......@@ -4,4 +4,7 @@ export async function attachEnvironmentConfig(): Promise<void> {
ibiz.env.baseUrl = env.BaseUrl;
ibiz.env.remoteModelUrl = env.remoteDynaPath;
ibiz.env.dcSystem = env.mockDcSystemId;
if (env.AppTitle) {
document.title = env.AppTitle;
}
}
import { computed, defineComponent, onMounted, ref } from 'vue';
import {
computed,
defineComponent,
onMounted,
reactive,
ref,
watch,
} from 'vue';
import {
IPSDETBGroupItem,
IPSDETBUIActionItem,
......@@ -27,6 +34,7 @@ export const ViewToolbar = defineComponent({
type: ToolbarModel,
required: true,
},
selections: Array<IData>,
viewMode: {
type: String,
required: true,
......@@ -43,6 +51,7 @@ export const ViewToolbar = defineComponent({
await neuron.evt.asyncEmit('mounted');
});
// 点击事件
const handleClick = async (item: IPSDEToolbarItem, _event: MouseEvent) => {
doingToolbarItem.value = item.id;
try {
......@@ -60,7 +69,33 @@ export const ViewToolbar = defineComponent({
return props.viewMode === 'EMBED' ? 'small' : 'default';
});
return { ns, doingToolbarItem, handleClick, btnSize };
// 初始化工具栏状态控制对象
const tempState: {
[p: string]: {
visible: boolean;
disabled: boolean;
};
} = {};
[...props.modelData.actionItems.values()].forEach(item => {
tempState[item.id] = {
visible: true,
disabled: false,
};
});
const toolbarState = reactive(tempState);
watch(
() => props.selections,
newVal => {
[...props.modelData.actionItems.values()].forEach(item => {
if (item.uIActionTarget === 'NONE') {
tempState[item.id].disabled = !newVal?.length;
}
});
},
{ immediate: true },
);
return { ns, doingToolbarItem, toolbarState, handleClick, btnSize };
},
render() {
return (
......@@ -80,7 +115,10 @@ export const ViewToolbar = defineComponent({
</div>
);
}
if (item.itemType === 'DEUIACTION') {
if (
item.itemType === 'DEUIACTION' &&
this.toolbarState[item.id].visible
) {
return (
<div key={item.id} class={this.ns.b('item')}>
<i-button
......@@ -89,7 +127,10 @@ export const ViewToolbar = defineComponent({
loading={
!!this.doingToolbarItem && this.doingToolbarItem === item.id
}
disabled={!!this.doingToolbarItem}
disabled={
!!this.doingToolbarItem ||
this.toolbarState[item.id].disabled
}
on-click={(e: MouseEvent) => this.handleClick(item, e)}
>
{btnContent(item, this.viewMode)}
......
......@@ -24,6 +24,21 @@ export const MDViewBase = defineComponent({
<view-base
controller={c}
scopedSlots={{
toolbar: () => {
if (c.complete && c.model.toolbar) {
return [
<view-toolbar
modelData={c.model.toolbar}
selections={c.selectedData}
on-neuronInit={c.nerve.onNeuronInit(
c.model.toolbar.source.name,
)}
viewMode={c.modal.mode}
></view-toolbar>,
];
}
return null;
},
quickSearch: () => {
if (c.complete && c.model.source.enableQuickSearch) {
return (
......
......@@ -39,6 +39,7 @@ export const SearchFormControl = defineComponent({
model-data={this.modelData}
context={this.context}
controller={this.c}
nativeOnkeyup={(e: KeyboardEvent) => this.c.onKeyUp(e)}
></form-control>
<div class={this.ns.b('buttons')}>
<i-button
......
......@@ -495,10 +495,10 @@
resolved "https://registry.yarnpkg.com/@ibiz-template/command/-/command-0.0.1-alpha.2.tgz#59ab6c99f1f23c3e4b6852ec39a0c546e0d3fcf5"
integrity sha512-C0T/Z5rAU4RISUchbayGoyBcxDJ29OinPsFR156Rtuckg/R0p52CTeoj20j83oSPzH5QQ9+SoSOdZlKAdQ8HXg==
"@ibiz-template/controller@^0.0.1-alpha.6":
version "0.0.1-alpha.6"
resolved "https://registry.yarnpkg.com/@ibiz-template/controller/-/controller-0.0.1-alpha.6.tgz#dca2802f2b0ddc6c8f514497332905a03abf2a62"
integrity sha512-LUK6tXHCCZWX1slasj/CPkMHIiRc/5gPIH4TJNhnY5u6kF5sG3h9b1GGBJnRsOr+lt2Cg5H3g9RfK9NXp74aoQ==
"@ibiz-template/controller@^0.0.1-alpha.9":
version "0.0.1-alpha.9"
resolved "https://registry.yarnpkg.com/@ibiz-template/controller/-/controller-0.0.1-alpha.9.tgz#42aeed94d47c8999ff0a20480e8d291cf0d8184b"
integrity sha512-z2zIianI1t3sIVn4ArDJ1X65HQd6X2nqipehP3wRjxJ1HMlLSneQzEDdVRjegwVZJK1FbSf5CYzSpXHn3P+C4w==
dependencies:
async-validator "^4.2.5"
......@@ -511,30 +511,30 @@
pluralize "^8.0.0"
qs "^6.11.0"
"@ibiz-template/model@^0.0.1-alpha.6":
version "0.0.1-alpha.6"
resolved "https://registry.yarnpkg.com/@ibiz-template/model/-/model-0.0.1-alpha.6.tgz#6c258a3feaf3b7ee96547c979ae6600ade8a24ee"
integrity sha512-r+qysBAxQkI89WrdxC3httq9d2tJh9eiNhl/0MVh1Hqeb2YbigjM4UyvttO0c6rzhCjojbhZx5IB9YBg8LdZhg==
"@ibiz-template/model@^0.0.1-alpha.9":
version "0.0.1-alpha.9"
resolved "https://registry.yarnpkg.com/@ibiz-template/model/-/model-0.0.1-alpha.9.tgz#55c596d7ebcfd6ceba6fe5dbf22c3785e3725206"
integrity sha512-SdgY3FWs1nCdOiP0FsYb4vreFDnmyxgZTFnOB0ReB2lVOECf7twk0jWAws3OnY9MKvKCcY3JK/jKyBD32VmZuw==
dependencies:
"@ibiz/dynamic-model-api" "^2.0.2"
pluralize "^8.0.0"
"@ibiz-template/runtime@^0.0.1-alpha.6":
version "0.0.1-alpha.6"
resolved "https://registry.yarnpkg.com/@ibiz-template/runtime/-/runtime-0.0.1-alpha.6.tgz#c3cc470775cf6ac18dd90aba66c8b9712f59d354"
integrity sha512-LGmjZEd9YBMoqQ6igFAUnx+1/V5AGLHdg2vMbn9DIhoGjNf9uqI75xlPXvOxvSB3kuTuOstcOBkrWA3E9Pk0VQ==
"@ibiz-template/runtime@^0.0.1-alpha.9":
version "0.0.1-alpha.9"
resolved "https://registry.yarnpkg.com/@ibiz-template/runtime/-/runtime-0.0.1-alpha.9.tgz#65c2468a4dcc1b298be8dc2e2698f1a7b5276746"
integrity sha512-Z5HH2IeNVWvuAx5pRVcAG5DlP44xbEqE81JFpDzDC8vJQYJ4ICutPDuIZEx6iGrUMf5ofPDpVlBowchIOyTmKw==
dependencies:
"@ibiz-template/command" "^0.0.1-alpha.2"
"@ibiz-template/service@^0.0.1-alpha.6":
version "0.0.1-alpha.6"
resolved "https://registry.yarnpkg.com/@ibiz-template/service/-/service-0.0.1-alpha.6.tgz#90b80ac09969990238b1a7d4e5601531d83c33d8"
integrity sha512-jlIlx4cozEe3ljmlkH4qIMa3GCTzYjXurY3cSuoVHbN56ziI5ORKyRp4cMsJhHD/pc6jFriMGM9NjeSUOWwDNQ==
"@ibiz-template/service@^0.0.1-alpha.9":
version "0.0.1-alpha.9"
resolved "https://registry.yarnpkg.com/@ibiz-template/service/-/service-0.0.1-alpha.9.tgz#46d3e6e3756383a8876a6da8f1f15f71ff26b710"
integrity sha512-qXheY4vxsoMmv/SY2V2wjrc3Y27hm0HK/s5I2o7BqXjwA71B0+egeZjouxqMoI2inPFKyCWlUNrVA1sna5+KiA==
"@ibiz-template/vue-util@^0.0.1-alpha.6":
version "0.0.1-alpha.6"
resolved "https://registry.yarnpkg.com/@ibiz-template/vue-util/-/vue-util-0.0.1-alpha.6.tgz#8dc5fbb4db1c044a7f1b24217ed4ab1ce9680223"
integrity sha512-7IRyMN9CaI3eQKCKtvcZsngCkFgIt8y+UhvudFNQGaW9QKwU+o49ivjlSJAVoLGQ83yddxbOS3A8vSg+vsgMXw==
"@ibiz-template/vue-util@^0.0.1-alpha.9":
version "0.0.1-alpha.9"
resolved "https://registry.yarnpkg.com/@ibiz-template/vue-util/-/vue-util-0.0.1-alpha.9.tgz#95836be876acf789e1113b2d054e02a3e59fa216"
integrity sha512-miNSc5pqivLlDsPD7S956Ey37kSxLpjJ2s6/cWOWrgCD8lrOFJJYLw/TrcLVMrC1lWac4EvPjWYYR3AeMRgN2A==
"@ibiz/dynamic-model-api@^2.0.2":
version "2.0.4"
......
......@@ -50,7 +50,7 @@
</changeSet>
<!--输出实体[BOOK]数据结构 -->
<changeSet author="root" id="tab-book-241-3">
<changeSet author="root" id="tab-book-242-3">
<createTable tableName="T_BOOK">
<column name="BOOKNAME" remarks="" type="VARCHAR(200)">
</column>
......
......@@ -3648,6 +3648,12 @@
"name" : "书实体分页导航视图",
"realModelSubType" : "DETABEXPVIEW",
"realModelType" : "PSDEVIEWBASE"
}, {
"codeName" : "Usr2RedirectView",
"logicName" : "书实体数据重定向视图(2)",
"name" : "书实体数据重定向视图(2)",
"realModelSubType" : "DEREDIRECTVIEW",
"realModelType" : "PSDEVIEWBASE"
}, {
"codeName" : "RedirectView",
"logicName" : "书实体数据重定向视图",
......
{
"accUserMode" : 2,
"caption" : "书",
"codeName" : "bookUsr2RedirectView",
"dynaModelFilePath" : "PSSYSAPPS/Web/PSAPPDEVIEWS/bookUsr2RedirectView.json",
"name" : "bookUsr2RedirectView",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/Book.json"
},
"getPSDEViewCodeName" : "Usr2RedirectView",
"getPSDEViewId" : "44ED3625-7939-495C-B1E2-CB1157505AA6",
"getPSViewLayoutPanel" : {
"codeName" : "Layoutpanel",
"controlStyle" : "APPDEREDIRECTVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/Book.json"
},
"getPSControlParam" : { },
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
},
"getRedirectPSAppViewRefs" : [ {
"name" : "BOOK:EDITVIEW",
"realTitle" : "书编辑视图",
"getRefPSAppView" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/bookEditView.json",
"viewType" : "DEEDITVIEW"
}
}, {
"name" : "EDITVIEW",
"realTitle" : "书编辑视图",
"getRefPSAppView" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/bookEditView.json",
"viewType" : "DEEDITVIEW"
}
} ],
"title" : "书数据重定向视图",
"viewStyle" : "DEFAULT",
"viewType" : "DEREDIRECTVIEW",
"enableCustomGetDataAction" : false,
"enableDP" : true,
"enableWorkflow" : true,
"redirectView" : true,
"modelid" : "534df8940106bcbe40e7f85109f02014",
"modeltype" : "PSAPPDEVIEW"
}
\ No newline at end of file
......@@ -1078,6 +1078,12 @@
"viewType" : "DEDATAVIEW",
"resource" : "Book",
"view" : "DefaultDataView"
}, {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDEVIEWS/bookUsr2RedirectView.json",
"viewType" : "DEREDIRECTVIEW",
"resource" : "Book",
"view" : "Usr2RedirectView"
}, {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPINDEXVIEWS/AppIndex.json",
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册