@@ -34,6 +34,7 @@ | |||||
"vue": "^3.2.45", | "vue": "^3.2.45", | ||||
"vue-cropper": "^1.0.9", | "vue-cropper": "^1.0.9", | ||||
"vue-i18n": "9", | "vue-i18n": "9", | ||||
"vue-qr": "^4.0.9", | |||||
"vue-router": "^4.0.13" | "vue-router": "^4.0.13" | ||||
}, | }, | ||||
"devDependencies": { | "devDependencies": { | ||||
@@ -0,0 +1,27 @@ | |||||
import request from "@/utils/request.js"; | |||||
/** | |||||
* @description:购买金币下单 | |||||
* @param productId | |||||
* @return: data | |||||
*/ | |||||
export function createOrderApi(data) { | |||||
return request({ | |||||
url: `api/productOrder/createOrder`, | |||||
method: 'post', | |||||
data | |||||
}) | |||||
} | |||||
/** | |||||
* @description:获取订单数据 | |||||
* @param data | |||||
* @return: data | |||||
*/ | |||||
export function createPayApi(data) { | |||||
return request({ | |||||
url: `api/productOrder/createPay`, | |||||
method: 'post', | |||||
data | |||||
}) | |||||
} |
@@ -2,7 +2,6 @@ | |||||
export {} | export {} | ||||
declare global { | declare global { | ||||
const EffectScope: typeof import('vue')['EffectScope'] | const EffectScope: typeof import('vue')['EffectScope'] | ||||
const ElForm: typeof import('element-plus/es')['ElForm'] | |||||
const ElMessage: typeof import('element-plus/es')['ElMessage'] | const ElMessage: typeof import('element-plus/es')['ElMessage'] | ||||
const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] | const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] | ||||
const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] | const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] | ||||
@@ -271,7 +270,6 @@ import { UnwrapRef } from 'vue' | |||||
declare module 'vue' { | declare module 'vue' { | ||||
interface ComponentCustomProperties { | interface ComponentCustomProperties { | ||||
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']> | readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']> | ||||
readonly ElForm: UnwrapRef<typeof import('element-plus/es')['ElForm']> | |||||
readonly ElMessage: UnwrapRef<typeof import('element-plus/es')['ElMessage']> | readonly ElMessage: UnwrapRef<typeof import('element-plus/es')['ElMessage']> | ||||
readonly ElMessageBox: UnwrapRef<typeof import('element-plus/es')['ElMessageBox']> | readonly ElMessageBox: UnwrapRef<typeof import('element-plus/es')['ElMessageBox']> | ||||
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']> | readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']> | ||||
@@ -18,13 +18,10 @@ declare module '@vue/runtime-core' { | |||||
ElDropdown: typeof import('element-plus/es')['ElDropdown'] | ElDropdown: typeof import('element-plus/es')['ElDropdown'] | ||||
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] | ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] | ||||
ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] | ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] | ||||
ElForm: typeof import('element-plus/es')['ElForm'] | |||||
ElFormItem: typeof import('element-plus/es')['ElFormItem'] | |||||
ElIcon: typeof import('element-plus/es')['ElIcon'] | ElIcon: typeof import('element-plus/es')['ElIcon'] | ||||
ElInput: typeof import('element-plus/es')['ElInput'] | ElInput: typeof import('element-plus/es')['ElInput'] | ||||
ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] | ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] | ||||
ElOption: typeof import('element-plus/es')['ElOption'] | ElOption: typeof import('element-plus/es')['ElOption'] | ||||
ElPagination: typeof import('element-plus/es')['ElPagination'] | |||||
ElSelect: typeof import('element-plus/es')['ElSelect'] | ElSelect: typeof import('element-plus/es')['ElSelect'] | ||||
ElSwitch: typeof import('element-plus/es')['ElSwitch'] | ElSwitch: typeof import('element-plus/es')['ElSwitch'] | ||||
ElTooltip: typeof import('element-plus/es')['ElTooltip'] | ElTooltip: typeof import('element-plus/es')['ElTooltip'] | ||||
@@ -32,19 +29,13 @@ declare module '@vue/runtime-core' { | |||||
GithubCorner: typeof import('./../components/GithubCorner/index.vue')['default'] | GithubCorner: typeof import('./../components/GithubCorner/index.vue')['default'] | ||||
Hamburger: typeof import('./../components/Hamburger/index.vue')['default'] | Hamburger: typeof import('./../components/Hamburger/index.vue')['default'] | ||||
IconSelect: typeof import('./../components/IconSelect/index.vue')['default'] | IconSelect: typeof import('./../components/IconSelect/index.vue')['default'] | ||||
IEpCloseBold: typeof import('~icons/ep/close-bold')['default'] | |||||
IEpDelete: typeof import('~icons/ep/delete')['default'] | |||||
IEpDocumentAdd: typeof import('~icons/ep/document-add')['default'] | IEpDocumentAdd: typeof import('~icons/ep/document-add')['default'] | ||||
IEpDownload: typeof import('~icons/ep/download')['default'] | |||||
IEpEdit: typeof import('~icons/ep/edit')['default'] | IEpEdit: typeof import('~icons/ep/edit')['default'] | ||||
IEpGoods: typeof import('~icons/ep/goods')['default'] | IEpGoods: typeof import('~icons/ep/goods')['default'] | ||||
IEpLoading: typeof import('~icons/ep/loading')['default'] | |||||
IEpLock: typeof import('~icons/ep/lock')['default'] | IEpLock: typeof import('~icons/ep/lock')['default'] | ||||
IEpMenu: typeof import('~icons/ep/menu')['default'] | IEpMenu: typeof import('~icons/ep/menu')['default'] | ||||
IEpPhone: typeof import('~icons/ep/phone')['default'] | IEpPhone: typeof import('~icons/ep/phone')['default'] | ||||
IEpSearch: typeof import('~icons/ep/search')['default'] | |||||
IEpUser: typeof import('~icons/ep/user')['default'] | IEpUser: typeof import('~icons/ep/user')['default'] | ||||
IEpVideoPlay: typeof import('~icons/ep/video-play')['default'] | |||||
LangSelect: typeof import('./../components/LangSelect/index.vue')['default'] | LangSelect: typeof import('./../components/LangSelect/index.vue')['default'] | ||||
MultiUpload: typeof import('./../components/Upload/MultiUpload.vue')['default'] | MultiUpload: typeof import('./../components/Upload/MultiUpload.vue')['default'] | ||||
MyLoading: typeof import('./../components/myLoading.vue')['default'] | MyLoading: typeof import('./../components/myLoading.vue')['default'] | ||||
@@ -186,28 +186,111 @@ | |||||
<div class="left"> | <div class="left"> | ||||
<!-- <div class="title">{{ $t(presentItme.value.title) }}</div> --> | <!-- <div class="title">{{ $t(presentItme.value.title) }}</div> --> | ||||
<div class="title">{{ $t(presentItme.value.typeDesc) }}</div> | <div class="title">{{ $t(presentItme.value.typeDesc) }}</div> | ||||
<div class="price"> | |||||
<span>{{ presentItme.value.price }}</span> | |||||
元/{{ presentItme.value.priceTime }} | |||||
<div class="money"> | |||||
<span class="price">{{ | |||||
lanChange == "zh-cn" | |||||
? presentItme.value.rmb + "¥" | |||||
: presentItme.value.dollar + "$" | |||||
}}</span | |||||
>/{{ presentItme.value.validityDuration }}{{ $t("shop.day") }} | |||||
</div> | </div> | ||||
<div | |||||
class="authority" | |||||
v-for="item in presentItme.value.authority" | |||||
:key="item" | |||||
> | |||||
{{ item }}123 | |||||
<div class="time"> | |||||
<span>{{ presentItme.value.credit }}</span | |||||
>{{ $t("shop.score") }} | |||||
</div> | |||||
<!-- 套餐内容 --> | |||||
<div class="authority"> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.InviteGetscore") }}: | |||||
<span> | |||||
<i>{{ presentItme.value.inviteUserCredit }}</i | |||||
>{{ $t("shop.score") }}</span | |||||
> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.createVideoPrice") }}:<span | |||||
><i>{{ presentItme.value.videoPrice }}</i | |||||
>{{ $t("shop.score") }}</span | |||||
> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.AIGeneratesPhotoPrices") }}:<span | |||||
><i>{{ presentItme.value.photoPrice }}</i | |||||
>{{ $t("shop.score") }}</span | |||||
> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.UnitChargeDuration") }}:<span | |||||
><i>{{ presentItme.value.chargeTime }}</i | |||||
>{{ $t("shop.second") }}</span | |||||
> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.Language") }}:<span | |||||
><i>{{ | |||||
presentItme.value.userPackageDetails[0].languageDesc | |||||
}}</i></span | |||||
> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.sound") }}:<span | |||||
><i>{{ | |||||
presentItme.value.userPackageDetails[0].soundDesc | |||||
}}</i></span | |||||
> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.IndividualVideoDuration") }}:<span | |||||
><i>{{ presentItme.value.userPackageDetails[0].videoTime }}</i | |||||
>{{ $t("shop.second") }}</span | |||||
> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.Watermark") }}:<span>{{ | |||||
presentItme.value.userPackageDetails[0].aiPortrait == 0 | |||||
? $t("shop.yes") | |||||
: $t("shop.no") | |||||
}}</span> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.AIGeneratedPortrait") }}:<span>{{ | |||||
presentItme.value.userPackageDetails[0].aiPortrait == 0 | |||||
? $t("shop.no") | |||||
: $t("shop.yes") | |||||
}}</span> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.PhotoSinging") }}:<span>{{ | |||||
presentItme.value.userPackageDetails[0].photoSing == 0 | |||||
? $t("shop.no") | |||||
: $t("shop.yes") | |||||
}}</span> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.AIGeneratedText") }}:<span | |||||
><i>{{ | |||||
presentItme.value.userPackageDetails[0].aiCreateTime | |||||
}}</i></span | |||||
> | |||||
</div> | |||||
<div class="authority-item"> | |||||
{{ $t("shop.VideoResolution") }}:<span>{{ | |||||
presentItme.value.userPackageDetails[0].resolutionRatioDesc | |||||
}}</span> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="right"> | <div class="right"> | ||||
<div | <div | ||||
style="background-color: #07c160; cursor: pointer" | style="background-color: #07c160; cursor: pointer" | ||||
@click="showOrderCode(1)" | |||||
@click="showOrderCode(2)" | |||||
> | > | ||||
{{ $t("shop.WeChatPay") }} | {{ $t("shop.WeChatPay") }} | ||||
</div> | </div> | ||||
<div | <div | ||||
style="background-color: #1378fe; cursor: pointer" | style="background-color: #1378fe; cursor: pointer" | ||||
@click="showOrderCode(2)" | |||||
@click="showOrderCode(4)" | |||||
> | > | ||||
{{ $t("shop.Alipay") }} | {{ $t("shop.Alipay") }} | ||||
</div> | </div> | ||||
@@ -225,11 +308,17 @@ | |||||
width="30%" | width="30%" | ||||
append-to-body | append-to-body | ||||
destroy-on-close | destroy-on-close | ||||
@closed="clearCode" | |||||
> | > | ||||
<div class="orderCodeDialog"> | <div class="orderCodeDialog"> | ||||
<div class="codeImg"> | <div class="codeImg"> | ||||
<my-Loading-Icon v-if="!orderCodeUrl"></my-Loading-Icon> | |||||
<img v-if="orderCodeUrl" src="../../assets/img/false1.png" alt="" /> | |||||
<my-Loading-Icon2 v-if="!payCodeUrl"></my-Loading-Icon2> | |||||
<vue-qr | |||||
v-if="payCodeUrl" | |||||
:text="payCodeUrl" | |||||
:size="280" | |||||
:callback="qrcode" | |||||
></vue-qr> | |||||
</div> | </div> | ||||
<div class="tips">扫描二维码进行付款</div> | <div class="tips">扫描二维码进行付款</div> | ||||
<div class="btnBox"> | <div class="btnBox"> | ||||
@@ -254,6 +343,9 @@ import { getCurrentInstance, ref, onMounted } from "vue"; | |||||
import { useI18n } from "vue-i18n"; | import { useI18n } from "vue-i18n"; | ||||
import talkUs from "@/components/talkUs.vue"; | import talkUs from "@/components/talkUs.vue"; | ||||
import { useRoute, useRouter } from "vue-router"; | import { useRoute, useRouter } from "vue-router"; | ||||
import { createOrderApi, createPayApi } from "@/apis/pay"; | |||||
import vueQr from "vue-qr/src/packages/vue-qr.vue"; | |||||
const route = useRoute(); | const route = useRoute(); | ||||
const router = useRouter(); | const router = useRouter(); | ||||
const { locale } = useI18n(); | const { locale } = useI18n(); | ||||
@@ -472,12 +564,15 @@ function clickPayDialog(item) { | |||||
presentItme.value = item; | presentItme.value = item; | ||||
showPayDialog.value = true; | showPayDialog.value = true; | ||||
} | } | ||||
function showOrderCode(type) { | |||||
orderCodeDialogShow.value = true; | |||||
} | |||||
//#endregion ------------------------------------ | //#endregion ------------------------------------ | ||||
//#region 点击套餐内的支付 | //#region 点击套餐内的支付 | ||||
function showOrderCode(type) { | |||||
orderCodeDialogShow.value = true; | |||||
myPayVendor.value = type; | |||||
createOrderFunc(); | |||||
} | |||||
const orderCodeDialogShow = ref(false); | const orderCodeDialogShow = ref(false); | ||||
const orderCodeUrl = ref(null); | const orderCodeUrl = ref(null); | ||||
//#endregion ------------------------------------ | //#endregion ------------------------------------ | ||||
@@ -520,11 +615,65 @@ const updateShowTalkUsDialog = (newValue) => { | |||||
//#region 页面初始化 | //#region 页面初始化 | ||||
onMounted(async () => { | onMounted(async () => { | ||||
// getPackageList(); | // getPackageList(); | ||||
// createOrderFunc(); | |||||
}); | }); | ||||
//#endregion ------------------------------------ | //#endregion ------------------------------------ | ||||
//#region | |||||
//#region 支付 | |||||
const myPayVendor = ref(null); // 2微信 4支付宝 | |||||
const payCodeUrl = ref(null); //付款二维码地址 | |||||
const payCodeImg = ref(null); //付款二维码图片 | |||||
// 支付失败处理 | |||||
function payErrorHandle() { | |||||
orderCodeDialogShow.value = false; | |||||
ElMessage.error( | |||||
lanChange.value == "zh-cn" | |||||
? `获取订单失败,请重试` | |||||
: `Failed to get the order, please try again` | |||||
); | |||||
} | |||||
// 获取订单 | |||||
async function createOrderFunc() { | |||||
const data = { | |||||
productId: 30, | |||||
}; | |||||
try { | |||||
const res = await createOrderApi(data); | |||||
if (res.code == 200) { | |||||
createPayFunc(res.data); | |||||
} else { | |||||
payErrorHandle(); | |||||
} | |||||
} catch (error) { | |||||
payErrorHandle(); | |||||
} | |||||
} | |||||
// 获取订单详情 | |||||
async function createPayFunc(orderNumber) { | |||||
const data = { | |||||
orderNumber, | |||||
payVendor: myPayVendor.value, | |||||
}; | |||||
try { | |||||
const res = await createPayApi(data); | |||||
if (res.code == 200) { | |||||
payCodeUrl.value = res.data.codeUrl; | |||||
} else { | |||||
payErrorHandle(); | |||||
} | |||||
} catch (error) { | |||||
payErrorHandle(); | |||||
} | |||||
} | |||||
// 生成二维码 | |||||
function qrcode() { | |||||
return; | |||||
} | |||||
// 关闭二维码弹窗 | |||||
function clearCode(params) { | |||||
myPayVendor.value = null; // 2微信 4支付宝 | |||||
payCodeUrl.value = null; | |||||
} | |||||
//#endregion ------------------------------------ | //#endregion ------------------------------------ | ||||
//#region | //#region | ||||
@@ -744,7 +893,8 @@ onMounted(async () => { | |||||
font-size: 30px; | font-size: 30px; | ||||
text-align: center; | text-align: center; | ||||
} | } | ||||
.price { | |||||
.money { | |||||
text-align: center; | |||||
span { | span { | ||||
font-size: 30px; | font-size: 30px; | ||||
font-weight: 700; | font-weight: 700; | ||||
@@ -752,7 +902,40 @@ onMounted(async () => { | |||||
} | } | ||||
} | } | ||||
.authority { | .authority { | ||||
padding: 10px 20px; | |||||
margin-top: 10px; | |||||
&-item { | |||||
display: flex; | |||||
justify-content: space-between; | |||||
cursor: pointer; | |||||
font-weight: 400; | |||||
font-size: 14px; | |||||
padding: 2px 3px; | |||||
color: #7c7c7a; | |||||
span { | |||||
cursor: pointer; | |||||
color: #7c7c7a; | |||||
margin-right: 30px; | |||||
} | |||||
i { | |||||
font-size: 20px; | |||||
font-style: normal; | |||||
margin-right: 5px; | |||||
background-image: -webkit-linear-gradient( | |||||
left, | |||||
#4b61dc, | |||||
#15d1b8 25%, | |||||
#4b61dc 50%, | |||||
#15d1b8 75%, | |||||
#4b61dc | |||||
) !important; | |||||
-webkit-text-fill-color: transparent !important; | |||||
-webkit-background-clip: text !important; | |||||
background-clip: text !important; | |||||
-webkit-background-size: 200% 100% !important; | |||||
background-size: 200% 100% !important; | |||||
} | |||||
} | |||||
} | } | ||||
} | } | ||||
.right { | .right { | ||||
@@ -2289,6 +2289,13 @@ decode-uri-component@^0.2.0: | |||||
resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz" | resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz" | ||||
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== | integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== | ||||
decompress-response@^6.0.0: | |||||
version "6.0.0" | |||||
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" | |||||
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== | |||||
dependencies: | |||||
mimic-response "^3.1.0" | |||||
dedent@0.7.0: | dedent@0.7.0: | ||||
version "0.7.0" | version "0.7.0" | ||||
resolved "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz" | resolved "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz" | ||||
@@ -3182,6 +3189,17 @@ glob@7.2.3, glob@^7.1.3: | |||||
once "^1.3.0" | once "^1.3.0" | ||||
path-is-absolute "^1.0.0" | path-is-absolute "^1.0.0" | ||||
glob@^8.0.1: | |||||
version "8.1.0" | |||||
resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" | |||||
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== | |||||
dependencies: | |||||
fs.realpath "^1.0.0" | |||||
inflight "^1.0.4" | |||||
inherits "2" | |||||
minimatch "^5.0.1" | |||||
once "^1.3.0" | |||||
global-dirs@^0.1.1: | global-dirs@^0.1.1: | ||||
version "0.1.1" | version "0.1.1" | ||||
resolved "https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz" | resolved "https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz" | ||||
@@ -3759,6 +3777,11 @@ js-base64@^2.1.9: | |||||
resolved "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz" | resolved "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz" | ||||
integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== | integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== | ||||
js-binary-schema-parser@^2.0.2: | |||||
version "2.0.3" | |||||
resolved "https://registry.yarnpkg.com/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz#3d7848748e8586e63b34e8911b643f59cfb6396e" | |||||
integrity sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg== | |||||
js-sdsl@^4.1.4: | js-sdsl@^4.1.4: | ||||
version "4.4.0" | version "4.4.0" | ||||
resolved "https://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.4.0.tgz" | resolved "https://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.4.0.tgz" | ||||
@@ -4299,6 +4322,11 @@ mimic-fn@^4.0.0: | |||||
resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz" | resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz" | ||||
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== | integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== | ||||
mimic-response@^3.1.0: | |||||
version "3.1.0" | |||||
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" | |||||
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== | |||||
min-indent@^1.0.0: | min-indent@^1.0.0: | ||||
version "1.0.1" | version "1.0.1" | ||||
resolved "https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz" | resolved "https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz" | ||||
@@ -4311,6 +4339,13 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: | |||||
dependencies: | dependencies: | ||||
brace-expansion "^1.1.7" | brace-expansion "^1.1.7" | ||||
minimatch@^5.0.1: | |||||
version "5.1.6" | |||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" | |||||
integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== | |||||
dependencies: | |||||
brace-expansion "^2.0.1" | |||||
minimatch@^6.1.6: | minimatch@^6.1.6: | ||||
version "6.2.0" | version "6.2.0" | ||||
resolved "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz" | resolved "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz" | ||||
@@ -4565,7 +4600,7 @@ ohash@^1.1.1: | |||||
resolved "https://registry.npmjs.org/ohash/-/ohash-1.1.2.tgz" | resolved "https://registry.npmjs.org/ohash/-/ohash-1.1.2.tgz" | ||||
integrity sha512-9CIOSq5945rI045GFtcO3uudyOkYVY1nyfFxVQp+9BRgslr8jPNiSSrsFGg/BNTUFOLqx0P5tng6G32brIPw0w== | integrity sha512-9CIOSq5945rI045GFtcO3uudyOkYVY1nyfFxVQp+9BRgslr8jPNiSSrsFGg/BNTUFOLqx0P5tng6G32brIPw0w== | ||||
once@^1.3.0: | |||||
once@^1.3.0, once@^1.3.1: | |||||
version "1.4.0" | version "1.4.0" | ||||
resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz" | resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz" | ||||
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== | ||||
@@ -4665,6 +4700,11 @@ parent-module@^1.0.0: | |||||
dependencies: | dependencies: | ||||
callsites "^3.0.0" | callsites "^3.0.0" | ||||
parenthesis@^3.1.5: | |||||
version "3.1.8" | |||||
resolved "https://registry.yarnpkg.com/parenthesis/-/parenthesis-3.1.8.tgz#3457fccb8f05db27572b841dad9d2630b912f125" | |||||
integrity sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw== | |||||
parse-json@^5.0.0: | parse-json@^5.0.0: | ||||
version "5.2.0" | version "5.2.0" | ||||
resolved "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz" | resolved "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz" | ||||
@@ -5271,6 +5311,20 @@ signal-exit@^4.0.1: | |||||
resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.0.2.tgz" | resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.0.2.tgz" | ||||
integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== | integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== | ||||
simple-concat@^1.0.0: | |||||
version "1.0.1" | |||||
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" | |||||
integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== | |||||
simple-get@^4.0.1: | |||||
version "4.0.1" | |||||
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" | |||||
integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== | |||||
dependencies: | |||||
decompress-response "^6.0.0" | |||||
once "^1.3.1" | |||||
simple-concat "^1.0.0" | |||||
sirv@^2.0.2: | sirv@^2.0.2: | ||||
version "2.0.3" | version "2.0.3" | ||||
resolved "https://registry.npmmirror.com/sirv/-/sirv-2.0.3.tgz" | resolved "https://registry.npmmirror.com/sirv/-/sirv-2.0.3.tgz" | ||||
@@ -5471,6 +5525,13 @@ string-argv@^0.3.1: | |||||
resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz" | resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz" | ||||
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== | integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== | ||||
string-split-by@^1.0.0: | |||||
version "1.0.0" | |||||
resolved "https://registry.yarnpkg.com/string-split-by/-/string-split-by-1.0.0.tgz#53895fb3397ebc60adab1f1e3a131f5372586812" | |||||
integrity sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A== | |||||
dependencies: | |||||
parenthesis "^3.1.5" | |||||
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: | ||||
version "4.2.3" | version "4.2.3" | ||||
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz" | resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz" | ||||
@@ -6268,6 +6329,16 @@ vue-i18n@9: | |||||
"@intlify/vue-devtools" "9.2.2" | "@intlify/vue-devtools" "9.2.2" | ||||
"@vue/devtools-api" "^6.2.1" | "@vue/devtools-api" "^6.2.1" | ||||
vue-qr@^4.0.9: | |||||
version "4.0.9" | |||||
resolved "https://registry.yarnpkg.com/vue-qr/-/vue-qr-4.0.9.tgz#6cb965dd0c5a0dff947e6ef582ef149b0780b986" | |||||
integrity sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw== | |||||
dependencies: | |||||
glob "^8.0.1" | |||||
js-binary-schema-parser "^2.0.2" | |||||
simple-get "^4.0.1" | |||||
string-split-by "^1.0.0" | |||||
vue-router@^4.0.13: | vue-router@^4.0.13: | ||||
version "4.0.13" | version "4.0.13" | ||||
resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.13.tgz" | resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.13.tgz" | ||||