Compare commits
No commits in common. "master" and "v2026.03" have entirely different histories.
5
.env
5
.env
|
|
@ -1,12 +1,9 @@
|
||||||
# 版本号
|
# 版本号
|
||||||
SHOPRO_VERSION=v2.4.1
|
SHOPRO_VERSION=v2.4.1
|
||||||
|
|
||||||
# 后端接口 - 正式环境(通过 process.env.NODE_ENV 非 development -生产环境-release)
|
# 后端接口 - 正式环境(通过 process.env.NODE_ENV 非 development)
|
||||||
SHOPRO_BASE_URL=http://api-dashboard.yudao.iocoder.cn
|
SHOPRO_BASE_URL=http://api-dashboard.yudao.iocoder.cn
|
||||||
|
|
||||||
# 后端接口 - 体验环境(通过 process.env.NODE_ENV 非 development -体验环境-trial)
|
|
||||||
SHOPRO_TRIAL_BASE_URL=http://api-dashboard.yudao.iocoder.cn/trial
|
|
||||||
|
|
||||||
# 后端接口 - 测试环境(通过 process.env.NODE_ENV = development)
|
# 后端接口 - 测试环境(通过 process.env.NODE_ENV = development)
|
||||||
SHOPRO_DEV_BASE_URL=http://127.0.0.1:48080
|
SHOPRO_DEV_BASE_URL=http://127.0.0.1:48080
|
||||||
### SHOPRO_DEV_BASE_URL=http://10.171.1.188:48080
|
### SHOPRO_DEV_BASE_URL=http://10.171.1.188:48080
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"name": "芋道商城",
|
"name": "芋道商城",
|
||||||
"appid": "__UNI__460BC4C",
|
"appid": "__UNI__460BC4C",
|
||||||
"description": "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。",
|
"description": "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。",
|
||||||
"versionName": "2026.04",
|
"versionName": "2026.03",
|
||||||
"versionCode": "183",
|
"versionCode": "183",
|
||||||
"transformPx": false,
|
"transformPx": false,
|
||||||
"app-plus": {
|
"app-plus": {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"id": "shopro",
|
"id": "shopro",
|
||||||
"name": "shopro",
|
"name": "shopro",
|
||||||
"displayName": "芋道商城",
|
"displayName": "芋道商城",
|
||||||
"version": "2026.04",
|
"version": "2026.03",
|
||||||
"description": "芋道商城,一套代码,同时发行到iOS、Android、H5、微信小程序多个平台,请使用手机扫码快速体验强大功能",
|
"description": "芋道商城,一套代码,同时发行到iOS、Android、H5、微信小程序多个平台,请使用手机扫码快速体验强大功能",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"prettier": "prettier --write \"{pages,sheep}/**/*.{js,json,tsx,css,less,scss,vue,html,md}\""
|
"prettier": "prettier --write \"{pages,sheep}/**/*.{js,json,tsx,css,less,scss,vue,html,md}\""
|
||||||
|
|
@ -94,7 +94,6 @@
|
||||||
"luch-request": "^3.0.8",
|
"luch-request": "^3.0.8",
|
||||||
"pinia": "^2.0.33",
|
"pinia": "^2.0.33",
|
||||||
"pinia-plugin-persist-uni": "^1.2.0",
|
"pinia-plugin-persist-uni": "^1.2.0",
|
||||||
"vue": "^3.5.11",
|
|
||||||
"weixin-js-sdk": "^1.6.0"
|
"weixin-js-sdk": "^1.6.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
||||||
|
|
@ -253,8 +253,8 @@
|
||||||
|
|
||||||
.message-container {
|
.message-container {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
/* 倒置滚动区内,容器高度只需要撑满聊天区域 */
|
/* 确保容器至少有一屏高度 */
|
||||||
min-height: v-bind(chatScrollHeight);
|
min-height: 100vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
state.pagination.pageNo++;
|
state.pagination.pageNo++;
|
||||||
getRankList();
|
getList();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 上拉加载更多
|
// 上拉加载更多
|
||||||
|
|
|
||||||
|
|
@ -229,7 +229,7 @@
|
||||||
}
|
}
|
||||||
let openid;
|
let openid;
|
||||||
if (state.accountInfo.type === '5') {
|
if (state.accountInfo.type === '5') {
|
||||||
openid = await sheep.$platform.useProvider('wechat').getOpenid(true);
|
openid = await sheep.$platform.useProvider('wechat').getOpenid();
|
||||||
// 如果获取不到 openid,微信无法发起支付,此时需要引导
|
// 如果获取不到 openid,微信无法发起支付,此时需要引导
|
||||||
if (!openid) {
|
if (!openid) {
|
||||||
goBindWeixin();
|
goBindWeixin();
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<radio
|
<radio
|
||||||
:checked="formData.way === item.value"
|
:checked="formData.type === item.value"
|
||||||
color="var(--ui-BG-Main)"
|
color="var(--ui-BG-Main)"
|
||||||
style="transform: scale(0.8)"
|
style="transform: scale(0.8)"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
|
|
@ -159,10 +159,6 @@
|
||||||
|
|
||||||
// 提交表单
|
// 提交表单
|
||||||
async function submit() {
|
async function submit() {
|
||||||
if (!formData.way) {
|
|
||||||
sheep.$helper.toast('请选择售后类型');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
let data = {
|
let data = {
|
||||||
orderItemId: state.itemId,
|
orderItemId: state.itemId,
|
||||||
refundPrice: state.item.payPrice,
|
refundPrice: state.item.payPrice,
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
:color="color"
|
:color="color"
|
||||||
:tools="tools"
|
:tools="tools"
|
||||||
:opacityBgUi="opacityBgUi"
|
:opacityBgUi="opacityBgUi"
|
||||||
:backgroundColor="navbarBackgroundColor"
|
|
||||||
@search="(e) => emits('search', e)"
|
@search="(e) => emits('search', e)"
|
||||||
:defaultSearch="defaultSearch"
|
:defaultSearch="defaultSearch"
|
||||||
/>
|
/>
|
||||||
|
|
@ -81,11 +80,6 @@
|
||||||
type: String,
|
type: String,
|
||||||
default: 'bg-white',
|
default: 'bg-white',
|
||||||
},
|
},
|
||||||
// 顶部导航栏背景颜色(仅在 navbar === 'normal' 时生效)
|
|
||||||
navbarBackgroundColor: {
|
|
||||||
type: String,
|
|
||||||
default: '',
|
|
||||||
},
|
|
||||||
color: {
|
color: {
|
||||||
type: String,
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
|
|
@ -219,16 +213,16 @@
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
// 组件中使用 onMounted 监听页面加载,不是页面组件不使用 onShow
|
// 组件中使用 onMounted 监听页面加载,不是页面组件不使用 onShow
|
||||||
onMounted(() => {
|
onMounted(()=>{
|
||||||
// #ifdef MP-ALIPAY
|
// #ifdef MP-ALIPAY
|
||||||
uni.setNavigationBarTitle({
|
uni.setNavigationBarTitle({
|
||||||
title: '',
|
title: "",
|
||||||
});
|
});
|
||||||
// #endif
|
// #endif
|
||||||
if (!isEmpty(shareInfo.value)) {
|
if (!isEmpty(shareInfo.value)) {
|
||||||
sheep.$platform.share.updateShareInfo(shareInfo.value);
|
sheep.$platform.share.updateShareInfo(shareInfo.value);
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import packageInfo from '@/package.json';
|
import packageInfo from '@/package.json';
|
||||||
import { getWxEnvVersion } from '@/sheep/helper/env';
|
|
||||||
|
|
||||||
const { version } = packageInfo;
|
const { version } = packageInfo;
|
||||||
|
|
||||||
|
|
@ -8,21 +7,7 @@ export let baseUrl;
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
baseUrl = import.meta.env.SHOPRO_DEV_BASE_URL;
|
baseUrl = import.meta.env.SHOPRO_DEV_BASE_URL;
|
||||||
} else {
|
} else {
|
||||||
// 非本地 dev 模式开发环境,判断是体验版还是正式版
|
baseUrl = import.meta.env.SHOPRO_BASE_URL;
|
||||||
const wxEnvVersion = getWxEnvVersion();
|
|
||||||
|
|
||||||
if (wxEnvVersion === 'trial') {
|
|
||||||
// 体验版使用体验版服务器地址
|
|
||||||
baseUrl = import.meta.env.SHOPRO_TRIAL_BASE_URL || import.meta.env.SHOPRO_BASE_URL;
|
|
||||||
console.log('当前运行环境:体验版');
|
|
||||||
} else if (wxEnvVersion === 'release') {
|
|
||||||
// 正式版使用生产服务器地址
|
|
||||||
baseUrl = import.meta.env.SHOPRO_BASE_URL;
|
|
||||||
console.log('当前运行环境:正式版');
|
|
||||||
} else {
|
|
||||||
// 其他平台或获取失败,使用默认地址
|
|
||||||
baseUrl = import.meta.env.SHOPRO_BASE_URL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (typeof baseUrl === 'undefined') {
|
if (typeof baseUrl === 'undefined') {
|
||||||
console.error('请检查.env配置文件是否存在');
|
console.error('请检查.env配置文件是否存在');
|
||||||
|
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
/**
|
|
||||||
* 微信小程序运行环境:develop / trial / release
|
|
||||||
* 其它平台默认 release,整个 App 生命周期内不会变,缓存一次
|
|
||||||
*/
|
|
||||||
let cachedEnvVersion;
|
|
||||||
|
|
||||||
export function getWxEnvVersion() {
|
|
||||||
if (cachedEnvVersion) return cachedEnvVersion;
|
|
||||||
// #ifdef MP-WEIXIN
|
|
||||||
try {
|
|
||||||
cachedEnvVersion = wx.getAccountInfoSync().miniProgram.envVersion;
|
|
||||||
} catch (e) {
|
|
||||||
console.log('获取微信小程序环境失败', e);
|
|
||||||
cachedEnvVersion = 'release';
|
|
||||||
}
|
|
||||||
// #endif
|
|
||||||
// #ifndef MP-WEIXIN
|
|
||||||
cachedEnvVersion = 'release';
|
|
||||||
// #endif
|
|
||||||
return cachedEnvVersion;
|
|
||||||
}
|
|
||||||
|
|
@ -9,7 +9,6 @@ import $helper from '@/sheep/helper';
|
||||||
import AuthUtil from '@/sheep/api/member/auth';
|
import AuthUtil from '@/sheep/api/member/auth';
|
||||||
|
|
||||||
let configSuccess = false;
|
let configSuccess = false;
|
||||||
let configAppId = ''; // JSSDK 初始化所使用的公众号 appId,确认收款时需要
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
// 判断是否在微信中
|
// 判断是否在微信中
|
||||||
|
|
@ -31,9 +30,8 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调用后端接口,获得 JSSDK 初始化所需的签名
|
// 调用后端接口,获得 JSSDK 初始化所需的签名
|
||||||
// 微信要求签名 URL 与当前页面去掉 hash 后完全一致;不能直接用 location.origin(会丢子路径与 query)
|
const url = location.origin;
|
||||||
const signUrl = location.href.split('#')[0];
|
const { code, data } = await AuthUtil.createWeixinMpJsapiSignature(url);
|
||||||
const { code, data } = await AuthUtil.createWeixinMpJsapiSignature(signUrl);
|
|
||||||
if (code === 0) {
|
if (code === 0) {
|
||||||
jweixin.config({
|
jweixin.config({
|
||||||
debug: false,
|
debug: false,
|
||||||
|
|
@ -48,11 +46,9 @@ export default {
|
||||||
'updateAppMessageShareData',
|
'updateAppMessageShareData',
|
||||||
'updateTimelineShareData',
|
'updateTimelineShareData',
|
||||||
'scanQRCode',
|
'scanQRCode',
|
||||||
// 'requestMerchantTransfer', // TODO @使用者:如果需要微信商家转账功能,请打开该注释;
|
|
||||||
], // TODO 芋艿:后续可以设置更多权限;
|
], // TODO 芋艿:后续可以设置更多权限;
|
||||||
openTagList: data.openTagList,
|
openTagList: data.openTagList,
|
||||||
});
|
});
|
||||||
configAppId = data.appId;
|
|
||||||
} else {
|
} else {
|
||||||
console.log('请求 JSSDK 配置失败,错误码:', code);
|
console.log('请求 JSSDK 配置失败,错误码:', code);
|
||||||
}
|
}
|
||||||
|
|
@ -61,11 +57,7 @@ export default {
|
||||||
configSuccess = true;
|
configSuccess = true;
|
||||||
jweixin.error((err) => {
|
jweixin.error((err) => {
|
||||||
configSuccess = false;
|
configSuccess = false;
|
||||||
console.error('[wx-jssdk] config error', err, {
|
console.error('微信 JSSDK 初始化失败', err);
|
||||||
href: location.href,
|
|
||||||
signUrl,
|
|
||||||
data,
|
|
||||||
});
|
|
||||||
$helper.toast('微信JSSDK:' + err.errMsg);
|
$helper.toast('微信JSSDK:' + err.errMsg);
|
||||||
});
|
});
|
||||||
jweixin.ready(() => {
|
jweixin.ready(() => {
|
||||||
|
|
@ -198,50 +190,4 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// 商家转账,用户确认收款(H5 / 公众号)
|
|
||||||
// 可见 https://pay.weixin.qq.com/doc/v3/merchant/4012716430 文档
|
|
||||||
requestMerchantTransfer(data, callback) {
|
|
||||||
const invoke = () => {
|
|
||||||
// WeixinJSBridge 内置对象,仅在微信客户端中有效
|
|
||||||
if (typeof WeixinJSBridge === 'undefined') {
|
|
||||||
callback.fail && callback.fail({ errMsg: '请在微信客户端中打开页面后再确认收款' });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
WeixinJSBridge.invoke(
|
|
||||||
'requestMerchantTransfer',
|
|
||||||
{
|
|
||||||
mchId: data.mchId,
|
|
||||||
appId: data.appId || configAppId,
|
|
||||||
package: data.package,
|
|
||||||
},
|
|
||||||
function (res) {
|
|
||||||
if (res.err_msg === 'requestMerchantTransfer:ok') {
|
|
||||||
callback.success && callback.success(res);
|
|
||||||
} else if (res.err_msg === 'requestMerchantTransfer:cancel') {
|
|
||||||
callback.cancel && callback.cancel(res);
|
|
||||||
} else {
|
|
||||||
callback.fail && callback.fail(res);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
this.isReady(() => {
|
|
||||||
// 校验微信客户端是否支持 requestMerchantTransfer
|
|
||||||
jweixin.checkJsApi({
|
|
||||||
jsApiList: ['requestMerchantTransfer'],
|
|
||||||
success: function (res) {
|
|
||||||
if (res.checkResult && res.checkResult['requestMerchantTransfer']) {
|
|
||||||
invoke();
|
|
||||||
} else {
|
|
||||||
callback.fail && callback.fail({ errMsg: '你的微信版本过低,请更新至最新版本' });
|
|
||||||
}
|
|
||||||
},
|
|
||||||
fail: function () {
|
|
||||||
// checkJsApi 失败时,兜底直接尝试调用
|
|
||||||
invoke();
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ import $wxsdk from '@/sheep/libs/sdk-h5-weixin';
|
||||||
import { getRootUrl } from '@/sheep/helper';
|
import { getRootUrl } from '@/sheep/helper';
|
||||||
import AuthUtil from '@/sheep/api/member/auth';
|
import AuthUtil from '@/sheep/api/member/auth';
|
||||||
import SocialApi from '@/sheep/api/member/social';
|
import SocialApi from '@/sheep/api/member/social';
|
||||||
import sheep from '@/sheep';
|
|
||||||
|
|
||||||
const socialType = 31; // 社交类型 - 微信公众号
|
const socialType = 31; // 社交类型 - 微信公众号
|
||||||
|
|
||||||
|
|
@ -95,30 +94,6 @@ async function getInfo() {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 商家转账用户确认模式下,拉起页面请求用户确认收款 Transfer
|
|
||||||
// 入参与小程序保持一致:(mchId, packageInfo, successCallback, failCallback)
|
|
||||||
function requestMerchantTransfer(mchId, packageInfo, successCallback, failCallback) {
|
|
||||||
$wxsdk.requestMerchantTransfer(
|
|
||||||
{
|
|
||||||
mchId,
|
|
||||||
package: packageInfo,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
success: (res) => {
|
|
||||||
successCallback && successCallback({ result: 'success', ...res });
|
|
||||||
},
|
|
||||||
cancel: (res) => {
|
|
||||||
sheep.$helper.toast('确认收款已取消');
|
|
||||||
failCallback && failCallback({ result: 'cancel', errMsg: '确认收款已取消', ...res });
|
|
||||||
},
|
|
||||||
fail: (res) => {
|
|
||||||
sheep.$helper.toast(res.errMsg || '确认收款失败');
|
|
||||||
failCallback && failCallback({ result: 'fail', ...res });
|
|
||||||
},
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
load,
|
load,
|
||||||
login,
|
login,
|
||||||
|
|
@ -126,6 +101,5 @@ export default {
|
||||||
unbind,
|
unbind,
|
||||||
getInfo,
|
getInfo,
|
||||||
getOpenid,
|
getOpenid,
|
||||||
requestMerchantTransfer,
|
|
||||||
jsWxSdk: $wxsdk,
|
jsWxSdk: $wxsdk,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ const buildSpmLink = (query, linkAddress = '') => {
|
||||||
};
|
};
|
||||||
|
|
||||||
// 解析Spm
|
// 解析Spm
|
||||||
const decryptSpm = async (spm) => {
|
const decryptSpm = (spm) => {
|
||||||
const user = $store('user');
|
const user = $store('user');
|
||||||
let shareParamsArray = spm.split('.');
|
let shareParamsArray = spm.split('.');
|
||||||
let shareParams = {
|
let shareParams = {
|
||||||
|
|
@ -168,7 +168,7 @@ const decryptSpm = async (spm) => {
|
||||||
uni.setStorageSync('shareId', shareParams.shareId);
|
uni.setStorageSync('shareId', shareParams.shareId);
|
||||||
// 已登录 绑定推广员
|
// 已登录 绑定推广员
|
||||||
if (!!user.isLogin) {
|
if (!!user.isLogin) {
|
||||||
await bindBrokerageUser(shareParams.shareId);
|
bindBrokerageUser(shareParams.shareId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -230,14 +230,12 @@ const refreshToken = async (config) => {
|
||||||
|
|
||||||
// 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了
|
// 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了
|
||||||
if (!isRefreshToken) {
|
if (!isRefreshToken) {
|
||||||
|
isRefreshToken = true;
|
||||||
// 1. 如果获取不到刷新令牌,则只能执行登出操作
|
// 1. 如果获取不到刷新令牌,则只能执行登出操作
|
||||||
const refreshToken = getRefreshToken();
|
const refreshToken = getRefreshToken();
|
||||||
if (!refreshToken) {
|
if (!refreshToken) {
|
||||||
return handleAuthorized();
|
return handleAuthorized();
|
||||||
}
|
}
|
||||||
// 只有真正发起刷新时才标记刷新中,避免无刷新令牌时状态一直卡住,后续 401 不再弹登录框
|
|
||||||
// https://github.com/yudaocode/yudao-mall-uniapp/issues/38
|
|
||||||
isRefreshToken = true;
|
|
||||||
// 2. 进行刷新访问令牌
|
// 2. 进行刷新访问令牌
|
||||||
try {
|
try {
|
||||||
const refreshTokenResult = await AuthUtil.refreshToken(refreshToken);
|
const refreshTokenResult = await AuthUtil.refreshToken(refreshToken);
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,8 @@ import user from './user';
|
||||||
import sys from './sys';
|
import sys from './sys';
|
||||||
import { baseUrl, h5Url } from '@/sheep/config';
|
import { baseUrl, h5Url } from '@/sheep/config';
|
||||||
|
|
||||||
const app = defineStore('app', {
|
const app = defineStore({
|
||||||
|
id: 'app',
|
||||||
state: () => ({
|
state: () => ({
|
||||||
paramsForTabbar: {}, // 为全局tabbar跳转传参用。原因是 tabbar 无法传参,只能通过全局状态传递
|
paramsForTabbar: {}, // 为全局tabbar跳转传参用。原因是 tabbar 无法传参,只能通过全局状态传递
|
||||||
info: {
|
info: {
|
||||||
|
|
@ -73,7 +74,7 @@ const app = defineStore('app', {
|
||||||
this.info = {
|
this.info = {
|
||||||
name: '芋道商城',
|
name: '芋道商城',
|
||||||
logo: 'https://static.iocoder.cn/ruoyi-vue-pro-logo.png',
|
logo: 'https://static.iocoder.cn/ruoyi-vue-pro-logo.png',
|
||||||
version: '2026.04',
|
version: '2026.03',
|
||||||
copyright: '全部开源,个人与企业可 100% 免费使用',
|
copyright: '全部开源,个人与企业可 100% 免费使用',
|
||||||
copytime: 'Copyright© 2018-2025',
|
copytime: 'Copyright© 2018-2025',
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
import CartApi from '@/sheep/api/trade/cart';
|
import CartApi from '@/sheep/api/trade/cart';
|
||||||
|
|
||||||
const cart = defineStore('cart', {
|
const cart = defineStore({
|
||||||
|
id: 'cart',
|
||||||
state: () => ({
|
state: () => ({
|
||||||
list: [], // 购物车列表(invalidList + validList)
|
list: [], // 购物车列表(invalidList + validList)
|
||||||
selectedIds: [], // 已选列表
|
selectedIds: [], // 已选列表
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
|
|
||||||
const modal = defineStore('modal', {
|
const modal = defineStore({
|
||||||
|
id: 'modal',
|
||||||
state: () => ({
|
state: () => ({
|
||||||
auth: '', // 授权弹框 accountLogin|smsLogin|resetPassword|changeMobile|changePassword|changeUsername
|
auth: '', // 授权弹框 accountLogin|smsLogin|resetPassword|changeMobile|changePassword|changeUsername
|
||||||
share: false, // 分享弹框
|
share: false, // 分享弹框
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
import app from './app';
|
import app from './app';
|
||||||
|
|
||||||
const sys = defineStore('sys', {
|
const sys = defineStore({
|
||||||
|
id: 'sys',
|
||||||
state: () => ({
|
state: () => ({
|
||||||
theme: '', // 主题,
|
theme: '', // 主题,
|
||||||
mode: 'light', // 明亮模式、暗黑模式(暂未支持)
|
mode: 'light', // 明亮模式、暗黑模式(暂未支持)
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,8 @@ const defaultNumData = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const user = defineStore('user', {
|
const user = defineStore({
|
||||||
|
id: 'user',
|
||||||
state: () => ({
|
state: () => ({
|
||||||
userInfo: clone(defaultUserInfo), // 用户信息
|
userInfo: clone(defaultUserInfo), // 用户信息
|
||||||
userWallet: clone(defaultUserWallet), // 用户钱包信息
|
userWallet: clone(defaultUserWallet), // 用户钱包信息
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue