Commit aa28dfc5 authored by “yiyousong”'s avatar “yiyousong”

pref:优化应用板块和业务管理板块

parent 4d2c0405
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
"nanoid": "^4.0.0", "nanoid": "^4.0.0",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"quill-image-resize-module": "^3.0.0", "quill-image-resize-module": "^3.0.0",
"secure-ls": "^1.2.6",
"v-viewer": "^1.6.4", "v-viewer": "^1.6.4",
"viser-vue": "^2.4.8", "viser-vue": "^2.4.8",
"vue": "^2.6.11", "vue": "^2.6.11",
......
...@@ -77,7 +77,7 @@ export default { ...@@ -77,7 +77,7 @@ export default {
methods: { methods: {
// 返回管理页面 // 返回管理页面
handleManage() { handleManage() {
this.$router.push("/business"); this.$router.push("/business/mattermanage");
}, },
// 返回上一级 // 返回上一级
handleBack() { handleBack() {
......
<template> <template>
<!-- 应用集市 --> <!-- 应用集市 -->
<div class="app-details"> <div class="app-details flex flexc">
<a-tabs default-active-key="1"> <a-tabs :activeKey="activeKey" @change="changeRouter">
<a-button slot="tabBarExtraContent" @click="handleBack" <a-button slot="tabBarExtraContent" @click="handleBack"
>返回上一级</a-button >返回上一级</a-button
> >
<a-tab-pane key="1" tab="详情"> <a-tab-pane key="/appmarket/appdetails/appdetailspage" tab="详情">
<AppDetailsPage></AppDetailsPage> <!-- <AppDetailsPage></AppDetailsPage> -->
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="2" tab="数据更新" force-render> <a-tab-pane key="/appmarket/appdetails/dataupdate" tab="数据更新">
<DataUpdata></DataUpdata> <!-- <DataUpdata></DataUpdata> -->
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="3" tab="数据配置" force-render> <a-tab-pane key="/appmarket/appdetails/fieldconfig" tab="数据配置">
<FieldConfig></FieldConfig> <!-- <FieldConfig></FieldConfig> -->
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
<div class="details-out-box flex1">
<router-view></router-view>
</div>
</div> </div>
</template> </template>
<script> <script>
import AppDetailsPage from "./components/AppDetailsPage.vue"; // import AppDetailsPage from "./components/AppDetailsPage.vue";
import DataUpdata from "./components/DataUpdate.vue"; // import DataUpdata from "./components/DataUpdate.vue";
import FieldConfig from "./components/FieldConfig.vue"; // import FieldConfig from "./components/FieldConfig.vue";
export default { export default {
components: { components: {
AppDetailsPage, // AppDetailsPage,
DataUpdata, // DataUpdata,
FieldConfig, // FieldConfig,
}, },
data() { data() {
return { return {
appId: this.$route.query.id, appId: this.$route.query.id,
from: this.$route.query.from,
appInfo: {}, appInfo: {},
}; };
}, },
computed: {
activeKey() {
return this.$route.path;
},
},
created() {}, created() {},
methods: { methods: {
handleBack() { handleBack() {
this.$router.back(); if (this.from == "terminalapp") {
this.$router.push("/appmarket/terminalapp");
} else {
this.$router.push("/appmarket/moveapp");
}
},
changeRouter(path) {
this.$router.push(`${path}?id=${this.appId}&from=${this.from}`);
}, },
}, },
}; };
...@@ -46,6 +62,8 @@ export default { ...@@ -46,6 +62,8 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.app-details { .app-details {
width: 100%; width: 100%;
height: 100%;
padding: 0px 20px;
} }
/deep/.ant-tabs { /deep/.ant-tabs {
height: 100%; height: 100%;
......
<template> <template>
<!-- 应用集市 --> <!-- 应用集市 -->
<div class="app-market"> <div class="app-market flex flexc">
<a-tabs default-active-key="1"> <a-tabs :activeKey="activeKey" @change="changeRouter">
<a-button <a-button
type="primary" type="primary"
v-permission="[1]" v-permission="[1]"
...@@ -9,13 +9,16 @@ ...@@ -9,13 +9,16 @@
@click="handleUpload" @click="handleUpload"
>上传配置文件</a-button >上传配置文件</a-button
> >
<a-tab-pane key="1" tab="终端应用"> <a-tab-pane key="/appmarket/terminalapp" tab="终端应用">
<TerminalApp></TerminalApp> <!-- <TerminalApp></TerminalApp> -->
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="2" tab="移动端应用" force-render> <a-tab-pane key="/appmarket/moveapp" tab="移动端应用" force-render>
<MoveApp></MoveApp> <!-- <MoveApp></MoveApp> -->
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
<div class="app-out-box flex1">
<router-view></router-view>
</div>
<!-- 上传配置文件弹窗 --> <!-- 上传配置文件弹窗 -->
<a-modal <a-modal
v-model="visible" v-model="visible"
...@@ -50,13 +53,13 @@ ...@@ -50,13 +53,13 @@
</template> </template>
<script> <script>
import TerminalApp from "./components/TerminalApp.vue"; // import TerminalApp from "./components/TerminalApp.vue";
import MoveApp from "./components/MoveApp.vue"; // import MoveApp from "./components/MoveApp.vue";
import { commonConfig } from "@/services/market"; import { commonConfig } from "@/services/market";
export default { export default {
components: { components: {
TerminalApp, // TerminalApp,
MoveApp, // MoveApp,
}, },
data() { data() {
return { return {
...@@ -73,16 +76,16 @@ export default { ...@@ -73,16 +76,16 @@ export default {
}, },
}; };
}, },
// 进入路有前 computed: {
beforeRouteEnter(to, from, text) { activeKey() {
if (from.path === "/appmarket/appdetails") { return this.$route.path;
to.meta.isBack = true; },
} else {
to.meta.isBack = false;
}
text();
}, },
methods: { methods: {
changeRouter(path) {
this.$router.push(path);
},
handleUpload() { handleUpload() {
this.visible = true; this.visible = true;
}, },
...@@ -125,7 +128,11 @@ export default { ...@@ -125,7 +128,11 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.app-market { .app-market {
width: 100%; width: 100%;
height: 100%;
padding: 15px; padding: 15px;
.app-out-box {
overflow-y: auto;
}
} }
/deep/.ant-form-item { /deep/.ant-form-item {
align-items: flex-start; align-items: flex-start;
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
:wrapper-col="{ span: 22 }" :wrapper-col="{ span: 22 }"
> >
<a-form-model-item label="应用主题"> <a-form-model-item label="应用主题">
{{ appInfo.appThemeName }} {{ filterItems(appInfo.appThemeName, appDict.appThemeName) }}
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="应用简介"> <a-form-model-item label="应用简介">
{{ appInfo.summary }} {{ appInfo.summary }}
...@@ -117,7 +117,8 @@ import { ...@@ -117,7 +117,8 @@ import {
previewVersion, previewVersion,
} from "@/services/market"; } from "@/services/market";
import CheckSite from "../modal/CheckSite.vue"; import CheckSite from "../modal/CheckSite.vue";
import { filterItems } from "@/utils";
import { mapGetters } from "vuex";
export default { export default {
props: { props: {
// 应用信息 // 应用信息
...@@ -168,6 +169,7 @@ export default { ...@@ -168,6 +169,7 @@ export default {
}, },
]; ];
return { return {
filterItems,
api: process.env.VUE_APP_API_BASE_URL + "/", api: process.env.VUE_APP_API_BASE_URL + "/",
columns, columns,
appId: this.$route.query.id, appId: this.$route.query.id,
...@@ -182,6 +184,9 @@ export default { ...@@ -182,6 +184,9 @@ export default {
siteVisible: false, siteVisible: false,
}; };
}, },
computed: {
...mapGetters("site", ["appDict"]),
},
created() { created() {
this.getAppInfo(); this.getAppInfo();
this.getVersions(); this.getVersions();
......
...@@ -118,6 +118,8 @@ import YSwitch from "../../../../components/yswitch/YSwitch.vue"; ...@@ -118,6 +118,8 @@ import YSwitch from "../../../../components/yswitch/YSwitch.vue";
import AddApp from "../modal/AddApp.vue"; import AddApp from "../modal/AddApp.vue";
import CheckSite from "../modal/CheckSite.vue"; import CheckSite from "../modal/CheckSite.vue";
import { getAppList, deleteApp, saveApp } from "@/services/market"; import { getAppList, deleteApp, saveApp } from "@/services/market";
import { mapMutations } from "vuex";
import { filterItems } from "@/utils";
import local from "@/utils/local"; import local from "@/utils/local";
const columns = [ const columns = [
{ {
...@@ -176,6 +178,7 @@ export default { ...@@ -176,6 +178,7 @@ export default {
}, },
data() { data() {
return { return {
filterItems,
api: process.env.VUE_APP_API_BASE_URL + "/", api: process.env.VUE_APP_API_BASE_URL + "/",
api2: process.env.VUE_APP_API_IMG_URL, api2: process.env.VUE_APP_API_IMG_URL,
columns, columns,
...@@ -194,17 +197,29 @@ export default { ...@@ -194,17 +197,29 @@ export default {
dict: {}, // 字典 dict: {}, // 字典
}; };
}, },
// 详情页返回不刷新数据 // 进入路由前
activated() { // beforeRouteEnter(to, from, text) {
if (!this.$route.meta.isBack) { // if (from.path === "/appmarket/appdetails") {
Object.assign(this.$data, this.$options.data()); // to.meta.isBack = true;
// } else {
// to.meta.isBack = false;
// }
// text();
// },
// // 详情页返回不刷新数据
// activated() {
// if (!this.$route.meta.isBack) {
// Object.assign(this.$data, this.$options.data());
// this.getAppList();
// } else {
// this.$route.meta.isBack = false;
// }
// },
created() {
this.getAppList(); this.getAppList();
} else {
this.$route.meta.isBack = false;
}
}, },
created() {},
methods: { methods: {
...mapMutations("site", ["SET_appDict"]),
// 获取应用列表 // 获取应用列表
async getAppList() { async getAppList() {
this.loading = true; this.loading = true;
...@@ -218,6 +233,7 @@ export default { ...@@ -218,6 +233,7 @@ export default {
this.loading = false; this.loading = false;
let { data, total, dict } = res.data.data; let { data, total, dict } = res.data.data;
this.dict = dict; this.dict = dict;
this.SET_appDict(dict);
if (res.data.code === 1) { if (res.data.code === 1) {
if (!data.length && this.current > 1) { if (!data.length && this.current > 1) {
this.current -= 1; this.current -= 1;
...@@ -335,16 +351,6 @@ export default { ...@@ -335,16 +351,6 @@ export default {
this.getAppList(); this.getAppList();
} }
}, },
// 过滤表格数据
filterItems(key, dict = {}) {
let val = "";
Object.keys(dict).forEach((keys) => {
if (key == keys) {
val = dict[keys];
}
});
return val;
},
}, },
}; };
</script> </script>
......
...@@ -119,6 +119,8 @@ import AddApp from "../modal/AddApp.vue"; ...@@ -119,6 +119,8 @@ import AddApp from "../modal/AddApp.vue";
import CheckSite from "../modal/CheckSite.vue"; import CheckSite from "../modal/CheckSite.vue";
import { getAppList, deleteApp, saveApp } from "@/services/market"; import { getAppList, deleteApp, saveApp } from "@/services/market";
import local from "@/utils/local"; import local from "@/utils/local";
import { mapMutations } from "vuex";
import { filterItems } from "@/utils";
const columns = [ const columns = [
{ {
title: "序号", title: "序号",
...@@ -176,6 +178,7 @@ export default { ...@@ -176,6 +178,7 @@ export default {
}, },
data() { data() {
return { return {
filterItems,
api: process.env.VUE_APP_API_BASE_URL + "/", api: process.env.VUE_APP_API_BASE_URL + "/",
api2: process.env.VUE_APP_API_IMG_URL, api2: process.env.VUE_APP_API_IMG_URL,
columns, columns,
...@@ -194,17 +197,12 @@ export default { ...@@ -194,17 +197,12 @@ export default {
dict: {}, // 字典 dict: {}, // 字典
}; };
}, },
// 详情页返回不刷新数据
activated() { created() {
if (!this.$route.meta.isBack) {
Object.assign(this.$data, this.$options.data());
this.getAppList(); this.getAppList();
} else {
this.$route.meta.isBack = false;
}
}, },
created() {},
methods: { methods: {
...mapMutations("site", ["SET_appDict"]),
// 获取应用列表 // 获取应用列表
async getAppList() { async getAppList() {
this.loading = true; this.loading = true;
...@@ -218,6 +216,7 @@ export default { ...@@ -218,6 +216,7 @@ export default {
this.loading = false; this.loading = false;
let { data, total, dict } = res.data.data; let { data, total, dict } = res.data.data;
this.dict = dict; this.dict = dict;
this.SET_appDict(dict);
if (res.data.code === 1) { if (res.data.code === 1) {
if (!data.length && this.current > 1) { if (!data.length && this.current > 1) {
this.current -= 1; this.current -= 1;
...@@ -273,6 +272,7 @@ export default { ...@@ -273,6 +272,7 @@ export default {
path: "/appmarket/appdetails", path: "/appmarket/appdetails",
query: { query: {
id, id,
from: "terminalapp",
}, },
}); });
}, },
...@@ -335,16 +335,6 @@ export default { ...@@ -335,16 +335,6 @@ export default {
this.getAppList(); this.getAppList();
} }
}, },
// 过滤表格数据
filterItems(key, dict = {}) {
let val = "";
Object.keys(dict).forEach((keys) => {
if (key == keys) {
val = dict[keys];
}
});
return val;
},
}, },
}; };
</script> </script>
......
<template> <template>
<div class="business"> <div class="business flex flexc">
<a-tabs v-model="active"> <a-tabs v-model="active" @change="changeRouter">
<a-tab-pane :key="1" tab="事项管理"> <a-tab-pane key="/business/businessmanage" tab="业务管理">
<BusinessTabs2 v-if="active === 1" ref="BusinessTabs2" /> <!-- <BusinessTabs2 v-if="active === 1" ref="BusinessTabs2" /> -->
</a-tab-pane> </a-tab-pane>
<a-tab-pane :key="2" tab="业务管理"> <a-tab-pane key="/business/mattermanage" tab="事项管理">
<BusinessTabs1 v-if="active === 2" ref="BusinessTabs1" /> <!-- <BusinessTabs1 v-if="active === 2" ref="BusinessTabs1" /> -->
</a-tab-pane> </a-tab-pane>
<a-tab-pane :key="3" tab="业务事项关联"> <a-tab-pane key="/business/businessinmanage" tab="业务事项关联">
<BusinessTabs3 v-if="active === 3" ref="BusinessTabs3" /> <!-- <BusinessTabs3 v-if="active === 3" ref="BusinessTabs3" /> -->
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
<div class="business-out-box flex1">
<router-view></router-view>
</div>
</div> </div>
</template> </template>
<script> <script>
import BusinessTabs1 from "./components/businessTabs1.vue"; // import BusinessTabs1 from "./components/businessTabs1.vue";
import BusinessTabs2 from "./components/businessTabs2.vue"; // import BusinessTabs2 from "./components/businessTabs2.vue";
import BusinessTabs3 from "./components/businessTabs3.vue"; // import BusinessTabs3 from "./components/businessTabs3.vue";
export default { export default {
components: { components: {
BusinessTabs1, // BusinessTabs1,
BusinessTabs2, // BusinessTabs2,
BusinessTabs3, // BusinessTabs3,
}, },
data() { data() {
return { return {
siteId: "", // 站点id siteId: "", // 站点id
active: 1, // active: 1,
}; };
}, },
computed: {
methods: {}, active() {
return this.$route.path;
},
},
methods: {
changeRouter(path) {
this.$router.push(path);
},
},
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.business { .business {
width: 100%; width: 100%;
height: 100%;
display: flex; display: flex;
position: relative; position: relative;
background-color: #fff; background-color: #fff;
...@@ -57,5 +69,8 @@ export default { ...@@ -57,5 +69,8 @@ export default {
top: 44px; top: 44px;
left: 50%; left: 50%;
} }
.business-out-box {
overflow-y: auto;
}
} }
</style> </style>
...@@ -63,6 +63,40 @@ const options = { ...@@ -63,6 +63,40 @@ const options = {
invisible: true, invisible: true,
}, },
component: () => import("@/pages/basicset/business/business"), component: () => import("@/pages/basicset/business/business"),
redirect: "/business/businessmanage",
children: [
// 业务管理
{
path: "businessmanage",
meta: {
invisible: true,
},
component: () =>
import(
"@/pages/basicset/business/components/businessTabs1"
),
},
{
path: "mattermanage",
meta: {
invisible: true,
},
component: () =>
import(
"@/pages/basicset/business/components/businessTabs2"
),
},
{
path: "businessinmanage",
meta: {
invisible: true,
},
component: () =>
import(
"@/pages/basicset/business/components/businessTabs3"
),
},
],
}, },
{ {
path: "addmatter", path: "addmatter",
...@@ -159,13 +193,63 @@ const options = { ...@@ -159,13 +193,63 @@ const options = {
path: "", path: "",
name: "应用集市", name: "应用集市",
component: () => import("@/pages/basicset/appmarket/AppMarket"), component: () => import("@/pages/basicset/appmarket/AppMarket"),
meta: { invisible: true, keepAlive: true }, meta: { invisible: true },
redirect: "/appmarket/terminalapp",
children: [
{
path: "terminalapp",
component: () =>
import("@/pages/basicset/appmarket/components/TerminalApp"),
meta: {
invisible: true,
// keepAlive: true,
},
},
{
path: "moveapp",
component: () =>
import("@/pages/basicset/appmarket/components/MoveApp"),
meta: {
invisible: true,
// keepAlive: true,
},
},
],
}, },
{ {
path: "appdetails", path: "appdetails",
name: "应用详情", name: "应用详情",
component: () => import("@/pages/basicset/appmarket/AppDetails"), component: () => import("@/pages/basicset/appmarket/AppDetails"),
meta: { invisible: true }, meta: { invisible: true },
redirect: "/appmarket/appdetails/appdetailspage",
children: [
{
path: "appdetailspage",
component: () =>
import(
"@/pages/basicset/appmarket/components/AppDetailsPage"
),
meta: {
invisible: true,
},
},
{
path: "dataupdate",
component: () =>
import("@/pages/basicset/appmarket/components/DataUpdate"),
meta: {
invisible: true,
},
},
{
path: "fieldconfig",
component: () =>
import("@/pages/basicset/appmarket/components/FieldConfig"),
meta: {
invisible: true,
},
},
],
}, },
], ],
}, },
......
...@@ -2,14 +2,23 @@ import Vue from "vue"; ...@@ -2,14 +2,23 @@ import Vue from "vue";
import Vuex from "vuex"; import Vuex from "vuex";
import modules from "./modules"; import modules from "./modules";
import createPersistedState from "vuex-persistedstate"; import createPersistedState from "vuex-persistedstate";
import SecureLS from "secure-ls";
var ls = new SecureLS({ isCompression: false });
Vue.use(Vuex); Vue.use(Vuex);
const store = new Vuex.Store({ const store = new Vuex.Store({
modules, modules,
// 持久化插件 // 持久化插件
plugins: [ plugins: [
// createPersistedState({
// storage: window.sessionStorage,
// }),
createPersistedState({ createPersistedState({
storage: window.sessionStorage, key: "info",
storage: {
getItem: (key) => ls.get(key),
setItem: (key, value) => ls.set(key, value),
removeItem: (key) => ls.remove(key),
},
}), }),
], ],
}); });
......
...@@ -6,6 +6,9 @@ export default { ...@@ -6,6 +6,9 @@ export default {
SiteTree: [], // 站点树 SiteTree: [], // 站点树
appTemplate: [], // 应用模板属性 appTemplate: [], // 应用模板属性
matterDict: {}, // 事项字典 matterDict: {}, // 事项字典
token: "",
userInfo: {}, // 用户信息
appDict: {}, // 应用字典
}, },
getters: { getters: {
SiteTree(state) { SiteTree(state) {
...@@ -17,8 +20,20 @@ export default { ...@@ -17,8 +20,20 @@ export default {
matterDict(state) { matterDict(state) {
return state.matterDict; return state.matterDict;
}, },
token(state) {
return state.token;
},
userInfo(state) {
return state.userInfo;
},
appDict(state) {
return state.appDict;
},
}, },
mutations: { mutations: {
SET_appDict(state, appDict) {
state.appDict = appDict;
},
SET_appTemplate(state, appTemplate) { SET_appTemplate(state, appTemplate) {
state.appTemplate = appTemplate; state.appTemplate = appTemplate;
}, },
......
// 根据字典过滤数据
export const filterItems = (key, dict = {}) => {
let val = "";
Object.keys(dict).forEach((keys) => {
if (key == keys) {
val = dict[keys];
}
});
return val;
};
...@@ -3833,6 +3833,11 @@ crypto-browserify@^3.11.0: ...@@ -3833,6 +3833,11 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0" randombytes "^2.0.0"
randomfill "^1.0.3" randomfill "^1.0.3"
crypto-js@^3.1.6:
version "3.3.0"
resolved "https://registry.npmmirror.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b"
integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==
crypto-random-string@^2.0.0: crypto-random-string@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz?cache=0&sync_timestamp=1583560482221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-2.0.0.tgz" resolved "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz?cache=0&sync_timestamp=1583560482221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-2.0.0.tgz"
...@@ -7571,6 +7576,11 @@ lru-cache@^5.1.1: ...@@ -7571,6 +7576,11 @@ lru-cache@^5.1.1:
dependencies: dependencies:
yallist "^3.0.2" yallist "^3.0.2"
lz-string@^1.4.4:
version "1.5.0"
resolved "https://registry.npmmirror.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941"
integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==
make-dir@^2.0.0, make-dir@^2.1.0: make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz" resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz"
...@@ -9964,6 +9974,14 @@ section-matter@^1.0.0: ...@@ -9964,6 +9974,14 @@ section-matter@^1.0.0:
extend-shallow "^2.0.1" extend-shallow "^2.0.1"
kind-of "^6.0.0" kind-of "^6.0.0"
secure-ls@^1.2.6:
version "1.2.6"
resolved "https://registry.npmmirror.com/secure-ls/-/secure-ls-1.2.6.tgz#0c54a4c7fa8317c3c101accbf6bb38d8d2072e46"
integrity sha512-g8vUSKl6elSfyAUHodybnNkuZW+mUYEOWj4SZIDg+xoQ1dq5ddktBoOFrtxQBUl88ZyAJOtGWQ1PRaOxkTAuZQ==
dependencies:
crypto-js "^3.1.6"
lz-string "^1.4.4"
select-hose@^2.0.0: select-hose@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz" resolved "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment