mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-uniapp.git
synced 2026-06-21 09:20:14 +08:00
refactor:项目升级Vue3+uView Plus
- 改造入口文件、全量替换组件引入 - 过滤器迁移混入,更新忽略配置,新增迁移文档
This commit is contained in:
15
.gitignore
vendored
15
.gitignore
vendored
@@ -1,14 +1,3 @@
|
||||
# OSX
|
||||
#
|
||||
.DS_Store
|
||||
node_modules/
|
||||
|
||||
#Intellij idea
|
||||
.idea/
|
||||
/idea/
|
||||
.vscode/
|
||||
/unpackage/
|
||||
.hbuilderx/launch.json
|
||||
.project.config.json
|
||||
.project.private.config.json
|
||||
|
||||
unpackage/
|
||||
.DS_Store
|
||||
|
||||
2
App.vue
2
App.vue
@@ -224,7 +224,7 @@ import {
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import "uview-ui/index.scss";
|
||||
@import "uview-plus/index.scss";
|
||||
|
||||
// -------适配底部安全区 苹果x系列刘海屏
|
||||
|
||||
|
||||
40
VUE3_MIGRATION.md
Normal file
40
VUE3_MIGRATION.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Vue 3 升级说明
|
||||
|
||||
本项目已从 Vue 2 + uView 1.6 升级到 **Vue 3 + uView Plus**。
|
||||
|
||||
## 环境要求
|
||||
|
||||
- HBuilderX 3.8+
|
||||
- Node.js 16+(用于安装 `uview-plus`、`vuex@4`、`sass`)
|
||||
|
||||
## 安装依赖
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
## 主要变更
|
||||
|
||||
| 项 | 变更 |
|
||||
|---|---|
|
||||
| `manifest.json` | 增加 `"vueVersion": "3"` |
|
||||
| `main.js` | 使用 `createSSRApp` + `export function createApp()` |
|
||||
| UI 库 | `uview-ui` → `uview-plus`(npm 依赖) |
|
||||
| 状态管理 | Vuex 4 `createStore` |
|
||||
| 全局 filter | 改为 `main.js` 全局 mixin methods |
|
||||
| 小程序分享 | `utils/mpShare.js` |
|
||||
| u-cell-item | 改为 `u-cell` |
|
||||
| u-verification-code | 改为 `u-code` |
|
||||
| u-swipe-action | 内层增加 `u-swipe-action-item` |
|
||||
| u-upload | 关闭 `auto-upload`,使用 `@afterRead` + `utils/uploadHelper.js` |
|
||||
| u-parse | `:html` 改为 `:content`,移除 `show-with-animation` / `use-cache` |
|
||||
|
||||
## 编译
|
||||
|
||||
请使用 HBuilderX 分别运行到 **H5**、**微信小程序**、**App** 进行验证。
|
||||
|
||||
## 第三方插件
|
||||
|
||||
- `Sansnn-uQRCode`:声明支持 Vue3
|
||||
- `u-draw-poster`:声明支持 Vue2/3
|
||||
- `okingtz-cropper`:需在 App 端实测头像裁剪
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<u-popup class="popup" v-model="buyMask" :height="setup.height" closeable :mode="setup.mode" :border-radius="setup.radius" @close="closeMask()">
|
||||
<u-popup class="popup" v-model:show="buyMask" :height="setup.height" closeable :mode="setup.mode" :border-radius="setup.radius" @close="closeMask()">
|
||||
<!-- 商品 -->
|
||||
<view class="goods-box bottom">
|
||||
<view class="goods-header">
|
||||
@@ -12,8 +12,8 @@
|
||||
<view class="goods-price" v-if="goodsDetail.promotionPrice && ((isGroup && buyType === 'PINTUAN') || !isGroup)">
|
||||
<span v-if="goodsDetail.promotionPrice && !pointDetail">
|
||||
¥
|
||||
<span class="goods-price-promotionShow goods-price-bigshow">{{ $options.filters.goodsFormatPrice(goodsDetail.promotionPrice)[0] }}</span>
|
||||
.{{ $options.filters.goodsFormatPrice(goodsDetail.promotionPrice)[1] }}
|
||||
<span class="goods-price-promotionShow goods-price-bigshow">{{ goodsFormatPrice(goodsDetail.promotionPrice)[0] }}</span>
|
||||
.{{ goodsFormatPrice(goodsDetail.promotionPrice)[1] }}
|
||||
</span>
|
||||
<span v-if="pointDetail.points">
|
||||
<span class="goods-price-promotionShow goods-price-bigshow">{{ pointDetail.points }}</span>
|
||||
@@ -21,8 +21,8 @@
|
||||
</span>
|
||||
<div class="promotion-box">
|
||||
¥
|
||||
<span class="goods-price-bigshow">{{ $options.filters.goodsFormatPrice(goodsDetail.price)[0] }}</span>
|
||||
.{{ $options.filters.goodsFormatPrice(goodsDetail.price)[1] }}
|
||||
<span class="goods-price-bigshow">{{ goodsFormatPrice(goodsDetail.price)[0] }}</span>
|
||||
.{{ goodsFormatPrice(goodsDetail.price)[1] }}
|
||||
</div>
|
||||
</view>
|
||||
<!-- 正常商品的价格 -->
|
||||
@@ -32,8 +32,8 @@
|
||||
<div class="goods-price" v-for="(item, index) in wholesaleList" :key="index">
|
||||
<span>
|
||||
¥
|
||||
<span class="goods-price-bigshow">{{ $options.filters.goodsFormatPrice(item.price)[0] }}</span>
|
||||
.{{ $options.filters.goodsFormatPrice(item.price)[1] }}
|
||||
<span class="goods-price-bigshow">{{ goodsFormatPrice(item.price)[0] }}</span>
|
||||
.{{ goodsFormatPrice(item.price)[1] }}
|
||||
</span>
|
||||
<span class="wholesale-item">{{ item.num }}{{ goodsDetail.goodsUnit }}</span>
|
||||
</div>
|
||||
@@ -41,8 +41,8 @@
|
||||
<div class="goods-price" v-else>
|
||||
<span>
|
||||
¥
|
||||
<span class="goods-price-bigshow">{{ $options.filters.goodsFormatPrice(goodsDetail.price)[0] }}</span>
|
||||
.{{ $options.filters.goodsFormatPrice(goodsDetail.price)[1] }}
|
||||
<span class="goods-price-bigshow">{{ goodsFormatPrice(goodsDetail.price)[0] }}</span>
|
||||
.{{ goodsFormatPrice(goodsDetail.price)[1] }}
|
||||
</span>
|
||||
</div>
|
||||
</view>
|
||||
@@ -261,7 +261,7 @@ export default {
|
||||
}
|
||||
});
|
||||
if (selectedSkuId?.skuId) {
|
||||
this.$set(this.currentSelected, index, specValue.value);
|
||||
this.currentSelected[index] = specValue.value;
|
||||
this.selectSkuList = {
|
||||
spec: {
|
||||
specName: val.name,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
|
||||
<div class="index">
|
||||
<u-modal v-model="show" :show-title="false" :show-confirm-button="false" mask-close-able>
|
||||
<u-modal v-model:show="show" :show-title="false" :show-confirm-button="false" mask-close-able>
|
||||
<view class="slot-content">
|
||||
<image @click="downLoad()" class="img" :src="imgUrl" />
|
||||
<div class="canvas-hide">
|
||||
|
||||
@@ -208,7 +208,7 @@ export default {
|
||||
this.tabCurrentIndex++;
|
||||
|
||||
// 当前距离重新为最上面
|
||||
this.$set(this,'scrollTop',0)
|
||||
this['scrollTop'] = 0
|
||||
}
|
||||
} catch (error) {
|
||||
uni.hideLoading();
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
height="330rpx"
|
||||
mode="aspectFit"
|
||||
>
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
</u-image>
|
||||
</view>
|
||||
<view class="goods-detail">
|
||||
@@ -23,9 +23,9 @@
|
||||
<div class="price" v-if="item.price != undefined">
|
||||
¥<span
|
||||
>{{
|
||||
$options.filters.goodsFormatPrice(item.price)[0]
|
||||
goodsFormatPrice(item.price)[0]
|
||||
}} </span
|
||||
>.{{ $options.filters.goodsFormatPrice(item.price)[1] }}
|
||||
>.{{ goodsFormatPrice(item.price)[1] }}
|
||||
</div>
|
||||
</view>
|
||||
<div class="count-config" @click="navigateToDetailPage(item)">
|
||||
@@ -67,7 +67,7 @@
|
||||
mode="aspectFit"
|
||||
:src="item.goodsImage || item.thumbnail"
|
||||
>
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
</u-image>
|
||||
</div>
|
||||
<div class="goods-detail">
|
||||
@@ -77,8 +77,8 @@
|
||||
<view class="price-box" @click="navigateToDetailPage(item)">
|
||||
<div class="price" v-if="item.price != undefined">
|
||||
¥<span
|
||||
>{{ $options.filters.goodsFormatPrice(item.price)[0] }} </span
|
||||
>.{{ $options.filters.goodsFormatPrice(item.price)[1] }}
|
||||
>{{ goodsFormatPrice(item.price)[0] }} </span
|
||||
>.{{ goodsFormatPrice(item.price)[1] }}
|
||||
</div>
|
||||
</view>
|
||||
<div class="promotion" @click="navigateToDetailPage(item)">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<view v-for="(item, index) in res" :key="index" class="goods-item">
|
||||
<view class="image-wrapper" @click="navigateToDetailPage(item)">
|
||||
<u-image :src="item.thumbnail" width="100%" height='330rpx' mode="aspectFit">
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
</u-image>
|
||||
</view>
|
||||
<view class="goods-detail">
|
||||
@@ -15,8 +15,8 @@
|
||||
</div>
|
||||
<view class="price-box" @click="navigateToDetailPage(item)">
|
||||
<div class="price" v-if="item.price!=undefined">
|
||||
¥<span>{{ $options.filters.goodsFormatPrice(item.price )[0] }} </span>.{{
|
||||
$options.filters.goodsFormatPrice(item.price )[1]
|
||||
¥<span>{{ goodsFormatPrice(item.price )[0] }} </span>.{{
|
||||
goodsFormatPrice(item.price )[1]
|
||||
}}
|
||||
</div>
|
||||
</view>
|
||||
@@ -53,15 +53,15 @@
|
||||
<div class="flex goods-col">
|
||||
<div class="goods-img" @click="navigateToDetailPage(item)">
|
||||
<u-image width="230rpx" mode="aspectFit" border-radius='16' height="230rpx" :src="item.thumbnail">
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
</u-image>
|
||||
</div>
|
||||
<div class="goods-detail">
|
||||
<div class="title clamp3" @click="navigateToDetailPage(item)">{{ item.goodsName }}</div>
|
||||
<view class="price-box" @click="navigateToDetailPage(item)">
|
||||
<div class="price" v-if="item.price!=undefined">
|
||||
¥<span>{{ $options.filters.goodsFormatPrice(item.price )[0] }} </span>.{{
|
||||
$options.filters.goodsFormatPrice(item.price )[1]
|
||||
¥<span>{{ goodsFormatPrice(item.price )[0] }} </span>.{{
|
||||
goodsFormatPrice(item.price )[1]
|
||||
}}
|
||||
</div>
|
||||
</view>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="flex goods-col">
|
||||
<div class="goods-img">
|
||||
<u-image width="230rpx" mode="aspectFit" border-radius='16' height="230rpx" :src="item.goodsImage || item.thumbnail">
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
</u-image>
|
||||
</div>
|
||||
<div class="goods-detail">
|
||||
@@ -13,15 +13,15 @@
|
||||
<view class="price-box">
|
||||
<!-- 秒杀 / 拼团 -->
|
||||
<div class="price" v-if="!type && item.price!=undefined">
|
||||
¥<span>{{ $options.filters.goodsFormatPrice(item.price )[0] }} </span>.{{
|
||||
$options.filters.goodsFormatPrice(item.price )[1]
|
||||
¥<span>{{ goodsFormatPrice(item.price )[0] }} </span>.{{
|
||||
goodsFormatPrice(item.price )[1]
|
||||
}}
|
||||
</div>
|
||||
<!-- 砍价 -->
|
||||
<div class="price" v-if="type && item.purchasePrice!=undefined">
|
||||
最低:
|
||||
¥<span>{{ $options.filters.goodsFormatPrice(item.purchasePrice )[0] }} </span>.{{
|
||||
$options.filters.goodsFormatPrice(item.purchasePrice )[1]
|
||||
¥<span>{{ goodsFormatPrice(item.purchasePrice )[0] }} </span>.{{
|
||||
goodsFormatPrice(item.purchasePrice )[1]
|
||||
}}
|
||||
</div>
|
||||
<!-- 兜底策略如果金额是0 -->
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<!-- 遮罩层 -->
|
||||
<u-popup @close="close" v-model="show" mode="bottom" border-radius="30" height="260rpx">
|
||||
<u-popup @close="close" v-model:show="show" mode="bottom" border-radius="30" height="260rpx">
|
||||
|
||||
<view class="share-title">
|
||||
<span>分享至</span>
|
||||
@@ -31,7 +31,8 @@
|
||||
<script>
|
||||
import { h5Copy } from "@/js_sdk/h5-copy/h5-copy.js";
|
||||
import configs from "@/config/config";
|
||||
import mpShare from "uview-ui/libs/mixin/mpShare.js";
|
||||
import mpShare from "@/utils/mpShare.js";
|
||||
import { setClipboard } from "@/utils/filters.js";
|
||||
|
||||
export default {
|
||||
mixins: [mpShare],
|
||||
@@ -83,7 +84,7 @@ export default {
|
||||
this.configs.shareLink +
|
||||
getCurrentPages()[getCurrentPages().length - 1].__page__.fullPath;
|
||||
}
|
||||
this.$options.filters.setClipboard(content)
|
||||
setClipboard(content)
|
||||
},
|
||||
// #endif
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<u-popup v-model="show" mode="bottom" height="800rpx" border-radius="14">
|
||||
<u-popup v-model:show="show" mode="bottom" height="800rpx" border-radius="14">
|
||||
<div class="wrapper">
|
||||
<view class="down-goods-tips">该商品已下架</view>
|
||||
<scroll-view scroll-y="true" style="height: 670rpx">
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
:class="['xt__box', `xt__box-${type + ''}`, `xt__box::after`]"
|
||||
>
|
||||
<view :style="{ borderColor: boxActiveColor }" class="xt__middle-line" v-if="type === 'middle' && !code[index]"></view>
|
||||
<text class="xt__code-text">{{ code[index] | codeFormat(isPassword) }}</text>
|
||||
<text class="xt__code-text">{{ codeFormat(code[index], isPassword) }}</text>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
@@ -178,14 +178,7 @@ export default {
|
||||
// 输入失去焦点
|
||||
inputBlur() {
|
||||
this.cursorVisible = false;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value(val) {
|
||||
this.code = val;
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
},
|
||||
codeFormat(val, isPassword) {
|
||||
let value = '';
|
||||
if (val) {
|
||||
@@ -193,6 +186,11 @@ export default {
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value(val) {
|
||||
this.code = val;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
98
main.js
98
main.js
@@ -1,59 +1,41 @@
|
||||
import Vue from "vue";
|
||||
import App from "./App";
|
||||
import * as filters from "./utils/filters.js"; // global filter
|
||||
import uView from "uview-ui";
|
||||
import store from "./store";
|
||||
import config from '@/config/config';
|
||||
import airBtn from "@/components/m-airbtn/index.vue";
|
||||
import socketIO from './pages/mine/im/socket';
|
||||
/**
|
||||
* 仅在h5中显示唤醒app功能
|
||||
* 在h5页面手动挂载
|
||||
*
|
||||
*/
|
||||
// #ifdef H5
|
||||
if (config.enableMiniBarStartUpApp) {
|
||||
let btn = Vue.component("airBtn", airBtn); //全局注册
|
||||
document.body.appendChild(new btn().$mount().$el);
|
||||
import { createSSRApp } from 'vue'
|
||||
import App from './App'
|
||||
import uviewPlus from 'uview-plus'
|
||||
import store from './store'
|
||||
import config from '@/config/config'
|
||||
import airBtn from '@/components/m-airbtn/index.vue'
|
||||
import mpShare from '@/utils/mpShare.js'
|
||||
import * as filterUtils from './utils/filters.js'
|
||||
|
||||
export function createApp() {
|
||||
const app = createSSRApp(App)
|
||||
|
||||
app.use(store)
|
||||
app.use(uviewPlus)
|
||||
|
||||
app.config.globalProperties.$store = store
|
||||
app.config.globalProperties.$mainColor = config.mainColor
|
||||
app.config.globalProperties.$lightColor = config.lightColor
|
||||
app.config.globalProperties.$aiderLightColor = config.aiderLightColor
|
||||
|
||||
const filterMethods = {}
|
||||
Object.keys(filterUtils).forEach((key) => {
|
||||
if (typeof filterUtils[key] === 'function') {
|
||||
filterMethods[key] = filterUtils[key]
|
||||
}
|
||||
})
|
||||
app.mixin({ methods: filterMethods })
|
||||
app.mixin(mpShare)
|
||||
|
||||
// #ifdef H5
|
||||
if (config.enableMiniBarStartUpApp) {
|
||||
const mountPoint = document.createElement('div')
|
||||
document.body.appendChild(mountPoint)
|
||||
createSSRApp(airBtn).mount(mountPoint)
|
||||
}
|
||||
// #endif
|
||||
|
||||
return {
|
||||
app
|
||||
}
|
||||
}
|
||||
// #endif
|
||||
|
||||
// 引入uView对小程序分享的mixin封装
|
||||
let mpShare = require('uview-ui/libs/mixin/mpShare.js');
|
||||
Vue.mixin(mpShare)
|
||||
|
||||
/**
|
||||
* 全局filters
|
||||
*/
|
||||
|
||||
Object.keys(filters).forEach((key) => {
|
||||
Vue.filter(key, filters[key]);
|
||||
});
|
||||
|
||||
// 引入Vuex
|
||||
Vue.prototype.$store = store;
|
||||
// Vue.prototype.socketIo = new socketIO();
|
||||
Vue.use(uView);
|
||||
Vue.config.productionTip = false;
|
||||
|
||||
|
||||
/**
|
||||
* 注意!
|
||||
* 此处将常用的颜色嵌入到原型链上面
|
||||
* 颜色使用驼峰命名对应 uni.scss中全局颜色变量名
|
||||
* 如需更换主题请修改此处以及uni.scss中的全局颜色
|
||||
*/
|
||||
// 主题色
|
||||
Vue.prototype.$mainColor = config.mainColor;
|
||||
// 高亮主题色
|
||||
Vue.prototype.$lightColor = config.lightColor;
|
||||
// 辅助高亮颜色
|
||||
Vue.prototype.$aiderLightColor = config.aiderLightColor;
|
||||
|
||||
|
||||
App.mpType = "app";
|
||||
|
||||
const app = new Vue({
|
||||
...App,
|
||||
});
|
||||
app.$mount();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"vueVersion" : "3",
|
||||
"name" : "lilishop",
|
||||
"appid" : "__UNI__ED807EA",
|
||||
"description" : "",
|
||||
|
||||
977
package-lock.json
generated
Normal file
977
package-lock.json
generated
Normal file
@@ -0,0 +1,977 @@
|
||||
{
|
||||
"name": "lilishop-uniapp",
|
||||
"version": "4.5.3",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "lilishop-uniapp",
|
||||
"version": "4.5.3",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"sass": "^1.89.2",
|
||||
"uview-plus": "^3.4.72",
|
||||
"vuex": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-string-parser": {
|
||||
"version": "7.29.7",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.29.7",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.29.7",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.29.7"
|
||||
},
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.29.7",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": "^7.29.7",
|
||||
"@babel/helper-validator-identifier": "^7.29.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/sourcemap-codec": {
|
||||
"version": "1.5.5",
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@parcel/watcher": {
|
||||
"version": "2.5.6",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"detect-libc": "^2.0.3",
|
||||
"is-glob": "^4.0.3",
|
||||
"node-addon-api": "^7.0.0",
|
||||
"picomatch": "^4.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@parcel/watcher-android-arm64": "2.5.6",
|
||||
"@parcel/watcher-darwin-arm64": "2.5.6",
|
||||
"@parcel/watcher-darwin-x64": "2.5.6",
|
||||
"@parcel/watcher-freebsd-x64": "2.5.6",
|
||||
"@parcel/watcher-linux-arm-glibc": "2.5.6",
|
||||
"@parcel/watcher-linux-arm-musl": "2.5.6",
|
||||
"@parcel/watcher-linux-arm64-glibc": "2.5.6",
|
||||
"@parcel/watcher-linux-arm64-musl": "2.5.6",
|
||||
"@parcel/watcher-linux-x64-glibc": "2.5.6",
|
||||
"@parcel/watcher-linux-x64-musl": "2.5.6",
|
||||
"@parcel/watcher-win32-arm64": "2.5.6",
|
||||
"@parcel/watcher-win32-ia32": "2.5.6",
|
||||
"@parcel/watcher-win32-x64": "2.5.6"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher-darwin-x64": {
|
||||
"version": "2.5.6",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-android-arm64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz",
|
||||
"integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-darwin-arm64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz",
|
||||
"integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-freebsd-x64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz",
|
||||
"integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-linux-arm-glibc": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz",
|
||||
"integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-linux-arm-musl": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz",
|
||||
"integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-linux-arm64-glibc": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz",
|
||||
"integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-linux-arm64-musl": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz",
|
||||
"integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-linux-x64-glibc": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz",
|
||||
"integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-linux-x64-musl": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz",
|
||||
"integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-win32-arm64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz",
|
||||
"integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-win32-ia32": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz",
|
||||
"integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@parcel/watcher/node_modules/@parcel/watcher-win32-x64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz",
|
||||
"integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.29.3",
|
||||
"@vue/shared": "3.5.35",
|
||||
"entities": "^7.0.1",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map-js": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.29.3",
|
||||
"@vue/compiler-core": "3.5.35",
|
||||
"@vue/compiler-dom": "3.5.35",
|
||||
"@vue/compiler-ssr": "3.5.35",
|
||||
"@vue/shared": "3.5.35",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.21",
|
||||
"postcss": "^8.5.15",
|
||||
"source-map-js": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/devtools-api": {
|
||||
"version": "6.6.4",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-dom": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.5.35",
|
||||
"@vue/runtime-core": "3.5.35",
|
||||
"@vue/shared": "3.5.35",
|
||||
"csstype": "^3.2.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/server-renderer": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-ssr": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "3.5.35"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/chokidar": {
|
||||
"version": "5.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"readdirp": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 20.19.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
}
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "3.2.3",
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/detect-libc": {
|
||||
"version": "2.1.2",
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/entities": {
|
||||
"version": "7.0.1",
|
||||
"license": "BSD-2-Clause",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/immutable": {
|
||||
"version": "5.1.6",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/is-extglob": {
|
||||
"version": "2.1.1",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-glob": {
|
||||
"version": "4.0.3",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"is-extglob": "^2.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/magic-string": {
|
||||
"version": "0.30.21",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.5.5"
|
||||
}
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.12",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/node-addon-api": {
|
||||
"version": "7.1.1",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.1.1",
|
||||
"license": "ISC",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "4.0.4",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.5.15",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.12",
|
||||
"picocolors": "^1.1.1",
|
||||
"source-map-js": "^1.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/readdirp": {
|
||||
"version": "5.0.0",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 20.19.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "individual",
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
}
|
||||
},
|
||||
"node_modules/sass": {
|
||||
"version": "1.100.0",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.100.0.tgz",
|
||||
"integrity": "sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==",
|
||||
"dependencies": {
|
||||
"chokidar": "^5.0.0",
|
||||
"immutable": "^5.1.5",
|
||||
"source-map-js": ">=0.6.2 <2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"sass": "sass.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=20.19.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@parcel/watcher": "^2.4.1"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.2.1",
|
||||
"license": "BSD-3-Clause",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/uview-plus": {
|
||||
"version": "3.8.42",
|
||||
"resolved": "https://registry.npmjs.org/uview-plus/-/uview-plus-3.8.42.tgz",
|
||||
"integrity": "sha512-AknhV9x01Ql3WpxAtH+VoirKLqSnmHC6HLjfsj70bm8ez+DaiQcIcHPS7gdA/JxfKpWx4GWcaz/RtzKX7OsriA==",
|
||||
"engines": {
|
||||
"HBuilderX": "^3.1.0",
|
||||
"uni-app": "^4.66",
|
||||
"uni-app-x": ""
|
||||
}
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.5.35",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.5.35",
|
||||
"@vue/compiler-sfc": "3.5.35",
|
||||
"@vue/runtime-dom": "3.5.35",
|
||||
"@vue/server-renderer": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/vuex": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz",
|
||||
"integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
|
||||
"dependencies": {
|
||||
"@vue/devtools-api": "^6.0.0-beta.11"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "^3.2.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": {
|
||||
"version": "7.29.7",
|
||||
"peer": true
|
||||
},
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.29.7",
|
||||
"peer": true
|
||||
},
|
||||
"@babel/parser": {
|
||||
"version": "7.29.7",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.29.7"
|
||||
}
|
||||
},
|
||||
"@babel/types": {
|
||||
"version": "7.29.7",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@babel/helper-string-parser": "^7.29.7",
|
||||
"@babel/helper-validator-identifier": "^7.29.7"
|
||||
}
|
||||
},
|
||||
"@jridgewell/sourcemap-codec": {
|
||||
"version": "1.5.5",
|
||||
"peer": true
|
||||
},
|
||||
"@parcel/watcher": {
|
||||
"version": "2.5.6",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@parcel/watcher-android-arm64": "2.5.6",
|
||||
"@parcel/watcher-darwin-arm64": "2.5.6",
|
||||
"@parcel/watcher-darwin-x64": "2.5.6",
|
||||
"@parcel/watcher-freebsd-x64": "2.5.6",
|
||||
"@parcel/watcher-linux-arm-glibc": "2.5.6",
|
||||
"@parcel/watcher-linux-arm-musl": "2.5.6",
|
||||
"@parcel/watcher-linux-arm64-glibc": "2.5.6",
|
||||
"@parcel/watcher-linux-arm64-musl": "2.5.6",
|
||||
"@parcel/watcher-linux-x64-glibc": "2.5.6",
|
||||
"@parcel/watcher-linux-x64-musl": "2.5.6",
|
||||
"@parcel/watcher-win32-arm64": "2.5.6",
|
||||
"@parcel/watcher-win32-ia32": "2.5.6",
|
||||
"@parcel/watcher-win32-x64": "2.5.6",
|
||||
"detect-libc": "^2.0.3",
|
||||
"is-glob": "^4.0.3",
|
||||
"node-addon-api": "^7.0.0",
|
||||
"picomatch": "^4.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@parcel/watcher-android-arm64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz",
|
||||
"integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-darwin-arm64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz",
|
||||
"integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-freebsd-x64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz",
|
||||
"integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-linux-arm-glibc": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz",
|
||||
"integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-linux-arm-musl": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz",
|
||||
"integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-linux-arm64-glibc": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz",
|
||||
"integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-linux-arm64-musl": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz",
|
||||
"integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-linux-x64-glibc": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz",
|
||||
"integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-linux-x64-musl": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz",
|
||||
"integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-win32-arm64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz",
|
||||
"integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-win32-ia32": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz",
|
||||
"integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==",
|
||||
"optional": true
|
||||
},
|
||||
"@parcel/watcher-win32-x64": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz",
|
||||
"integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==",
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@parcel/watcher-darwin-x64": {
|
||||
"version": "2.5.6",
|
||||
"optional": true
|
||||
},
|
||||
"@vue/compiler-core": {
|
||||
"version": "3.5.35",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@babel/parser": "^7.29.3",
|
||||
"@vue/shared": "3.5.35",
|
||||
"entities": "^7.0.1",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map-js": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"@vue/compiler-dom": {
|
||||
"version": "3.5.35",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/compiler-core": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"@vue/compiler-sfc": {
|
||||
"version": "3.5.35",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@babel/parser": "^7.29.3",
|
||||
"@vue/compiler-core": "3.5.35",
|
||||
"@vue/compiler-dom": "3.5.35",
|
||||
"@vue/compiler-ssr": "3.5.35",
|
||||
"@vue/shared": "3.5.35",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.21",
|
||||
"postcss": "^8.5.15",
|
||||
"source-map-js": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"@vue/compiler-ssr": {
|
||||
"version": "3.5.35",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/compiler-dom": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"@vue/devtools-api": {
|
||||
"version": "6.6.4"
|
||||
},
|
||||
"@vue/reactivity": {
|
||||
"version": "3.5.35",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"@vue/runtime-core": {
|
||||
"version": "3.5.35",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/reactivity": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"@vue/runtime-dom": {
|
||||
"version": "3.5.35",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/reactivity": "3.5.35",
|
||||
"@vue/runtime-core": "3.5.35",
|
||||
"@vue/shared": "3.5.35",
|
||||
"csstype": "^3.2.3"
|
||||
}
|
||||
},
|
||||
"@vue/server-renderer": {
|
||||
"version": "3.5.35",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/compiler-ssr": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"@vue/shared": {
|
||||
"version": "3.5.35",
|
||||
"peer": true
|
||||
},
|
||||
"chokidar": {
|
||||
"version": "5.0.0",
|
||||
"requires": {
|
||||
"readdirp": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"csstype": {
|
||||
"version": "3.2.3",
|
||||
"peer": true
|
||||
},
|
||||
"detect-libc": {
|
||||
"version": "2.1.2",
|
||||
"optional": true
|
||||
},
|
||||
"entities": {
|
||||
"version": "7.0.1",
|
||||
"peer": true
|
||||
},
|
||||
"estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"peer": true
|
||||
},
|
||||
"immutable": {
|
||||
"version": "5.1.6"
|
||||
},
|
||||
"is-extglob": {
|
||||
"version": "2.1.1",
|
||||
"optional": true
|
||||
},
|
||||
"is-glob": {
|
||||
"version": "4.0.3",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-extglob": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"magic-string": {
|
||||
"version": "0.30.21",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@jridgewell/sourcemap-codec": "^1.5.5"
|
||||
}
|
||||
},
|
||||
"nanoid": {
|
||||
"version": "3.3.12",
|
||||
"peer": true
|
||||
},
|
||||
"node-addon-api": {
|
||||
"version": "7.1.1",
|
||||
"optional": true
|
||||
},
|
||||
"picocolors": {
|
||||
"version": "1.1.1",
|
||||
"peer": true
|
||||
},
|
||||
"picomatch": {
|
||||
"version": "4.0.4",
|
||||
"optional": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "8.5.15",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"nanoid": "^3.3.12",
|
||||
"picocolors": "^1.1.1",
|
||||
"source-map-js": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"readdirp": {
|
||||
"version": "5.0.0"
|
||||
},
|
||||
"sass": {
|
||||
"version": "1.100.0",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.100.0.tgz",
|
||||
"integrity": "sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==",
|
||||
"requires": {
|
||||
"@parcel/watcher": "^2.4.1",
|
||||
"chokidar": "^5.0.0",
|
||||
"immutable": "^5.1.5",
|
||||
"source-map-js": ">=0.6.2 <2.0.0"
|
||||
}
|
||||
},
|
||||
"source-map-js": {
|
||||
"version": "1.2.1"
|
||||
},
|
||||
"uview-plus": {
|
||||
"version": "3.8.42",
|
||||
"resolved": "https://registry.npmjs.org/uview-plus/-/uview-plus-3.8.42.tgz",
|
||||
"integrity": "sha512-AknhV9x01Ql3WpxAtH+VoirKLqSnmHC6HLjfsj70bm8ez+DaiQcIcHPS7gdA/JxfKpWx4GWcaz/RtzKX7OsriA=="
|
||||
},
|
||||
"vue": {
|
||||
"version": "3.5.35",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/compiler-dom": "3.5.35",
|
||||
"@vue/compiler-sfc": "3.5.35",
|
||||
"@vue/runtime-dom": "3.5.35",
|
||||
"@vue/server-renderer": "3.5.35",
|
||||
"@vue/shared": "3.5.35"
|
||||
}
|
||||
},
|
||||
"vuex": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz",
|
||||
"integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
|
||||
"requires": {
|
||||
"@vue/devtools-api": "^6.0.0-beta.11"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
19
package.json
Normal file
19
package.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "lilishop-uniapp",
|
||||
"version": "4.5.3",
|
||||
"description": "Lilishop uni-app mobile client (Vue 3)",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"migrate:vue3": "node scripts/migrate-vue3.js && node scripts/migrate-filters-usage.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://gitee.com/beijing_hongye_huicheng/lilishop-uniapp"
|
||||
},
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"sass": "^1.89.2",
|
||||
"uview-plus": "^3.4.72",
|
||||
"vuex": "^4.1.0"
|
||||
}
|
||||
}
|
||||
19
pages.json
19
pages.json
@@ -1,7 +1,12 @@
|
||||
{
|
||||
|
||||
"easycom": {
|
||||
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
|
||||
"autoscan": true,
|
||||
"custom": {
|
||||
"^u--(.*)": "uview-plus/components/u-$1/u-$1.vue",
|
||||
"^up-(.*)": "uview-plus/components/u-$1/u-$1.vue",
|
||||
"^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue"
|
||||
}
|
||||
},
|
||||
"pages": [
|
||||
|
||||
@@ -211,12 +216,12 @@
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "deposit/withdrawApply",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "deposit/withdrawApply",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "deposit/info",
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<span v-if="item.couponType == 'DISCOUNT'">{{ item.couponDiscount }}折</span>
|
||||
<span v-else>{{ item.price }}元</span>
|
||||
</view>
|
||||
<view>满{{ item.consumeThreshold | unitPrice }}元可用</view>
|
||||
<view>满{{unitPrice(item.consumeThreshold) }}元可用</view>
|
||||
</view>
|
||||
<view class="circle circle-top"></view>
|
||||
<view class="circle circle-bottom"></view>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<view class="body">
|
||||
<view class="top-view">
|
||||
<view class="title">{{coupon.title}}</view>
|
||||
<view class="price" v-if="coupon.couponType =='PRICE'"><text>¥</text>{{coupon.price | unitPrice}}</view>
|
||||
<view class="price" v-if="coupon.couponType =='PRICE'"><text>¥</text>{{unitPrice(coupon.price)}}</view>
|
||||
<view class="price" v-if="coupon.couponType =='DISCOUNT'">{{coupon.discount}}折</view>
|
||||
<view class="text">满{{coupon.consumeThreshold}}元可用</view>
|
||||
<view class="bg-quan">
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<span v-if="item.couponType == 'DISCOUNT'">{{ item.discount }}折</span>
|
||||
<span v-else>{{ item.price }}元</span>
|
||||
</view>
|
||||
<view>满{{ item.consumeThreshold | unitPrice }}元可用</view>
|
||||
<view>满{{unitPrice(item.consumeThreshold) }}元可用</view>
|
||||
</view>
|
||||
<view class="circle circle-top"></view>
|
||||
<view class="circle circle-bottom"></view>
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
>
|
||||
<view class="price" v-else>{{ coupon.price }}元</view>
|
||||
<view class="sub-price"
|
||||
>满{{ coupon.consumeThreshold | unitPrice }}可用</view
|
||||
>满{{unitPrice(coupon.consumeThreshold) }}可用</view
|
||||
>
|
||||
</view>
|
||||
<view class="circle circle-top"></view>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
</p>
|
||||
<p class="ptips">
|
||||
支付金额
|
||||
<span>¥{{ cashierParams.price | unitPrice }}</span>
|
||||
<span>¥{{unitPrice(cashierParams.price) }}</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div v-if="item == 'WALLET'">
|
||||
<u-icon class="method_icon" name="red-packet-fill" color="#dd6161" size="80"></u-icon>
|
||||
<span class="method_name">余额支付(当前余额:¥{{ walletValue | unitPrice }})</span>
|
||||
<span class="method_name">余额支付(当前余额:¥{{unitPrice(walletValue) }})</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col3" @click="awaitPay(item)" textAlign="right">
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class='goods' v-if="selectedGoods">
|
||||
<image class="goods-image" :src="selectedGoods.thumbnail" alt="">
|
||||
<p class="goodsName">{{selectedGoods.goodsName}}</p>
|
||||
<div class="goodsPrice">{{(selectedGoods.promotionPrice || selectedGoods.price ) | unitPrice('¥')}}</div>
|
||||
<div class="goodsPrice">{{(selectedGoods.promotionPrice ||unitPrice(selectedGoods.price ), '¥')}}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="tips">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="wrapper">
|
||||
<div class="pay-wrapper">
|
||||
<div class="pay-money">
|
||||
¥{{ Number(payPrice) | unitPrice }}
|
||||
¥{{unitPrice(Number(payPrice)) }}
|
||||
</div>
|
||||
<div class="pay-btns">
|
||||
<div v-show="!from" @click="checkOrder">查看{{ this.orderType == "RECHARGE" ? '余额' : '订单' }}</div>
|
||||
@@ -16,7 +16,7 @@
|
||||
<div>
|
||||
支付方式:
|
||||
</div>
|
||||
<div>{{ paymentMethod | paymentTypeFilter }}</div>
|
||||
<div>{{ paymentTypeFilter(paymentMethod) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -41,7 +41,14 @@ export default {
|
||||
components: {
|
||||
goodsRecommend,
|
||||
},
|
||||
filters: {
|
||||
onLoad(options) {
|
||||
this.paymentMethod = options.paymentMethod || "";
|
||||
this.from = options.from || "";
|
||||
this.payPrice = options.payPrice || 0;
|
||||
this.orderType = options.orderType;
|
||||
|
||||
},
|
||||
methods: {
|
||||
paymentTypeFilter(val) {
|
||||
switch (val) {
|
||||
case "WECHAT":
|
||||
@@ -54,15 +61,6 @@ export default {
|
||||
return "";
|
||||
}
|
||||
},
|
||||
},
|
||||
onLoad(options) {
|
||||
this.paymentMethod = options.paymentMethod || "";
|
||||
this.from = options.from || "";
|
||||
this.payPrice = options.payPrice || 0;
|
||||
this.orderType = options.orderType;
|
||||
|
||||
},
|
||||
methods: {
|
||||
checkOrder() {
|
||||
/**
|
||||
* 查看订单
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="add-address">
|
||||
<div class="uForm">
|
||||
<u-form :border-bottom="false" :model="form" ref="uForm" :error-type="['toast']" :rule="rules">
|
||||
<u-form :border-bottom="false" :model="form" ref="uForm" error-type="toast" :rules="rules">
|
||||
<!-- #ifndef H5 -->
|
||||
<view class="selectAddress" @click="clickUniMap">
|
||||
选择收货地址
|
||||
@@ -277,7 +277,7 @@ export default {
|
||||
getAddressDetail(option.id).then((res) => {
|
||||
const params = res.data.result;
|
||||
params.___path = params.consigneeAddressPath;
|
||||
this.$set(this, "form", params);
|
||||
this["form"] = params;
|
||||
|
||||
if (this.$store.state.isShowToast){ uni.hideLoading() };
|
||||
});
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<u-icon name="plus-circle"></u-icon>
|
||||
添加新收货人
|
||||
</button>
|
||||
<u-action-sheet :list="removeList" :tips="tips" v-model="showAction" @click="deleteAddressMessage"></u-action-sheet>
|
||||
<u-action-sheet :list="removeList" :tips="tips" v-model:show="showAction" @click="deleteAddressMessage"></u-action-sheet>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
添加新收货人
|
||||
</button>
|
||||
|
||||
<u-action-sheet :list="removeList" :tips="tips" v-model="showAction" @click="deleteAddressMessage"></u-action-sheet>
|
||||
<u-action-sheet :list="removeList" :tips="tips" v-model:show="showAction" @click="deleteAddressMessage"></u-action-sheet>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -86,7 +86,7 @@ export default {
|
||||
* 进入页面检测当前账户是否登录
|
||||
*/
|
||||
onShow() {
|
||||
if (this.$options.filters.tipsToLogin()) {
|
||||
if (this.tipsToLogin()) {
|
||||
this.getAddressList();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
</view>
|
||||
<view style="height: 100px"></view>
|
||||
</view>
|
||||
<u-action-sheet :list="removeList" :tips="tips" v-model="showAction" @click="deleteAddressMessage"></u-action-sheet>
|
||||
<u-action-sheet :list="removeList" :tips="tips" v-model:show="showAction" @click="deleteAddressMessage"></u-action-sheet>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<view class="wrapper-show-money">
|
||||
<view class="money-view">
|
||||
<h3>预存款金额 </h3>
|
||||
<view class="money">¥{{walletNum | unitPrice }}</view>
|
||||
<view class="money">¥{{unitPrice(walletNum) }}</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
@@ -20,9 +20,9 @@
|
||||
<!-- <view class="-number">{{logItem.detail}}</view> -->
|
||||
</view>
|
||||
<view class="view-item-change">
|
||||
<view class="-money green" v-if="logItem.serviceType == 'WALLET_PAY' || logItem.serviceType == 'WALLET_WITHDRAWAL'"> {{logItem.money | unitPrice}} </view>
|
||||
<view class="-money green" v-if="logItem.serviceType == 'WALLET_PAY' || logItem.serviceType == 'WALLET_WITHDRAWAL'"> {{unitPrice(logItem.money)}} </view>
|
||||
<view class="-money" v-if="logItem.serviceType == 'WALLET_REFUND' || logItem.serviceType == 'WALLET_RECHARGE' || logItem.serviceType == 'WALLET_COMMISSION' ">
|
||||
+{{logItem.money | unitPrice}} </view>
|
||||
+{{unitPrice(logItem.money)}} </view>
|
||||
<view class="-time">{{logItem.createTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<view class="wrapper">
|
||||
<u-cell-group>
|
||||
<u-cell-item title="申请单号"></u-cell-item>
|
||||
<u-cell-item title="提现金额" value="新版本"></u-cell-item>
|
||||
<u-cell-item title="收款银行"></u-cell-item>
|
||||
<u-cell-item title="收款账号" value="新版本"></u-cell-item>
|
||||
<u-cell-item title="开户人姓名"></u-cell-item>
|
||||
<u-cell-item title="创建时间" value="新版本"></u-cell-item>
|
||||
<u-cell-item title="提现状态" value="新版本"></u-cell-item>
|
||||
<u-cell title="申请单号"></u-cell>
|
||||
<u-cell title="提现金额" value="新版本"></u-cell>
|
||||
<u-cell title="收款银行"></u-cell>
|
||||
<u-cell title="收款账号" value="新版本"></u-cell>
|
||||
<u-cell title="开户人姓名"></u-cell>
|
||||
<u-cell title="创建时间" value="新版本"></u-cell>
|
||||
<u-cell title="提现状态" value="新版本"></u-cell>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<u-navbar :custom-back="back" title="余额"></u-navbar>
|
||||
<u-navbar :auto-back="false" @leftClick="back" title="余额"></u-navbar>
|
||||
<div class="box">
|
||||
<div class="deposit">预存款金额</div>
|
||||
<div class="money">¥{{walletNum | unitPrice }}</div>
|
||||
<div class="money">¥{{unitPrice(walletNum) }}</div>
|
||||
<div class="operation-btns">
|
||||
<div class="operation-btn light" @click="navigateTo('/pages/mine/deposit/withdrawal')">提现</div>
|
||||
<div class="operation-btn" @click="navigateTo('/pages/mine/deposit/recharge')">充值</div>
|
||||
@@ -33,11 +33,11 @@ export default {
|
||||
};
|
||||
},
|
||||
async onShow() {
|
||||
if (this.$options.filters.isLogin("auth")) {
|
||||
if (this.isLogin("auth")) {
|
||||
let result = await getUserWallet(); //预存款
|
||||
this.walletNum = result.data.result.memberWallet;
|
||||
} else {
|
||||
this.$options.filters.navigateToLogin("redirectTo");
|
||||
this.navigateToLogin("redirectTo");
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<view class="-number" v-if="item.inspectRemark || item.errorMessage">{{ item.inspectRemark || item.errorMessage }}</view>
|
||||
</view>
|
||||
<view class="view-item-change">
|
||||
<view class="-money">-{{ item.applyMoney | unitPrice }}</view>
|
||||
<view class="-money">-{{unitPrice(item.applyMoney) }}</view>
|
||||
<view class="-time">{{ item.createTime || item.inspectTime || "" }}</view>
|
||||
<view v-if="item.applyStatus === 'WAIT_USER_CONFIRM'" class="confirm-btn" @click.stop="confirmWechatReceive(item)">确认收款</view>
|
||||
</view>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
<view class="all">
|
||||
<view @click="handleAll" :style="{ color: $mainColor }">全部</view>
|
||||
<view style="font-size: 24rpx; color: #999">可提现金额<span>{{ walletNum | unitPrice }}</span>元</view>
|
||||
<view style="font-size: 24rpx; color: #999">可提现金额<span>{{unitPrice(walletNum) }}</span>元</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
? "通过"
|
||||
: "拒绝"
|
||||
}}</view>
|
||||
<view class="price">+{{ item.price | unitPrice }}</view>
|
||||
<view class="price">+{{unitPrice(item.price) }}</view>
|
||||
</view>
|
||||
<view class="log-item-view">
|
||||
<view>{{ item.createTime }}</view>
|
||||
@@ -24,7 +24,7 @@
|
||||
<view class="log-item">
|
||||
<view class="log-item-view">
|
||||
<view class="title">{{ item.goodsName }}</view>
|
||||
<view class="price">提成金额:+{{ item.rebate | unitPrice }}</view>
|
||||
<view class="price">提成金额:+{{unitPrice(item.rebate) }}</view>
|
||||
</view>
|
||||
<view class="log-item-view">
|
||||
<view>创建时间:{{ item.createTime }}</view>
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
<view class="nav-list">
|
||||
<view class="total">可提现金额</view>
|
||||
<view class="price">{{ distributionData.canRebate | unitPrice }}</view>
|
||||
<view class="price">{{unitPrice(distributionData.canRebate) }}</view>
|
||||
<view class="frozen"
|
||||
>冻结金额{{ distributionData.commissionFrozen | unitPrice }}</view
|
||||
>冻结金额{{unitPrice(distributionData.commissionFrozen) }}</view
|
||||
>
|
||||
</view>
|
||||
<view class="nav">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="wrapper">
|
||||
<!-- 筛选弹出层 TODO后续版本更新 -->
|
||||
<!-- <u-popup width="90%" v-model="popup" mode="right">
|
||||
<!-- <u-popup width="90%" v-model:show="popup" mode="right">
|
||||
<view class="screen-title">商品筛选</view>
|
||||
|
||||
<view class="screen-view">
|
||||
@@ -67,8 +67,9 @@
|
||||
|
||||
<view class="goods-list">
|
||||
<scroll-view class="body-view" scroll-y @scrolltolower="renderDate">
|
||||
<u-swipe-action v-for="(item, index) in goodsList" :disabled="!params.checked" :show="item.___selected" @open="openAction(item)" :index="index" :options="options" bg-color="#fff"
|
||||
ref="swiperAction" :key="item.id" @click="changeActionTab(item)">
|
||||
<u-swipe-action v-for="(item, index) in goodsList" ref="swiperAction" :key="item.id">
|
||||
<u-swipe-action-item :disabled="!params.checked" :show="item.___selected" @open="openAction(item)" :name="index" :options="options"
|
||||
@click="changeActionTab(item)">
|
||||
|
||||
<div class="goods-item">
|
||||
<view class="goods-item-img" @click="handleNavgationGoods(item)">
|
||||
@@ -82,7 +83,7 @@
|
||||
<!-- 商品金额 -->
|
||||
<view class="-item-price" @click="handleNavgationGoods(item)">
|
||||
佣金:
|
||||
<span> ¥{{ item.commission | unitPrice }}</span>
|
||||
<span> ¥{{unitPrice(item.commission) }}</span>
|
||||
</view>
|
||||
<!-- 比率佣金 -->
|
||||
<view class="-item-bottom">
|
||||
@@ -92,7 +93,7 @@
|
||||
<span>{{ "5.00%" }}</span>
|
||||
</view> -->
|
||||
<view class="-item-yj">
|
||||
<span>¥{{ item.price | unitPrice }}</span>
|
||||
<span>¥{{unitPrice(item.price) }}</span>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
@@ -102,6 +103,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</div>
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
</scroll-view>
|
||||
|
||||
@@ -112,7 +114,7 @@
|
||||
</view>
|
||||
<canvas class="canvas-hide" canvas-id="qrcode" />
|
||||
<drawCanvas ref="drawCanvas" v-if="showFlag" :res="res" />
|
||||
<u-modal v-model="deleteShow" :confirm-style="{'color':lightColor}" @confirm="delectConfirm" show-cancel-button :content="deleteContent" :async-close="true"></u-modal>
|
||||
<u-modal v-model:show="deleteShow" :confirm-style="{'color':lightColor}" @confirm="delectConfirm" show-cancel-button :content="deleteContent" :async-close="true"></u-modal>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
@@ -215,9 +217,9 @@ export default {
|
||||
*/
|
||||
openAction(val) {
|
||||
this.goodsList.forEach((item) => {
|
||||
this.$set(item, "___selected", false);
|
||||
item["___selected"] = false;
|
||||
});
|
||||
this.$set(val, "___selected", true);
|
||||
val["___selected"] = true;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -242,7 +244,7 @@ export default {
|
||||
let callback = result.data.result;
|
||||
this.res.container.title = `${goods.goodsName}`;
|
||||
this.res.bottom.code = `data:image/png;base64,${callback}`;
|
||||
this.res.bottom.price = this.$options.filters.unitPrice(
|
||||
this.res.bottom.price = this.unitPrice(
|
||||
goods.price,
|
||||
"¥"
|
||||
);
|
||||
@@ -294,7 +296,7 @@ export default {
|
||||
distributionGoods(this.params).then((res) => {
|
||||
if (res.data.success && res.data.result.records.length >= 1) {
|
||||
res.data.result.records.forEach((item) => {
|
||||
this.$set(item, "___selected", false);
|
||||
item["___selected"] = false;
|
||||
});
|
||||
this.goodsList.push(...res.data.result.records);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<view class="all">
|
||||
<view @click="handleAll" :style="{ color: $mainColor }">全部</view>
|
||||
<view style="font-size: 24rpx; color: #999"
|
||||
>可提现金额<span>{{ distributionData.canRebate | unitPrice }}</span
|
||||
>可提现金额<span>{{unitPrice(distributionData.canRebate) }}</span
|
||||
>元</view
|
||||
>
|
||||
</view>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<u-parse :show-with-animation="true" :lazy-load="true" :selectable="true" :html="res.content" v-if="res"></u-parse>
|
||||
<u-parse :lazy-load="true" :selectable="true" :content="res.content" v-if="res"></u-parse>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -35,8 +35,7 @@
|
||||
JSON.parse(item.text)['goodsName']
|
||||
}}</text>
|
||||
</view>
|
||||
<view class="goods-desc-rice" >¥{{
|
||||
JSON.parse(item.text)['price'] | unitPrice
|
||||
<view class="goods-desc-rice" >¥{{unitPrice(JSON.parse(item.text)['price'])
|
||||
}}
|
||||
</view>
|
||||
</view>
|
||||
@@ -52,8 +51,7 @@
|
||||
<div class="wes-2" >{{
|
||||
order.name
|
||||
}}</div>
|
||||
<div class="main-color goods-desc-rice">{{
|
||||
order.goodsPrice | unitPrice("¥")
|
||||
<div class="main-color goods-desc-rice">{{unitPrice(order.goodsPrice, "¥")
|
||||
}}</div>
|
||||
|
||||
</view>
|
||||
@@ -145,8 +143,7 @@
|
||||
goodListData.goodsName
|
||||
}}</text>
|
||||
</view>
|
||||
<view class="goods-desc-rice" > ¥{{
|
||||
goodListData.price | unitPrice
|
||||
<view class="goods-desc-rice" > ¥{{unitPrice(goodListData.price)
|
||||
}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="bagbar">{{$u.timeFormat(row.send_time, 'yyyy-mm-dd')}}</div>
|
||||
</div>
|
||||
<u-card @click="goDetail(row.sn,row.logi_id,row.ship_no)" :title="title" title-color="#666666" title-size="24" sub-title-color="#666666" sub-title-size="24" :border="false" :sub-title=row.status>
|
||||
<view class="msg-body" slot="body">
|
||||
<view class="msg-body" #body>
|
||||
<image class="msgImg" :src="row.goods_img" mode=""></image>
|
||||
<view class="msgView">
|
||||
<view>{{row.goodsName}}</view>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
</div>
|
||||
<div class="msgMsg">{{$u.timeFormat(row.send_time, 'yyyy-mm-dd')}}</div>
|
||||
<u-card :title="title" :title-size="35" :border="false">
|
||||
<view class slot="body">
|
||||
<view class #body>
|
||||
<view class="u-body-item u-flex u-row-between u-p-b-0">
|
||||
<view class="u-body-item-title u-line-2">{{row.content}}</view>
|
||||
</view>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<u-navbar>
|
||||
<u-tabs :active-color="lightColor" class="slot-wrap" :list="navList" count="count" :is-scroll="true" :current="tabCurrentIndex" @change="tabClick"></u-tabs>
|
||||
<u-tabs :active-color="lightColor" class="slot-wrap" :list="navList" :is-scroll="true" :current="tabCurrentIndex" @change="tabClick"></u-tabs>
|
||||
</u-navbar>
|
||||
<view class="swiper-box">
|
||||
<!-- 显示商品栏 -->
|
||||
@@ -10,19 +10,21 @@
|
||||
<!-- 空白页 -->
|
||||
<u-empty style="margin-top: 40rpx" text="暂无收藏商品数据" mode="favor" v-if="goodsEmpty"></u-empty>
|
||||
<!-- 商品展示数据 -->
|
||||
<u-swipe-action @open="openLeftChange(item, index, 'goods')" :show="item.selected" btn-width="180"
|
||||
:options="LeftOptions" v-else v-for="(item, index) in goodList"
|
||||
@click="clickGoodsSwiperAction(item, index)" :index="index" :key="index">
|
||||
<u-swipe-action v-else v-for="(item, index) in goodList" :key="index">
|
||||
<u-swipe-action-item @open="openLeftChange(item, index, 'goods')" :show="item.selected"
|
||||
:options="LeftOptions"
|
||||
@click="clickGoodsSwiperAction(item, index)" :name="index">
|
||||
<view class="goods" @click="goGoodsDetail(item)">
|
||||
<u-image width="131rpx" height="131rpx" :src="item.image" mode="aspectFit">
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
</u-image>
|
||||
<view class="goods-intro">
|
||||
<view>{{ item.goodsName }}</view>
|
||||
<view class="goods-sn">{{ item.goods_sn }}</view>
|
||||
<view>¥{{ item.price | unitPrice }}</view>
|
||||
<view>¥{{unitPrice(item.price) }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
|
||||
</scroll-view>
|
||||
@@ -33,15 +35,16 @@
|
||||
<!-- 空白页 -->
|
||||
<u-empty style="margin-top: 40rpx" text="暂无收藏店铺数据" mode="favor" v-if="storeEmpty"></u-empty>
|
||||
<!-- 店铺展示数据 -->
|
||||
<u-swipe-action @open="openLeftChange(item, 'store')" :show="item.selected" btn-width="180"
|
||||
:options="LeftOptions" v-else v-for="(item, index) in storeList" :key="index"
|
||||
<u-swipe-action v-else v-for="(item, index) in storeList" :key="index">
|
||||
<u-swipe-action-item @open="openLeftChange(item, 'store')" :show="item.selected"
|
||||
:options="LeftOptions"
|
||||
@click="clickStoreSwiperAction(item)">
|
||||
<view class="store" @click="goStoreMainPage(item.id)">
|
||||
<view class="intro">
|
||||
<view class="store-logo">
|
||||
<u-image width="102rpx" height="102rpx" :src="item.storeLogo" :alt="item.storeName"
|
||||
mode="aspectFit">
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
</u-image>
|
||||
</view>
|
||||
<view class="store-name">
|
||||
@@ -54,6 +57,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
</scroll-view>
|
||||
</view>
|
||||
@@ -145,9 +149,9 @@
|
||||
let way;
|
||||
type == "goods" ? (way = goodList) : (way = storeList);
|
||||
way.forEach((item) => {
|
||||
this.$set(item, "selected", false);
|
||||
item["selected"] = false;
|
||||
});
|
||||
this.$set(val, "selected", false);
|
||||
val["selected"] = false;
|
||||
val.selected = true;
|
||||
},
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<view class="myTracks">
|
||||
<u-navbar title="我的足迹">
|
||||
<div slot="right">
|
||||
<template #right>
|
||||
<div class="light-color edit" @click="isEdit = !isEdit">{{ !isEdit ? '编辑' : '完成'}}</div>
|
||||
</div>
|
||||
</template>
|
||||
</u-navbar>
|
||||
<u-notice-bar mode="vertical" :list="['右划删除浏览记录']"></u-notice-bar>
|
||||
<u-empty text="暂无历史记录" style="margin-top:200rpx;" mode="history" v-if="whetherEmpty"></u-empty>
|
||||
@@ -12,7 +12,8 @@
|
||||
<view class="myTracks-title" @click="navigateToStore(item)">{{item.storeName}}</view>
|
||||
<view class="myTracks-items">
|
||||
|
||||
<u-swipe-action style="width: 100%;" :show="item.show" :index="index" :key="item.id"
|
||||
<u-swipe-action style="width: 100%;">
|
||||
<u-swipe-action-item :show="item.show" :name="index"
|
||||
@click="delTracks" @open="open" :options="options">
|
||||
|
||||
<view class="myTracks-item">
|
||||
@@ -29,10 +30,11 @@
|
||||
<view class="myTracks-item-title-desc"> </view>
|
||||
</view>
|
||||
<view class="myTracks-item-price">
|
||||
¥{{ item.price | unitPrice }}
|
||||
¥{{unitPrice(item.price) }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
|
||||
</view>
|
||||
|
||||
@@ -76,11 +76,11 @@ export default {
|
||||
if (res.data.success) {
|
||||
let data = res.data.result.records;
|
||||
if (data.length < 10) {
|
||||
this.$set(this.count, "loadStatus", "noMore");
|
||||
this.count["loadStatus"] = "noMore";
|
||||
this.pointList.push(...data);
|
||||
} else {
|
||||
this.pointList.push(...data);
|
||||
if (data.length < 10) this.$set(this.count, "loadStatus", "noMore");
|
||||
if (data.length < 10) this.count["loadStatus"] = "noMore";
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -15,15 +15,15 @@
|
||||
<!-- {{localVersion}} -->
|
||||
<u-cell-group class="cell" :border="false">
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<u-cell-item v-if="IosWhether" @click="checkStar" title="去评分"></u-cell-item>
|
||||
<u-cell-item title="功能介绍" @click="navigateTo('/pages/mine/set/versionFunctionList')"></u-cell-item>
|
||||
<u-cell-item title="检查更新" @click="checkUpdate"></u-cell-item>
|
||||
<u-cell v-if="IosWhether" @click="checkStar" title="去评分"></u-cell>
|
||||
<u-cell title="功能介绍" @click="navigateTo('/pages/mine/set/versionFunctionList')"></u-cell>
|
||||
<u-cell title="检查更新" @click="checkUpdate"></u-cell>
|
||||
<!-- #endif -->
|
||||
|
||||
<u-cell-item title="证照信息" @click="navigateTo('/pages/mine/help/tips?type=LICENSE_INFORMATION')"></u-cell-item>
|
||||
<u-cell-item title="服务协议" @click="navigateTo('/pages/mine/help/tips?type=USER_AGREEMENT')"></u-cell-item>
|
||||
<u-cell-item title="隐私协议" @click="navigateTo('/pages/mine/help/tips?type=PRIVACY_POLICY')"></u-cell-item>
|
||||
<u-cell-item title="关于我们" :border-bottom="false" @click="navigateTo('/pages/mine/help/tips?type=ABOUT')"></u-cell-item>
|
||||
<u-cell title="证照信息" @click="navigateTo('/pages/mine/help/tips?type=LICENSE_INFORMATION')"></u-cell>
|
||||
<u-cell title="服务协议" @click="navigateTo('/pages/mine/help/tips?type=USER_AGREEMENT')"></u-cell>
|
||||
<u-cell title="隐私协议" @click="navigateTo('/pages/mine/help/tips?type=PRIVACY_POLICY')"></u-cell>
|
||||
<u-cell title="关于我们" :border="false" @click="navigateTo('/pages/mine/help/tips?type=ABOUT')"></u-cell>
|
||||
|
||||
</u-cell-group>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
<div class="feedBack-box">
|
||||
<h4>问题反馈 <span style="margin-left:10rpx;" v-if="feedBack.type">@{{ list.find(item=>{return item.value == feedBack.type }).text }}</span></h4>
|
||||
<u-input class="field-input" height="500" :border-bottom="false" v-model="feedBack.context" type="textarea" placeholder="请输入反馈信息">
|
||||
<u-input class="field-input" height="500" border="none" v-model="feedBack.context" type="textarea" placeholder="请输入反馈信息">
|
||||
</u-input>
|
||||
</div>
|
||||
|
||||
@@ -18,14 +18,14 @@
|
||||
<view class="opt-view">
|
||||
<view class="img-title">上传凭证(最多2张)</view>
|
||||
<view class="images-view">
|
||||
<u-upload :header=" { accessToken: storage.getAccessToken() }" :action="action" width="150" @on-uploaded="onUploaded" :max-count="2" :show-progress="false"></u-upload>
|
||||
<u-upload :file-list="uploadFileList" :auto-upload="false" width="150" @afterRead="onUploadAfterRead" :max-count="2"></u-upload>
|
||||
</view>
|
||||
</view>
|
||||
</div>
|
||||
|
||||
<div class="feedBack-box">
|
||||
<h4>手机号</h4>
|
||||
<u-input :border-bottom="false" v-model="feedBack.mobile" placeholder="请输入您的手机号">
|
||||
<u-input border="none" v-model="feedBack.mobile" placeholder="请输入您的手机号">
|
||||
</u-input>
|
||||
</div>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
import storage from "@/utils/storage.js";
|
||||
import config from "@/config/config";
|
||||
import { feedBack } from "@/api/members.js";
|
||||
import { upload } from "@/api/common.js";
|
||||
import { handleUploadAfterRead } from "@/utils/uploadHelper.js";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -47,7 +47,7 @@ export default {
|
||||
feedBack: {
|
||||
type: "FUNCTION", //默认反馈问题为 '功能相关'
|
||||
},
|
||||
action: upload, //图片上传地址
|
||||
uploadFileList: [],
|
||||
list: [
|
||||
{ text: "功能相关", value: "FUNCTION" },
|
||||
{ text: "优化反馈", value: "OPTIMIZE" },
|
||||
@@ -58,16 +58,13 @@ export default {
|
||||
methods: {
|
||||
// 点击反馈内容
|
||||
handleClick(index) {
|
||||
this.$set(this.feedBack, "type", this.list[index].value);
|
||||
this.feedBack["type"] = this.list[index].value;
|
||||
},
|
||||
|
||||
//图片上传
|
||||
onUploaded(lists) {
|
||||
let images = [];
|
||||
lists.forEach((item) => {
|
||||
images.push(item.response.result);
|
||||
onUploadAfterRead(event) {
|
||||
handleUploadAfterRead(event, this.uploadFileList, (urls) => {
|
||||
this.feedBack.images = urls.join(",");
|
||||
});
|
||||
this.feedBack.images = images.join(",");
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
<u-form-item label="生日" label-width="150" right-icon="arrow-right">
|
||||
<div style="width: 100%;" @click="showBirthday = true">{{ birthday || '请选择出生日期' }}</div>
|
||||
<u-picker v-model="showBirthday" mode="time" :confirm-color="lightColor" @confirm="selectTime"></u-picker>
|
||||
<u-picker v-model:show="showBirthday" mode="time" :confirm-color="lightColor" @confirm="selectTime"></u-picker>
|
||||
</u-form-item>
|
||||
<u-form-item label="城市" label-width="150" placeholder="请选择城市" right-icon="arrow-right">
|
||||
<div style="width: 100%;" @click="clickRegion">{{ form.___path || '请选择城市' }}</div>
|
||||
@@ -44,10 +44,9 @@
|
||||
import { saveUserInfo, getUserInfo } from "@/api/members.js";
|
||||
import { upload } from "@/api/common.js";
|
||||
import storage from "@/utils/storage.js";
|
||||
import uFormItem from "@/uview-ui/components/u-form-item/u-form-item.vue";
|
||||
import city from "@/components/m-city/m-city.vue";
|
||||
export default {
|
||||
components: { uFormItem, "m-city": city },
|
||||
components: { "m-city": city },
|
||||
data() {
|
||||
return {
|
||||
lightColor: this.$lightColor, //高亮颜色
|
||||
@@ -83,7 +82,7 @@ export default {
|
||||
* 退出登录
|
||||
*/
|
||||
quiteLoginOut() {
|
||||
this.$options.filters.quiteLoginOut();
|
||||
this.quiteLoginOut();
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -157,11 +156,9 @@ export default {
|
||||
* 选择地址
|
||||
*/
|
||||
selectRegion(region) {
|
||||
this.$set(
|
||||
this.form,
|
||||
"address",
|
||||
`${region.province.label} ${region.city.label} ${region.area.label}`
|
||||
);
|
||||
|
||||
this.form["address"] = `${region.province.label} ${region.city.label} ${region.area.label}`
|
||||
;
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
|
||||
<u-form-item class="sendCode" label-width="120" prop="code" label="验证码">
|
||||
<u-input v-model="codeForm.code" placeholder="请输入验证码" />
|
||||
<u-verification-code unique-key="page-edit" :seconds="seconds" @end="end" @start="start"
|
||||
ref="uCode" @change="codeChange"></u-verification-code>
|
||||
<u-code unique-key="page-edit" :seconds="seconds" @end="end" @start="start"
|
||||
ref="uCode" @change="codeChange"></u-code>
|
||||
<view @tap="getCode" class="text-tips">{{ tips }}</view>
|
||||
</u-form-item>
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
|
||||
<u-form-item class="sendCode" label-width="120" prop="code" label="验证码">
|
||||
<u-input v-model="codeForm.code" placeholder="请输入验证码" />
|
||||
<u-verification-code unique-key="page-edit" :seconds="seconds" @end="end" @start="start"
|
||||
ref="uCode" @change="codeChange"></u-verification-code>
|
||||
<u-code unique-key="page-edit" :seconds="seconds" @end="end" @start="start"
|
||||
ref="uCode" @change="codeChange"></u-code>
|
||||
<view @tap="getCode" class="text-tips">{{ tips }}</view>
|
||||
</u-form-item>
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
/**判断是否是当前用户的手机号 */
|
||||
isUserPhone() {
|
||||
let flage = false;
|
||||
let user = this.$options.filters.isLogin();
|
||||
let user = this.isLogin();
|
||||
if (user.mobile != this.codeForm.mobile) {
|
||||
uni.showToast({
|
||||
title: "请输入当前绑定手机号",
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
<template>
|
||||
<view class="face-login">
|
||||
<u-cell-group>
|
||||
<u-cell-item class="border-top" :arrow="false" title="面容登录">
|
||||
<u-switch slot="right-icon" @change="faceSwitchChange" active-color="#1abc9c" size="40" v-model="checked"></u-switch>
|
||||
</u-cell-item>
|
||||
<u-cell class="border-top" :isLink="false" title="面容登录">
|
||||
<template #right-icon>
|
||||
<u-switch @change="faceSwitchChange" active-color="#1abc9c" size="40" v-model="checked"></u-switch>
|
||||
</template>
|
||||
</u-cell>
|
||||
</u-cell-group>
|
||||
<view class="describe">开启后可使用面容认证完成快捷登录,设置仅对本机生效。</view>
|
||||
</view>
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
<template>
|
||||
<view class="finger">
|
||||
<u-cell-group>
|
||||
<u-cell-item class="border-top" :arrow="false" title="指纹登录">
|
||||
<u-switch slot="right-icon" @change="fingerSwitchChange" :active-color="lightColor" size="40" v-model="checked"></u-switch>
|
||||
</u-cell-item>
|
||||
<u-cell class="border-top" :isLink="false" title="指纹登录">
|
||||
<template #right-icon>
|
||||
<u-switch @change="fingerSwitchChange" :active-color="lightColor" size="40" v-model="checked"></u-switch>
|
||||
</template>
|
||||
</u-cell>
|
||||
</u-cell-group>
|
||||
<view class="describe">开启后可使用指纹认证完成快捷登录,设置仅对本机生效。如需修改指纹,请在系统设置中操作。</view>
|
||||
</view>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<view class="securityCenter">
|
||||
<u-cell-group>
|
||||
<u-cell-item title="修改密码" @click="navigateTo('/pages/mine/set/securityCenter/updatePwdTab')"></u-cell-item>
|
||||
<u-cell-item title="注销账户" @click="zhuxiao"></u-cell-item>
|
||||
<u-cell title="修改密码" @click="navigateTo('/pages/mine/set/securityCenter/updatePwdTab')"></u-cell>
|
||||
<u-cell title="注销账户" @click="zhuxiao"></u-cell>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<view class="securityCenter">
|
||||
<u-cell-group>
|
||||
<u-cell-item title="验证密码" @click="navigateTo('/pages/mine/set/securityCenter/editLoginPassword')"></u-cell-item>
|
||||
<u-cell-item title="验证手机号" @click="navigateTo('/pages/mine/set/securityCenter/editPassword')"></u-cell-item>
|
||||
<u-cell title="验证密码" @click="navigateTo('/pages/mine/set/securityCenter/editLoginPassword')"></u-cell>
|
||||
<u-cell title="验证手机号" @click="navigateTo('/pages/mine/set/securityCenter/editPassword')"></u-cell>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -13,16 +13,16 @@
|
||||
<!-- #endif -->
|
||||
<u-cell-group :border="false">
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<u-cell-item title="清除缓存" :value="fileSizeString" @click="clearCache"></u-cell-item>
|
||||
<u-cell title="清除缓存" :value="fileSizeString" @click="clearCache"></u-cell>
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef MP-WEIXIN -->
|
||||
<u-cell-item title="安全中心" @click="navigateTo('/pages/mine/set/securityCenter/securityCenter')"></u-cell-item>
|
||||
<u-cell title="安全中心" @click="navigateTo('/pages/mine/set/securityCenter/securityCenter')"></u-cell>
|
||||
<!-- #endif -->
|
||||
<u-cell-item title="用户注销" v-if="userInfo.id" @click="logoff"></u-cell-item>
|
||||
<u-cell-item title="意见反馈" @click="navigateTo('/pages/mine/set/feedBack')"></u-cell-item>
|
||||
<u-cell title="用户注销" v-if="userInfo.id" @click="logoff"></u-cell>
|
||||
<u-cell title="意见反馈" @click="navigateTo('/pages/mine/set/feedBack')"></u-cell>
|
||||
<!-- #ifndef H5 -->
|
||||
<!-- #endif -->
|
||||
<u-cell-item :title="`关于${config.name}`" @click="navigateTo('/pages/mine/set/editionIntro')"></u-cell-item>
|
||||
<u-cell :title="`关于${config.name}`" @click="navigateTo('/pages/mine/set/editionIntro')"></u-cell>
|
||||
</u-cell-group>
|
||||
<view class="submit" v-if="userInfo.id" @click="quiteLoginOut">退出登录</view>
|
||||
</view>
|
||||
@@ -54,14 +54,14 @@ export default {
|
||||
* 退出登录
|
||||
*/
|
||||
quiteLoginOut() {
|
||||
this.$options.filters.quiteLoginOut();
|
||||
this.quiteLoginOut();
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户注销
|
||||
*/
|
||||
logoff(){
|
||||
this.$options.filters.logoff();
|
||||
this.logoff();
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -91,10 +91,10 @@ export default {
|
||||
* 判断当前是否进入用户中心
|
||||
*/
|
||||
checkUserInfo() {
|
||||
if (this.$options.filters.isLogin("auth")) {
|
||||
if (this.isLogin("auth")) {
|
||||
this.navigateTo("/pages/mine/set/personMsg");
|
||||
} else {
|
||||
this.$options.filters.tipsToLogin();
|
||||
this.tipsToLogin();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -155,7 +155,7 @@ export default {
|
||||
},
|
||||
},
|
||||
onShow() {
|
||||
this.userInfo = this.$options.filters.isLogin();
|
||||
this.userInfo = this.isLogin();
|
||||
// #ifdef APP-PLUS
|
||||
this.getCacheSize();
|
||||
// #endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<u-navbar :background="navObj" :is-back="false">
|
||||
<u-navbar :bg-color="navObj.background" :auto-back="false">
|
||||
<mSearch
|
||||
ref="mSearch"
|
||||
class="mSearch-input-box"
|
||||
@@ -109,7 +109,7 @@
|
||||
</div>
|
||||
</view>
|
||||
|
||||
<u-popup border-radius="20" mode="right" width="90%" v-model="sortPopup">
|
||||
<u-popup border-radius="20" mode="right" width="90%" v-model:show="sortPopup">
|
||||
<view class="status_bar"></view>
|
||||
<view class="sort-box ">
|
||||
<view class="sort-list">
|
||||
@@ -539,10 +539,10 @@ export default {
|
||||
if (this.params.sort == type) {
|
||||
this.params.order == 'asc' ? (this.params.order = 'desc') : (this.params.order = 'asc');
|
||||
|
||||
this.$set(this.params, 'sort', type);
|
||||
this.params['sort'] = type;
|
||||
} else {
|
||||
this.params.order = 'desc';
|
||||
this.$set(this.params, 'sort', type);
|
||||
this.params['sort'] = type;
|
||||
}
|
||||
|
||||
if (index == 0) {
|
||||
@@ -709,7 +709,7 @@ export default {
|
||||
this.$refs.mSearch.inputVal = keyword;
|
||||
this.params.keyword = this.keyword;
|
||||
this.params.pageNumber = 1;
|
||||
this.$set(this.sortParams, 'keyword', keyword);
|
||||
this.sortParams['keyword'] = keyword;
|
||||
this.loadData('refresh', 1);
|
||||
},
|
||||
//保存关键字到历史记录
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<view class="goods-title u-line-2">{{ sku.name }}</view>
|
||||
<!-- 如果商品多个则不显示每个商品价格-->
|
||||
<view class="goods-price" v-if="order.orderItems.length <= 1">
|
||||
¥{{ order.flowPrice | unitPrice }}
|
||||
¥{{unitPrice(order.flowPrice) }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="goods-num">
|
||||
@@ -89,31 +89,31 @@
|
||||
class="cannot_apply not_center"
|
||||
v-if="order.serviceType == 'RETURN_GOODS'"
|
||||
>
|
||||
退货处理-{{ order.serviceStatus | serviceStatusList }}</view
|
||||
退货处理-{{serviceStatusList(order.serviceStatus) }}</view
|
||||
>
|
||||
<view
|
||||
class="cannot_apply not_center"
|
||||
v-if="order.serviceType == 'SUPPLY_AGAIN_GOODS'"
|
||||
>
|
||||
补发商品-{{ order.serviceStatus | serviceStatusList }}</view
|
||||
补发商品-{{serviceStatusList(order.serviceStatus) }}</view
|
||||
>
|
||||
<view
|
||||
class="cannot_apply not_center"
|
||||
v-if="order.serviceType == 'RETURN_MONEY'"
|
||||
>
|
||||
退款-{{ order.serviceStatus | serviceStatusList }}</view
|
||||
退款-{{serviceStatusList(order.serviceStatus) }}</view
|
||||
>
|
||||
<view
|
||||
class="cannot_apply not_center"
|
||||
v-if="order.serviceType == 'EXCHANGE_GOODS'"
|
||||
>
|
||||
换货-{{ order.serviceStatus | serviceStatusList }}</view
|
||||
换货-{{serviceStatusList(order.serviceStatus) }}</view
|
||||
>
|
||||
<view
|
||||
class="cannot_apply not_center"
|
||||
v-if="order.serviceType == 'CANCEL'"
|
||||
>
|
||||
取消订单-{{ order.serviceStatus | serviceStatusList }}</view
|
||||
取消订单-{{serviceStatusList(order.serviceStatus) }}</view
|
||||
>
|
||||
</div>
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
<!-- 多个商品显示订单总价格 -->
|
||||
<view class="cannot_apply">
|
||||
订单总金额:<span class="countMoney"
|
||||
>¥{{ order.flowPrice | unitPrice }}</span
|
||||
>¥{{unitPrice(order.flowPrice) }}</span
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
@@ -187,11 +187,11 @@
|
||||
<u-modal
|
||||
show-cancel-button
|
||||
@confirm="closeService"
|
||||
v-model="cancelShow"
|
||||
v-model:show="cancelShow"
|
||||
content="确认取消售后"
|
||||
></u-modal>
|
||||
<u-modal
|
||||
v-model="tipsShow"
|
||||
v-model:show="tipsShow"
|
||||
content="当订单未确认收货|已过售后服务有效期|已申请售后服务时,不能申请售后"
|
||||
></u-modal>
|
||||
</view>
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
<view class="opt-view">
|
||||
<view class="img-title">上传凭证(最多5张)</view>
|
||||
<view class="images-view">
|
||||
<u-upload :header=" { accessToken: storage.getAccessToken() }" :action="action" width="150"
|
||||
@on-uploaded="onUploaded" :max-count="5" :show-progress="false"></u-upload>
|
||||
<u-upload :file-list="fileList" :auto-upload="false" width="150"
|
||||
@afterRead="onUploadAfterRead" :max-count="5"></u-upload>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -87,10 +87,10 @@
|
||||
<u-button type="primary" ripple shape="circle" v-if="applyInfo.refundWay" :custom-style="customStyle"
|
||||
@click="onSubmit">提交申请</u-button>
|
||||
</view>
|
||||
<u-select mode="single-column" :list="reasonList" v-model="reasonSelectShow" @confirm="reasonSelectConfirm">
|
||||
<u-select mode="single-column" :list="reasonList" v-model:show="reasonSelectShow" @confirm="reasonSelectConfirm">
|
||||
</u-select>
|
||||
<u-select mode="single-column" :list="typeList" v-model="typeSelectShow" @confirm="typeSelectConfirm"></u-select>
|
||||
<u-select mode="single-column" :list="returnList" v-model="returnSelectShow" @confirm="returnSelectConfirm">
|
||||
<u-select mode="single-column" :list="typeList" v-model:show="typeSelectShow" @confirm="typeSelectConfirm"></u-select>
|
||||
<u-select mode="single-column" :list="returnList" v-model:show="returnSelectShow" @confirm="returnSelectConfirm">
|
||||
</u-select>
|
||||
<u-toast ref="uToast" />
|
||||
</view>
|
||||
@@ -104,7 +104,7 @@ import {
|
||||
} from "@/api/after-sale";
|
||||
|
||||
import city from "@/components/m-city/m-city";
|
||||
import { upload } from "@/api/common.js";
|
||||
import { handleUploadAfterRead } from "@/utils/uploadHelper.js";
|
||||
import { checkBankno } from "@/utils/Foundation";
|
||||
import storage from "@/utils/storage.js";
|
||||
export default {
|
||||
@@ -115,7 +115,6 @@ export default {
|
||||
return {
|
||||
storage,
|
||||
list: [{ id: "", localName: "请选择", children: [] }],
|
||||
action: upload, //图片上传数据
|
||||
fileList: [],
|
||||
sn: "",
|
||||
sku: {},
|
||||
@@ -263,14 +262,10 @@ export default {
|
||||
valChange(e) {
|
||||
this.form.num = e.value;
|
||||
},
|
||||
//图片上传
|
||||
onUploaded(lists) {
|
||||
let images = [];
|
||||
|
||||
lists.forEach((item) => {
|
||||
images.push(item.response.result);
|
||||
onUploadAfterRead(event) {
|
||||
handleUploadAfterRead(event, this.fileList, (urls) => {
|
||||
this.form.images = urls;
|
||||
});
|
||||
this.form.images = images;
|
||||
},
|
||||
//提交申请
|
||||
onSubmit() {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<view class="goods-info">
|
||||
<view class="goods-title u-line-2">{{ sku.name }}</view>
|
||||
<view class="goods-price">
|
||||
<span>¥{{ sku.price | unitPrice }}</span>
|
||||
<span>¥{{unitPrice(sku.price) }}</span>
|
||||
<span class="num">购买数量: {{ sku.num }} </span>
|
||||
</view>
|
||||
</view>
|
||||
@@ -55,9 +55,9 @@
|
||||
</u-button>
|
||||
</view>
|
||||
</u-form>
|
||||
<u-select mode="single-column" :list="companyList" v-model="companySelectShow"
|
||||
<u-select mode="single-column" :list="companyList" v-model:show="companySelectShow"
|
||||
@confirm="companySelectConfirm"></u-select>
|
||||
<u-calendar v-model="timeshow" :mode="'date'" @change="onTimeChange"></u-calendar>
|
||||
<u-calendar v-model:show="timeshow" :mode="'date'" @change="onTimeChange"></u-calendar>
|
||||
<u-toast ref="uToast"/>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -11,12 +11,10 @@
|
||||
<view class="apply-info-view">
|
||||
<view class="status-info">
|
||||
<view class="status-info-box">
|
||||
<view class="status-val">{{
|
||||
serviceDetail.serviceStatus | serviceStatusList
|
||||
<view class="status-val">{{serviceStatusList(serviceDetail.serviceStatus)
|
||||
}}</view>
|
||||
|
||||
<view class="status-tip">{{
|
||||
serviceDetail.serviceStatus | statusFilter
|
||||
<view class="status-tip">{{statusFilter(serviceDetail.serviceStatus)
|
||||
}}</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -43,7 +41,7 @@
|
||||
}}</view>
|
||||
|
||||
<view class="goods-price">
|
||||
<view class="price"> ¥{{ serviceDetail.flowPrice | unitPrice }}</view>
|
||||
<view class="price"> ¥{{unitPrice(serviceDetail.flowPrice) }}</view>
|
||||
<view>
|
||||
<view>申请售后数量:{{ serviceDetail.num }}</view>
|
||||
</view>
|
||||
@@ -116,44 +114,38 @@
|
||||
v-if="serviceDetail.serviceType != 'RETURN_MONEY' && serviceDetail.serviceStatus != 'APPLY'">
|
||||
<view class="title">联系方式:</view>
|
||||
<view class="value">{{
|
||||
storeAfterSaleAddress.salesConsigneeMobile || "" | secrecyMobile
|
||||
storeAfterSaleAddress.salesConsigneeMobile ||secrecyMobile("")
|
||||
}}</view>
|
||||
</view>
|
||||
<view v-if="refundShow">
|
||||
<view class="detail-item">
|
||||
<view class="title">退款金额:</view>
|
||||
<view class="value">{{
|
||||
serviceDetail.flowPrice | unitPrice("¥")
|
||||
<view class="value">{{unitPrice(serviceDetail.flowPrice, "¥")
|
||||
}}</view>
|
||||
</view>
|
||||
<view class="detail-item" v-if="serviceDetail.agree_price">
|
||||
<view class="title">同意退款:</view>
|
||||
<view class="value">{{
|
||||
serviceDetail.agree_price | unitPrice("¥")
|
||||
<view class="value">{{unitPrice(serviceDetail.agree_price, "¥")
|
||||
}}</view>
|
||||
</view>
|
||||
<view class="detail-item" v-if="serviceDetail.actual_price">
|
||||
<view class="title">实际退款:</view>
|
||||
<view class="value">{{
|
||||
serviceDetail.actual_price | unitPrice("¥")
|
||||
<view class="value">{{unitPrice(serviceDetail.actual_price, "¥")
|
||||
}}</view>
|
||||
</view>
|
||||
<view class="detail-item" v-if="serviceDetail.actual_price">
|
||||
<view class="title">退款时间:</view>
|
||||
<view class="value">{{
|
||||
serviceDetail.refund_time | unixToDate
|
||||
<view class="value">{{unixToDate(serviceDetail.refund_time)
|
||||
}}</view>
|
||||
</view>
|
||||
<view class="detail-item" v-if="serviceDetail.refund_price !== 0">
|
||||
<view class="title">退款方式:</view>
|
||||
<view class="value">{{
|
||||
serviceDetail.refundWay | refundWayFilter
|
||||
<view class="value">{{refundWayFilter(serviceDetail.refundWay)
|
||||
}}</view>
|
||||
</view>
|
||||
<view class="detail-item" v-if="accountShow && serviceDetail.refund_price != 0">
|
||||
<view class="title">账户类型:</view>
|
||||
<view class="value">{{
|
||||
serviceDetail.accountType | accountTypeFilter
|
||||
<view class="value">{{accountTypeFilter(serviceDetail.accountType)
|
||||
}}</view>
|
||||
</view>
|
||||
<view class="detail-item" v-if="
|
||||
@@ -232,10 +224,7 @@ export default {
|
||||
this.getAddress();
|
||||
this.getLog(options.sn);
|
||||
},
|
||||
filters: {
|
||||
/**
|
||||
* 售后状态信息
|
||||
*/
|
||||
methods: {
|
||||
statusFilter(val) {
|
||||
switch (val) {
|
||||
case "APPLY":
|
||||
@@ -264,25 +253,16 @@ export default {
|
||||
return "";
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 退款信息
|
||||
*/
|
||||
refundWayFilter(val) {
|
||||
switch (val) {
|
||||
case "OFFLINE":
|
||||
return "账户退款";
|
||||
case "OFFLINE":
|
||||
return "线下退款";
|
||||
case "ORIGINAL":
|
||||
return "原路退回";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 账户信息
|
||||
*/
|
||||
accountTypeFilter(val) {
|
||||
switch (val) {
|
||||
case "WEIXINPAY":
|
||||
@@ -295,8 +275,6 @@ export default {
|
||||
return "";
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 点击图片放大或保存
|
||||
*/
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<view class="goods-info">
|
||||
<view class="goods-title u-line-2">{{ sku.goodsName }}</view>
|
||||
<view class="goods-price">
|
||||
¥{{ sku.flowPrice | unitPrice }}
|
||||
¥{{unitPrice(sku.flowPrice) }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="goods-num">
|
||||
@@ -27,7 +27,7 @@
|
||||
</view>
|
||||
|
||||
<!-- 投诉主题 -->
|
||||
<u-select @confirm="confirmComplain" v-model="complainShow" :list="complainList"></u-select>
|
||||
<u-select @confirm="confirmComplain" v-model:show="complainShow" :list="complainList"></u-select>
|
||||
<!-- 投诉模块 -->
|
||||
<view class="cell">
|
||||
<view class="cell-item between" @click="complainShow = true">
|
||||
@@ -45,7 +45,7 @@
|
||||
<view class="cell-item">
|
||||
<view class="cell-title"> 投诉凭证 </view>
|
||||
<view class="cell-view">
|
||||
<u-upload ref="uUpload" :header=" { accessToken: storage.getAccessToken() }" :action="action" width="200" @on-uploaded="onUploaded" :max-count="5">
|
||||
<u-upload :file-list="uploadFileList" :auto-upload="false" width="200" @afterRead="onUploadAfterRead" :max-count="5">
|
||||
</u-upload>
|
||||
</view>
|
||||
</view>
|
||||
@@ -59,12 +59,12 @@
|
||||
import storage from "@/utils/storage.js";
|
||||
import { getOrderDetail } from "@/api/order.js";
|
||||
import { getComplainReason, addComplain } from "@/api/after-sale.js";
|
||||
import { upload } from "@/api/common.js";
|
||||
import { handleUploadAfterRead } from "@/utils/uploadHelper.js";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
storage,
|
||||
action: upload, //上传图片地址
|
||||
uploadFileList: [],
|
||||
orderStatusList: {
|
||||
//订单状态列表
|
||||
UNDELIVERED: "待发货",
|
||||
@@ -97,15 +97,10 @@ export default {
|
||||
},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* 上传完成
|
||||
*/
|
||||
onUploaded(lists) {
|
||||
let images = [];
|
||||
lists.forEach((item) => {
|
||||
images.push(item.response.result);
|
||||
onUploadAfterRead(event) {
|
||||
handleUploadAfterRead(event, this.uploadFileList, (urls) => {
|
||||
this.images = urls;
|
||||
});
|
||||
this.images = images;
|
||||
},
|
||||
/**
|
||||
* 提交
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
<view class="wrapper">
|
||||
<view class="tips">我的投诉信息</view>
|
||||
<u-cell-group>
|
||||
<u-cell-item :arrow="false" :value="complainDetail.goodsName" title="投诉商品"></u-cell-item>
|
||||
<u-cell-item :arrow="false" :value="statusData[complainDetail.complainStatus]" title="投诉状态"></u-cell-item>
|
||||
<u-cell-item :arrow="false" :value="complainDetail.createTime" title="投诉时间"></u-cell-item>
|
||||
<u-cell-item :arrow="false" :value="complainDetail.complainTopic" title="投诉主题"></u-cell-item>
|
||||
<u-cell-item :arrow="false" :value="complainDetail.content" title="投诉内容"></u-cell-item>
|
||||
<u-cell :isLink="false" :value="complainDetail.goodsName" title="投诉商品"></u-cell>
|
||||
<u-cell :isLink="false" :value="statusData[complainDetail.complainStatus]" title="投诉状态"></u-cell>
|
||||
<u-cell :isLink="false" :value="complainDetail.createTime" title="投诉时间"></u-cell>
|
||||
<u-cell :isLink="false" :value="complainDetail.complainTopic" title="投诉主题"></u-cell>
|
||||
<u-cell :isLink="false" :value="complainDetail.content" title="投诉内容"></u-cell>
|
||||
<view class="row" v-if="complainDetail.orderComplaintImages">
|
||||
<u-image width="100rpx" height="100rpx" border-radius="10" style="margin: 0 10rpx" v-for="(item, index) in complainDetail.orderComplaintImages" :key="index" :src="item"
|
||||
@click="preview(complainDetail.orderComplaintImages, index)" />
|
||||
@@ -14,8 +14,8 @@
|
||||
</u-cell-group>
|
||||
<view class="tips">商家申诉信息</view>
|
||||
<u-cell-group>
|
||||
<u-cell-item :arrow="false" :value="complainDetail.appealTime || '暂无'" title="申诉时间"></u-cell-item>
|
||||
<u-cell-item :arrow="false" :value="complainDetail.appealContent || '暂无'" title="申诉内容"></u-cell-item>
|
||||
<u-cell :isLink="false" :value="complainDetail.appealTime || '暂无'" title="申诉时间"></u-cell>
|
||||
<u-cell :isLink="false" :value="complainDetail.appealContent || '暂无'" title="申诉内容"></u-cell>
|
||||
<view class="row" v-if="complainDetail.appealImagesList">
|
||||
<u-image width="100rpx" height="100rpx" border-radius="10" style="margin: 0 10rpx" v-for="(item, index) in complainDetail.appealImagesList"
|
||||
@click="preview(complainDetail.appealImagesList, index)" :key="index" :src="item" />
|
||||
@@ -46,7 +46,7 @@
|
||||
</div>
|
||||
<view class="tips">平台仲裁</view>
|
||||
<u-cell-group>
|
||||
<u-cell-item :arrow="false" title="仲裁意见" :value="complainDetail.arbitrationResult || '暂无'"></u-cell-item>
|
||||
<u-cell :isLink="false" title="仲裁意见" :value="complainDetail.arbitrationResult || '暂无'"></u-cell>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<view class="goods-info" @click="handleToGoods(item)">
|
||||
<view class="goods-title u-line-2">{{ item.goodsName }}</view>
|
||||
<view class="goods-price">
|
||||
¥{{ item.goodsPrice | unitPrice }}
|
||||
¥{{unitPrice(item.goodsPrice) }}
|
||||
<!-- <span>+{{ '1' }}积分</span> -->
|
||||
</view>
|
||||
</view>
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
<u-empty v-if="empty" :style="{'marginTop':complaionDetail.total == 0 ? '200rpx':'0rpx'}" class="empty" style="" text="暂无投诉列表" mode="list"></u-empty>
|
||||
|
||||
<u-modal show-cancel-button @confirm="handleClearConfirm" v-model="show" :content="content"></u-modal>
|
||||
<u-modal show-cancel-button @confirm="handleClearConfirm" v-model:show="show" :content="content"></u-modal>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<!-- 如果有图片则会循环显示评价的图片 -->
|
||||
<view class="goods-imgs-view" v-if="comment.images != null && comment.images.length != 0">
|
||||
<view class="img-view" v-for="(img, imgIndex) in comment.images.split(',')" :key="imgIndex">
|
||||
<u-image @click.native="preview(comment.images.split(','),imgIndex)" width="160rpx" height="160rpx" :src="img"></u-image>
|
||||
<u-image @click="preview(comment.images.split(','),imgIndex)" width="160rpx" height="160rpx" :src="img"></u-image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="goods-name">
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<view class="goods-imgs-view" v-if="order.image">
|
||||
<view class="img-view" v-if="order.image" v-for="(img, imgIndex) in order.image.split(',')"
|
||||
:key="imgIndex">
|
||||
<u-image v-if="order.image" @click.native="
|
||||
<u-image v-if="order.image" @click="
|
||||
preview(order.image.split(','), imgIndex)
|
||||
" width="160rpx" height="160rpx" :src="img"></u-image>
|
||||
</view>
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
</view>
|
||||
<view class="info-evaluate-view">
|
||||
<view class="images-view">
|
||||
<u-upload :header=" { accessToken: storage.getAccessToken() }" :action="action" width="150"
|
||||
@on-uploaded="onUploaded" :max-count="5" :show-progress="false"></u-upload>
|
||||
<u-upload :file-list="uploadFileList" :auto-upload="false" width="150"
|
||||
@afterRead="onUploadAfterRead" :max-count="5"></u-upload>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -62,20 +62,20 @@
|
||||
<view class="seller-rate-view">
|
||||
<view class="rate-title">描述相符</view>
|
||||
<view>
|
||||
<u-rate count="count" gutter="20" active-color="#FFC71C" v-model="form.descriptionScore" :size="40">
|
||||
<u-rate :count="5" gutter="20" active-color="#FFC71C" v-model="form.descriptionScore" :size="40">
|
||||
</u-rate>
|
||||
</view>
|
||||
</view>
|
||||
<view class="seller-rate-view">
|
||||
<view class="rate-title">服务态度</view>
|
||||
<view>
|
||||
<u-rate count="count" gutter="20" active-color="#FFC71C" v-model="form.serviceScore" :size="40"></u-rate>
|
||||
<u-rate :count="5" gutter="20" active-color="#FFC71C" v-model="form.serviceScore" :size="40"></u-rate>
|
||||
</view>
|
||||
</view>
|
||||
<view class="seller-rate-view">
|
||||
<view class="rate-title">物流服务</view>
|
||||
<view>
|
||||
<u-rate count="count" gutter="20" active-color="#FFC71C" v-model="form.deliveryScore" :size="40"></u-rate>
|
||||
<u-rate :count="5" gutter="20" active-color="#FFC71C" v-model="form.deliveryScore" :size="40"></u-rate>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -89,7 +89,7 @@
|
||||
<script>
|
||||
import storage from "@/utils/storage.js";
|
||||
import { commentsMemberOrder } from "@/api/members.js";
|
||||
import { upload } from "@/api/common.js";
|
||||
import { handleUploadAfterRead } from "@/utils/uploadHelper.js";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
@@ -111,7 +111,7 @@ export default {
|
||||
serviceScore: 5, //默认服务得分为5分
|
||||
deliveryScore: 5, //默认物流得分为5分
|
||||
},
|
||||
action: upload, //图片上传地址
|
||||
uploadFileList: [],
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
@@ -153,15 +153,10 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 图片成功后回调
|
||||
*/
|
||||
onUploaded(lists) {
|
||||
let images = [];
|
||||
lists.forEach((item) => {
|
||||
images.push(item.response.result);
|
||||
onUploadAfterRead(event) {
|
||||
handleUploadAfterRead(event, this.uploadFileList, (urls) => {
|
||||
this.form.images = urls;
|
||||
});
|
||||
this.form.images = images;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<!-- 姓名 手机号 -->
|
||||
<div>
|
||||
<span>{{ address.name }}</span>
|
||||
<span class="mobile">{{ address.mobile | secrecyMobile }}</span>
|
||||
<span class="mobile">{{secrecyMobile(address.mobile) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -101,7 +101,7 @@
|
||||
width="81rpx"
|
||||
height="81rpx"
|
||||
>
|
||||
<view slot="loading"></view>
|
||||
<template #loading><view></view></template>
|
||||
</u-image>
|
||||
<u-image
|
||||
class="head-img"
|
||||
@@ -174,11 +174,11 @@
|
||||
<p class="goods-prices">
|
||||
<span>¥</span>
|
||||
<span class="goods-price">{{
|
||||
$options.filters.goodsFormatPrice(val.purchasePrice)[0]
|
||||
goodsFormatPrice(val.purchasePrice)[0]
|
||||
}}</span>
|
||||
<span
|
||||
>.{{
|
||||
$options.filters.goodsFormatPrice(val.purchasePrice)[1]
|
||||
goodsFormatPrice(val.purchasePrice)[1]
|
||||
}}</span
|
||||
>
|
||||
</p>
|
||||
@@ -190,7 +190,7 @@
|
||||
:span="8"
|
||||
class="tipsColor"
|
||||
textAlign="right"
|
||||
@click.native="invoice()"
|
||||
@click="invoice()"
|
||||
>
|
||||
<span v-if="receiptList"
|
||||
>{{ receiptList.receiptTitle }} -
|
||||
@@ -243,7 +243,7 @@
|
||||
/>
|
||||
<u-select
|
||||
@confirm="confirmDistribution"
|
||||
v-model="shippingFlag"
|
||||
v-model:show="shippingFlag"
|
||||
v-if="shippingMethod.length != 0"
|
||||
:list="shippingMethod"
|
||||
></u-select>
|
||||
@@ -254,7 +254,7 @@
|
||||
<u-col :span="9">商品合计</u-col>
|
||||
<u-col :span="3" textAlign="right">
|
||||
<span
|
||||
>¥{{ orderMessage.priceDetailDTO.goodsPrice | unitPrice }}</span
|
||||
>¥{{unitPrice(orderMessage.priceDetailDTO.goodsPrice) }}</span
|
||||
>
|
||||
</u-col>
|
||||
</u-row>
|
||||
@@ -274,8 +274,7 @@
|
||||
>包邮</span
|
||||
>
|
||||
<span v-else
|
||||
>¥{{
|
||||
orderMessage.priceDetailDTO.freightPrice | unitPrice
|
||||
>¥{{unitPrice(orderMessage.priceDetailDTO.freightPrice)
|
||||
}}</span
|
||||
>
|
||||
</u-col>
|
||||
@@ -298,10 +297,10 @@
|
||||
@click="GET_Discount()"
|
||||
>
|
||||
<span class="main-color"
|
||||
>-¥{{ orderMessage.priceDetailDTO.couponPrice | unitPrice }}</span
|
||||
>-¥{{unitPrice(orderMessage.priceDetailDTO.couponPrice) }}</span
|
||||
>
|
||||
</u-col>
|
||||
<!-- orderMessage.priceDetailDTO.couponPrice | unitPrice -->
|
||||
<!--unitPrice(orderMessage.priceDetailDTO.couponPrice) -->
|
||||
<u-col :span="3" v-else textAlign="right" @click="GET_Discount()">
|
||||
{{ orderMessage.canUseCoupons.length || "0" }} 张可用
|
||||
<u-icon name="arrow-right"></u-icon>
|
||||
@@ -316,7 +315,7 @@
|
||||
v-if="orderMessage.priceDetailDTO.couponPrice"
|
||||
>
|
||||
<span class="main-color">
|
||||
-¥{{ orderMessage.priceDetailDTO.couponPrice | unitPrice }}</span
|
||||
-¥{{unitPrice(orderMessage.priceDetailDTO.couponPrice) }}</span
|
||||
>
|
||||
</u-col>
|
||||
<u-col :span="3" textAlign="right" v-else>0.00</u-col>
|
||||
@@ -327,8 +326,7 @@
|
||||
<u-col :span="6">活动优惠</u-col>
|
||||
<u-col :span="6" class="tr tipsColor" textAlign="right">
|
||||
<span v-if="orderMessage.priceDetailDTO.discountPrice"
|
||||
>-¥{{
|
||||
orderMessage.priceDetailDTO.discountPrice | unitPrice
|
||||
>-¥{{unitPrice(orderMessage.priceDetailDTO.discountPrice)
|
||||
}}</span
|
||||
>
|
||||
<span v-else>0.00</span>
|
||||
@@ -355,21 +353,20 @@
|
||||
<div v-if="!orderMessage.priceDetailDTO.payPoint" class="number">
|
||||
<span>¥</span>
|
||||
<span class="price">{{
|
||||
$options.filters.goodsFormatPrice(
|
||||
goodsFormatPrice(
|
||||
orderMessage.priceDetailDTO.flowPrice
|
||||
)[0]
|
||||
}}</span>
|
||||
<span
|
||||
>.{{
|
||||
$options.filters.goodsFormatPrice(
|
||||
goodsFormatPrice(
|
||||
orderMessage.priceDetailDTO.flowPrice
|
||||
)[1]
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
<span v-else class="number"
|
||||
><span style="margin-right: 10rpx">{{
|
||||
orderMessage.priceDetailDTO.payPoint | unitPrice
|
||||
><span style="margin-right: 10rpx">{{unitPrice(orderMessage.priceDetailDTO.payPoint)
|
||||
}}</span
|
||||
>积分</span
|
||||
>
|
||||
@@ -462,25 +459,6 @@ export default {
|
||||
computed: {
|
||||
...mapState(["remark"]),
|
||||
},
|
||||
filters: {
|
||||
/**
|
||||
* 发票收据类型
|
||||
*/
|
||||
receiptType(type) {
|
||||
switch (type) {
|
||||
case "1":
|
||||
case "VATORDINARY":
|
||||
case "ELECTRO":
|
||||
return "电子普通发票";
|
||||
case "2":
|
||||
case "VATOSPECIAL":
|
||||
return "增值税专用发票";
|
||||
default:
|
||||
return "不开发票";
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* 监听返回
|
||||
*/
|
||||
@@ -578,7 +556,7 @@ export default {
|
||||
pintuanWay() {
|
||||
const { memberId } = this.routerVal.parentOrder;
|
||||
|
||||
const userInfo = this.$options.filters.isLogin();
|
||||
const userInfo = this.isLogin();
|
||||
if (memberId) {
|
||||
this.endWay = userInfo;
|
||||
this.masterWay = this.routerVal.parentOrder;
|
||||
@@ -826,7 +804,7 @@ export default {
|
||||
storeId: item.storeId,
|
||||
};
|
||||
|
||||
this.$set(this.remarkVal, index, repeatData);
|
||||
this.remarkVal[index] = repeatData;
|
||||
});
|
||||
|
||||
this.orderMessage = res.data.result;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<view></view>
|
||||
</view>
|
||||
</view>
|
||||
<view>{{order.receiptPrice | unitPrice('¥')}}</view>
|
||||
<view>{{unitPrice(order.receiptPrice, '¥')}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="common-msg flex-center">
|
||||
@@ -29,19 +29,19 @@
|
||||
</view>
|
||||
</view>
|
||||
<u-cell-group :border="false">
|
||||
<u-cell-item title="发票类型" :border-top="false" :value="order.receiptType || '-'" :arrow="false"></u-cell-item>
|
||||
<u-cell-item title="发票内容" :value="order.receiptContent" :arrow="false"></u-cell-item>
|
||||
<u-cell-item :title="title_type + '名称'" :value="getTitleNameValue()" :arrow="false"></u-cell-item>
|
||||
<u-cell-item title="纳税人识别号" v-if="order.taxpayerId" :value="order.taxpayerId" :arrow="false"></u-cell-item>
|
||||
<u-cell-item title="单位地址" v-if="order.companyAddress" :value="order.companyAddress" :arrow="false"></u-cell-item>
|
||||
<u-cell-item title="单位电话" v-if="order.companyPhone" :value="order.companyPhone" :arrow="false"></u-cell-item>
|
||||
<u-cell-item title="开户银行" v-if="order.bankName" :value="order.bankName" :arrow="false"></u-cell-item>
|
||||
<u-cell-item title="银行账号" v-if="order.bankAccount" :value="order.bankAccount" :arrow="false"></u-cell-item>
|
||||
<u-cell-item title="收票人手机" :value="order.receiptPhone" :arrow="false"></u-cell-item>
|
||||
<u-cell-item title="收票人邮箱" v-if="order.receiptEmail" :value="order.receiptEmail" :arrow="false"></u-cell-item>
|
||||
<u-cell title="发票类型" :border-top="false" :value="order.receiptType || '-'" :isLink="false"></u-cell>
|
||||
<u-cell title="发票内容" :value="order.receiptContent" :isLink="false"></u-cell>
|
||||
<u-cell :title="title_type + '名称'" :value="getTitleNameValue()" :isLink="false"></u-cell>
|
||||
<u-cell title="纳税人识别号" v-if="order.taxpayerId" :value="order.taxpayerId" :isLink="false"></u-cell>
|
||||
<u-cell title="单位地址" v-if="order.companyAddress" :value="order.companyAddress" :isLink="false"></u-cell>
|
||||
<u-cell title="单位电话" v-if="order.companyPhone" :value="order.companyPhone" :isLink="false"></u-cell>
|
||||
<u-cell title="开户银行" v-if="order.bankName" :value="order.bankName" :isLink="false"></u-cell>
|
||||
<u-cell title="银行账号" v-if="order.bankAccount" :value="order.bankAccount" :isLink="false"></u-cell>
|
||||
<u-cell title="收票人手机" :value="order.receiptPhone" :isLink="false"></u-cell>
|
||||
<u-cell title="收票人邮箱" v-if="order.receiptEmail" :value="order.receiptEmail" :isLink="false"></u-cell>
|
||||
</u-cell-group>
|
||||
<u-popup
|
||||
v-model="showInvoicePopup"
|
||||
v-model:show="showInvoicePopup"
|
||||
mode="center"
|
||||
width="90%"
|
||||
border-radius="20"
|
||||
@@ -60,8 +60,8 @@
|
||||
</view>
|
||||
</u-popup>
|
||||
<!-- <u-cell-group :border="false" style="margin-top: 20rpx;">
|
||||
<u-cell-item title="订单状态" :border-top="false" :value="order.order_status_text" :arrow="false"></u-cell-item>
|
||||
<u-cell-item title="订单编号" :value="order.sn" :arrow="false"></u-cell-item>
|
||||
<u-cell title="订单状态" :border-top="false" :value="order.order_status_text" :isLink="false"></u-cell>
|
||||
<u-cell title="订单编号" :value="order.sn" :isLink="false"></u-cell>
|
||||
</u-cell-group> -->
|
||||
<!-- <view class="show-pic" @click="preview">
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<u-popup closeable border-radius="28" @close="close" mode="bottom" height="80%" v-model="show">
|
||||
<u-popup closeable border-radius="28" @close="close" mode="bottom" height="80%" v-model:show="show">
|
||||
|
||||
<div class="wrapper">
|
||||
<!-- 发票类型 -->
|
||||
|
||||
@@ -25,8 +25,7 @@
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="order-sn">{{
|
||||
order.orderStatus | orderStatusList
|
||||
<view class="order-sn">{{orderStatusList(order.orderStatus)
|
||||
}}</view>
|
||||
</view>
|
||||
<view>
|
||||
@@ -41,7 +40,7 @@
|
||||
<view v-if="order.orderItems.length <= 1" class="goods-title u-line-2">
|
||||
{{ order.groupName }}</view>
|
||||
<view v-if="order.orderItems.length <= 1" class="goods-price">
|
||||
¥{{ order.flowPrice | unitPrice }}
|
||||
¥{{unitPrice(order.flowPrice) }}
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="order.orderItems.length <= 1" class="goods-num">
|
||||
@@ -54,7 +53,7 @@
|
||||
<!-- 等待付款 -->
|
||||
<div v-if="order.payStatus === 'PAID'">已付金额:</div>
|
||||
<div v-else>应付金额:</div>
|
||||
<div class="price">¥{{ order.flowPrice | unitPrice }}</div>
|
||||
<div class="price">¥{{unitPrice(order.flowPrice) }}</div>
|
||||
</view>
|
||||
<view class="goods-btn flex flex-a-c">
|
||||
<!-- 全部 -->
|
||||
@@ -87,7 +86,7 @@
|
||||
</scroll-view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
<u-popup class="cancel-popup" v-model="cancelShow" mode="bottom" length="60%">
|
||||
<u-popup class="cancel-popup" v-model:show="cancelShow" mode="bottom" length="60%">
|
||||
<view class="header">取消订单</view>
|
||||
<view class="body">
|
||||
<view class="title">取消订单后,本单享有的优惠可能会一并取消,是否继续?</view>
|
||||
@@ -107,7 +106,7 @@
|
||||
</view>
|
||||
</u-popup>
|
||||
<u-toast ref="uToast" />
|
||||
<u-modal :confirm-color="lightColor" v-model="rogShow" :show-cancel-button="true" :content="'是否确认收货?'"
|
||||
<u-modal :confirm-color="lightColor" v-model:show="rogShow" :show-cancel-button="true" :content="'是否确认收货?'"
|
||||
@confirm="confirmRog"></u-modal>
|
||||
</view>
|
||||
</template>
|
||||
@@ -234,7 +233,7 @@
|
||||
// this.loadData(this.status);
|
||||
},
|
||||
onShow() {
|
||||
if (this.$options.filters.tipsToLogin()) {
|
||||
if (this.tipsToLogin()) {
|
||||
if (!this.tabCurrentIndex) {
|
||||
this.initData(0);
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<view>
|
||||
<view class="address-title">
|
||||
<span>{{ order.consigneeName || "未填写昵称" }}</span>
|
||||
<span>{{ order.consigneeMobile || "未填写手机号" | secrecyMobile }}</span>
|
||||
<span>{{ order.consigneeMobile || "未填写手机号secrecyMobile(") }}</span>
|
||||
</view>
|
||||
<view class="address">地址:{{ order.consigneeAddressPath }}
|
||||
{{ order.consigneeDetail }}</view>
|
||||
@@ -81,10 +81,10 @@
|
||||
<view class="goods-info" @click="gotoGoodsDetail(sku)">
|
||||
<view class="goods-title u-line-2">{{ sku.goodsName }}</view>
|
||||
<view class="goods-price">
|
||||
¥{{ sku.goodsPrice | unitPrice }}
|
||||
¥{{unitPrice(sku.goodsPrice) }}
|
||||
<!-- <span v-if="sku.point">+{{ sku.point }}积分</span> -->
|
||||
<span style="font-size: 24rpx;margin-left: 14rpx;color: #ff9900;" v-if="sku.isRefund && sku.isRefund !== 'NO_REFUND'">
|
||||
{{refundPriceList(sku.isRefund)}} ({{ sku.refundPrice | unitPrice("¥") }})
|
||||
{{refundPriceList(sku.isRefund)}} ({{unitPrice(sku.refundPrice, "¥") }})
|
||||
</span>
|
||||
</view>
|
||||
</view>
|
||||
@@ -106,19 +106,19 @@
|
||||
<view>
|
||||
<view class="order-info-view">
|
||||
<view class="title">商品总价:</view>
|
||||
<view class="value">¥{{ order.goodsPrice | unitPrice }}</view>
|
||||
<view class="value">¥{{unitPrice(order.goodsPrice) }}</view>
|
||||
</view>
|
||||
<view class="order-info-view" v-if="order.freightPrice">
|
||||
<view class="title">运费:</view>
|
||||
<view class="value">¥{{ order.freightPrice | unitPrice }}</view>
|
||||
<view class="value">¥{{unitPrice(order.freightPrice) }}</view>
|
||||
</view>
|
||||
<view class="order-info-view" v-if="order.priceDetailDTO">
|
||||
<view class="title">优惠券:</view>
|
||||
<view class="value main-color">-¥{{ order.priceDetailDTO.couponPrice | unitPrice }}</view>
|
||||
<view class="value main-color">-¥{{unitPrice(order.priceDetailDTO.couponPrice) }}</view>
|
||||
</view>
|
||||
<view class="order-info-view">
|
||||
<view class="title">活动优惠:</view>
|
||||
<view class="value main-color">-¥{{ order.discountPrice | unitPrice }}</view>
|
||||
<view class="value main-color">-¥{{unitPrice(order.discountPrice) }}</view>
|
||||
</view>
|
||||
<!-- <view class="order-info-view" v-if="order.use_point">
|
||||
<view class="title">使用积分:</view>
|
||||
@@ -203,7 +203,7 @@
|
||||
<text v-if="order.payStatus === 'PAID'">已付金额:</text>
|
||||
<text v-else>应付金额:</text>
|
||||
|
||||
<text class="price" v-if="order.priceDetailDTO">¥{{ order.priceDetailDTO.flowPrice | unitPrice }}</text>
|
||||
<text class="price" v-if="order.priceDetailDTO">¥{{unitPrice(order.priceDetailDTO.flowPrice) }}</text>
|
||||
</view>
|
||||
<view>
|
||||
<!-- 全部 -->
|
||||
@@ -221,7 +221,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<u-popup class="cancel-popup" v-model="cancelShow" mode="bottom" length="60%">
|
||||
<u-popup class="cancel-popup" v-model:show="cancelShow" mode="bottom" length="60%">
|
||||
<view class="header">取消订单</view>
|
||||
<view class="body">
|
||||
<view class="title">取消订单后,本单享有的优惠可能会一并取消,是否继续?</view>
|
||||
@@ -241,7 +241,7 @@
|
||||
</view>
|
||||
</u-popup>
|
||||
<u-toast ref="uToast" />
|
||||
<u-modal v-model="rogShow" :show-cancel-button="true" :content="'是否确认收货?'" :confirm-color="lightColor"
|
||||
<u-modal v-model:show="rogShow" :show-cancel-button="true" :content="'是否确认收货?'" :confirm-color="lightColor"
|
||||
@confirm="confirmRog"></u-modal>
|
||||
|
||||
<!-- 分享 -->
|
||||
@@ -351,11 +351,11 @@ export default {
|
||||
}
|
||||
},
|
||||
callPhone(){
|
||||
this.$options.filters.callPhone(this.order.storeAddressMobile )
|
||||
this.callPhone(this.order.storeAddressMobile )
|
||||
},
|
||||
//联系客服
|
||||
contact(storeId){
|
||||
this.$options.filters.talkIm(storeId)
|
||||
this.talkIm(storeId)
|
||||
},
|
||||
goToShopPage(val) {
|
||||
uni.navigateTo({
|
||||
@@ -413,7 +413,7 @@ export default {
|
||||
});
|
||||
},
|
||||
onCopy(sn) {
|
||||
this.$options.filters.setClipboard(sn)
|
||||
setClipboard(sn)
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<view class="u-skeleton" v-if="!articleData">
|
||||
<u-empty text="文章暂无内容" mode="list"></u-empty>
|
||||
</view>
|
||||
<u-parse v-else :html="articleData"></u-parse>
|
||||
<u-parse v-else :content="articleData"></u-parse>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<u-navbar :border-bottom="false"></u-navbar>
|
||||
<u-navbar :border="false"></u-navbar>
|
||||
<step1 v-if="current == 1" :companyData="companyData" @callback="next()" />
|
||||
<step2 v-if="current == 2" :companyData="companyData" @callback="next()" />
|
||||
<step3
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<u-navbar :border-bottom="false"></u-navbar>
|
||||
<u-navbar :border="false"></u-navbar>
|
||||
<div>
|
||||
<div class="title">店铺入驻</div>
|
||||
<div class="step-list">
|
||||
@@ -57,7 +57,7 @@ export default {
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
if(this.$options.filters.tipsToLogin()){
|
||||
if(this.tipsToLogin()){
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -116,12 +116,10 @@
|
||||
<div>
|
||||
<u-upload
|
||||
:file-list="licencePhotoFileList"
|
||||
:header="{ accessToken: storage.getAccessToken() }"
|
||||
:action="action"
|
||||
:auto-upload="false"
|
||||
width="200"
|
||||
@on-uploaded="onUploaded($event, 'licencePhoto')"
|
||||
@afterRead="onUploadAfterRead($event, 'licencePhoto', 'licencePhotoFileList')"
|
||||
:max-count="1"
|
||||
:show-progress="false"
|
||||
></u-upload>
|
||||
|
||||
<div class="tips">
|
||||
@@ -155,21 +153,17 @@
|
||||
<div>
|
||||
<u-upload
|
||||
:file-list="legalPhotoFileList"
|
||||
:header="{ accessToken: storage.getAccessToken() }"
|
||||
:action="action"
|
||||
:auto-upload="false"
|
||||
width="200"
|
||||
@on-uploaded="onUploaded($event, 'legalPhoto')"
|
||||
@afterRead="onUploadAfterRead($event, 'legalPhoto', 'legalPhotoFileList')"
|
||||
:max-count="1"
|
||||
:show-progress="false"
|
||||
></u-upload>
|
||||
<u-upload
|
||||
:file-list="legalPhotoFileList"
|
||||
:header="{ accessToken: storage.getAccessToken() }"
|
||||
:action="action"
|
||||
:file-list="legalPhotoBackFileList"
|
||||
:auto-upload="false"
|
||||
width="200"
|
||||
@on-uploaded="onUploaded($event, 'legalPhoto')"
|
||||
@afterRead="onUploadAfterRead($event, 'legalPhoto', 'legalPhotoBackFileList')"
|
||||
:max-count="1"
|
||||
:show-progress="false"
|
||||
></u-upload>
|
||||
</div>
|
||||
</u-form-item>
|
||||
@@ -192,20 +186,20 @@
|
||||
import { applyFirst } from "@/api/entry";
|
||||
import city from "@/components/m-city/m-city.vue";
|
||||
import storage from "@/utils/storage.js";
|
||||
import { upload } from "@/api/common.js";
|
||||
import { handleUploadAfterRead, getUploadedUrls } from "@/utils/uploadHelper.js";
|
||||
import * as RegExp from "@/utils/RegExp.js";
|
||||
export default {
|
||||
components: { "m-city": city },
|
||||
data() {
|
||||
return {
|
||||
storage,
|
||||
action: upload, //图片上传数据
|
||||
defaultInputStyle: {
|
||||
background: "#f7f7f7",
|
||||
padding: "0 20rpx",
|
||||
"border-radius": "10rpx",
|
||||
},
|
||||
legalPhotoFileList: [],
|
||||
legalPhotoBackFileList: [],
|
||||
licencePhotoFileList: [],
|
||||
form: {
|
||||
companyName: "",
|
||||
@@ -316,7 +310,7 @@ export default {
|
||||
companyData: {
|
||||
handler(val) {
|
||||
if (val) {
|
||||
this.$set(this, "form", val);
|
||||
this["form"] = val;
|
||||
// 给图片赋值
|
||||
const judgeDeepPhoto = ["legalPhoto", "licencePhoto"];
|
||||
judgeDeepPhoto.forEach((key) => {
|
||||
@@ -332,16 +326,20 @@ export default {
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 图片上传
|
||||
onUploaded(lists, key) {
|
||||
let images = [];
|
||||
if(!this.form[key]){
|
||||
onUploadAfterRead(event, key, fileListKey) {
|
||||
if (!Array.isArray(this.form[key])) {
|
||||
this.form[key] = [];
|
||||
}
|
||||
lists.forEach((item) => {
|
||||
images.push(item.response.result);
|
||||
handleUploadAfterRead(event, this[fileListKey], () => {
|
||||
if (key === "legalPhoto") {
|
||||
this.form[key] = [
|
||||
...getUploadedUrls(this.legalPhotoFileList),
|
||||
...getUploadedUrls(this.legalPhotoBackFileList),
|
||||
];
|
||||
} else {
|
||||
this.form[key] = getUploadedUrls(this[fileListKey]);
|
||||
}
|
||||
});
|
||||
this.form[key].push(images[0]);
|
||||
},
|
||||
getPickerParentValue(e) {
|
||||
this.form.companyAddressIdPath = [];
|
||||
|
||||
@@ -89,7 +89,7 @@ export default {
|
||||
watch: {
|
||||
companyData: {
|
||||
handler(val) {
|
||||
this.$set(this, "form", val);
|
||||
this["form"] = val;
|
||||
console.log(this.form)
|
||||
},
|
||||
deep: true,
|
||||
|
||||
@@ -19,12 +19,10 @@
|
||||
<div>
|
||||
<u-upload
|
||||
:file-list="storeLogoFileList"
|
||||
:header="{ accessToken: storage.getAccessToken() }"
|
||||
:action="action"
|
||||
:auto-upload="false"
|
||||
width="200"
|
||||
@on-uploaded="onUploaded($event, 'storeLogo')"
|
||||
@afterRead="onUploadAfterRead($event, 'storeLogo', 'storeLogoFileList')"
|
||||
:max-count="1"
|
||||
:show-progress="false"
|
||||
></u-upload>
|
||||
</div>
|
||||
</u-form-item>
|
||||
@@ -101,7 +99,7 @@
|
||||
</m-city>
|
||||
|
||||
<u-select
|
||||
v-model="enableCategory"
|
||||
v-model:show="enableCategory"
|
||||
@confirm="confirmCategory"
|
||||
:list="categoryList"
|
||||
></u-select>
|
||||
@@ -115,7 +113,7 @@ import { applyThird } from "@/api/entry";
|
||||
import { getCategoryList } from "@/api/goods";
|
||||
import city from "@/components/m-city/m-city.vue";
|
||||
import storage from "@/utils/storage.js";
|
||||
import { upload } from "@/api/common.js";
|
||||
import { handleUploadAfterRead } from "@/utils/uploadHelper.js";
|
||||
import uniMap from "@/components/uniMap";
|
||||
import permision from "@/js_sdk/wa-permission/permission.js";
|
||||
export default {
|
||||
@@ -124,7 +122,6 @@ export default {
|
||||
return {
|
||||
storage,
|
||||
mapFlag: false,
|
||||
action: upload, //图片上传数据
|
||||
defaultInputStyle: {
|
||||
background: "#f7f7f7",
|
||||
padding: "0 20rpx",
|
||||
@@ -171,7 +168,7 @@ export default {
|
||||
watch: {
|
||||
companyData: {
|
||||
handler(val) {
|
||||
this.$set(this, "form", val);
|
||||
this["form"] = val;
|
||||
// 给图片赋值
|
||||
const judgeDeepPhoto = ["storeLogo"];
|
||||
|
||||
@@ -282,13 +279,10 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
// 图片上传
|
||||
onUploaded(lists, key) {
|
||||
let images = [];
|
||||
lists.forEach((item) => {
|
||||
images.push(item.response.result);
|
||||
onUploadAfterRead(event, key, fileListKey) {
|
||||
handleUploadAfterRead(event, this[fileListKey], (urls) => {
|
||||
this.form[key] = urls;
|
||||
});
|
||||
this.form[key] = images;
|
||||
},
|
||||
getPickerParentValue(e) {
|
||||
this.form.storeAddressIdPath = [];
|
||||
@@ -303,7 +297,7 @@ export default {
|
||||
} else {
|
||||
name += item.localName + ",";
|
||||
}
|
||||
this.$set(this.form,'storeAddressPath',name)
|
||||
this.form['storeAddressPath'] = name
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<div v-if="!wechatLogin">
|
||||
<u-navbar :is-back="showBack" :border-bottom="false"></u-navbar>
|
||||
<u-navbar :auto-back="showBack" :border="false"></u-navbar>
|
||||
<div>
|
||||
<div class="title">{{ loginTitleWay[current].title }}</div>
|
||||
<div :class="current == 1 ? 'desc-light' : 'desc'">
|
||||
{{ loginTitleWay[current].desc
|
||||
}}<span v-if="current == 1">{{ mobile | secrecyMobile }}</span>
|
||||
}}<span v-if="current == 1">{{secrecyMobile(mobile) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 手机号 -->
|
||||
@@ -24,9 +24,9 @@
|
||||
boxNormalColor="#D8D8D8" cursorColor="#D8D8D8" />
|
||||
|
||||
<div class="fetch-btn">
|
||||
<u-verification-code change-text="验证码已发送(x)" end-text="重新获取验证码" unique-key="page-login"
|
||||
<u-code change-text="验证码已发送(x)" end-text="重新获取验证码" unique-key="page-login"
|
||||
:seconds="seconds" @end="end" @start="start" ref="uCode" @change="codeChange">
|
||||
</u-verification-code>
|
||||
</u-code>
|
||||
<span @tap="fetchCode" :style="{ color: codeColor }">
|
||||
{{ tips }}</span>
|
||||
</div>
|
||||
|
||||
@@ -46,7 +46,7 @@ export default {
|
||||
},
|
||||
},
|
||||
onShow() {
|
||||
this.$options.filters.forceLogin();
|
||||
this.forceLogin();
|
||||
scannerCodeLogin({ token: this.token }).then((res) => {
|
||||
if (res.data.code == 200) {
|
||||
let code = res.data.result;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="container">
|
||||
<u-navbar :custom-back="back" title="公众网页登录"></u-navbar>
|
||||
<u-navbar :auto-back="false" @leftClick="back" title="公众网页登录"></u-navbar>
|
||||
<view class="wx-auth-container">
|
||||
<div class="box">
|
||||
<view class="logo-info">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="container">
|
||||
<u-navbar :custom-back="back" title="小程序登录"></u-navbar>
|
||||
<u-modal v-model="phoneAuthPopup" :mask-close-able="true" :title="projectName+'商城'"
|
||||
<u-navbar :auto-back="false" @leftClick="back" title="小程序登录"></u-navbar>
|
||||
<u-modal v-model:show="phoneAuthPopup" :mask-close-able="true" :title="projectName+'商城'"
|
||||
:show-confirm-button="false">
|
||||
<div class="tips">
|
||||
为了更好地用户体验,需要您授权手机号
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<view class="section-info">
|
||||
<image class="portrait" :src="item.memberProfile || userImage" mode="aspectFit"></image>
|
||||
<view class="star-content">
|
||||
<text class="name">{{ item.memberName | noPassByName }}</text>
|
||||
<text class="name">{{noPassByName(item.memberName) }}</text>
|
||||
<text class="time">{{ item.createTime }}</text>
|
||||
</view>
|
||||
<view class="stars">
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
:y="navbarListY" placement="top-start" />
|
||||
<view class="index">
|
||||
<!-- topBar -->
|
||||
<u-navbar :background="navbar" :is-back="false" :class="headerFlag ? 'header' : 'header bg-none scroll-hide'">
|
||||
<u-navbar :bg-color="navbar.background" :auto-back="false" :class="headerFlag ? 'header' : 'header bg-none scroll-hide'">
|
||||
<div class="headerRow">
|
||||
<div class="backs">
|
||||
<u-icon @click="back()" name="arrow-left" class="icon-back"></u-icon>
|
||||
@@ -35,8 +35,8 @@
|
||||
</div>
|
||||
</u-navbar>
|
||||
|
||||
<u-navbar :border-bottom="false" v-show="!headerFlag" class="header-only-back" :background="navbarOnlyBack"
|
||||
:is-back="false">
|
||||
<u-navbar :border="false" v-show="!headerFlag" class="header-only-back" :bg-color="navbarOnlyBack.background"
|
||||
:auto-back="false">
|
||||
<div>
|
||||
<div class="bg-back">
|
||||
<u-icon size="40" @click="back()" name="arrow-left" class="icon-back"></u-icon>
|
||||
@@ -87,21 +87,21 @@
|
||||
<span>
|
||||
<span v-if="wholesaleList.length">
|
||||
<span>¥</span><span class="price">{{
|
||||
$options.filters.goodsFormatPrice(wholesaleList[wholesaleList.length - 1].price)[0]
|
||||
goodsFormatPrice(wholesaleList[wholesaleList.length - 1].price)[0]
|
||||
}}</span>.{{
|
||||
$options.filters.goodsFormatPrice(wholesaleList[wholesaleList.length - 1].price)[1]
|
||||
goodsFormatPrice(wholesaleList[wholesaleList.length - 1].price)[1]
|
||||
}}
|
||||
~
|
||||
<span>¥</span><span class="price">{{
|
||||
$options.filters.goodsFormatPrice(wholesaleList[0].price)[0]
|
||||
goodsFormatPrice(wholesaleList[0].price)[0]
|
||||
}}</span>.{{
|
||||
$options.filters.goodsFormatPrice(wholesaleList[0].price)[1]
|
||||
goodsFormatPrice(wholesaleList[0].price)[1]
|
||||
}}
|
||||
</span>
|
||||
<span v-else>
|
||||
<span>¥</span><span class="price">{{
|
||||
$options.filters.goodsFormatPrice(goodsDetail.price)[0]
|
||||
}}</span>.{{ $options.filters.goodsFormatPrice(goodsDetail.price)[1] }}
|
||||
goodsFormatPrice(goodsDetail.price)[0]
|
||||
}}</span>.{{ goodsFormatPrice(goodsDetail.price)[1] }}
|
||||
</span>
|
||||
</span>
|
||||
</view>
|
||||
@@ -169,8 +169,7 @@
|
||||
<view class="card-flex" @click="shutMask(3)">
|
||||
<view class="card-title"> 送至</view>
|
||||
<view class="card-content">
|
||||
<span v-if="delivery">{{
|
||||
delivery.consigneeAddressPath | clearStrComma
|
||||
<span v-if="delivery">{{clearStrComma(delivery.consigneeAddressPath)
|
||||
}}</span>
|
||||
<span v-else>暂无地址信息</span>
|
||||
</view>
|
||||
@@ -227,11 +226,11 @@
|
||||
<!-- 拼团结算 -->
|
||||
<view class="detail-btn" v-else-if="isGroup">
|
||||
<view class="to-store-car pt-buy to-store-btn" @click="shutMask(4, 'buy')">
|
||||
<view>¥{{ goodsDetail.price | unitPrice }}</view>
|
||||
<view>¥{{unitPrice(goodsDetail.price) }}</view>
|
||||
<view>单独购买</view>
|
||||
</view>
|
||||
<view class="to-buy pt-buy to-store-btn" @click="toAssembleBuyNow">
|
||||
<view>¥{{ goodsDetail.promotionPrice | unitPrice }}</view>
|
||||
<view>¥{{unitPrice(goodsDetail.promotionPrice) }}</view>
|
||||
<view>拼团价格</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -239,7 +238,7 @@
|
||||
<!-- 规格-模态层弹窗 -->
|
||||
<view class="spec">
|
||||
<!-- 促销弹窗 -->
|
||||
<u-popup v-model="promotionShow" :height="setup.height" :mode="setup.mode" :border-radius="setup.radius"
|
||||
<u-popup v-model:show="promotionShow" :height="setup.height" :mode="setup.mode" :border-radius="setup.radius"
|
||||
@close="promotionShow = false" :mask-close-able="setup.close" closeable>
|
||||
<view class="header-title">优惠</view>
|
||||
<view class="cuxiao">
|
||||
@@ -567,7 +566,7 @@ export default {
|
||||
// }, 500);
|
||||
}
|
||||
// 这里是绑定分销员
|
||||
if ((distributionId || this.$store.state.distributionId) && this.$options.filters.isLogin("auth")) {
|
||||
if ((distributionId || this.$store.state.distributionId) && this.isLogin("auth")) {
|
||||
let disResult = await getGoodsDistribution(distributionId);
|
||||
if (!disResult.data.success || disResult.statusCode == 403) {
|
||||
this.$store.state.distributionId = distributionId;
|
||||
@@ -609,7 +608,7 @@ export default {
|
||||
this.getOtherLikeGoods();
|
||||
// 获取商品是否已被收藏 如果未登录不获取
|
||||
|
||||
if (this.$options.filters.isLogin("auth")) {
|
||||
if (this.isLogin("auth")) {
|
||||
this.getGoodsCollectionFun(this.goodsDetail.id);
|
||||
}
|
||||
// 获取IM 需要的话使用
|
||||
@@ -625,7 +624,7 @@ export default {
|
||||
|
||||
linkMsgDetail () {
|
||||
// lili 基础客服
|
||||
this.$options.filters.talkIm(this.goodsDetail.storeId, this.routerVal.goodsId, this.routerVal.id)
|
||||
this.talkIm(this.goodsDetail.storeId, this.routerVal.goodsId, this.routerVal.id)
|
||||
// uni.navigateTo({
|
||||
// url: `/pages/mine/im/index?userId=${this.goodsDetail.storeId}&goodsid=${this.routerVal.goodsId}&skuid=${this.routerVal.id}`
|
||||
// });
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<view class="section-info">
|
||||
<u-avatar mode="circle" size="60" class="portrait" :src="commItem.memberProfile"></u-avatar>
|
||||
<view class="star-con">
|
||||
<text class="name">{{ commItem.memberName | noPassByName }}</text>
|
||||
<text class="name">{{noPassByName(commItem.memberName) }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="section-contant">
|
||||
|
||||
@@ -15,9 +15,7 @@
|
||||
<u-parse
|
||||
class="vhtml"
|
||||
:lazy-load="true"
|
||||
:use-cache="true"
|
||||
:show-with-animation="true"
|
||||
:html="res.mobileIntro"
|
||||
:content="res.mobileIntro"
|
||||
:tag-style="style"
|
||||
></u-parse>
|
||||
</view>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
<view class="image-wrapper">
|
||||
<u-image :src="item" mode="aspectFit" class="loaded" width="100%" height="100%">
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
</u-image>
|
||||
</view>
|
||||
</swiper-item>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<u-popup class="popup" v-model="addressFlag" :height="setup.height" :mode="setup.mode" :border-radius="setup.radius" @close="closeAddress()" closeable>
|
||||
<u-popup class="popup" v-model:show="addressFlag" :height="setup.height" :mode="setup.mode" :border-radius="setup.radius" @close="closeAddress()" closeable>
|
||||
<view class="header-title">选择地址</view>
|
||||
<view class="view-box" v-if="addressDetail">
|
||||
<view class="view-item" v-for="(item, index) in addressDetail" :key="index" @click="clickAddress(item)">
|
||||
@@ -8,7 +8,7 @@
|
||||
<u-icon v-if="item.isDefault" :class="{ active: item.isDefault }" name="checkmark" size="12"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="view-box-dress" :class="{ 'box-dress-blod': item.isDefault }">{{ item.consigneeAddressPath | clearStrComma }}</view>
|
||||
<view class="view-box-dress" :class="{ 'box-dress-blod': item.isDefault }">{{clearStrComma(item.consigneeAddressPath) }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="view-box" v-else>
|
||||
@@ -46,23 +46,19 @@ export default {
|
||||
],
|
||||
};
|
||||
},
|
||||
filters: {},
|
||||
watch: {},
|
||||
mounted() {
|
||||
props: ["goodsId", "addressFlag"],
|
||||
|
||||
methods: {
|
||||
mounted() {
|
||||
this.addressFlag = false;
|
||||
if( this.$options.filters.isLogin("auth") ){
|
||||
if( this.isLogin("auth") ){
|
||||
this.getShippingAddress()
|
||||
}
|
||||
else{
|
||||
uni.navigateTo({
|
||||
url: 'pages/passport/login'
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
props: ["goodsId", "addressFlag"],
|
||||
|
||||
methods: {
|
||||
},
|
||||
/**关闭地址 */
|
||||
closeAddress() {
|
||||
this.$emit("closeAddress", false);
|
||||
@@ -79,7 +75,7 @@ export default {
|
||||
|
||||
/**获取地址 */
|
||||
getShippingAddress() {
|
||||
if (this.$options.filters.isLogin("auth")) {
|
||||
if (this.isLogin("auth")) {
|
||||
API_Address.getAddressList(1, 50).then((res) => {
|
||||
if (res.data.success) {
|
||||
this.addressDetail = res.data.result.records;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<view class="group-item" v-for="(order, index) in assembleOrder" :key="index">
|
||||
<view class="group-item-user">
|
||||
<u-image shape="circle" width="40px" height="40px" :src="order.face || userImage"></u-image>
|
||||
<span class="group-item-name">{{ order.nickName | noPassByName }}</span>
|
||||
<span class="group-item-name">{{noPassByName(order.nickName) }}</span>
|
||||
</view>
|
||||
<view>
|
||||
<span class="group-item-name">还差{{ order.toBeGroupedNum }}人成团</span>
|
||||
|
||||
@@ -21,15 +21,15 @@
|
||||
>
|
||||
¥
|
||||
<span class="flex-price">
|
||||
{{ $options.filters.goodsFormatPrice(detail.promotionPrice)[0] }}.{{
|
||||
$options.filters.goodsFormatPrice(detail.promotionPrice)[1]
|
||||
{{ goodsFormatPrice(detail.promotionPrice)[0] }}.{{
|
||||
goodsFormatPrice(detail.promotionPrice)[1]
|
||||
}}</span
|
||||
>
|
||||
</span>
|
||||
<view class="u-group-flex" v-if="detail.price != undefined">
|
||||
<span class="old-price"
|
||||
>¥{{ $options.filters.goodsFormatPrice(detail.price)[0] }}.{{
|
||||
$options.filters.goodsFormatPrice(detail.price)[1]
|
||||
>¥{{ goodsFormatPrice(detail.price)[0] }}.{{
|
||||
goodsFormatPrice(detail.price)[1]
|
||||
}}</span
|
||||
>
|
||||
<view class="promotion">限时抢购</view>
|
||||
@@ -42,8 +42,8 @@
|
||||
<span
|
||||
class="flex-price"
|
||||
v-if="promotion.groupbuy_goods_vo.price != undefined"
|
||||
>¥{{ $options.filters.goodsFormatPrice(promotion.groupbuy_goods_vo.price)[0] }}.{{
|
||||
$options.filters.goodsFormatPrice(promotion.groupbuy_goods_vo.price)[1]
|
||||
>¥{{ goodsFormatPrice(promotion.groupbuy_goods_vo.price)[0] }}.{{
|
||||
goodsFormatPrice(promotion.groupbuy_goods_vo.price)[1]
|
||||
}}</span
|
||||
>
|
||||
<!-- <span v-if="promotion.point">+{{promotion.point}}积分</span> -->
|
||||
@@ -53,9 +53,9 @@
|
||||
class="old-price"
|
||||
v-if="promotion.groupbuy_goods_vo.original_price != undefined"
|
||||
>¥{{
|
||||
$options.filters.goodsFormatPrice(promotion.groupbuy_goods_vo.original_price)[0]
|
||||
goodsFormatPrice(promotion.groupbuy_goods_vo.original_price)[0]
|
||||
}}.{{
|
||||
$options.filters.goodsFormatPrice(promotion.groupbuy_goods_vo.original_price)[1]
|
||||
goodsFormatPrice(promotion.groupbuy_goods_vo.original_price)[1]
|
||||
}}</span
|
||||
>
|
||||
<view class="promotion">团购活动</view>
|
||||
@@ -68,13 +68,13 @@
|
||||
v-if="detail.promotionPrice != undefined"
|
||||
>
|
||||
¥<span class="flex-price">
|
||||
{{ $options.filters.goodsFormatPrice(detail.promotionPrice)[0] }}.</span
|
||||
>{{ $options.filters.goodsFormatPrice(detail.promotionPrice)[1] }}
|
||||
{{ goodsFormatPrice(detail.promotionPrice)[0] }}.</span
|
||||
>{{ goodsFormatPrice(detail.promotionPrice)[1] }}
|
||||
</span>
|
||||
<view class="u-group-flex" v-if="detail.price != undefined">
|
||||
<span class="old-price"
|
||||
>¥{{ $options.filters.goodsFormatPrice(detail.price)[0] }}.{{
|
||||
$options.filters.goodsFormatPrice(detail.price)[1]
|
||||
>¥{{ goodsFormatPrice(detail.price)[0] }}.{{
|
||||
goodsFormatPrice(detail.price)[1]
|
||||
}}</span
|
||||
>
|
||||
<view class="promotion">拼团活动</view>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<view class="top">
|
||||
<div class="price">
|
||||
<span v-if="item.couponType == 'DISCOUNT'">{{ item.couponDiscount }}折</span>
|
||||
<span v-if="item.couponType == 'PRICE'">¥{{ item.price | unitPrice }}</span>
|
||||
<span v-if="item.couponType == 'PRICE'">¥{{unitPrice(item.price) }}</span>
|
||||
</div>
|
||||
<view class="text">
|
||||
<div class="coupon-List-title">
|
||||
@@ -18,7 +18,7 @@
|
||||
}}使用</view>
|
||||
</view>
|
||||
</div>
|
||||
<div>满{{ item.consumeThreshold | unitPrice }}可用</div>
|
||||
<div>满{{unitPrice(item.consumeThreshold) }}可用</div>
|
||||
</view>
|
||||
<view class="lingqu-btn" @click="getCoupon(item, index)">
|
||||
<div :class="yhqFlag[index] ? 'cur' : ''">
|
||||
@@ -27,7 +27,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="line"></view>
|
||||
<view class="time">{{ item.startTime / 1000 | unixToDate }} - {{ item.endTime / 1000 | unixToDate }}</view>
|
||||
<view class="time">{{ item.startTime /unixToDate(1000) }} - {{ item.endTime /unixToDate(1000) }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -25,14 +25,14 @@
|
||||
<view class="recommend-list">
|
||||
<view class="recommend-item" @click="clickGoods(item)" v-for="(item, index) in res" :key="index">
|
||||
<u-image class="recommend-item-img" :fade="true" duration="450" :lazy-load="true" :src="item.thumbnail" height="218rpx">
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<view slot="error" style="font-size: 24rpx; ">加载失败</view>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
<template #error><view style="font-size: 24rpx; ">加载失败</view></template>
|
||||
</u-image>
|
||||
<view class="recommend-item-name">
|
||||
{{ item.goodsName }}
|
||||
</view>
|
||||
<view class="item-price" v-if="item.price != undefined">
|
||||
¥<span class="item-price-blod">{{ $options.filters.goodsFormatPrice(item.price)[0] }}</span>.{{ $options.filters.goodsFormatPrice(item.price)[1] }}
|
||||
¥<span class="item-price-blod">{{ goodsFormatPrice(item.price)[0] }}</span>.{{ goodsFormatPrice(item.price)[1] }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
</div>
|
||||
<div class="flex store-distance">
|
||||
<div>
|
||||
<span class="store-score">{{item.serviceScore | unitPrice}}</span>
|
||||
<span class="store-score">{{unitPrice(item.serviceScore)}}</span>
|
||||
<span class="line">|</span>
|
||||
<span class="store-collection">收藏 {{item.collectionNum}}</span>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<view>
|
||||
<!-- 楼层装修店铺信息 -->
|
||||
<div>
|
||||
<u-navbar :border-bottom="false">
|
||||
<u-navbar :border="false">
|
||||
<u-search
|
||||
v-model="keyword"
|
||||
@search="search"
|
||||
@@ -74,7 +74,7 @@
|
||||
<view class="xian"></view>
|
||||
<view class="text">
|
||||
<text>{{ "领取优惠券" }}</text>
|
||||
<text>满{{ item.consumeThreshold | unitPrice }}元可用</text>
|
||||
<text>满{{unitPrice(item.consumeThreshold) }}元可用</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -113,7 +113,7 @@
|
||||
<u-navbar
|
||||
class="navbar"
|
||||
v-if="item.type == 'search'"
|
||||
:is-fixed="index === 1 ? false : true"
|
||||
:fixed="index === 1 ? false : true"
|
||||
>
|
||||
<div class="navbar-right"></div>
|
||||
|
||||
@@ -293,7 +293,7 @@ export default {
|
||||
|
||||
methods: {
|
||||
talk(){
|
||||
this.$options.filters.talkIm(this.storeInfo.storeId)
|
||||
this.talkIm(this.storeInfo.storeId)
|
||||
},
|
||||
back() {
|
||||
uni.navigateBack();
|
||||
@@ -325,7 +325,7 @@ export default {
|
||||
this.categoryList = [];
|
||||
this.couponList = [];
|
||||
this.goodsParams.pageNumber = 1;
|
||||
if (this.$options.filters.isLogin("auth")) {
|
||||
if (this.isLogin("auth")) {
|
||||
this.enableGoodsIsCollect();
|
||||
}
|
||||
// 店铺信息
|
||||
@@ -482,14 +482,14 @@ export default {
|
||||
* 领取
|
||||
*/
|
||||
getCoupon(item) {
|
||||
if (!this.$options.filters.isLogin("auth")) {
|
||||
if (!this.isLogin("auth")) {
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
duration: 3000,
|
||||
title: "请先登录!",
|
||||
});
|
||||
|
||||
this.$options.filters.navigateToLogin("redirectTo");
|
||||
this.navigateToLogin("redirectTo");
|
||||
return false;
|
||||
}
|
||||
receiveCoupons(item.id).then((res) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="page">
|
||||
<u-navbar :custom-back="back" back-icon-color="#fff" :background="background" :border-bottom="false">
|
||||
<u-navbar :auto-back="false" @leftClick="back" left-icon-color="#fff" :bg-color="background.backgroundColor" :border="false">
|
||||
</u-navbar>
|
||||
|
||||
<div class="wrapper-box">
|
||||
@@ -17,9 +17,9 @@
|
||||
</div>
|
||||
<div class="flex price-box">
|
||||
<div class="purchase-price">
|
||||
当前:<span>¥{{ activityData.surplusPrice == 0 ? this.bargains.purchasePrice : activityData.surplusPrice | unitPrice}}</span>
|
||||
当前:<span>¥{{ activityData.surplusPrice == 0 ? this.bargains.purchasePrice :unitPrice(activityData.surplusPrice)}}</span>
|
||||
</div>
|
||||
<div class="max-price">原价:<span>¥{{ bargainDetail.price | unitPrice}}</span>
|
||||
<div class="max-price">原价:<span>¥{{unitPrice(bargainDetail.price)}}</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -47,7 +47,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 我要开团 -->
|
||||
<div class="start" v-if="activityData.memberId != $options.filters.isLogin().id" @click="startOpenGroup">我要开团
|
||||
<div class="start" v-if="activityData.memberId != isLogin().id" @click="startOpenGroup">我要开团
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -61,10 +61,10 @@
|
||||
</div>
|
||||
<div class="user-config flex">
|
||||
<div class="user-name">
|
||||
<div>{{item.kanjiaMemberName | noPassByName}}</div>
|
||||
<div>{{noPassByName(item.kanjiaMemberName)}}</div>
|
||||
<div>使出吃的奶劲儿</div>
|
||||
</div>
|
||||
<div class="save">砍掉:<span>¥{{item.kanjiaPrice | unitPrice}}</span></div>
|
||||
<div class="save">砍掉:<span>¥{{unitPrice(item.kanjiaPrice)}}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -74,14 +74,14 @@
|
||||
<div class="bargain">
|
||||
<div class="bargain-title">商品详情</div>
|
||||
<view class="u-content">
|
||||
<u-parse :html="bargainDetail.mobileIntro" :tag-style="style"></u-parse>
|
||||
<u-parse :content="bargainDetail.mobileIntro" :tag-style="style"></u-parse>
|
||||
</view>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 砍价 -->
|
||||
<u-modal title="恭喜您砍掉了" v-model="Bargaining" mask-close-able :show-confirm-button="false"
|
||||
<u-modal title="恭喜您砍掉了" v-model:show="Bargaining" mask-close-able :show-confirm-button="false"
|
||||
:title-style="{color: lightColor}">
|
||||
<view class="slot-content">
|
||||
<u-count-to :start-val="0" ref="uCountTo" font-size="100" :color="lightColor" :end-val="kanjiaPrice"
|
||||
@@ -90,7 +90,7 @@
|
||||
</u-modal>
|
||||
<!-- 帮砍 -->
|
||||
|
||||
<u-modal :show-title="false" v-model="helpBargainFlage" :show-confirm-button="false">
|
||||
<u-modal :show-title="false" v-model:show="helpBargainFlage" :show-confirm-button="false">
|
||||
<view class="help-bargain" @click="handleClickHelpBargain">
|
||||
<u-image width="100%" height="600rpx"
|
||||
src="https://lilishop-oss.oss-cn-beijing.aliyuncs.com/91631d5a66c7426bbe3f7d644ee41946.jpeg"></u-image>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="page">
|
||||
<u-navbar :custom-back="back" back-icon-color="#fff" :background="background" :border-bottom="false" >
|
||||
<u-navbar :auto-back="false" @leftClick="back" left-icon-color="#fff" :bg-color="background.backgroundColor" :border="false" >
|
||||
</u-navbar>
|
||||
<div class="wrapper">
|
||||
<!-- 砍价列表 -->
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
{{item.goodsName}}
|
||||
</div>
|
||||
<div>
|
||||
还剩<span class="surplusPrice">{{item.surplusPrice | unitPrice}}元</span>
|
||||
还剩<span class="surplusPrice">{{unitPrice(item.surplusPrice)}}元</span>
|
||||
</div>
|
||||
|
||||
<div @click="navigateToBargainDetail(item)" v-if="item.status == 'START'" class="buy">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="wrapper">
|
||||
<u-navbar :border-bottom="false" :title="title">
|
||||
<u-navbar :border="false" :title="title">
|
||||
<!-- 中间 -->
|
||||
<view class="slot-wrap container-wrap">
|
||||
<view v-if="search">
|
||||
@@ -8,12 +8,12 @@
|
||||
</view>
|
||||
</view>
|
||||
<!-- 右侧 -->
|
||||
<view slot="right">
|
||||
<template #right>
|
||||
<view style="margin-right: 24rpx;" @click="searchFlag()">
|
||||
<view v-if="search">取消</view>
|
||||
<u-icon v-if="!search" size="44rpx" name="search"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
</u-navbar>
|
||||
<!-- 顶部栏 -->
|
||||
<div class='header-wraper'>
|
||||
|
||||
@@ -174,18 +174,18 @@ export default {
|
||||
|
||||
if (!this.recommendLives.length) {
|
||||
if (this.liveList[0].shareImg) {
|
||||
this.$set(this, "swiperImg", [
|
||||
this["swiperImg"] = [
|
||||
{
|
||||
image: this.liveList[0].shareImg,
|
||||
roomId: this.liveList[0].roomId,
|
||||
},
|
||||
]);
|
||||
];
|
||||
}
|
||||
} else {
|
||||
this.recommendLives.forEach((item) => {
|
||||
this.$set(this, "swiperImg", [
|
||||
this["swiperImg"] = [
|
||||
{ image: item.shareImg, roomId: item.roomId },
|
||||
]);
|
||||
];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="page">
|
||||
<u-navbar :border-bottom="false" title="积分商品"></u-navbar>
|
||||
<u-navbar :border="false" title="积分商品"></u-navbar>
|
||||
|
||||
<div class="wrapper">
|
||||
<!-- 积分商品列表 -->
|
||||
@@ -16,9 +16,9 @@
|
||||
{{goodsData.goodsName}}
|
||||
</div>
|
||||
<div class="flex price-box">
|
||||
<div class="purchase-price">积分:<span>{{ pointDetail.points | unitPrice }}</span>
|
||||
<div class="purchase-price">积分:<span>{{unitPrice(pointDetail.points) }}</span>
|
||||
</div>
|
||||
<div class="max-price">原价:<span>¥{{ goodsData.price | unitPrice}}</span>
|
||||
<div class="max-price">原价:<span>¥{{unitPrice(goodsData.price)}}</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -37,7 +37,7 @@
|
||||
<div class="bargain">
|
||||
<div class="row-title">商品详情</div>
|
||||
<view class="u-content">
|
||||
<u-parse :html="goodsData.mobileIntro" :tag-style="style"></u-parse>
|
||||
<u-parse :content="goodsData.mobileIntro" :tag-style="style"></u-parse>
|
||||
</view>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
<view class="index-item" v-for="(item, key) in nav.goods" :key="key" @click="toGoods(item)">
|
||||
<view class="index-item-img">
|
||||
<u-image :src="item.thumbnail" mode="aspectFit">
|
||||
<u-loading slot="loading"></u-loading>
|
||||
<template #loading><u-loading></u-loading></template>
|
||||
</u-image>
|
||||
<view class="index-item-title">{{ item.goodsName }}</view>
|
||||
<view class="index-item-price flex flex-a-c flex-j-sb">
|
||||
<div class="point"><span>{{ item.points }}</span>积分</div>
|
||||
<span class="tipsMkt">¥{{ item.originalPrice | unitPrice }}</span>
|
||||
<span class="tipsMkt">¥{{unitPrice(item.originalPrice) }}</span>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<u-navbar :is-back="false" title="购物车">
|
||||
<div slot="right">
|
||||
<u-navbar :auto-back="false" title="购物车">
|
||||
<template #right>
|
||||
<div class="light-color edit" @click="isEdit = !isEdit">{{ !isEdit ? '编辑' : '完成'}}</div>
|
||||
</div>
|
||||
</template>
|
||||
</u-navbar>
|
||||
<!-- 空白页-->
|
||||
<view v-if="!loading && (cartDetail.cartList == '' || cartDetail.cartList == [] || !cartDetail)" class="empty">
|
||||
@@ -40,8 +40,9 @@
|
||||
<span>领劵</span>
|
||||
</view>
|
||||
</view>
|
||||
<u-swipe-action :show="skuItem.selected" @open="openAction(skuItem)" :options="options" bg-color="#fff"
|
||||
ref="swiperAction" class="cart-item" v-for="(skuItem, i) in item.skuList" :index="i" :key="skuItem.goodsSku.id"
|
||||
<u-swipe-action ref="swiperAction" class="cart-item" v-for="(skuItem, i) in item.skuList" :key="skuItem.goodsSku.id">
|
||||
<u-swipe-action-item :show="skuItem.selected" @open="openAction(skuItem)" :options="options"
|
||||
:name="i"
|
||||
@click="changeActionTab(skuItem)" @longpress="changeActionTab(skuItem)">
|
||||
<!-- 满减活动 -->
|
||||
<div v-if="Object.keys(skuItem.promotionMap).length != 0">
|
||||
@@ -83,8 +84,8 @@
|
||||
<view class="sp-price">
|
||||
<!-- <div class="default-color" :class="{'main-color':Object.keys(skuItem.promotionMap).length ==0 }"> -->
|
||||
<div class="main-color">
|
||||
¥<span>{{ $options.filters.goodsFormatPrice(skuItem.goodsSku.price)[0] }}</span>
|
||||
<span>.{{ $options.filters.goodsFormatPrice(skuItem.goodsSku.price)[1] }}</span>
|
||||
¥<span>{{ goodsFormatPrice(skuItem.goodsSku.price)[0] }}</span>
|
||||
<span>.{{ goodsFormatPrice(skuItem.goodsSku.price)[1] }}</span>
|
||||
</div>
|
||||
</view>
|
||||
<view>
|
||||
@@ -105,8 +106,8 @@
|
||||
<!-- 如果有活动 并且是选中的状态,显示预估到手价格 -->
|
||||
<!-- <div class="priceDetail-flowPrice" :class="{'main-color':skuItem.priceDetailDTO}"
|
||||
v-if="skuItem.priceDetailDTO && skuItem.invalid == 0 && Object.keys(skuItem.promotionMap).length != 0 && skuItem.checked && skuItem.checked">
|
||||
预估到手价 ¥<span>{{ $options.filters.goodsFormatPrice(skuItem.priceDetailDTO.flowPrice)[0]}}</span>
|
||||
<span>.{{ $options.filters.goodsFormatPrice(skuItem.priceDetailDTO.flowPrice)[1] }} </span>
|
||||
预估到手价 ¥<span>{{ goodsFormatPrice(skuItem.priceDetailDTO.flowPrice)[0]}}</span>
|
||||
<span>.{{ goodsFormatPrice(skuItem.priceDetailDTO.flowPrice)[1] }} </span>
|
||||
</div> -->
|
||||
<div style='margin-left: 20rpx;' v-if="!skuItem.checked && skuItem.errorMessage">
|
||||
{{skuItem.errorMessage}}
|
||||
@@ -115,10 +116,11 @@
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
</div>
|
||||
</div>
|
||||
<u-modal v-model="deleteShow" :confirm-style="{'color':lightColor}" @confirm="deleteConfirm" show-cancel-button
|
||||
<u-modal v-model:show="deleteShow" :confirm-style="{'color':lightColor}" @confirm="deleteConfirm" show-cancel-button
|
||||
:content="deleteContent" :async-close="true"></u-modal>
|
||||
<!-- 结账 -->
|
||||
<div class="box box6">
|
||||
@@ -130,14 +132,14 @@
|
||||
<div class="fullPrice">
|
||||
<span class="number" v-if="cartDetail && cartDetail.priceDetailDTO">
|
||||
总计:
|
||||
<span>¥{{ $options.filters.goodsFormatPrice(cartDetail.priceDetailDTO.flowPrice)[0] }}</span>.<span>{{ $options.filters.goodsFormatPrice(cartDetail.priceDetailDTO.flowPrice)[1] }}</span>
|
||||
<span>¥{{ goodsFormatPrice(cartDetail.priceDetailDTO.flowPrice)[0] }}</span>.<span>{{ goodsFormatPrice(cartDetail.priceDetailDTO.flowPrice)[1] }}</span>
|
||||
</span>
|
||||
<span class="number" v-else>总计:0.00</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="cartDetail.cartList && cartDetail.cartList.length!=0 && cartDetail.priceDetailDTO && cartDetail.priceDetailDTO.discountPrice!=0 "
|
||||
class="discountPrice">
|
||||
<span>优惠减:¥{{(cartDetail.priceDetailDTO.goodsPrice - cartDetail.priceDetailDTO.flowPrice) | unitPrice}}
|
||||
<span>优惠减:¥{{(cartDetail.priceDetailDTO.goodsPrice -unitPrice(cartDetail.priceDetailDTO.flowPrice))}}
|
||||
</span>
|
||||
<span class="discount-details" @click="discountDetails">优惠明细</span>
|
||||
</div>
|
||||
@@ -145,22 +147,22 @@
|
||||
</span>
|
||||
</view>
|
||||
<!-- 优惠详情 -->
|
||||
<u-popup z-index="3" close mode="bottom" height="50%" closeable v-model="discountDetailsFlag" border-radius="20">
|
||||
<u-popup z-index="3" close mode="bottom" height="50%" closeable v-model:show="discountDetailsFlag" border-radius="20">
|
||||
<div class="discount-list">
|
||||
<view class="discount-title">优惠明细</view>
|
||||
<div class="discount-way">
|
||||
<div class="discount-item" v-if="cartDetail.priceDetailDTO">
|
||||
<span>商品总额</span>
|
||||
<span>¥{{cartDetail.priceDetailDTO.goodsPrice | unitPrice}}</span>
|
||||
<span>¥{{unitPrice(cartDetail.priceDetailDTO.goodsPrice)}}</span>
|
||||
|
||||
</div>
|
||||
<div class="discount-item" v-if="cartDetail.priceDetailDTO">
|
||||
<span>优惠券</span>
|
||||
<span>-¥{{cartDetail.priceDetailDTO.couponPrice | unitPrice}}</span>
|
||||
<span>-¥{{unitPrice(cartDetail.priceDetailDTO.couponPrice)}}</span>
|
||||
</div>
|
||||
<div class="discount-item" v-if="cartDetail.priceDetailDTO">
|
||||
<span>其他优惠</span>
|
||||
<span>-¥{{cartDetail.priceDetailDTO.discountPrice | unitPrice}}</span>
|
||||
<span>-¥{{unitPrice(cartDetail.priceDetailDTO.discountPrice)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -266,11 +268,11 @@ export default {
|
||||
this.cartDetail.cartList.forEach((cartItem) => {
|
||||
if (cartItem.skuList) {
|
||||
cartItem.skuList.forEach((sku) => {
|
||||
this.$set(sku, "selected", false);
|
||||
sku["selected"] = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
this.$set(skuItem, "selected", true);
|
||||
skuItem["selected"] = true;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -380,7 +382,7 @@ export default {
|
||||
* 验证是否选中商品
|
||||
*/
|
||||
whetherChecked() {
|
||||
this.$options.filters.forceLogin()
|
||||
this.forceLogin()
|
||||
|
||||
let canBuy = false;
|
||||
this.cartDetail.cartList.forEach((item) => {
|
||||
@@ -486,7 +488,7 @@ export default {
|
||||
* 获取购物车数据
|
||||
*/
|
||||
getCardData() {
|
||||
if (this.$options.filters.isLogin("auth")) {
|
||||
if (this.isLogin("auth")) {
|
||||
uni.showLoading({
|
||||
title: "加载中",
|
||||
});
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user