Commit 4c834c2c authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 304ba144 6d217452
...@@ -14,12 +14,11 @@ ...@@ -14,12 +14,11 @@
<!-- 富文本 --> <!-- 富文本 -->
<quill-editor <quill-editor
class="editor ql-editor" class="editor ql-editor"
v-model="value" v-model="contnet"
ref="myQuillEditor" ref="myQuillEditor"
:options="editorOption" :options="editorOption"
@blur="onEditorBlur($event)" @blur="onEditorBlur($event)"
@focus="onEditorFocus($event)" @focus="onEditorFocus($event)"
@change="onEditorChange($event)"
> >
</quill-editor> </quill-editor>
</div> </div>
...@@ -106,9 +105,7 @@ export default { ...@@ -106,9 +105,7 @@ export default {
data() { data() {
return { return {
quillUpdateImg: false, // 根据图片上传状态来确定是否显示loading动画,刚开始是false,不显示 quillUpdateImg: false, // 根据图片上传状态来确定是否显示loading动画,刚开始是false,不显示
api: process.env.VUE_APP_API_BASE_URL.includes("base") api: process.env.VUE_APP_API_BASE_URL + "/",
? process.env.VUE_APP_API_BASE_URL.replace("base", "")
: process.env.VUE_APP_API_BASE_URL + "/",
editorOption: { editorOption: {
theme: "snow", // or 'bubble' theme: "snow", // or 'bubble'
placeholder: "请输入文本......", placeholder: "请输入文本......",
...@@ -151,7 +148,16 @@ export default { ...@@ -151,7 +148,16 @@ export default {
}, },
}; };
}, },
computed: {
contnet: {
get() {
return this.value;
},
set(val) {
this.$emit("input", val);
},
},
},
methods: { methods: {
onEditorBlur() { onEditorBlur() {
//失去焦点事件 //失去焦点事件
...@@ -159,10 +165,6 @@ export default { ...@@ -159,10 +165,6 @@ export default {
onEditorFocus() { onEditorFocus() {
//获得焦点事件 //获得焦点事件
}, },
onEditorChange() {
//内容改变事件
this.$emit("input", this.value);
},
// 富文本图片上传前 // 富文本图片上传前
beforeUpload() { beforeUpload() {
......
...@@ -18,7 +18,7 @@ module.exports = { ...@@ -18,7 +18,7 @@ module.exports = {
multiPage: true, //多页签模式,true:开启,false:不开启 multiPage: true, //多页签模式,true:开启,false:不开启
cachePage: true, //是否缓存页面数据,仅多页签模式下生效,true 缓存, false 不缓存 cachePage: true, //是否缓存页面数据,仅多页签模式下生效,true 缓存, false 不缓存
hideSetting: false, //隐藏设置抽屉,true:隐藏,false:不隐藏 hideSetting: false, //隐藏设置抽屉,true:隐藏,false:不隐藏
systemName: "智慧政务一体化综合管理平台", //系统名称 systemName: "基础设置平台", //系统名称
copyright: "2021 ICZER 信宏翔科技有限公司", //copyright copyright: "2021 ICZER 信宏翔科技有限公司", //copyright
asyncRoutes: false, //异步加载路由,true:开启,false:不开启 asyncRoutes: false, //异步加载路由,true:开启,false:不开启
showPageTitle: true, //是否显示页面标题(PageLayout 布局中的页面标题),true:显示,false:不显示 showPageTitle: true, //是否显示页面标题(PageLayout 布局中的页面标题),true:显示,false:不显示
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
<a-layout-header class="header"> <a-layout-header class="header">
<div class="flex aic"> <div class="flex aic">
<router-link to="/" class="flex aic"> <router-link to="/" class="flex aic">
<!-- <img width="32" src="@/assets/img/logo.png" /> --> <img class="mr10" width="32" src="@/assets/img/logo.png" />
<h1>{{ systemName }}</h1> <h1 class="title">基础设置平台</h1>
</router-link> </router-link>
<HeaderSite class="ml20"></HeaderSite> <HeaderSite class="ml20"></HeaderSite>
</div> </div>
...@@ -72,11 +72,12 @@ export default { ...@@ -72,11 +72,12 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.ant-layout-header { .ant-layout-header {
padding: 0px 24px; padding: 0px 24px;
background-color: #2681e8; // background-color: #2681e8;
font-size: 14px; font-size: 14px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
background: linear-gradient(90deg, #1845c6 0%, #2999ff 100%);
h1 { h1 {
color: #fff; color: #fff;
font-size: 16px; font-size: 16px;
...@@ -85,6 +86,10 @@ export default { ...@@ -85,6 +86,10 @@ export default {
a { a {
color: #fff; color: #fff;
} }
.title {
font-size: 20px;
font-weight: bold;
}
} }
.main { .main {
height: calc(100vh - 64px); height: calc(100vh - 64px);
......
...@@ -157,7 +157,7 @@ export default { ...@@ -157,7 +157,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.ant-dropdown-link { .ant-dropdown-link {
padding: 0 20px; padding: 0 20px;
font-size: 14px; font-size: 16px;
min-width: 200px; min-width: 200px;
display: inline-block; display: inline-block;
color: #fff; color: #fff;
......
...@@ -34,6 +34,22 @@ ...@@ -34,6 +34,22 @@
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="应用图标" prop="appIconPath"> <a-form-model-item label="应用图标" prop="appIconPath">
<a-upload <a-upload
name="file"
list-type="picture-card"
:action="api + 'base/file/commonupload'"
:file-list="iconFileList"
@change="handleChangeIcon"
:accept="accept"
:before-upload="iconBeforeUpload"
@preview="handlePreview"
>
<div v-if="iconFileList.length < 1">
<a-icon type="plus" />
<div class="ant-upload-text">选择图标</div>
</div>
</a-upload>
<!-- <a-upload
name="file" name="file"
list-type="picture-card" list-type="picture-card"
class="avatar-uploader" class="avatar-uploader"
...@@ -51,7 +67,7 @@ ...@@ -51,7 +67,7 @@
<a-icon :type="loading ? 'loading' : 'plus'" /> <a-icon :type="loading ? 'loading' : 'plus'" />
<div class="ant-upload-text">选择图标</div> <div class="ant-upload-text">选择图标</div>
</div> </div>
</a-upload> </a-upload> -->
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="应用简介" prop="summary"> <a-form-model-item label="应用简介" prop="summary">
<a-textarea <a-textarea
...@@ -150,6 +166,11 @@ ...@@ -150,6 +166,11 @@
<a-button type="primary" @click="onSubmit"> 保存 </a-button> <a-button type="primary" @click="onSubmit"> 保存 </a-button>
</a-space> </a-space>
</div> </div>
<!-- 预览 -->
<PrevieModal
:previewData="previewData"
:previewVisible.sync="previewVisible"
></PrevieModal>
</a-drawer> </a-drawer>
</div> </div>
</template> </template>
...@@ -159,9 +180,11 @@ import YSwitch from "../../../../components/yswitch/YSwitch.vue"; ...@@ -159,9 +180,11 @@ import YSwitch from "../../../../components/yswitch/YSwitch.vue";
import { saveApp } from "@/services/market"; import { saveApp } from "@/services/market";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { changeCodeNumber } from "@/utils/validate"; import { changeCodeNumber } from "@/utils/validate";
import PrevieModal from "@/components/PrevieModal.vue";
export default { export default {
components: { components: {
YSwitch, YSwitch,
PrevieModal,
}, },
props: { props: {
title: { title: {
...@@ -184,8 +207,12 @@ export default { ...@@ -184,8 +207,12 @@ export default {
}, },
data() { data() {
return { return {
accept: "image/jpeg,image/png,image/svg+xml",
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,
previewData: {}, // 预览
previewVisible: false,
iconFileList: [],
labelCol: { labelCol: {
span: 3, span: 3,
}, },
...@@ -290,27 +317,51 @@ export default { ...@@ -290,27 +317,51 @@ export default {
// 图标上传之前 // 图标上传之前
iconBeforeUpload(file) { iconBeforeUpload(file) {
const isJpgOrPng = const isJpgOrPng =
file.type === "image/jpeg" || file.type === "image/png"; file.type === "image/jpeg" ||
file.type === "image/png" ||
file.type === "image/svg+xml";
if (!isJpgOrPng) { if (!isJpgOrPng) {
this.$message.error("请上传jpeg或者png格式图片!"); this.$message.error("请上传jpeg、png或者svg格式图片!");
} }
const isLt2M = file.size / 1024 / 1024 < 2; const isLt5M = file.size / 1024 / 1024 < 5;
if (!isLt2M) { if (!isLt5M) {
this.$message.error("图片大小不能超过 2MB!"); this.$message.error("图片大小不能超过 5MB!");
} }
return isJpgOrPng && isLt2M; return isJpgOrPng && isLt5M;
}, },
// 上传图标 // 上传图标
handleChangeIcon(info) { handleChangeIcon({ fileList }) {
if (info.file.status === "uploading") { // if (info.file.status === "uploading") {
this.loading = true; // this.loading = true;
return; // return;
// }
// if (info.file.status === "done") {
// this.form.appIconPath = info.file.response.url;
// this.loading = false;
// }
this.iconFileList = [...fileList].slice(-1);
this.iconFileList = this.iconFileList.map((v) => {
if (v.response) {
v.url2 = v.response.url;
v.url = this.api2 + v.response.url;
} }
if (info.file.status === "done") { return v;
this.form.appIconPath = info.file.response.url; });
this.loading = false; if (this.iconFileList[0]) {
this.form.appIconPath = this.iconFileList[0].url2;
} else {
this.form.appIconPath = "";
} }
}, },
// 预览
handlePreview(info) {
this.previewData = {
type: "img",
url: info.url,
};
this.previewVisible = true;
},
// 上传应用 // 上传应用
handleChangeFile(info) { handleChangeFile(info) {
let fileList = [...info.fileList]; let fileList = [...info.fileList];
...@@ -338,7 +389,6 @@ export default { ...@@ -338,7 +389,6 @@ export default {
}, },
// 编辑 // 编辑
onEdit(data) { onEdit(data) {
console.log(data);
this.form = { ...data }; this.form = { ...data };
this.fileList = [ this.fileList = [
{ {
...@@ -348,6 +398,15 @@ export default { ...@@ -348,6 +398,15 @@ export default {
url: this.form.filePath, url: this.form.filePath,
}, },
]; ];
this.iconFileList = [
{
uid: "-2",
name: this.form.appIconPath,
status: "done",
url: this.api2 + this.form.appIconPath,
url2: this.form.appIconPath,
},
];
}, },
// 选中站点 // 选中站点
changeSite(value, label) { changeSite(value, label) {
......
...@@ -57,6 +57,7 @@ ...@@ -57,6 +57,7 @@
</template> </template>
<!-- 展现类型 --> <!-- 展现类型 -->
<template slot="displayType" slot-scope="text"> <template slot="displayType" slot-scope="text">
<!-- {{ text.displayType || "--" }} -->
<a-tag>{{ filterItems(text.displayType, dict.displayType) }} </a-tag> <a-tag>{{ filterItems(text.displayType, dict.displayType) }} </a-tag>
</template> </template>
<!-- 操作 --> <!-- 操作 -->
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="展现类型" prop="displayType"> <a-form-model-item label="展现类型" prop="displayType">
<!-- <a-input v-model="form.displayType" placeholder="请输入排序" /> -->
<a-select v-model="form.displayType" placeholder="请选择展现类型"> <a-select v-model="form.displayType" placeholder="请选择展现类型">
<a-select-option <a-select-option
v-for="(v, key) in dict.displayType" v-for="(v, key) in dict.displayType"
......
package com.mortals.xhx.module.app.service.impl; package com.mortals.xhx.module.app.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Validator; import cn.hutool.core.lang.Validator;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil; import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.net.InternetDomainName; import com.google.common.net.InternetDomainName;
import com.mortals.framework.model.DbMatchMode;
import com.google.common.collect.Maps;
import cn.hutool.core.io.FileUtil;
import com.mortals.framework.ap.GlobalSysInfo; import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol; import com.mortals.framework.model.OrderCol;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.base.system.upload.service.UploadService; import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.key.Constant; import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.pdu.app.AppPdu; import com.mortals.xhx.common.pdu.app.AppPdu;
import com.mortals.xhx.common.utils.BeanUtil; import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.common.utils.ZipUtils;
import com.mortals.xhx.feign.app.device.IAppFeign; import com.mortals.xhx.feign.app.device.IAppFeign;
import com.mortals.xhx.module.app.dao.AppDao;
import com.mortals.xhx.module.app.model.*; import com.mortals.xhx.module.app.model.*;
import com.mortals.xhx.module.app.service.*; import com.mortals.xhx.module.app.service.*;
import com.mortals.xhx.module.device.model.DeviceBlackappEntity;
import com.mortals.xhx.module.device.model.DeviceBlackappQuery; import com.mortals.xhx.module.device.model.DeviceBlackappQuery;
import com.mortals.xhx.module.device.service.DeviceBlackappService; import com.mortals.xhx.module.device.service.DeviceBlackappService;
import com.mortals.xhx.module.site.model.SiteEntity; import com.mortals.xhx.module.site.model.SiteEntity;
import com.mortals.xhx.module.site.service.SiteService; import com.mortals.xhx.module.site.service.SiteService;
import com.mortals.xhx.utils.EncodeUtil; import com.mortals.xhx.utils.EncodeUtil;
import com.mortals.xhx.version.model.VersionEntity;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.app.dao.AppDao;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.io.File; import java.io.File;
...@@ -79,31 +69,12 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L ...@@ -79,31 +69,12 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L
private DeviceBlackappService deviceBlackappService; private DeviceBlackappService deviceBlackappService;
/**
* @param params
* @param pageInfo
* @param context
* @return
* @throws AppException
*/
@Override
protected AppEntity findBefore(AppEntity params, PageInfo pageInfo, Context context) throws AppException {
return super.findBefore(params, pageInfo, context);
}
@Override @Override
protected void findAfter(AppEntity params, PageInfo pageInfo, Context context, List<AppEntity> list) throws AppException { protected void findAfter(AppEntity params, PageInfo pageInfo, Context context, List<AppEntity> list) throws AppException {
//判断是否存在设备编码。存在 查询设备编码应用黑名单 //判断是否存在设备编码。存在 查询设备编码应用黑名单
checkDeviceBlackApp(params, list); checkDeviceBlackApp(params, list);
//根据指定的idlist顺序进行排序 //根据指定的idlist顺序进行排序
sortAppByIdList(params, list); sortAppByIdList(params, list);
//统计站点
list.forEach(item -> {
List<AppEntity> appEntityList = this.find(new AppQuery().appCode(item.getAppCode()), context);
item.setApplianceSiteScope(appEntityList.size());
item.setSiteIdList(appEntityList.stream().map(AppEntity::getSiteId).collect(Collectors.toList()));
//构建访问地址
SiteEntity siteEntity = siteService.getCache(item.getSiteId().toString());
String domainUrl = ""; String domainUrl = "";
if (!ObjectUtils.isEmpty(params.getServerName()) && Validator.isIpv4(params.getServerName())) { if (!ObjectUtils.isEmpty(params.getServerName()) && Validator.isIpv4(params.getServerName())) {
domainUrl = String.format("http://%s:%d", params.getServerName(), params.getServerPort() > 0 ? params.getServerPort() : 11078); domainUrl = String.format("http://%s:%d", params.getServerName(), params.getServerPort() > 0 ? params.getServerPort() : 11078);
...@@ -116,6 +87,13 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L ...@@ -116,6 +87,13 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L
} }
} }
for (AppEntity item : list) {
List<AppEntity> appEntityList = this.find(new AppQuery().appCode(item.getAppCode()), context);
item.setApplianceSiteScope(appEntityList.size());
item.setSiteIdList(appEntityList.stream().map(AppEntity::getSiteId).collect(Collectors.toList()));
//构建访问地址
SiteEntity siteEntity = siteService.getCache(item.getSiteId().toString());
if (!ObjectUtils.isEmpty(siteEntity)) { if (!ObjectUtils.isEmpty(siteEntity)) {
//请求地址 http://domian/app/siteCode/appcode/html //请求地址 http://domian/app/siteCode/appcode/html
...@@ -137,7 +115,7 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L ...@@ -137,7 +115,7 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L
item.setAppIconUrl(item.getAppIconPath()); item.setAppIconUrl(item.getAppIconPath());
} }
}); };
super.findAfter(params, pageInfo, context, list); super.findAfter(params, pageInfo, context, list);
} }
...@@ -331,6 +309,59 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L ...@@ -331,6 +309,59 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L
return Rest.ok("克隆应用完成!"); return Rest.ok("克隆应用完成!");
} }
/**
* @param appEntity
* @param context
* @return
*/
@Override
public Rest<String> cloneAppBySameSite(AppEntity appEntity, Context context) {
Long sourceAppId = appEntity.getSourceAppId();
Long targetAppId = appEntity.getTargetAppId();
AppEntity sourceAppEntity = this.get(sourceAppId, context);
AppEntity targetAppEntity = this.get(targetAppId, context);
//删除应用的数据集
Long[] delIds = targetAppEntity.getAppDatasetList().stream().map(i -> i.getId()).toArray(Long[]::new);
if (ObjectUtils.isEmpty(delIds)) {
appDatasetService.remove(delIds, context);
}
//保存数据集
List<AppDatasetEntity> appDatasetList = sourceAppEntity.getAppDatasetList();
if (!ObjectUtils.isEmpty(appDatasetList)) {
for (AppDatasetEntity appDatasetEntity : appDatasetList) {
AppDatasetEntity appDatasetClone = new AppDatasetEntity();
appDatasetClone.initAttrValue();
BeanUtils.copyProperties(appDatasetEntity, appDatasetClone, BeanUtil.getNullPropertyNames(appDatasetEntity));
appDatasetClone.setAppId(targetAppEntity.getId());
appDatasetService.save(appDatasetClone, context);
//查询属性列表
List<AppInfoFieldEntity> appInfoFieldList = appInfoFieldService.find(new AppInfoFieldQuery().datasetId(appDatasetEntity.getId()));
if (!ObjectUtils.isEmpty(appInfoFieldList)) {
ArrayList<AppInfoFieldEntity> cloneList = new ArrayList<>();
for (AppInfoFieldEntity appInfoFieldEntity : appInfoFieldList) {
AppInfoFieldEntity appInfoFieldClone = new AppInfoFieldEntity();
appInfoFieldClone.initAttrValue();
BeanUtils.copyProperties(appInfoFieldEntity, appInfoFieldClone, BeanUtil.getNullPropertyNames(appInfoFieldEntity));
appInfoFieldClone.setDatasetId(appDatasetClone.getId());
cloneList.add(appInfoFieldClone);
}
if (!ObjectUtils.isEmpty(cloneList)) {
appInfoFieldService.save(cloneList, context);
}
}
}
}
return Rest.ok();
}
@Override @Override
public AppDao getAppDao() { public AppDao getAppDao() {
......
...@@ -15,13 +15,17 @@ import java.util.List; ...@@ -15,13 +15,17 @@ import java.util.List;
@Data @Data
public class SkinBaseVo extends BaseEntityLong { public class SkinBaseVo extends BaseEntityLong {
/** 产品编码 */ /** 产品编码 */
private String productCode; private String productCode;
private String imageResolutionValue; private String imageResolutionValue;
private String serverName;
private Integer serverPort;
/** 属性列表 */ /** 属性列表 */
private List<SkinFieldEntity> skinFieldList; private List<SkinFieldEntity> skinFieldList;
......
package com.mortals.xhx.module.skin.service.impl; package com.mortals.xhx.module.skin.service.impl;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.net.URLDecoder; import cn.hutool.core.net.URLDecoder;
import cn.hutool.core.net.url.UrlBuilder; import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.mortals.framework.ap.GlobalSysInfo; import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -78,31 +80,50 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk ...@@ -78,31 +80,50 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk
protected void findAfter(SkinBaseEntity entity, PageInfo pageInfo, Context context, List<SkinBaseEntity> list) throws AppException { protected void findAfter(SkinBaseEntity entity, PageInfo pageInfo, Context context, List<SkinBaseEntity> list) throws AppException {
Map<String, String> imageResolutionMap = paramService.getParamBySecondOrganize("SkinBase", "imageResolution"); Map<String, String> imageResolutionMap = paramService.getParamBySecondOrganize("SkinBase", "imageResolution");
list.stream().forEach(item -> {
String domainUrl = "";
if (!ObjectUtils.isEmpty(entity.getServerName()) && Validator.isIpv4(entity.getServerName())) {
domainUrl = String.format("http://%s:%d", entity.getServerName(), entity.getServerPort() > 0 ? entity.getServerPort() : 11078);
} else {
boolean isDomain = ReUtil.isMatch("^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})*\\.[a-zA-Z]{2,}$", entity.getServerName());
if (isDomain) {
domainUrl = String.format("https://%s", entity.getServerName());
} else {
domainUrl = "";
}
}
for (SkinBaseEntity item : list) {
List<SkinFieldEntity> skinFieldEntities = skinFieldService.find(new SkinFieldQuery().skinId(item.getId())); List<SkinFieldEntity> skinFieldEntities = skinFieldService.find(new SkinFieldQuery().skinId(item.getId()));
String domain = GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/"); // String domain = GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/");
skinFieldEntities.forEach(field -> { for (SkinFieldEntity field : skinFieldEntities) {
if ("2".equals(field.getFieldType())) { if ("2".equals(field.getFieldType())) {
UrlBuilder builder = UrlBuilder.ofHttp(domain, CharsetUtil.CHARSET_UTF_8).addPath(field.getFieldValue()); String fieldUrl = String.format("%s/%s", domainUrl, field.getFieldValue());
field.setFieldValueUrl(builder.build()); //UrlBuilder builder = UrlBuilder.ofHttp(domainUrl, CharsetUtil.CHARSET_UTF_8).addPath(field.getFieldValue());
field.setFieldValueUrl(fieldUrl);
}
} }
});
ProductEntity productEntity = productService.get(item.getProductId()); ProductEntity productEntity = productService.get(item.getProductId());
item.setProductCode(productEntity == null ? "" : productEntity.getProductCode()); item.setProductCode(productEntity == null ? "" : productEntity.getProductCode());
item.setImageResolutionValue(imageResolutionMap.get(entity.getImageResolution() == null ? "1" : entity.getImageResolution())); item.setImageResolutionValue(imageResolutionMap.get(entity.getImageResolution() == null ? "1" : entity.getImageResolution()));
item.setSkinFieldList(skinFieldEntities); item.setSkinFieldList(skinFieldEntities);
if (!ObjectUtils.isEmpty(item.getPreviewImagePath())) { if (!ObjectUtils.isEmpty(item.getPreviewImagePath())) {
UrlBuilder builder = UrlBuilder.ofHttp(domain, CharsetUtil.CHARSET_UTF_8).addPath(item.getPreviewImagePath()); // UrlBuilder builder = UrlBuilder.ofHttp(domainUrl, CharsetUtil.CHARSET_UTF_8).addPath(item.getPreviewImagePath());
item.setPreviewImagePath(builder.build()); String fieldUrl = String.format("%s/%s", domainUrl, item.getPreviewImagePath());
// item.setPreviewImagePath(builder.build());
item.setPreviewImagePath(fieldUrl);
//log.info("cssUrl:" + URLDecoder.decode(item.getPreviewImagePath(), CharsetUtil.CHARSET_UTF_8)); //log.info("cssUrl:" + URLDecoder.decode(item.getPreviewImagePath(), CharsetUtil.CHARSET_UTF_8));
} }
if (!ObjectUtils.isEmpty(item.getCssFilePath())) { if (!ObjectUtils.isEmpty(item.getCssFilePath())) {
UrlBuilder builder = UrlBuilder.ofHttp(domain, CharsetUtil.CHARSET_UTF_8).addPath(item.getCssFilePath()); //UrlBuilder builder = UrlBuilder.ofHttp(domainUrl, CharsetUtil.CHARSET_UTF_8).addPath(item.getCssFilePath());
item.setCssFilePath(builder.build()); //item.setCssFilePath(builder.build());
String fieldUrl = String.format("%s/%s", domainUrl, item.getCssFilePath());
item.setCssFilePath(fieldUrl);
//log.info("cssUrl:" + URLDecoder.decode(item.getCssFilePath(), CharsetUtil.CHARSET_UTF_8)); //log.info("cssUrl:" + URLDecoder.decode(item.getCssFilePath(), CharsetUtil.CHARSET_UTF_8));
} }
}); }
super.findAfter(entity, pageInfo, context, list); super.findAfter(entity, pageInfo, context, list);
} }
......
package com.mortals.xhx.module.skin.web; package com.mortals.xhx.module.skin.web;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.net.url.UrlBuilder; import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.mortals.framework.ap.GlobalSysInfo; import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.key.Constant; import com.mortals.xhx.common.key.Constant;
...@@ -13,14 +17,17 @@ import com.mortals.xhx.module.product.service.ProductService; ...@@ -13,14 +17,17 @@ import com.mortals.xhx.module.product.service.ProductService;
import com.mortals.xhx.module.skin.model.SkinFieldEntity; import com.mortals.xhx.module.skin.model.SkinFieldEntity;
import com.mortals.xhx.module.skin.model.SkinFieldQuery; import com.mortals.xhx.module.skin.model.SkinFieldQuery;
import com.mortals.xhx.module.skin.service.SkinFieldService; import com.mortals.xhx.module.skin.service.SkinFieldService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.skin.model.SkinBaseEntity; import com.mortals.xhx.module.skin.model.SkinBaseEntity;
import com.mortals.xhx.module.skin.model.SkinBaseQuery; import com.mortals.xhx.module.skin.model.SkinBaseQuery;
...@@ -33,21 +40,26 @@ import java.util.HashMap; ...@@ -33,21 +40,26 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import java.util.Arrays; import java.util.Arrays;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*; import static com.mortals.framework.ap.SysConstains.*;
/** /**
* * 系统基础皮肤
* 系统基础皮肤 *
* * @author zxfei
* @author zxfei * @date 2022-05-24
* @date 2022-05-24 */
*/
@RestController @RestController
@RequestMapping("skin/base") @RequestMapping("skin/base")
public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBaseService,SkinBaseEntity,Long> { @Slf4j
public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBaseService, SkinBaseEntity, Long> {
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
...@@ -56,21 +68,27 @@ public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBa ...@@ -56,21 +68,27 @@ public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBa
@Autowired @Autowired
private SkinFieldService skinFieldService; private SkinFieldService skinFieldService;
public SkinBaseController(){ public SkinBaseController() {
super.setModuleDesc( "系统基础皮肤"); super.setModuleDesc("系统基础皮肤");
} }
@Override @Override
protected void doListBefore(SkinBaseEntity query, Map<String, Object> model, Context context) throws AppException { protected void doListBefore(SkinBaseEntity query, Map<String, Object> model, Context context) throws AppException {
if(!ObjectUtils.isEmpty(query.getProductCode())){ if (!ObjectUtils.isEmpty(query.getProductCode())) {
ProductEntity productEntity = productService.selectOne(new ProductQuery().productCode(query.getProductCode())); ProductEntity productEntity = productService.selectOne(new ProductQuery().productCode(query.getProductCode()));
if(!ObjectUtils.isEmpty(productEntity)){ if (!ObjectUtils.isEmpty(productEntity)) {
query.setProductId(productEntity.getId()); query.setProductId(productEntity.getId());
query.setProductCode(null); query.setProductCode(null);
} }
} }
String serverName = request.getHeader("server-name");
Integer serverPort = DataUtil.converStr2Int(request.getHeader("server-port"), 0);
log.info("【应用请求】【请求体】-->serverName{} ,port:{}", serverName, serverPort);
query.setServerName(serverName);
query.setServerPort(serverPort);
super.doListBefore(query, model, context); super.doListBefore(query, model, context);
} }
...@@ -85,17 +103,37 @@ public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBa ...@@ -85,17 +103,37 @@ public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBa
@Override @Override
protected int viewAfter(Long id, Map<String, Object> model, SkinBaseEntity entity, Context context) throws AppException { protected int viewAfter(Long id, Map<String, Object> model, SkinBaseEntity entity, Context context) throws AppException {
List<SkinFieldEntity> skinFieldEntities = skinFieldService.find(new SkinFieldQuery().skinId(entity.getId())); List<SkinFieldEntity> skinFieldEntities = skinFieldService.find(new SkinFieldQuery().skinId(entity.getId()));
skinFieldEntities.forEach(skinFieldEntity -> updateUrl(skinFieldEntity));
entity.setSkinFieldList(skinFieldEntities); String serverName = request.getHeader("server-name");
return super.viewAfter(id, model, entity, context); Integer serverPort = DataUtil.converStr2Int(request.getHeader("server-port"), 0);
String domainUrl = "";
if (!ObjectUtils.isEmpty(serverName) && Validator.isIpv4(serverName)) {
domainUrl = String.format("http://%s:%d",serverName, serverPort > 0 ? serverPort : 11078);
} else {
boolean isDomain = ReUtil.isMatch("^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})*\\.[a-zA-Z]{2,}$", entity.getServerName());
if (isDomain) {
domainUrl = String.format("https://%s", serverName);
} else {
serverName = "";
} }
private void updateUrl(SkinFieldEntity field) { }
for (SkinFieldEntity field : skinFieldEntities) {
if ("2".equals(field.getFieldType())) { if ("2".equals(field.getFieldType())) {
String domain = GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/"); // String domain = GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071/");
UrlBuilder builder = UrlBuilder.ofHttp(domain, CharsetUtil.CHARSET_UTF_8).addPath(field.getFieldValue()); // UrlBuilder builder = UrlBuilder.ofHttp(domain, CharsetUtil.CHARSET_UTF_8).addPath(field.getFieldValue());
field.setFieldValue(builder.build()); // field.setFieldValue(builder.build());
String fieldUrl = String.format("%s/%s", domainUrl, field.getFieldValue());
field.setFieldValueUrl(fieldUrl);
} }
}
entity.setSkinFieldList(skinFieldEntities);
return super.viewAfter(id, model, entity, context);
} }
......
...@@ -19,7 +19,7 @@ Content-Type: application/json ...@@ -19,7 +19,7 @@ Content-Type: application/json
{ {
"page":1, "page":1,
"size":10 "size":1
} }
......
...@@ -11,6 +11,3 @@ VUE_APP_API_PHP_URL=http://8.136.255.30:8090 ...@@ -11,6 +11,3 @@ VUE_APP_API_PHP_URL=http://8.136.255.30:8090
#正式 #正式
VUE_APP_API_PRP_RUL=http://112.19.80.237:11007 VUE_APP_API_PRP_RUL=http://112.19.80.237:11007
#易政秀报表
VUE_APP_API_TEST_RUL=http://8.136.255.30
This source diff could not be displayed because it is too large. You can view the blob instead.
import http from "../request/http"; import http from "../request/http";
let baseURL = process.env.VUE_APP_API_TEST_RUL let baseURL = "http://8.136.255.30"
let proURL = process.env.VUE_APP_API_PRP_RUL; let proURL = process.env.VUE_APP_API_PRP_RUL;
// 查询客户管理列表 // 查询客户管理列表
......
import http from "../request/http";
let baseURL = process.env.VUE_APP_API_BASE_URL;
// ----------ps-----------------
// 查询产品信息列表
export function getProduct(params) {
return http.post(`${baseURL}/zwfw/product/list`, params);
}
// 产品信息
export function saveProduct(params) {
return http.post(`${baseURL}/zwfw/product/save`, params);
}
// 产品信息
export function deleteProduct(params) {
return http.get(`${baseURL}/zwfw/product/delete`, params);
}
//-------------xj: --------------------
// 产品接口
export function getInterfaceList(params) {
return http.post(`${baseURL}/zwfw/product/interface/list`, params);
}
// 新增编辑产品接口
export function getInterfaceSave(params) {
return http.post(`${baseURL}/zwfw/product/interface/save`, params);
}
// 查看产品接口
export function getInterfaceInfo(params) {
return http.get(`${baseURL}/zwfw/product/interface/info`, params);
}
// 删除产品接口
export function getInterfaceDelete(params) {
return http.get(`${baseURL}/zwfw/product/interface/delete`, params);
}
\ No newline at end of file
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
<div> <div>
<a-button <a-button
:loading="btnLoading" :loading="btnLoading"
type="primary" class="addclass" type="primary"
class="addclass"
@click="handleExportTable" @click="handleExportTable"
> >
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
...@@ -50,7 +51,9 @@ ...@@ -50,7 +51,9 @@
> >
</a-range-picker> </a-range-picker>
<a-button type="primary" class="addclass" @click="handleSearch">搜索</a-button> <a-button type="primary" class="addclass" @click="handleSearch"
>搜索</a-button
>
<a-button @click="handleReset">重置</a-button> <a-button @click="handleReset">重置</a-button>
</a-space> </a-space>
</span> </span>
...@@ -184,7 +187,7 @@ export default { ...@@ -184,7 +187,7 @@ export default {
searchName: undefined, searchName: undefined,
searchForm: { searchForm: {
type: 1, // 事项或者材料搜索 type: 2, // 事项或者材料搜索
status: "", // 打印或者提交 status: "", // 打印或者提交
searchName: "", // 搜索内容 searchName: "", // 搜索内容
BegindAndEndTime: [ BegindAndEndTime: [
......
...@@ -28,10 +28,14 @@ ...@@ -28,10 +28,14 @@
orderInfo.endtime orderInfo.endtime
}} }}
</p> </p>
<p>
<span>预约方式:</span>{{ orderInfo.up_type=='phone'?'微官网':orderInfo.up_type=='app'?'自助终端':orderInfo.up_type=='tftb'?'天府通办':'--' }}
</p>
</div> </div>
<div class="qrcode"> <div class="qrcode">
<!-- <img src="~@/assets/images/logo.png" alt="" /> <!-- <img src="~@/assets/images/logo.png" alt="" /> -->
<p>预约信息二维码</p> --> <img :src="baseurl + '/'+ orderInfo.qrcode" alt="" />
<p>预约信息二维码</p>
</div> </div>
</div> </div>
<ul class="bottom"> <ul class="bottom">
...@@ -145,6 +149,7 @@ export default { ...@@ -145,6 +149,7 @@ export default {
statusItem, statusItem,
style, style,
orderInfo: {}, // 预约信息 orderInfo: {}, // 预约信息
baseurl: process.env.VUE_APP_API_PHP_URL,
}; };
}, },
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
<div> <div>
<a-button <a-button
:loading="btnLoading" :loading="btnLoading"
type="primary" class="addclass" type="primary"
class="addclass"
@click="handleExportTable" @click="handleExportTable"
> >
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
...@@ -40,7 +41,9 @@ ...@@ -40,7 +41,9 @@
> >
</a-range-picker> </a-range-picker>
<a-button type="primary" class="addclass" @click="handleSearch">搜索</a-button> <a-button type="primary" class="addclass" @click="handleSearch"
>搜索</a-button
>
<a-button @click="handleReset">重置</a-button> <a-button @click="handleReset">重置</a-button>
</a-space> </a-space>
</span> </span>
...@@ -140,7 +143,7 @@ export default { ...@@ -140,7 +143,7 @@ export default {
}, },
], ],
searchForm: { searchForm: {
type: 1, // 事项或者材料搜索 type: 2, // 事项或者材料搜索
status: "", // 打印或者提交 status: "", // 打印或者提交
searchName: "", // 搜索内容 searchName: "", // 搜索内容
BegindAndEndTime: [ BegindAndEndTime: [
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<a-layout class="Container"> <a-layout class="Container">
<a-layout-header class="header_box"> <a-layout-header class="header_box">
<div class="logo"> <div class="logo">
<img style="width: 40px;margin-right: 20px;" src="@/assets/images/logo.jpg" alt="">
<i class="title">智慧大厅集成化综合管理平台</i> <i class="title">智慧大厅集成化综合管理平台</i>
<!-- <i class="title">智慧政务一体化综合管理平台4.0</i> --> <!-- <i class="title">智慧政务一体化综合管理平台4.0</i> -->
<div class="selectOnptions"> <div class="selectOnptions">
......
...@@ -2,14 +2,14 @@ ...@@ -2,14 +2,14 @@
<div class="PoliticsShow-Container"> <div class="PoliticsShow-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<button class="add_btn"> <button class="add_btn" @click="openDetails('新增',{})">
<span>新增</span> <span>新增</span>
</button> </button>
</div> </div>
<span> <span>
<a-input <a-input
allowClear allowClear
v-model="searchName" v-model="query.interfaceName"
placeholder="请输入接口名称查询" placeholder="请输入接口名称查询"
> >
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
...@@ -67,14 +67,14 @@ ...@@ -67,14 +67,14 @@
:dataSource="tableSourceData" :dataSource="tableSourceData"
> >
<template slot="operation" slot-scope="text, record, index"> <template slot="operation" slot-scope="text, record, index">
<a-button type="link" @click="openDetails" <a-button type="link" @click="openDetails('详情',record)"
>详情{{ index + 1 }}</a-button >详情</a-button
> >
<a-button type="link" @click="openDetails" <a-button type="link" @click="openDetails('编辑',record)"
>编辑{{ index + 1 }}</a-button >编辑</a-button
> >
<a-button type="link" style="color: #ff4420" <a-button type="link" style="color: #ff4420"
>删除{{ index + 1 }}</a-button >删除</a-button
> >
</template> </template>
</a-table> </a-table>
...@@ -86,6 +86,7 @@ ...@@ -86,6 +86,7 @@
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import Details from "./components/Details.vue"; import Details from "./components/Details.vue";
import {getInterfaceList} from '@/api/thePlatformIsSet.js'
export default { export default {
mixins: [table], mixins: [table],
name: "PortalAdminVueAlerting", name: "PortalAdminVueAlerting",
...@@ -103,42 +104,47 @@ export default { ...@@ -103,42 +104,47 @@ export default {
{ {
title: "API名称", title: "API名称",
align: "center", align: "center",
dataIndex: "API名称", dataIndex: "interfaceName",
}, },
{ {
title: "请求类型", title: "请求类型",
align: "center", align: "center",
dataIndex: "请求类型", dataIndex: "requestType",
customRender: (text, record, index) => `${record.requestType == 1 ? 'POST' : 'GET'}`,
}, },
{ {
title: "标签", title: "标签",
align: "center", align: "center",
dataIndex: "标签", dataIndex: "interfaceTag",
}, },
{ {
title: "请求协议", title: "请求协议",
align: "center", align: "center",
dataIndex: "请求协议", dataIndex: "requestProtocol",
customRender: (text, record, index) => `${record.requestProtocol == 1 ? 'HTTP' : 'HTTPS'}`,
}, },
{ {
title: "版本", title: "版本",
align: "center", align: "center",
dataIndex: "版本", dataIndex: "versionNumber",
}, },
{ {
title: "来源", title: "来源",
align: "center", align: "center",
dataIndex: "来源", dataIndex: "interfaceSource",
customRender: (text, record, index) => `${record.interfaceSource == 1 ? '自有' : '非自有'}`,
}, },
{ {
title: "策略", title: "策略",
align: "center", align: "center",
dataIndex: "策略", dataIndex: "limitStrategy",
customRender: (text, record, index) => `${record.limitStrategy == 1 ? '分钟' : '小时'}`,
}, },
{ {
title: "访问网络", title: "访问网络",
align: "center", align: "center",
dataIndex: "访问网络", dataIndex: "network",
customRender: (text, record, index) => `${record.network == 1 ? '互联网' : '政务网'}`,
}, },
{ {
...@@ -151,29 +157,26 @@ export default { ...@@ -151,29 +157,26 @@ export default {
}, },
}, },
], ],
searchName: undefined, query:{
interfaceName: undefined,
page:1,
size:10,
},
total:0
}; };
}, },
components: { components: {
Details, Details,
}, },
mounted() { mounted() {
this.setMoment(); this.getList();
for (let key = 0; key < 20; key++) {
this.tableSourceData.push({
id: `00${key + 1}`,
API名称: `排队信息查询接口${key + 1}`,
请求类型: `POST${key + 1}`,
标签: `政务外网${key + 1}`,
请求协议: `HTTP${key + 1}`,
版本: `v1.0${key + 1}`,
来源: `自有${key + 1}`,
策略: `--${key + 1}`,
访问网络: `互联网${key + 1}`,
});
}
}, },
methods: { methods: {
getList() {
getInterfaceList(this.query).then(res=>{
this.tableSourceData = res.data.data
})
},
QueueState(type) { QueueState(type) {
switch (type) { switch (type) {
case 0: case 0:
...@@ -185,8 +188,8 @@ export default { ...@@ -185,8 +188,8 @@ export default {
return "type0"; return "type0";
} }
}, },
openDetails() { openDetails(type) {
this.$refs.Details.modalInfo.title = "新增接口"; this.$refs.Details.modalInfo.title = type;
this.$refs.Details.modalInfo.visible = true; this.$refs.Details.modalInfo.visible = true;
this.$refs.Details.modalInfo.width = "55%"; this.$refs.Details.modalInfo.width = "55%";
}, },
......
<template> <template>
<a-drawer <a-drawer :destroyOnClose="true" :title="modalInfo.title" :width="modalInfo.width" :visible="modalInfo.visible"
:destroyOnClose="true" @close="modalClose">
:title="modalInfo.title" <a-form-model ref="ruleForm" :model="detailsForm" :rules="detailsRules" :label-col="{ span: 4 }"
:width="modalInfo.width" :wrapper-col="{ span: 20 }">
:visible="modalInfo.visible"
@close="modalClose"
>
<a-form-model
ref="ruleForm"
:model="detailsForm"
:rules="detailsRules"
:label-col="{ span: 4 }"
:wrapper-col="{ span: 20 }"
>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="接口名称" prop="接口名称"> <a-form-model-item label="接口名称" prop="interfaceName">
<a-input <a-input v-model="detailsForm.interfaceName" placeholder="请输入" allowClear />
v-model="detailsForm.接口名称"
placeholder="请输入"
allowClear
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="版本号" prop="版本号"> <a-form-model-item label="版本号" prop="versionNumber">
<a-input <a-input v-model="detailsForm.versionNumber" placeholder="请输入" allowClear />
v-model="detailsForm.版本号"
placeholder="请输入"
allowClear
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="请求类型" prop="请求类型"> <a-form-model-item label="请求类型" prop="requestType">
<a-select <a-select v-model="detailsForm.requestType" placeholder="请选择" allowClear>
v-model="detailsForm.请求类型" <a-select-option value="1"> POST </a-select-option>
placeholder="请选择" <a-select-option value="2"> GET </a-select-option>
allowClear
>
<a-select-option value="001"> 选项001 </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="请求协议" prop="请求协议"> <a-form-model-item label="请求协议" prop="requestProtocol">
<a-select <a-select v-model="detailsForm.requestProtocol" placeholder="请选择" allowClear>
v-model="detailsForm.请求协议" <a-select-option value="1"> HTTP </a-select-option>
placeholder="请选择" <a-select-option value="2"> HTTPS </a-select-option>
allowClear
>
<a-select-option value="001"> 选项001 </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="请求路径" prop="请求路径"> <a-form-model-item label="请求路径" prop="requestUrl">
<a-input <a-input v-model="detailsForm.requestUrl" placeholder="请输入" allowClear />
v-model="detailsForm.请求路径"
placeholder="请输入"
allowClear
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="超时时长" prop="超时时长"> <a-form-model-item label="超时时长" prop="requestUrl">
<a-input <a-input v-model="detailsForm.requestUrl" placeholder="请输入" allowClear>
v-model="detailsForm.超时时长"
placeholder="请输入"
allowClear
>
<template slot="suffix"></template> <template slot="suffix"></template>
</a-input> </a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="限流策略" prop="限流策略"> <a-form-model-item label="限流策略" prop="limitStrategy">
<a-select <a-select v-model="detailsForm.limitStrategy" placeholder="请选择" allowClear>
v-model="detailsForm.限流策略" <a-select-option value="1"> 分钟 </a-select-option>
placeholder="请选择" <a-select-option value="2"> 小时 </a-select-option>
allowClear
>
<a-select-option value="001"> 选项001 </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="访问网络" prop="访问网络"> <a-form-model-item label="访问网络" prop="network">
<a-checkbox-group <a-checkbox-group v-model="detailsForm.network" :options="options" />
v-model="detailsForm.访问网络"
:options="options"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="描述" prop="描述"> <a-form-model-item label="描述" prop="description">
<a-textarea <a-textarea v-model="detailsForm.description" placeholder="请输入" :rows="4" />
v-model="detailsForm.描述"
placeholder="请输入"
:rows="4"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="流控信息" prop="流控信息"> <a-form-model-item label="流控信息" prop="flowControl">
<a-textarea <a-textarea v-model="detailsForm.flowControl" placeholder="请输入" :rows="4" />
v-model="detailsForm.流控信息"
placeholder="请输入"
:rows="4"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="授权信息" prop="授权信息"> <a-form-model-item label="授权信息" prop="authorizeInfo">
<a-textarea <a-textarea v-model="detailsForm.authorizeInfo" placeholder="请输入" :rows="4" />
v-model="detailsForm.授权信息"
placeholder="请输入"
:rows="4"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<h1 class="title_">请求参数</h1> <h1 class="title_">请求参数</h1>
<a-radio-group default-value="a" button-style="solid"> <a-radio-group v-model="type" button-style="solid">
<a-radio-button value="a"> 路径参数 </a-radio-button> <a-radio-button value="路径参数"> 路径参数 </a-radio-button>
<a-radio-button value="b"> headers </a-radio-button> <a-radio-button value="headers"> headers </a-radio-button>
<a-radio-button value="c"> query </a-radio-button> <a-radio-button value="query"> query </a-radio-button>
<a-radio-button value="d"> body </a-radio-button> <a-radio-button value="body"> body </a-radio-button>
</a-radio-group> </a-radio-group>
<a-table <a-table size="middle" bordered :row-key="(record) => record.id" :pagination="false"
size="middle" :columns="table_columns" :dataSource="requestParameters[type]">
bordered
:row-key="(record) => record.id"
:pagination="false"
:columns="请求参数_columns"
:dataSource="请求参数_dataSource"
>
<template slot="参数名" slot-scope="text, record, index"> <template slot="参数名" slot-scope="text, record, index">
<a-input v-model="record.参数名" placeholder="请输入" allowClear /> <a-input v-model="record.name" placeholder="请输入" allowClear />
</template> </template>
<template slot="关联参数" slot-scope="text, record, index"> <template slot="关联参数" slot-scope="text, record, index">
<a-select v-model="record.关联参数" placeholder="请选择" allowClear> <a-select v-model="record.association" placeholder="请选择" allowClear>
<a-select-option value="001"> 选项001 </a-select-option> <a-select-option value="001"> 选项001 </a-select-option>
</a-select> </a-select>
</template> </template>
<template slot="参数值类型" slot-scope="text, record, index"> <template slot="参数值类型" slot-scope="text, record, index">
<a-select v-model="record.参数值类型" placeholder="请选择" allowClear> <a-select v-model="record.type" placeholder="请选择" allowClear>
<a-select-option value="001"> 选项001 </a-select-option> <a-select-option value="String"> String </a-select-option>
</a-select> </a-select>
</template> </template>
<template slot="jsonPath" slot-scope="text, record, index"> <template slot="jsonPath" slot-scope="text, record, index">
<a-input v-model="record.jsonPath" placeholder="请输入" allowClear /> <a-input v-model="record.jsonPath" placeholder="请输入" allowClear />
</template> </template>
<template slot="默认值" slot-scope="text, record, index"> <template slot="默认值" slot-scope="text, record, index">
<a-input v-model="record.默认值" placeholder="请输入" allowClear /> <a-input v-model="record.default" placeholder="请输入" allowClear />
</template> </template>
<template slot="是否必填" slot-scope="text, record, index"> <template slot="是否必填" slot-scope="text, record, index">
<a-select v-model="record.是否必填" placeholder="请选择" allowClear> <a-select v-model="record.isMust" placeholder="请选择" allowClear>
<a-select-option value="001"> 选项001 </a-select-option> <a-select-option value="1"></a-select-option>
<a-select-option value="0"></a-select-option>
</a-select> </a-select>
</template> </template>
<template slot="描述" slot-scope="text, record, index"> <template slot="描述" slot-scope="text, record, index">
<a-input v-model="record.描述" placeholder="请输入" allowClear /> <a-input v-model="record.describe" placeholder="请输入" allowClear />
</template> </template>
<template slot="operation" slot-scope="text, record, index"> <template slot="operation" slot-scope="text, record, index">
<a-button type="link" style="color: #ff4420" <a-button type="link" style="color: #ff4420">删除</a-button>
>删除{{ index + 1 }}</a-button
>
</template> </template>
</a-table> </a-table>
<div class="table_footer"> <div class="table_footer">
...@@ -178,54 +121,86 @@ ...@@ -178,54 +121,86 @@
<h1 class="title_">响应数据</h1> <h1 class="title_">响应数据</h1>
<a-table <a-table size="middle" bordered :row-key="(record) => record.id" :pagination="false"
size="middle" :columns="table_columns" :dataSource="responseParameters">
bordered
:row-key="(record) => record.id"
:pagination="false"
:columns="请求参数_columns"
:dataSource="请求参数_dataSource"
>
<template slot="参数名" slot-scope="text, record, index"> <template slot="参数名" slot-scope="text, record, index">
<a-input v-model="record.参数名" placeholder="请输入" allowClear /> <a-input v-model="record.name" placeholder="请输入" allowClear />
</template> </template>
<template slot="关联参数" slot-scope="text, record, index"> <template slot="关联参数" slot-scope="text, record, index">
<a-select v-model="record.关联参数" placeholder="请选择" allowClear> <a-select v-model="record.association" placeholder="请选择" allowClear>
<a-select-option value="001"> 选项001 </a-select-option> <a-select-option value="001"> 选项001 </a-select-option>
</a-select> </a-select>
</template> </template>
<template slot="参数值类型" slot-scope="text, record, index"> <template slot="参数值类型" slot-scope="text, record, index">
<a-select v-model="record.参数值类型" placeholder="请选择" allowClear> <a-select v-model="record.type" placeholder="请选择" allowClear>
<a-select-option value="001"> 选项001 </a-select-option> <a-select-option value="String"> String </a-select-option>
</a-select> </a-select>
</template> </template>
<template slot="jsonPath" slot-scope="text, record, index"> <template slot="jsonPath" slot-scope="text, record, index">
<a-input v-model="record.jsonPath" placeholder="请输入" allowClear /> <a-input v-model="record.jsonPath" placeholder="请输入" allowClear />
</template> </template>
<template slot="默认值" slot-scope="text, record, index"> <template slot="默认值" slot-scope="text, record, index">
<a-input v-model="record.默认值" placeholder="请输入" allowClear /> <a-input v-model="record.default" placeholder="请输入" allowClear />
</template> </template>
<template slot="是否必填" slot-scope="text, record, index"> <template slot="是否必填" slot-scope="text, record, index">
<a-select v-model="record.是否必填" placeholder="请选择" allowClear> <a-select v-model="record.isMust" placeholder="请选择" allowClear>
<a-select-option value="001"> 选项001 </a-select-option> <a-select-option value="1"></a-select-option>
<a-select-option value="0"></a-select-option>
</a-select> </a-select>
</template> </template>
<template slot="描述" slot-scope="text, record, index"> <template slot="描述" slot-scope="text, record, index">
<a-input v-model="record.描述" placeholder="请输入" allowClear /> <a-input v-model="record.describe" placeholder="请输入" allowClear />
</template> </template>
<template slot="operation" slot-scope="text, record, index"> <template slot="operation" slot-scope="text, record, index">
<a-button type="link" style="color: #ff4420" <a-button type="link" style="color: #ff4420">删除</a-button>
>删除{{ index + 1 }}</a-button </template>
> </a-table>
<div class="table_footer">
<a-button type="primary" class="addclass" @click="ceshidayin"> 添加参数 </a-button>
</div>
<!-- <h1 class="title_">错误码</h1>
<a-table size="middle" bordered :row-key="(record) => record.id" :pagination="false"
:columns="errorCode_columns" :dataSource="errorCode">
<template slot="Http Code" slot-scope="text, record, index">
<a-input v-model="record.httpCode" placeholder="请输入" allowClear />
</template>
<template slot="Error Code" slot-scope="text, record, index">
<a-input v-model="record.errorCode" placeholder="请输入" allowClear />
</template>
<template slot="错误信息" slot-scope="text, record, index">
<a-input v-model="record.errorMessage" placeholder="请输入" allowClear />
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" style="color: #ff4420">删除</a-button>
</template> </template>
</a-table> </a-table>
<div class="table_footer"> <div class="table_footer">
<a-button type="primary" class="addclass" @click="ceshidayin"> 添加参数 </a-button> <a-button type="primary" class="addclass" @click="ceshidayin"> 添加参数 </a-button>
</div> </div>
<h1 class="title_">变更历史</h1>
<a-table size="middle" bordered :row-key="(record) => record.id" :pagination="false"
:columns="changeHistory_columns" :dataSource="changeHistory">
<template slot="变更时间" slot-scope="text, record, index">
<a-input v-model="record.time" placeholder="请输入" allowClear />
</template>
<template slot="变更内容概要" slot-scope="text, record, index">
<a-input v-model="record.content" placeholder="请输入" allowClear />
</template>
<template slot="operation" slot-scope="text, record, index">
<a-button type="link" style="color: #ff4420">删除</a-button>
</template>
</a-table>
<div class="table_footer">
<a-button type="primary" class="addclass" @click="ceshidayin"> 添加参数 </a-button>
</div> -->
<div class="drawer_footer"> <div class="drawer_footer">
<a-button type="primary" class="addclass" @click="modalClose"> 保存 </a-button> <a-button type="primary" class="addclass" @click="modalSubmit"> 保存 </a-button>
<a-button @click="modalClose"> 取消 </a-button> <a-button @click="modalClose"> 取消 </a-button>
</div> </div>
</a-form-model> </a-form-model>
...@@ -233,92 +208,79 @@ ...@@ -233,92 +208,79 @@
</template> </template>
<script> <script>
import modal from "../mixins/modal"; import modal from "../mixins/modal";
export default { import {
getInterfaceSave
} from '@/api/thePlatformIsSet.js'
export default {
mixins: [modal], mixins: [modal],
name: "PortalAdminVuePicWorks", name: "PortalAdminVuePicWorks",
data() { data() {
return { return {
detailsForm: { detailsForm: {
接口名称: undefined, interfaceName: undefined,
版本号: undefined, versionNumber: undefined,
请求类型: undefined, requestType: undefined,
请求协议: undefined, requestProtocol: undefined,
请求路径: undefined, requestUrl: undefined,
超时时长: undefined, timeoutValue: undefined,
限流策略: undefined, timeoutValue: undefined,
访问网络: undefined, network: undefined,
描述: undefined, description: undefined,
流控信息: undefined, flowControl: undefined,
授权信息: undefined, authorizeInfo: undefined,
}, },
detailsRules: { detailsRules: {
接口名称: [ interfaceName: [{
{
required: true, required: true,
message: "请输入", message: "请输入",
trigger: "blur", trigger: "blur",
}, }, ],
], versionNumber: [{
版本号: [
{
required: true, required: true,
message: "请输入", message: "请输入",
trigger: "blur", trigger: "blur",
}, }, ],
], requestType: [{
请求类型: [
{
required: true, required: true,
message: "请输入", message: "请输入",
trigger: "change", trigger: "change",
}, }, ],
], requestProtocol: [{
请求协议: [
{
required: true, required: true,
message: "请输入", message: "请输入",
trigger: "change", trigger: "change",
}, }, ],
], requestUrl: [{
请求路径: [
{
required: true, required: true,
message: "请输入", message: "请输入",
trigger: "blur", trigger: "blur",
}, }, ],
], timeoutValue: [{
超时时长: [
{
required: true, required: true,
message: "请输入", message: "请输入",
trigger: "blur", trigger: "blur",
}, }, ],
], network: [{
访问网络: [
{
required: true, required: true,
message: "请输入", message: "请输入",
trigger: "change", trigger: "change",
}, ],
}, },
], options: [{
},
options: [
{
label: "互联网", label: "互联网",
value: "001", value: "1",
}, },
{ {
label: "政务网", label: "政务网",
value: "002", value: "2",
}, },
], ],
请求参数_columns: [ table_columns: [{
{
title: "参数名", title: "参数名",
align: "center", align: "center",
dataIndex: "参数名", dataIndex: "name",
scopedSlots: { scopedSlots: {
customRender: "参数名", customRender: "参数名",
}, },
...@@ -326,7 +288,7 @@ export default { ...@@ -326,7 +288,7 @@ export default {
{ {
title: "关联参数", title: "关联参数",
align: "center", align: "center",
dataIndex: "关联参数", dataIndex: "association",
scopedSlots: { scopedSlots: {
customRender: "关联参数", customRender: "关联参数",
}, },
...@@ -334,7 +296,7 @@ export default { ...@@ -334,7 +296,7 @@ export default {
{ {
title: "参数值类型", title: "参数值类型",
align: "center", align: "center",
dataIndex: "参数值类型", dataIndex: "type",
scopedSlots: { scopedSlots: {
customRender: "参数值类型", customRender: "参数值类型",
}, },
...@@ -350,7 +312,7 @@ export default { ...@@ -350,7 +312,7 @@ export default {
{ {
title: "默认值", title: "默认值",
align: "center", align: "center",
dataIndex: "默认值", dataIndex: "default",
scopedSlots: { scopedSlots: {
customRender: "默认值", customRender: "默认值",
}, },
...@@ -358,7 +320,7 @@ export default { ...@@ -358,7 +320,7 @@ export default {
{ {
title: "是否必填", title: "是否必填",
align: "center", align: "center",
dataIndex: "是否必填", dataIndex: "isMust",
scopedSlots: { scopedSlots: {
customRender: "是否必填", customRender: "是否必填",
}, },
...@@ -366,7 +328,7 @@ export default { ...@@ -366,7 +328,7 @@ export default {
{ {
title: "描述", title: "描述",
align: "center", align: "center",
dataIndex: "描述", dataIndex: "describe",
scopedSlots: { scopedSlots: {
customRender: "描述", customRender: "描述",
}, },
...@@ -382,36 +344,142 @@ export default { ...@@ -382,36 +344,142 @@ export default {
}, },
}, },
], ],
请求参数_dataSource: [ type: '路径参数',
requestParameters: {
'路径参数': [{
name: ``,
association: undefined,
type: undefined,
jsonPath: ``,
default: ``,
isMust: undefined,
describe: ``,
}],
'headers': [{
name: ``,
association: undefined,
type: undefined,
jsonPath: ``,
default: ``,
isMust: undefined,
describe: ``,
}],
'query': [{
name: ``,
association: undefined,
type: undefined,
jsonPath: ``,
default: ``,
isMust: undefined,
describe: ``,
}],
'body': [{
name: ``,
association: undefined,
type: undefined,
jsonPath: ``,
default: ``,
isMust: undefined,
describe: ``,
}]
},
responseParameters: [{
name: ``,
association: undefined,
type: undefined,
jsonPath: ``,
default: ``,
isMust: undefined,
describe: ``,
}],
errorCode_columns: [{
title: "Http Code",
align: "center",
dataIndex: "httpCode",
scopedSlots: {
customRender: "Http Code",
}
},
{
title: "Error Code",
align: "center",
dataIndex: "errorCode",
scopedSlots: {
customRender: "Error Code",
},
},
{ {
id: `001`, title: "错误信息",
参数名: `参数名`, align: "center",
关联参数: `关联参数`, dataIndex: "errorMessage",
参数值类型: `参数值类型`, scopedSlots: {
jsonPath: `jsonPath`, customRender: "错误信息",
默认值: `默认值`,
是否必填: `是否必填`,
描述: `描述`,
}, },
},
{
title: "操作",
align: "center",
width: "60px",
dataIndex: "operation",
scopedSlots: {
customRender: "operation",
},
}
], ],
errorCode: [{
httpCode: ``,
errorCode: ``,
errorMessage: ``
}],
changeHistory_columns: [{
title: "变更时间",
align: "center",
dataIndex: "time",
scopedSlots: {
customRender: "变更时间",
}
},
{
title: "变更内容概要",
align: "center",
dataIndex: "content",
scopedSlots: {
customRender: "变更内容概要",
},
}
],
changeHistory: [{
time: '',
content: ''
}]
}; };
}, },
mounted() {}, mounted() {},
methods: { methods: {
modalSubmit() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
alert('submit!');
} else {
return false;
}
});
},
ceshidayin() { ceshidayin() {
console.log(this.请求参数_dataSource); console.log(this.请求参数_dataSource);
}, },
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/deep/.ant-drawer-content { /deep/.ant-drawer-content {
overflow-x: hidden !important; overflow-x: hidden !important;
} }
.drawer_footer {
.drawer_footer {
z-index: 1; z-index: 1;
text-align: left; text-align: left;
background: #fff; background: #fff;
...@@ -421,23 +489,25 @@ export default { ...@@ -421,23 +489,25 @@ export default {
bottom: 0; bottom: 0;
right: 0; right: 0;
position: absolute; position: absolute;
} }
.title_ {
.title_ {
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
color: #333; color: #333;
margin-bottom: 10px; margin-bottom: 10px;
} }
.table_footer {
.table_footer {
text-align: center; text-align: center;
padding-top: 10px; padding-top: 10px;
} }
/deep/.ant-drawer-body {
/deep/.ant-drawer-body {
margin-bottom: 100px; margin-bottom: 100px;
} }
/deep/.ant-radio-group {
/deep/.ant-radio-group {
margin-bottom: 10px !important; margin-bottom: 10px !important;
} }
</style> </style>
\ No newline at end of file
<template> <template>
<a-modal <a-modal :title="VisibleTitle" :centered="true" :destroyOnClose="true" :visible="Visible" @cancel="Visible = false"
:title="VisibleTitle" width="30%">
:centered="true" <a-form-model :label-col="{
:destroyOnClose="true"
:visible="Visible"
@cancel="Visible = false"
width="30%"
>
<a-form-model
:label-col="{
span: 5, span: 5,
}" }" :wrapper-col="{
:wrapper-col="{
span: 19, span: 19,
}" }" layout="horizontal" ref="appInfoFome" :model="appInfoFome" :rules="appInfoRules">
layout="horizontal" <a-form-model-item label="产品名称" prop="productName">
ref="appInfoFome" <a-input placeholder="请输入产品名称" allowClear v-model="appInfoFome.productName" />
:model="appInfoFome"
:rules="appInfoRules"
>
<a-form-model-item label="产品名称" prop="appName">
<a-input
placeholder="请输入产品名称"
allowClear
v-model="appInfoFome.appName"
/>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
<template slot="footer"> <template slot="footer">
...@@ -35,6 +18,7 @@ ...@@ -35,6 +18,7 @@
</template> </template>
<script> <script>
import { saveProduct } from "@/api/thePlatformIsSet.js";
export default { export default {
name: "PortalAdminVueAddEditAppName", name: "PortalAdminVueAddEditAppName",
data() { data() {
...@@ -42,14 +26,15 @@ export default { ...@@ -42,14 +26,15 @@ export default {
Visible: false, //模态 Visible: false, //模态
VisibleTitle: "新增产品", VisibleTitle: "新增产品",
appInfoFome: { appInfoFome: {
appName: undefined, productName: undefined,
siteId: JSON.parse(localStorage.getItem("siteId"))
}, //页面表单信息 }, //页面表单信息
appInfoRules: { appInfoRules: {
appName: [ productName: [
{ {
required: true, //是否必选 required: true, //是否必选
whitespace: true, //必选时,空格是否会被视为错误 whitespace: true, //必选时,空格是否会被视为错误
message: "请输入用户名称", message: "请输入产品名称",
trigger: "blur", trigger: "blur",
}, },
// { // {
...@@ -61,12 +46,22 @@ export default { ...@@ -61,12 +46,22 @@ export default {
}; };
}, },
mounted() {}, mounted() { },
methods: { methods: {
Modal_Ok() { Modal_Ok() {
this.$refs.appInfoFome.validate((valid) => { this.$refs.appInfoFome.validate((valid) => {
if (valid) { if (valid) {
console.log(this.appInfoFome); saveProduct(this.appInfoFome).then(res => {
let { code, msg } = res
if (code == 1) {
this.$message.success('保存成功');
this.resetForm();
this.Visible = false
this.$parent.getList()
} else {
this.$message.error(msg);
}
})
} else { } else {
this.$message.error(`请完善表单信息!`); this.$message.error(`请完善表单信息!`);
return false; return false;
...@@ -75,7 +70,7 @@ export default { ...@@ -75,7 +70,7 @@ export default {
}, },
resetForm() { resetForm() {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.appInfoFome.resetFields(); this.appInfoFome.productName = ''
}); });
}, },
}, },
......
...@@ -4,29 +4,31 @@ ...@@ -4,29 +4,31 @@
<h3>产品管理</h3> <h3>产品管理</h3>
<h4> <h4>
<a-input placeholder="请输入产品名称关键字查询" v-model="searchVal" /> <a-input placeholder="请输入产品名称关键字查询" v-model="searchVal" />
<button class="search_btn btn"> <button class="search_btn btn" @click="getList">
<span>查询</span> <span>查询</span>
</button> </button>
</h4> </h4>
</div> </div>
<div class="main"> <div class="main">
<a-button type="primary" class="addclass add_btn" ghost @click="showModal(2)"> <a-button type="primary" class="addclass add_btn" ghost @click="showModal()">
新增产品 新增产品
</a-button> </a-button>
<ul class="content"> <ul class="content">
<li class="list" v-for="item of 5" :key="item"> <li class="list" v-for="item, index of listData" :key="index">
<a-popover placement="leftBottom"> <a-popover placement="leftBottom">
<template slot="content"> <template slot="content">
<div class="popoverContent"> <div class="popoverContent">
<p> <p>
<a-button type="link" size="small" style="color: #0595fd" @click="showModal(1)"> <a-button type="link" size="small" style="color: #0595fd" @click="showModal(item)">
编辑 编辑
</a-button> </a-button>
</p> </p>
<p> <p>
<a-popconfirm title="确定要删除此产品吗?" ok-text="Yes" cancel-text="No" @confirm="delModal(item)">
<a-button type="link" size="small" style="color: #ff4d4f"> <a-button type="link" size="small" style="color: #ff4d4f">
删除 删除
</a-button> </a-button>
</a-popconfirm>
</p> </p>
</div> </div>
</template> </template>
...@@ -34,13 +36,15 @@ ...@@ -34,13 +36,15 @@
</a-popover> </a-popover>
<img src="~@/assets/images/u52.png" alt="" class="app-img" /> <img src="~@/assets/images/u52.png" alt="" class="app-img" />
<div class="app-name">排号系统</div> <div class="app-name">{{ item.productName }}</div>
<ul class="app-option"> <ul class="app-option">
<li @click="routerpush1">接口管理<a-icon type="right" /></li> <li @click="routerpush1(item)">接口管理<a-icon type="right" /></li>
<li @click="routerpush2">应用管理<a-icon type="right" /></li> <li @click="routerpush2(item)">应用管理<a-icon type="right" /></li>
<li @click="routerpush3">文档资料<a-icon type="right" /></li> <li @click="routerpush3(item)">文档资料<a-icon type="right" /></li>
</ul> </ul>
</li> </li>
<div class="not-data" v-if="!listData.length">暂无数据</div>
</ul> </ul>
</div> </div>
<AddEditAppName ref="AddEditAppName" /> <AddEditAppName ref="AddEditAppName" />
...@@ -48,52 +52,80 @@ ...@@ -48,52 +52,80 @@
</template> </template>
<script> <script>
import { getProduct, deleteProduct } from "@/api/thePlatformIsSet.js";
import AddEditAppName from "./components/addEditAppName.vue"; import AddEditAppName from "./components/addEditAppName.vue";
export default { export default {
name: "PortalAdminVueProductManage", name: "PortalAdminVueProductManage",
data() { data() {
return { return {
searchVal: undefined, searchVal: '',
listData: []
}; };
}, },
components: { components: {
AddEditAppName, AddEditAppName,
}, },
mounted() { }, mounted() {
this.getList()
},
methods: { methods: {
delModal(item) {
deleteProduct({
id: item.id
}).then((res) => {
let { code, msg } = res
if (code == 1) {
this.$message.success('删除成功');
this.getList()
} else {
this.$message.error(msg);
}
})
},
getList() {
getProduct({
page: 1,
size: -1,
productName: this.searchVal
}).then((res) => {
this.listData = res.data.data
})
},
pushroeuter() { pushroeuter() {
this.$router.push({ this.$router.push({
path: "/home/thePlatformIsSet/portDocument", path: "/home/thePlatformIsSet/portDocument",
// query: { testoption: "test001" }, // query: { testoption: "test001" },
}); });
}, },
showModal(type) { showModal(item) {
if (type == 1) { if (item) {
this.$refs.AddEditAppName.VisibleTitle = "编辑"; this.$refs.AddEditAppName.VisibleTitle = "编辑";
} else if (type == 2) { this.$refs.AddEditAppName.appInfoFome.id = item.id
this.$refs.AddEditAppName.appInfoFome.productName = item.productName
} else {
this.$refs.AddEditAppName.VisibleTitle = "新增产品"; this.$refs.AddEditAppName.VisibleTitle = "新增产品";
} }
this.$refs.AddEditAppName.Visible = true; this.$refs.AddEditAppName.Visible = true;
}, },
routerpush1() { routerpush1(item) {
// 测试 // 测试
this.$router.push({ this.$router.push({
path: `/home/thePlatformIsSet/InterfaceManage/manage`, path: `/home/thePlatformIsSet/InterfaceManage/manage`,
// query: { testoption: "test001" }, query: { id: item.id },
}); });
}, },
routerpush2() { routerpush2(item) {
// 测试 // 测试
this.$router.push({ this.$router.push({
path: `/home/thePlatformIsSet/appManage/application`, path: `/home/thePlatformIsSet/appManage/application`,
// query: { testoption: "test001" }, query: { id: item.id },
}); });
}, },
routerpush3() { routerpush3(item) {
// 测试 // 测试
this.$router.push({ this.$router.push({
path: `/home/thePlatformIsSet/docData/fileData`, path: `/home/thePlatformIsSet/docData/fileData`,
// query: { testoption: "test001" }, query: { id: item.id },
}); });
}, },
}, },
...@@ -101,6 +133,13 @@ export default { ...@@ -101,6 +133,13 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.not-data{
line-height: 100px;
text-align: center;
width: 100%;
color: #999;
font-size: 14px;
}
@headerH: 4.5rem; @headerH: 4.5rem;
.Container { .Container {
...@@ -319,4 +358,5 @@ export default { ...@@ -319,4 +358,5 @@ export default {
rgba(108, 53, 247, 1) 85%); rgba(108, 53, 247, 1) 85%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff", endColorstr="#6c35f7", GradientType=1); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff", endColorstr="#6c35f7", GradientType=1);
} }
}</style> }
</style>
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
"@ant-design/colors" "^3.1.0" "@ant-design/colors" "^3.1.0"
babel-runtime "^6.26.0" babel-runtime "^6.26.0"
"@ant-design/icons@^2.1.1": "@ant-design/icons@^2.0.0", "@ant-design/icons@^2.1.1":
version "2.1.1" version "2.1.1"
resolved "https://registry.npmmirror.com/@ant-design/icons/-/icons-2.1.1.tgz" resolved "https://registry.npmmirror.com/@ant-design/icons/-/icons-2.1.1.tgz"
integrity sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w== integrity sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w==
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.20.10.tgz" resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.20.10.tgz"
integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
"@babel/core@^7.12.16": "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.12.0", "@babel/core@^7.12.16", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0":
version "7.20.12" version "7.20.12"
resolved "https://registry.npmmirror.com/@babel/core/-/core-7.20.12.tgz" resolved "https://registry.npmmirror.com/@babel/core/-/core-7.20.12.tgz"
integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==
...@@ -1043,7 +1043,16 @@ ...@@ -1043,7 +1043,16 @@
"@jridgewell/set-array" "^1.0.0" "@jridgewell/set-array" "^1.0.0"
"@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": "@jridgewell/gen-mapping@^0.3.0":
version "0.3.2"
resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"
integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
dependencies:
"@jridgewell/set-array" "^1.0.1"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
"@jridgewell/gen-mapping@^0.3.2":
version "0.3.2" version "0.3.2"
resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"
integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
...@@ -1070,7 +1079,7 @@ ...@@ -1070,7 +1079,7 @@
"@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/trace-mapping" "^0.3.9"
"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@1.4.14":
version "1.4.14" version "1.4.14"
resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
...@@ -1103,7 +1112,7 @@ ...@@ -1103,7 +1112,7 @@
"@nodelib/fs.stat" "2.0.5" "@nodelib/fs.stat" "2.0.5"
run-parallel "^1.1.9" run-parallel "^1.1.9"
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": "@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
version "2.0.5" version "2.0.5"
resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
...@@ -1493,7 +1502,7 @@ ...@@ -1493,7 +1502,7 @@
resolved "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz" resolved "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz"
integrity sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA== integrity sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==
"@vue/cli-service@~5.0.0": "@vue/cli-service@^3.0.0 || ^4.0.0 || ^5.0.0-0", "@vue/cli-service@~5.0.0":
version "5.0.8" version "5.0.8"
resolved "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-5.0.8.tgz" resolved "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-5.0.8.tgz"
integrity sha512-nV7tYQLe7YsTtzFrfOMIHc5N2hp5lHG2rpYr0aNja9rNljdgcPZLyQRb2YRivTHqTv7lI962UXFURcpStHgyFw== integrity sha512-nV7tYQLe7YsTtzFrfOMIHc5N2hp5lHG2rpYr0aNja9rNljdgcPZLyQRb2YRivTHqTv7lI962UXFURcpStHgyFw==
...@@ -1762,7 +1771,7 @@ acorn-walk@^8.0.0, acorn-walk@^8.0.2: ...@@ -1762,7 +1771,7 @@ acorn-walk@^8.0.0, acorn-walk@^8.0.2:
resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz" resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz"
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
acorn@^8.0.4, acorn@^8.0.5, acorn@^8.5.0, acorn@^8.7.1: acorn@^8, acorn@^8.0.4, acorn@^8.0.5, acorn@^8.5.0, acorn@^8.7.1:
version "8.8.1" version "8.8.1"
resolved "https://registry.npmmirror.com/acorn/-/acorn-8.8.1.tgz" resolved "https://registry.npmmirror.com/acorn/-/acorn-8.8.1.tgz"
integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
...@@ -1819,7 +1828,7 @@ ajv-keywords@^5.0.0: ...@@ -1819,7 +1828,7 @@ ajv-keywords@^5.0.0:
dependencies: dependencies:
fast-deep-equal "^3.1.3" fast-deep-equal "^3.1.3"
ajv@^6.12.4, ajv@^6.12.5: ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1:
version "6.12.6" version "6.12.6"
resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz" resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
...@@ -1829,7 +1838,17 @@ ajv@^6.12.4, ajv@^6.12.5: ...@@ -1829,7 +1838,17 @@ ajv@^6.12.4, ajv@^6.12.5:
json-schema-traverse "^0.4.1" json-schema-traverse "^0.4.1"
uri-js "^4.2.2" uri-js "^4.2.2"
ajv@^8.0.0, ajv@^8.8.0: ajv@^8.0.0:
version "8.12.0"
resolved "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz"
integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
dependencies:
fast-deep-equal "^3.1.1"
json-schema-traverse "^1.0.0"
require-from-string "^2.0.2"
uri-js "^4.2.2"
ajv@^8.8.0, ajv@^8.8.2:
version "8.12.0" version "8.12.0"
resolved "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz" resolved "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz"
integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
...@@ -1866,7 +1885,14 @@ ansi-styles@^3.2.1: ...@@ -1866,7 +1885,14 @@ ansi-styles@^3.2.1:
dependencies: dependencies:
color-convert "^1.9.0" color-convert "^1.9.0"
ansi-styles@^4.0.0, ansi-styles@^4.1.0: ansi-styles@^4.0.0:
version "4.3.0"
resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz"
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
dependencies:
color-convert "^2.0.1"
ansi-styles@^4.1.0:
version "4.3.0" version "4.3.0"
resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz"
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
...@@ -1956,16 +1982,16 @@ archiver@^5.3.1: ...@@ -1956,16 +1982,16 @@ archiver@^5.3.1:
tar-stream "^2.2.0" tar-stream "^2.2.0"
zip-stream "^4.1.0" zip-stream "^4.1.0"
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz"
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
array-flatten@^2.1.2: array-flatten@^2.1.2:
version "2.1.2" version "2.1.2"
resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz" resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz"
integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz"
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
array-tree-filter@^2.1.0: array-tree-filter@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz" resolved "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz"
...@@ -2085,7 +2111,7 @@ babel-polyfill@^6.26.0: ...@@ -2085,7 +2111,7 @@ babel-polyfill@^6.26.0:
core-js "^2.5.0" core-js "^2.5.0"
regenerator-runtime "^0.10.5" regenerator-runtime "^0.10.5"
babel-runtime@6.x, babel-runtime@^6.23.0, babel-runtime@^6.26.0: babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@6.x:
version "6.26.0" version "6.26.0"
resolved "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz" resolved "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz"
integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==
...@@ -2192,7 +2218,7 @@ braces@^3.0.2, braces@~3.0.2: ...@@ -2192,7 +2218,7 @@ braces@^3.0.2, braces@~3.0.2:
dependencies: dependencies:
fill-range "^7.0.1" fill-range "^7.0.1"
browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.16.6, browserslist@^4.21.3, browserslist@^4.21.4: browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.16.6, browserslist@^4.21.3, browserslist@^4.21.4, "browserslist@>= 4.21.0":
version "4.21.4" version "4.21.4"
resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz" resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz"
integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
...@@ -2306,7 +2332,23 @@ chalk@^3.0.0: ...@@ -2306,7 +2332,23 @@ chalk@^3.0.0:
ansi-styles "^4.1.0" ansi-styles "^4.1.0"
supports-color "^7.1.0" supports-color "^7.1.0"
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: chalk@^4.0.0:
version "4.1.2"
resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
chalk@^4.1.0:
version "4.1.2"
resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
chalk@^4.1.2:
version "4.1.2" version "4.1.2"
resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
...@@ -2436,16 +2478,16 @@ color-convert@^2.0.1: ...@@ -2436,16 +2478,16 @@ color-convert@^2.0.1:
dependencies: dependencies:
color-name "~1.1.4" color-name "~1.1.4"
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
color-name@~1.1.4: color-name@~1.1.4:
version "1.1.4" version "1.1.4"
resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz" resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
colord@^2.9.1: colord@^2.9.1:
version "2.9.3" version "2.9.3"
resolved "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz" resolved "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz"
...@@ -2605,7 +2647,17 @@ core-js-compat@^3.25.1, core-js-compat@^3.8.3: ...@@ -2605,7 +2647,17 @@ core-js-compat@^3.25.1, core-js-compat@^3.8.3:
dependencies: dependencies:
browserslist "^4.21.4" browserslist "^4.21.4"
core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: core-js@^2.4.0:
version "2.6.12"
resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^2.5.0:
version "2.6.12"
resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^2.6.5:
version "2.6.12" version "2.6.12"
resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz" resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
...@@ -2790,14 +2842,14 @@ de-indent@^1.0.2: ...@@ -2790,14 +2842,14 @@ de-indent@^1.0.2:
resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz" resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz"
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
debug@2.6.9: debug@^3.2.6:
version "2.6.9" version "3.2.7"
resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
dependencies: dependencies:
ms "2.0.0" ms "^2.1.1"
debug@^3.2.6, debug@^3.2.7: debug@^3.2.7:
version "3.2.7" version "3.2.7"
resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz" resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz"
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
...@@ -2811,6 +2863,13 @@ debug@^4.1.0, debug@^4.1.1: ...@@ -2811,6 +2863,13 @@ debug@^4.1.0, debug@^4.1.1:
dependencies: dependencies:
ms "2.1.2" ms "2.1.2"
debug@2.6.9:
version "2.6.9"
resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
deepmerge@^1.2.0, deepmerge@^1.5.2: deepmerge@^1.2.0, deepmerge@^1.5.2:
version "1.5.2" version "1.5.2"
resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz" resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz"
...@@ -2862,16 +2921,16 @@ delayed-stream@~1.0.0: ...@@ -2862,16 +2921,16 @@ delayed-stream@~1.0.0:
resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz" resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
depd@2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
depd@~1.1.2: depd@~1.1.2:
version "1.1.2" version "1.1.2"
resolved "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz" resolved "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz"
integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
depd@2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
destroy@1.2.0: destroy@1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz" resolved "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz"
...@@ -3390,11 +3449,6 @@ fs.realpath@^1.0.0: ...@@ -3390,11 +3449,6 @@ fs.realpath@^1.0.0:
resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz" resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
function-bind@^1.1.1: function-bind@^1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz" resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz"
...@@ -3431,7 +3485,7 @@ get-stream@^6.0.0: ...@@ -3431,7 +3485,7 @@ get-stream@^6.0.0:
resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz" resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
glob-parent@^5.1.2, glob-parent@~5.1.2: glob-parent@^5.1.2:
version "5.1.2" version "5.1.2"
resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz" resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
...@@ -3445,6 +3499,13 @@ glob-parent@^6.0.1: ...@@ -3445,6 +3499,13 @@ glob-parent@^6.0.1:
dependencies: dependencies:
is-glob "^4.0.3" is-glob "^4.0.3"
glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
glob-to-regexp@^0.4.1: glob-to-regexp@^0.4.1:
version "0.4.1" version "0.4.1"
resolved "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" resolved "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"
...@@ -3624,6 +3685,16 @@ http-deceiver@^1.2.7: ...@@ -3624,6 +3685,16 @@ http-deceiver@^1.2.7:
resolved "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz" resolved "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz"
integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==
http-errors@~1.6.2:
version "1.6.3"
resolved "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz"
integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
dependencies:
depd "~1.1.2"
inherits "2.0.3"
setprototypeof "1.1.0"
statuses ">= 1.4.0 < 2"
http-errors@2.0.0: http-errors@2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz" resolved "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz"
...@@ -3635,16 +3706,6 @@ http-errors@2.0.0: ...@@ -3635,16 +3706,6 @@ http-errors@2.0.0:
statuses "2.0.1" statuses "2.0.1"
toidentifier "1.0.1" toidentifier "1.0.1"
http-errors@~1.6.2:
version "1.6.3"
resolved "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz"
integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
dependencies:
depd "~1.1.2"
inherits "2.0.3"
setprototypeof "1.1.0"
statuses ">= 1.4.0 < 2"
http-parser-js@>=0.5.1: http-parser-js@>=0.5.1:
version "0.5.8" version "0.5.8"
resolved "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz" resolved "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz"
...@@ -3675,13 +3736,6 @@ human-signals@^2.1.0: ...@@ -3675,13 +3736,6 @@ human-signals@^2.1.0:
resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz" resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
iconv-lite@0.4.24:
version "0.4.24"
resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
iconv-lite@^0.6.3: iconv-lite@^0.6.3:
version "0.6.3" version "0.6.3"
resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz" resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz"
...@@ -3689,6 +3743,13 @@ iconv-lite@^0.6.3: ...@@ -3689,6 +3743,13 @@ iconv-lite@^0.6.3:
dependencies: dependencies:
safer-buffer ">= 2.1.2 < 3.0.0" safer-buffer ">= 2.1.2 < 3.0.0"
iconv-lite@0.4.24:
version "0.4.24"
resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
icss-utils@^5.0.0, icss-utils@^5.1.0: icss-utils@^5.0.0, icss-utils@^5.1.0:
version "5.1.0" version "5.1.0"
resolved "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz" resolved "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz"
...@@ -3730,7 +3791,7 @@ inflight@^1.0.4: ...@@ -3730,7 +3791,7 @@ inflight@^1.0.4:
once "^1.3.0" once "^1.3.0"
wrappy "1" wrappy "1"
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4:
version "2.0.4" version "2.0.4"
resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz" resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
...@@ -3745,16 +3806,16 @@ intersperse@^1.0.0: ...@@ -3745,16 +3806,16 @@ intersperse@^1.0.0:
resolved "https://registry.npmmirror.com/intersperse/-/intersperse-1.0.0.tgz" resolved "https://registry.npmmirror.com/intersperse/-/intersperse-1.0.0.tgz"
integrity sha512-LGcfug7OTeWkaQ8PEq8XbTy9Jl6uCNg8DrPnQUmwxSY8UETj1Y+LLmpdD0qHdEj6KVchuH3BE3ZzIXQ1t3oFUw== integrity sha512-LGcfug7OTeWkaQ8PEq8XbTy9Jl6uCNg8DrPnQUmwxSY8UETj1Y+LLmpdD0qHdEj6KVchuH3BE3ZzIXQ1t3oFUw==
ipaddr.js@1.9.1:
version "1.9.1"
resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
ipaddr.js@^2.0.1: ipaddr.js@^2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz" resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz"
integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==
ipaddr.js@1.9.1:
version "1.9.1"
resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
is-arrayish@^0.2.1: is-arrayish@^0.2.1:
version "0.2.1" version "0.2.1"
resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz" resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz"
...@@ -4039,7 +4100,7 @@ less-loader@^8.0.0: ...@@ -4039,7 +4100,7 @@ less-loader@^8.0.0:
dependencies: dependencies:
klona "^2.0.4" klona "^2.0.4"
less@^4.0.0: "less@^3.5.0 || ^4.0.0", less@^4.0.0:
version "4.1.3" version "4.1.3"
resolved "https://registry.npmmirror.com/less/-/less-4.1.3.tgz" resolved "https://registry.npmmirror.com/less/-/less-4.1.3.tgz"
integrity sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA== integrity sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==
...@@ -4276,7 +4337,7 @@ micromatch@^4.0.2, micromatch@^4.0.4: ...@@ -4276,7 +4337,7 @@ micromatch@^4.0.2, micromatch@^4.0.4:
braces "^3.0.2" braces "^3.0.2"
picomatch "^2.3.1" picomatch "^2.3.1"
mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": "mime-db@>= 1.43.0 < 2", mime-db@1.52.0:
version "1.52.0" version "1.52.0"
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz" resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
...@@ -4288,7 +4349,7 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, ...@@ -4288,7 +4349,7 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17,
dependencies: dependencies:
mime-db "1.52.0" mime-db "1.52.0"
mime@1.6.0, mime@^1.4.1: mime@^1.4.1, mime@1.6.0:
version "1.6.0" version "1.6.0"
resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz" resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
...@@ -4363,16 +4424,16 @@ mrmime@^1.0.0: ...@@ -4363,16 +4424,16 @@ mrmime@^1.0.0:
resolved "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz" resolved "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz"
integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==
ms@^2.1.1, ms@2.1.2:
version "2.1.2"
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
ms@2.0.0: ms@2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz" resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz"
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
ms@2.1.2, ms@^2.1.1:
version "2.1.2"
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
ms@2.1.3: ms@2.1.3:
version "2.1.3" version "2.1.3"
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz" resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
...@@ -4517,7 +4578,7 @@ nth-check@^2.0.1: ...@@ -4517,7 +4578,7 @@ nth-check@^2.0.1:
dependencies: dependencies:
boolbase "^1.0.0" boolbase "^1.0.0"
object-assign@4.x, object-assign@^4.0.1: object-assign@^4.0.1, object-assign@4.x:
version "4.1.1" version "4.1.1"
resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz" resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
...@@ -5038,15 +5099,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: ...@@ -5038,15 +5099,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^7.0.36: "postcss@^7.0.0 || ^8.0.1", postcss@^8.0.9, postcss@^8.1.0, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.2.6, postcss@^8.3.5, postcss@^8.4.12, postcss@^8.4.14, postcss@^8.4.19:
version "7.0.39"
resolved "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz"
integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==
dependencies:
picocolors "^0.2.1"
source-map "^0.6.1"
postcss@^8.2.6, postcss@^8.3.5, postcss@^8.4.12, postcss@^8.4.14, postcss@^8.4.19:
version "8.4.21" version "8.4.21"
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz" resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz"
integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
...@@ -5055,6 +5108,14 @@ postcss@^8.2.6, postcss@^8.3.5, postcss@^8.4.12, postcss@^8.4.14, postcss@^8.4.1 ...@@ -5055,6 +5108,14 @@ postcss@^8.2.6, postcss@^8.3.5, postcss@^8.4.12, postcss@^8.4.14, postcss@^8.4.1
picocolors "^1.0.0" picocolors "^1.0.0"
source-map-js "^1.0.2" source-map-js "^1.0.2"
postcss@^7.0.36:
version "7.0.39"
resolved "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz"
integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==
dependencies:
picocolors "^0.2.1"
source-map "^0.6.1"
"prettier@^1.18.2 || ^2.0.0": "prettier@^1.18.2 || ^2.0.0":
version "2.8.2" version "2.8.2"
resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.2.tgz" resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.2.tgz"
...@@ -5118,7 +5179,7 @@ punycode@^2.1.0: ...@@ -5118,7 +5179,7 @@ punycode@^2.1.0:
resolved "https://registry.npmmirror.com/punycode/-/punycode-2.2.0.tgz" resolved "https://registry.npmmirror.com/punycode/-/punycode-2.2.0.tgz"
integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==
qs@6.11.0, qs@^6.10.3: qs@^6.10.3, qs@6.11.0:
version "6.11.0" version "6.11.0"
resolved "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz" resolved "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz"
integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
...@@ -5183,7 +5244,7 @@ read-pkg@^5.1.1, read-pkg@^5.2.0: ...@@ -5183,7 +5244,7 @@ read-pkg@^5.1.1, read-pkg@^5.2.0:
parse-json "^5.0.0" parse-json "^5.0.0"
type-fest "^0.6.0" type-fest "^0.6.0"
readable-stream@^2.0.0, readable-stream@^2.0.5: readable-stream@^2.0.0:
version "2.3.8" version "2.3.8"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz" resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
...@@ -5209,6 +5270,19 @@ readable-stream@^2.0.1: ...@@ -5209,6 +5270,19 @@ readable-stream@^2.0.1:
string_decoder "~1.1.1" string_decoder "~1.1.1"
util-deprecate "~1.0.1" util-deprecate "~1.0.1"
readable-stream@^2.0.5:
version "2.3.8"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0" version "3.6.0"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz" resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz"
...@@ -5380,15 +5454,20 @@ run-parallel@^1.1.9: ...@@ -5380,15 +5454,20 @@ run-parallel@^1.1.9:
dependencies: dependencies:
queue-microtask "^1.2.2" queue-microtask "^1.2.2"
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1:
version "5.2.1"
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2" version "5.1.2"
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz" resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: safe-buffer@5.1.2:
version "5.2.1" version "5.1.2"
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz" resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
version "2.1.2" version "2.1.2"
...@@ -5409,7 +5488,25 @@ schema-utils@^2.6.5: ...@@ -5409,7 +5488,25 @@ schema-utils@^2.6.5:
ajv "^6.12.4" ajv "^6.12.4"
ajv-keywords "^3.5.2" ajv-keywords "^3.5.2"
schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: schema-utils@^3.0.0:
version "3.1.1"
resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz"
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
dependencies:
"@types/json-schema" "^7.0.8"
ajv "^6.12.5"
ajv-keywords "^3.5.2"
schema-utils@^3.1.0:
version "3.1.1"
resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz"
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
dependencies:
"@types/json-schema" "^7.0.8"
ajv "^6.12.5"
ajv-keywords "^3.5.2"
schema-utils@^3.1.1:
version "3.1.1" version "3.1.1"
resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz" resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz"
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
...@@ -5447,7 +5544,12 @@ selfsigned@^2.1.1: ...@@ -5447,7 +5544,12 @@ selfsigned@^2.1.1:
dependencies: dependencies:
node-forge "^1" node-forge "^1"
"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: semver@^5.5.0:
version "5.7.1"
resolved "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
semver@^5.6.0:
version "5.7.1" version "5.7.1"
resolved "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz" resolved "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
...@@ -5457,13 +5559,32 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: ...@@ -5457,13 +5559,32 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz" resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.3.4, semver@^7.3.5, semver@^7.3.8: semver@^7.3.4:
version "7.3.8" version "7.3.8"
resolved "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz" resolved "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz"
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
dependencies: dependencies:
lru-cache "^6.0.0" lru-cache "^6.0.0"
semver@^7.3.5:
version "7.3.8"
resolved "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz"
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
dependencies:
lru-cache "^6.0.0"
semver@^7.3.8:
version "7.3.8"
resolved "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz"
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
dependencies:
lru-cache "^6.0.0"
"semver@2 || 3 || 4 || 5":
version "5.7.1"
resolved "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
send@0.18.0: send@0.18.0:
version "0.18.0" version "0.18.0"
resolved "https://registry.npmmirror.com/send/-/send-0.18.0.tgz" resolved "https://registry.npmmirror.com/send/-/send-0.18.0.tgz"
...@@ -5697,15 +5818,29 @@ stackframe@^1.3.4: ...@@ -5697,15 +5818,29 @@ stackframe@^1.3.4:
resolved "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz" resolved "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz"
integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==
"statuses@>= 1.4.0 < 2":
version "1.5.0"
resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
statuses@2.0.1: statuses@2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz" resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
"statuses@>= 1.4.0 < 2": string_decoder@^1.1.1:
version "1.5.0" version "1.3.0"
resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz" resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
dependencies:
safe-buffer "~5.2.0"
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz"
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
string-convert@^0.2.0: string-convert@^0.2.0:
version "0.2.1" version "0.2.1"
...@@ -5729,20 +5864,6 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: ...@@ -5729,20 +5864,6 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
is-fullwidth-code-point "^3.0.0" is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1" strip-ansi "^6.0.1"
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
dependencies:
safe-buffer "~5.2.0"
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz"
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
strip-ansi@^4.0.0: strip-ansi@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz" resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz"
...@@ -5928,7 +6049,7 @@ tr46@~0.0.3: ...@@ -5928,7 +6049,7 @@ tr46@~0.0.3:
resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz" resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
tslib@2.3.0, tslib@^2.0.3, tslib@^2.3.0: tslib@^2.0.3, tslib@^2.3.0, tslib@2.3.0:
version "2.3.0" version "2.3.0"
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz" resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz"
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
...@@ -5979,7 +6100,7 @@ universalify@^2.0.0: ...@@ -5979,7 +6100,7 @@ universalify@^2.0.0:
resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz" resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
unpipe@1.0.0, unpipe@~1.0.0: unpipe@~1.0.0, unpipe@1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz" resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
...@@ -6084,7 +6205,7 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.3: ...@@ -6084,7 +6205,7 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.3:
hash-sum "^1.0.2" hash-sum "^1.0.2"
loader-utils "^1.0.2" loader-utils "^1.0.2"
vue-template-compiler@^2.6.14: vue-template-compiler@^2.0.0, vue-template-compiler@^2.6.0, vue-template-compiler@^2.6.14, vue-template-compiler@>=2.5.0:
version "2.7.14" version "2.7.14"
resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz" resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz"
integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==
...@@ -6097,7 +6218,7 @@ vue-template-es2015-compiler@^1.9.0: ...@@ -6097,7 +6218,7 @@ vue-template-es2015-compiler@^1.9.0:
resolved "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz" resolved "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz"
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
vue@^2.6.14: vue@*, "vue@^2 || ^3.2.13", vue@^2.0.0, vue@^2.5.17, vue@^2.6.0, vue@^2.6.14, vue@>=2.5.0:
version "2.7.14" version "2.7.14"
resolved "https://registry.npmmirror.com/vue/-/vue-2.7.14.tgz" resolved "https://registry.npmmirror.com/vue/-/vue-2.7.14.tgz"
integrity sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ== integrity sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==
...@@ -6221,7 +6342,7 @@ webpack-merge@^5.7.3: ...@@ -6221,7 +6342,7 @@ webpack-merge@^5.7.3:
clone-deep "^4.0.1" clone-deep "^4.0.1"
wildcard "^2.0.0" wildcard "^2.0.0"
webpack-sources@^3.2.3: webpack-sources@*, webpack-sources@^3.2.3:
version "3.2.3" version "3.2.3"
resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz" resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
...@@ -6231,7 +6352,7 @@ webpack-virtual-modules@^0.4.2: ...@@ -6231,7 +6352,7 @@ webpack-virtual-modules@^0.4.2:
resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz" resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz"
integrity sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA== integrity sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==
webpack@^5.54.0: "webpack@^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.1.0 || ^5.0.0-0", "webpack@^4.27.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.54.0, webpack@>=2:
version "5.75.0" version "5.75.0"
resolved "https://registry.npmmirror.com/webpack/-/webpack-5.75.0.tgz" resolved "https://registry.npmmirror.com/webpack/-/webpack-5.75.0.tgz"
integrity sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ== integrity sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==
...@@ -6261,7 +6382,7 @@ webpack@^5.54.0: ...@@ -6261,7 +6382,7 @@ webpack@^5.54.0:
watchpack "^2.4.0" watchpack "^2.4.0"
webpack-sources "^3.2.3" webpack-sources "^3.2.3"
websocket-driver@>=0.5.1, websocket-driver@^0.7.4: websocket-driver@^0.7.4, websocket-driver@>=0.5.1:
version "0.7.4" version "0.7.4"
resolved "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz" resolved "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz"
integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
......
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