Commit c1dd8d61 authored by 秦威威's avatar 秦威威

start

parents
Pipeline #22 failed with stages
# 忽略UniApp编译生成的小程序相关目录
/unpackage/*
!/unpackage/res/*
/.idea/*
/.hbuilderx/*
/.svn/*
<script>
export default {
onLaunch: function() {
console.log('App Launch')
uni.hideTabBar()
},
onShow: function() {
console.log('App Show')
uni.hideTabBar()
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style lang="scss">
/*每个页面公共css */
// @import "uview-ui/index.scss";
@import "@/uni_modules/uview-ui/index.scss";
page {
height: 100%;
}
.bgMain {
background: white;
padding: 24rpx;
height: 100%;
}
.navSlot {
display: flex;
font-size: 36rpx;
color: #333333;
}
</style>
\ No newline at end of file
File added
<template>
<view>
<view class="tabBar">
<view class="gird-tab" v-for="(item,index) in tabData" :key="index" :class="pageIndex==item.typeId?'tabOn':''"
@click="toTab(item, index)">
<image class="tabIcon" :src="pageIndex==item.typeId?item.icon2:item.icon1" mode="" v-if="item.style==0">
</image>
<view class="tabIcon" v-if="item.style==1">
<view class="iconBox">
<image class="tabIcon" :src="pageIndex==item.typeId?item.icon2:item.icon1" mode=""></image>
</view>
</view>
<view class="tabText" v-if="textType==1">{{item.name}}</view>
<view class="tabDrop" v-if="textType==2" :class="pageIndex==item.typeId?'dropOn':''"></view>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
pageIndex: {
default: 0
},
textType: {
type: Number,
default: 1
}
},
data() {
return {
ios: false,
tabData: [],
userid: uni.getStorageSync('userType'),//假如根据这个判断当前展示那个路由
parentId:uni.getStorageSync('userInfo').parentId
}
},
mounted() {
// console.log(this.userid, '666');
},
created() {
const self = this;
uni.getSystemInfo({
success: function(res) {
if (res.osName == 'ios') {
self.ios = true;
}
}
});
if (this.userid == 2) {
this.tabData = [{
pageUrl: `/pages/home/home`,
name: '首页',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_home.png', //选中图标
typeId:0,
style: 0
}, {
pageUrl: `/pages/home/person`,
name: '个人中心',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_my_info.png', //选中图标
style: 0,
typeId:4
}]
} else if (this.userid == 0 && this.parentId==0) {
this.tabData = [{
pageUrl: `/pages/home/home`,
name: '首页',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_home.png', //选中图标
style: 0,
typeId:0
}, {
pageUrl: '/pages/home/goods',
name: '商品管理',
icon1: '/static/tabar/ic_goods_def.png', //默认图标
icon2: '/static/tabar/ic_goods.png', //选中图标
style: 0,
typeId:2
}, {
pageUrl: `/pages/home/person`,
name: '个人中心',
icon1: '/static/tabar/ic_my_info_def.png', //默认图标
icon2: '/static/tabar/ic_my_info.png', //选中图标
style: 0,
typeId:4
}]
} else if(this.userid == 0 && this.parentId!=0){
this.tabData = [{
pageUrl: `/pages/home/home`,
name: '首页',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_home.png', //选中图标
style: 0,
typeId:0
}, {
pageUrl: `/pages/home/person`,
name: '个人中心',
icon1: '/static/tabar/ic_my_info_def.png', //默认图标
icon2: '/static/tabar/ic_my_info.png', //选中图标
style: 0,
typeId:4
}]
}else if (this.userid == 1) {
this.tabData = [{
pageUrl: '/pages/home/home',
name: '首页',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_home.png', //选中图标
style: 0,
typeId:0
}, {
pageUrl: '/pages/home/userManagement',
name: '用户管理',
icon1: '/static/tabar/ic_user_manager_def.png', //默认图标
icon2: '/static/tabar/ic_user_manager.png', //选中图标
style: 0,
typeId:3
}, {
pageUrl: '/pages/home/goods',
name: '商品管理',
icon1: '/static/tabar/ic_goods_def.png', //默认图标
icon2: '/static/tabar/ic_goods.png', //选中图标
style: 0,
typeId:2
}, {
pageUrl: `/pages/home/person`,
name: '个人中心',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_home.png', //选中图标
style: 0,
typeId:4
}]
}
},
methods: {
toTab(item, index) {
console.log();
if (this.pageIndex != item.typeId) {
this.$emit('toTab', item);
}
}
}
}
</script>
<style lang="scss">
.tabBar {
width: 100%;
display: flex;
position: fixed;
padding: 20rpx 0;
bottom: 0;
box-shadow: 0rpx 0rpx 20rpx #e2e2e2;
background: white;
.gird-tab {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
.tabText {
font-size: 24rpx;
padding-top: 10rpx;
}
.tabIcon {
width: 50rpx;
height: 50rpx;
position: relative;
}
.tabDrop {
width: 8rpx;
height: 8rpx;
background-color: #dddddd;
border-radius: 50%;
margin-top: 10rpx;
}
.dropOn {
background-color: #DE1F27;
}
.iconBox {
width: 88rpx;
height: 88rpx;
background-color: #D6955B;
position: absolute;
bottom: 0;
left: 50%;
margin-left: -50rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
border: 10rpx solid #fff;
box-shadow: 0rpx -10rpx 20rpx #e2e2e2;
}
}
.tabBadge {
position: absolute;
left: 55%;
top: -20rpx;
}
}
.tabOn .tabText {
color: #B87A43;
}
</style>
\ No newline at end of file
<template>
<view>
<view class="tabBar">
<view class="gird-tab" v-for="(item,index) in tabData" :key="index" :class="pageIndex==index?'tabOn':''"
@click="toTab(item, index)">
<image class="tabIcon" :src="pageIndex==index?item.icon2:item.icon1" mode="" v-if="item.style==0">
</image>
<view class="tabIcon" v-if="item.style==1">
<view class="iconBox">
<image class="tabIcon" :src="pageIndex==index?item.icon2:item.icon1" mode=""></image>
</view>
</view>
<view class="tabText" v-if="textType==1">{{item.name}}</view>
<view class="tabDrop" v-if="textType==2" :class="pageIndex==index?'dropOn':''"></view>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
pageIndex: {
type: Number,
default: 0
},
textType: {
type: Number,
default: 1
}
},
data() {
return {
ios: false,
tabData: [],
userid: uni.getStorageSync('userType') //假如根据这个判断当前展示那个路由
}
},
mounted() {
// console.log(this.userid, '666');
},
created() {
const self = this;
uni.getSystemInfo({
success: function(res) {
if (res.osName == 'ios') {
self.ios = true;
}
}
});
if (this.userid == 2) {
this.tabData = [{
pageUrl: `/pages/home/home?id=0`,
name: '首页',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_home.png', //选中图标
style: 0
}, {
pageUrl: `/pages/home/person?id=1`,
name: '个人中心',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_my_info.png', //选中图标
style: 0
}]
} else if (this.userid == 0) {
this.tabData = [{
pageUrl: `/pages/home/home?id=0`,
name: '首页',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_home.png', //选中图标
style: 0
}, {
pageUrl: '/pages/home/qr?id=1',
name: '扫一扫',
icon1: '/static/tabar/ic_qr_code_def.png', //默认图标
icon2: '/static/tabar/ic_qr_code.png', //选中图标
style: 0
}, {
pageUrl: '/pages/home/goods?id=2',
name: '商品管理',
icon1: '/static/tabar/ic_goods_def.png', //默认图标
icon2: '/static/tabar/ic_goods.png', //选中图标
style: 0
}, {
pageUrl: `/pages/home/person?id=3`,
name: '个人中心',
icon1: '/static/tabar/ic_my_info_def.png', //默认图标
icon2: '/static/tabar/ic_my_info.png', //选中图标
style: 0
}]
} else if (this.userid == 2) {
} else if (this.userid == 1) {
this.tabData = [{
pageUrl: '/pages/home/home?id=0',
name: '首页',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_home.png', //选中图标
style: 0
}, {
pageUrl: '/pages/home/userManagement?id=1',
name: '用户管理',
icon1: '/static/tabar/ic_user_manager_def.png', //默认图标
icon2: '/static/tabar/ic_user_manager.png', //选中图标
style: 0
}, {
pageUrl: `/pages/home/qr?id=2`,
name: '扫一扫',
icon1: '/static/tabar/ic_qr_code_def.png', //默认图标
icon2: '/static/tabar/ic_qr_code.png', //选中图标
style: 0
}, {
pageUrl: '/pages/home/goods?id=3',
name: '商品管理',
icon1: '/static/tabar/ic_goods_def.png', //默认图标
icon2: '/static/tabar/ic_goods.png', //选中图标
style: 0
}, {
pageUrl: `/pages/home/person?id=4`,
name: '个人中心',
icon1: '/static/tabar/ic_home_def.png', //默认图标
icon2: '/static/tabar/ic_home.png', //选中图标
style: 0
}]
}
},
methods: {
toTab(item, index) {
if (this.pageIndex != index) {
this.$emit('toTab', item);
}
}
}
}
</script>
<style lang="scss">
.tabBar {
width: 100%;
display: flex;
position: fixed;
padding: 20rpx 0;
bottom: 0;
box-shadow: 0rpx 0rpx 20rpx #e2e2e2;
background: white;
.gird-tab {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
.tabText {
font-size: 24rpx;
padding-top: 10rpx;
}
.tabIcon {
width: 50rpx;
height: 50rpx;
position: relative;
}
.tabDrop {
width: 8rpx;
height: 8rpx;
background-color: #dddddd;
border-radius: 50%;
margin-top: 10rpx;
}
.dropOn {
background-color: #DE1F27;
}
.iconBox {
width: 88rpx;
height: 88rpx;
background-color: #D6955B;
position: absolute;
bottom: 0;
left: 50%;
margin-left: -50rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
border: 10rpx solid #fff;
box-shadow: 0rpx -10rpx 20rpx #e2e2e2;
}
}
.tabBadge {
position: absolute;
left: 55%;
top: -20rpx;
}
}
.tabOn .tabText {
color: #B87A43;
}
</style>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title></title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/main.js"></script>
</body>
</html>
import App from './App'
//android xnkj123456
// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
// import uView from "uview-ui";
import uView from '@/uni_modules/uview-ui'
Vue.use(uView);
Vue.config.productionTip = false
App.mpType = 'app'
// main.js,注意要在use方法之后执行
import $http from '@/uni_modules/zhouWei-request/js_sdk/requestConfig';
Vue.prototype.$http = $http;
const app = new Vue({
...App
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif
\ No newline at end of file
{
"name" : "蚂蚁车生活核销端",
"appid" : "__UNI__991037A",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App特有相关 */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
/* 模块配置 */
"modules" : {
"Barcode" : {},
"Camera" : {},
"Geolocation" : {}
},
/* 应用发布信息 */
"distribute" : {
/* android打包配置 */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
},
/* ios打包配置 */
"ios" : {
"dSYMs" : false
},
/* SDK配置 */
"sdkConfigs" : {
"ad" : {},
"geolocation" : {
"system" : {
"__platform__" : [ "android" ]
},
"tencent" : {
"__platform__" : [ "android" ],
"apikey_ios" : "",
"apikey_android" : "5ZUBZ-FPKKX-ZJO4Q-7GNDH-K6XNE-5ABQF"
}
}
},
"icons" : {
"android" : {
"hdpi" : "unpackage/res/icons/72x72.png",
"xhdpi" : "unpackage/res/icons/96x96.png",
"xxhdpi" : "unpackage/res/icons/144x144.png",
"xxxhdpi" : "unpackage/res/icons/192x192.png"
},
"ios" : {
"appstore" : "unpackage/res/icons/1024x1024.png",
"ipad" : {
"app" : "unpackage/res/icons/76x76.png",
"app@2x" : "unpackage/res/icons/152x152.png",
"notification" : "unpackage/res/icons/20x20.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"proapp@2x" : "unpackage/res/icons/167x167.png",
"settings" : "unpackage/res/icons/29x29.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"spotlight" : "unpackage/res/icons/40x40.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png"
},
"iphone" : {
"app@2x" : "unpackage/res/icons/120x120.png",
"app@3x" : "unpackage/res/icons/180x180.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"notification@3x" : "unpackage/res/icons/60x60.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"settings@3x" : "unpackage/res/icons/87x87.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png",
"spotlight@3x" : "unpackage/res/icons/120x120.png"
}
}
}
}
},
/* 快应用特有相关 */
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "2",
"h5" : {
"devServer" : {
"port" : 8080, //端口号
"disableHostCheck" : true,
"proxy" : {
"/api" : {
"target" : "https://server.mycsh.cc/prod-api/store", //自己项目接口域名
// "target" : "http://192.168.0.170:8081/store",
"changeOrigin" : true, //是否跨域
"secure" : true, // 设置支持https协议的代理
"pathRewrite" : {
"^/" : ""
}
}
}
},
"sdkConfigs" : {
"maps" : {
"qqmap" : {
"key" : "5ZUBZ-FPKKX-ZJO4Q-7GNDH-K6XNE-5ABQF"
}
}
}
}
}
This diff is collapsed.
{
"dependencies": {
"uview-ui": "^2.0.36"
},
"devDependencies": {
"sass": "^1.80.3",
"sass-loader": "^16.0.2"
}
}
{
"easycom": {
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
},
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/home/home",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom",
"app-plus": {
"bounce": "none"
}
}
},
{
"path": "pages/login/login",
"style": {
"navigationStyle": "custom"
}
}, {
"path": "pages/index/index",
"style": {
// "navigationBarTitleText": "uni-app"
"navigationStyle": "custom"
}
},
{
"path": "pages/home/qrcode",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
}, {
"path": "pages/hs-scancode/hs-scancode",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/home/goods",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/home/person",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/dataStatistics/dataStatistics",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/storeManagement/storeManagement",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/storeManagement/editStoreManage",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/commentManager/commentManager",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/messageNotif/messageNotif",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/commodityManagement/commodityManagement",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/orderManagement/orderManagement",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/orderDetails/orderDetails",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/afterSalesOrder/afterSalesOrder",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/settlementManagement/settlementManagement",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/changePassword/changePassword",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/afterSalesOrder/afterSalesDetails",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/qrCode/qrCode",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/commentManager/reviewsGoods",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/home/userManagement",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/garageList/garageList",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/gasStationInfo/gasStationInfo",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/userDetails/userDetails",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/historicalOrders/historicalOrders",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/gasStationDetails/gasStationDetails",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/incomeDetails/incomeDetails",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/messageDetails/messageDetails",
"style": {
"navigationBarTitleText": "消息详情"
}
},
{
"path": "pages/afterSalesProcessing/afterSalesProcessing",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/productDetails/productDetails",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/productEvaluation/productEvaluation",
"style": {
"navigationBarTitleText": "商品评价"
}
},
{
"path": "pages/evaluationDetails/evaluationDetails",
"style": {
"navigationBarTitleText": "评价详情"
}
},
{
"path": "pages/addGasStation/addGasStation",
"style": {
"navigationBarTitleText": "添加油站"
}
},
{
"path": "pages/addPowerStation/addPowerStation",
"style": {
"navigationBarTitleText": "添加电站"
}
},
{
"path": "pages/storeDetails/storeDetails",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/ygInfo/ygInfo",
"style": {
"navigationBarTitleText": "员工管理"
// "navigationStyle": "custom"
}
},
{
"path": "pages/historicalOrderDetails/historicalOrderDetails",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/addGasStation/addGasStation",
"style": {
"navigationBarTitleText": "添加油站"
}
},
{
"path": "pages/addyg/addyg",
"style": {
"navigationBarTitleText": "添加员工"
}
},
{
"path": "pages/editPage/editPage",
"style": {
"navigationBarTitleText": "编辑员工"
}
},
{
"path": "pages/goWork/goWork",
"style": {
"navigationBarTitleText": "上班统计"
}
},
{
"path": "pages/goWorkDetails/goWorkDetails",
"style": {
"navigationBarTitleText": "上班统计"
}
},
{
"path": "pages/powerStationInfo/powerStationInfo",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/powerStationDetails/powerStationDetails",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path": "pages/confirmVerification/confirmVerification",
"style": {
"navigationBarTitleText": "确认核销"
}
},
{
"path": "pages/workingStaff/workingStaff",
"style": {
"navigationBarTitleText": "上班员工"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8",
"app-plus": {
"bounce": "none"
}
},
"easycom": {
"^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue"
},
"uniIdRouter": {}
// "tabBar": {
// "color": "#7A7E83",
// "selectedColor": "#FF4502",
// "borderStyle": "black",
// "backgroundColor": "#ffffff",
// "list": [{
// "pagePath": "pages/home/home",
// "iconPath": "static/tabar/ic_home_def.png.png",
// "selectedIconPath": "static/tabar/ic_home.png.png",
// "text": "首页"
// }, {
// "pagePath": "pages/home/qrcode",
// "iconPath": "static/tabar/ic_qr_code_def.png",
// "selectedIconPath": "static/tabar/ic_qr_code.png",
// "text": "扫一扫"
// },
// {
// "pagePath": "pages/home/goods",
// "iconPath": "static/tabar/ic_goods_def.png",
// "selectedIconPath": "static/tabar/ic_goods.png",
// "text": "商品管理"
// },
// {
// "pagePath": "pages/home/person",
// "iconPath": "static/tabar/ic_my_info_def.png",
// "selectedIconPath": "static/tabar/ic_my_info.png",
// "text": "个人中心"
// }
// ]
// }
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
<template>
<view class="addGasStation">
<view class="addGasStationForm">
<view class="formItem">
<view class="formItemTitle">
<text>*</text>
<text class="title">
员工姓名
</text>
</view>
<view class="formItemValue">
<u--input class="ipt" border="none" type="text" placeholder="请输入员工姓名"
v-model="queryInfo.staffName" clearable></u--input>
</view>
</view>
<view class="formItem">
<view class="formItemTitle">
<text>*</text>
<text class="title">
手机号
</text>
</view>
<view class="formItemValue">
<u--input border="none" maxlength="11" type="number" placeholder="请输入手机号"
v-model="queryInfo.staffPhone" clearable></u--input>
</view>
</view>
<view class="formItem">
<view class="formItemTitle">
<text>*</text>
<text class="title">
密码
</text>
</view>
<view class="formItemValue">
<u--input border="none" :type="isEye?'text':'password'" placeholder="请输入密码"
v-model="queryInfo.staffPassword" clearable>
<!-- <view slot="suffix" @click="handleEye">
<u-icon :name="isEye?'eye':'eye-off'"></u-icon>
</view> -->
</u--input>
</view>
</view>
</view>
<view class="saveBtn" @click="saveBtn">
保存
</view>
</view>
</template>
<script>
const cityRows = require('../../components/map.json')
export default {
data() {
return {
queryInfo: {
staffName: '',
staffPhone: '',
staffPassword: ''
},
isEye:false
}
},
onLoad() {
},
methods: {
handleEye(){
this.isEye=!this.isEye
},
saveBtn() {
let { staffName, staffPhone, staffPassword } = this.queryInfo
if (!staffName) {
uni.showToast({
title: '请输入员工姓名',
icon: 'none'
});
return
}
const phoneR = /^0?1[3|5|6|7|8|9][0-9]\d{8}$/;
if (!staffPhone) {
uni.showToast({
title: '请输入手机号',
icon: 'none'
});
return
} else if (!phoneR.test(staffPhone)) {
uni.showToast({
title: '请先输入正确的手机号',
icon: 'none'
});
return
}
if (!staffPassword) {
uni.showToast({
title: '请输入密码',
icon: 'none'
});
return
}
let params={
...this.queryInfo,
storeUserId:uni.getStorageSync('storeUserId')
}
this.$http.post('/api/store/staff/add',params).then(res => {
if (res.code == 200) {
uni.showToast({
title: '人员添加成功',
icon: 'success',
duration: 2000
});
setTimeout(()=>{
uni.navigateTo({
url: '/pages/ygInfo/ygInfo'
})
},1000)
} else {
}
})
}
}
}
</script>
<style lang="less">
page {
background: #FAFAFA;
}
.addGasStation {
padding: 20rpx 24rpx;
padding-bottom: 200rpx;
.addGasStationForm {
width: 702rpx;
background: #FFFFFF;
border-radius: 14rpx 14rpx 14rpx 14rpx;
box-sizing: border-box;
padding: 30rpx 20rpx;
.formItemTitle {
display: flex;
align-items: center;
margin-bottom: 20rpx;
text {
color: #FF0000;
font-size: 28rpx;
margin-right: 10rpx;
}
.title {
font-size: 28rpx;
color: #333333;
}
}
.formItemValue {
background: #FAF7F6;
border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 2rpx solid #E3CEC6;
padding: 20rpx;
box-sizing: border-box;
display: flex;
align-items: center;
.ipt {
font-size: 24rpx;
flex: 1;
}
.downIcon {
width: 22rpx;
height: 11rpx;
}
}
.addBtn {
margin-left: 22rpx;
width: 155rpx;
height: 63rpx;
background: #FAF7F6;
border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 2rpx dashed #FF4502;
font-size: 24rpx;
color: #FF4502;
text-align: center;
line-height: 63rpx;
margin-left: auto;
}
}
.formItem {
margin-bottom: 30rpx;
}
}
.saveBtn {
position: fixed;
width: 702rpx;
height: 100rpx;
background: linear-gradient(90deg, #FF4502 0%, #FF8903 100%);
border-radius: 50rpx 50rpx 50rpx 50rpx;
text-align: center;
line-height: 100rpx;
font-weight: bold;
font-size: 32rpx;
color: #FFFFFF;
left: 50%;
bottom: 50rpx;
transform: translateX(-50%);
z-index: 999;
}
.formItemValueBox {
display: flex;
align-items: center;
.text {
text-align: right;
font-size: 28rpx;
color: #333333;
width: 120rpx;
margin-right: 14rpx;
}
}
</style>
\ No newline at end of file
<template>
<view>
<u-navbar autoBack placeholder bgColor="#FFFFFF">
<view class="navSlot" slot="center">
<!-- <u-icon name="arrow-left" size="19"></u-icon> -->
<view class="title">售后详情</view>
</view>
</u-navbar>
<view class="bgMain">
<view class="afterSalesInfo">
<view class="shopName">{{data.storeName}}</view>
<view class="goodsinfo">
<view>
<image class="img" :src="data.goodsImage"></image>
</view>
<view class="info">
<view class="afterSalesName">{{data.goodsName}}</view>
<view class="afterSalesType">{{data.goodsType}}</view>
<view class="price">
<view class="afterPrice">{{data.goodsPrice}}</view>
<view class="inventory">×1</view>
</view>
</view>
</view>
</view>
<view class="applyAfteSales">
<view class="verificationInfo">
<view class="bg"></view>
<view class="verifi">申请原因</view>
</view>
<u--textarea border="none" placeholder="请输入申请原因" v-model="data.applyContent"></u--textarea>
<view class="imgList">
<view style="display: flex; padding-left: 10rpx;"v-for="(item,index) in data.afterSalesPictureList">
<image class="applyPictures" :src="item"></image>
</view>
</view>
</view>
<view class="refundInfo">
<view class="refundMethod">
<view style="font-size: 28rpx;">退款方式</view>
<view style="font-size: 26rpx; color: #999999;">{{this.data.refundMethod==1?"微信退款(原路返回)":""}}</view>
</view>
<view class="refundAmount">
<view style="font-size: 28rpx;">预估退款金额(以实际金额为准)</view>
<view style="font-size: 32rpx; color:#FF4502;; font-weight: 800;">
{{this.data.estimatedRefundAmount}}</view>
</view>
</view>
<view class="handle" @click="goDown">去处理</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
id: "",
data: {}
}
},
onLoad(options) {
this.id = options.id
console.log(options.id)
this.getafterSalesOrderDetails()
},
methods: {
getafterSalesOrderDetails() {
this.$http.get("/api/store/personalCenter/afterSalesOrderDetails", {
id: this.id,
}).then(res => {
if (res.code == 200)
this.data = res.data
console.log(res.data)
})
},
goDown() {
uni.navigateTo({
url: '/pages/afterSalesProcessing/afterSalesProcessing?id=' + this.id
})
}
}
}
</script>
<style lang="scss">
.handle {
color: white;
font-weight: 800;
padding-top: 23rpx;
margin-top: 80rpx;
padding-bottom: 23rpx;
text-align: center;
background: linear-gradient(90deg, #FF4502 0%, #FF8903 100%);
border-radius: 41rpx 41rpx 41rpx 41rpx;
}
.refundInfo {
margin-top: 20rpx;
padding: 24rpx;
background: #FFFFFF;
border-radius: 18rpx 18rpx 18rpx 18rpx;
.refundMethod {
display: flex;
justify-content: space-between;
}
.refundAmount {
padding-top: 20rpx;
display: flex;
justify-content: space-between;
}
}
.applyAfteSales {
margin-top: 20rpx;
background: #FFFFFF;
padding: 24rpx;
border-radius: 18rpx 18rpx 18rpx 18rpx;
.imgList {
display: flex;
overflow-x: auto;
width: 100%;
.applyPictures {
display: flex;
margin-top: 10rpx;
width: 244rpx;
height: 244rpx;
}
}
}
.afterSalesInfo {
padding: 24rpx;
background: #FFFFFF;
border-radius: 18rpx 18rpx 18rpx 18rpx;
.shopName {
font-size: 24rpx;
color: #333333;
}
.afterPrice {
font-size: 32rpx;
font-weight: 800;
color: #FF4502;
}
.inventory {
font-size: 24rpx;
color: #999999;
}
.afterSalesName {
padding-top: 10rpx;
font-size: 28rpx;
color: #333333;
}
.afterSalesType {
padding-top: 10rpx;
font-size: 24rpx;
color: #999999;
}
.goodsinfo {
margin-top: 10rpx;
display: flex;
.price {
padding-top: 10rpx;
display: flex;
justify-content: space-between;
}
.info {
padding-left: 10rpx;
}
}
.img {
width: 156rpx;
height: 156rpx;
}
}
.verificationInfo {
display: flex;
padding-top: 17rpx;
.verifi {
margin-left: 15rpx;
font-size: 28rpx;
color: #333333;
}
.bg {
padding-top: 10rpx;
width: 6rpx;
height: 37rpx;
background: #FF4502;
border-radius: 0rpx 0rpx 0rpx 0rpx;
}
}
</style>
\ No newline at end of file
<template>
<view>
<u-navbar autoBack placeholder bgColor="#FFFFFF">
<view class="navSlot" slot="center">
<!-- <u-icon name="arrow-left" size="19"></u-icon> -->
<view class="title">订单管理</view>
</view>
</u-navbar>
<view class="search">
<u-search placeholder="搜索订单号、车牌号、顾客姓名等..." :showAction="false" @search="search" bgColor="#FAF7F6"
:animation="false" v-model="field">
</u-search>
</view>
<view class="search_filter">
<view class="filter" @click="isShowStartTime = true">
<view>
<view class="txt">{{(beginTime && endTime)?(beginTime +' - ' +endTime):'开始时间-结束时间'}}</view>
<!-- <text
@click="startshow = true">{{timestampToYMD(startvalue)?timestampToYMD(startvalue):'开始时间'}}</text>
-
<text @click="endshow = true">{{timestampToYMD(endvalue)?timestampToYMD(endvalue):'结束时间'}}</text> -->
</view>
<u-icon name="calendar" size="28"></u-icon>
<!-- <image class="img" src="../../static/tabar/ic_edit.png"></image> -->
</view>
<view class="tvfilter" @click="filterfn">筛选</view>
</view>
<view class="tab">
<view class="gxflex">
<view class="item" :class="{active:curent ==item.id}" v-for="(item,index) in list" :key="index"
@click="getItem(item.id)">
{{item.name}}
</view>
</view>
</view>
<view class="bgMains">
<view class="afterSelesList" @click="afterSeles(item.id)" v-for="(item,index) in dataList">
<view class="afterItem">
<view class="afterinfo">
<view>
<image class="img" :src="item.goodsImage"></image>
</view>
<view class="goodsInfo">
<view class="title">{{item.goodsName}}</view>
<view class="price">
<view class="currentPrice">{{item.actualAmount}}</view>
<view class="originalPrice">{{item.orderAmount}}</view>
</view>
</view>
</view>
<view class="left">
<view class="state">{{item.status==1?"待处理":item.status==2?"已处理":"已取消"}}</view>
<view></view>
</view>
</view>
</view>
<view v-if="dataList.length == 0">
<image style="width: 376rpx;display: block;margin: 0 auto;" src="../../static/icon_xx_k.png">
</image>
<text style="display: block;text-align: center;color: #ccc;">暂无数据</text>
</view>
</view>
<u-datetime-picker v-model="currenTime" title="选择开始时间" @close="closeIsShow" @cancel="closeIsShow"
@confirm="confirmStart" ref="datetimePicker" :show="isShowStartTime" :maxDate="minDate" mode="date"
:formatter="formatter"></u-datetime-picker>
<u-datetime-picker v-model="currenTime" title="选择结束时间" @close="closeIsShow" @cancel="closeIsShow"
@confirm="confirmEnd" ref="datetimePicker" :show="isShowEndTime" :maxDate="minDate" mode="date"
:formatter="formatter"></u-datetime-picker>
<!-- <u-datetime-picker @confirm="startconf" :show="startshow" v-model="startvalue" mode="date"></u-datetime-picker>
<u-datetime-picker @confirm="endconf" :show="endshow" v-model="endvalue" mode="date"></u-datetime-picker> -->
</view>
</template>
<script>
export default {
data() {
return {
startshow: false,
endshow: false,
startvalue: "",
endvalue: "",
dataList: [],
pageNum: 1,
total: 0,
beginTime: "",
endTime: "",
field: "",
status: 1,
id: '',
list: [{
id: 1,
name: "待处理"
}, {
id: 2,
name: '已处理'
}, {
id: 3,
name: '已取消'
}],
curent: 1,
isShowStartTime: false,
isShowEndTime: false,
minDate: Number(new Date()),
currenTime: Number(new Date())
}
},
onLoad() {
this.getAfterSalesOrderList();
},
onPullDownRefresh() {
this.pageNum = 1
this.getAfterSalesOrderList()
},
onReachBottom() {
console.log(this.total, this.dataList.length);
if (this.total > this.dataList.length) {
this.pageNum = this.pageNum + 1
this.getAfterSalesOrderList(true)
} else {
wx.showToast({
title: '没有更多啦!',
icon: 'none'
})
}
},
methods: {
closeIsShow() {
this.isShowStartTime = false
this.isShowEndTime = false
},
confirmStart(e) {
this.beginTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd');
this.isShowStartTime = false
this.isShowEndTime = true
// this.closeIsShow()
},
confirmEnd(e) {
this.endTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd');
this.closeIsShow()
},
formatter(type, value) {
if (type === 'year') {
return `${value}年`
}
if (type === 'month') {
return `${value}月`
}
if (type === 'day') {
return `${value}日`
}
if (type === 'hour') {
return `${value}时`
}
if (type === 'minute') {
return `${value}分`
}
return value
},
filterfn() {
this.pageNum = 1;
this.getAfterSalesOrderList();
},
timestampToYMD(timestamp) {
if (timestamp == "") {
return ""
}
const date = new Date(timestamp); // 将时间戳转换成毫秒
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
return `${year}-${month}-${day}`;
},
startconf(e) {
console.log(e)
console.log(this.timestampToYMD(e.value))
// this.startvalue = this.timestampToYMD(e.value);
this.startshow = false;
},
endconf(e) {
console.log(e)
console.log(this.timestampToYMD(e.value))
// this.endvalue = this.timestampToYMD(e.value);
this.endshow = false;
},
afterSeles(id) {
console.log(id)
uni.navigateTo({
url: '/pages/afterSalesOrder/afterSalesDetails?id=' + id
})
},
getAfterSalesOrderList(flag) {
this.$http.post("/api/store/personalCenter/afterSalesOrderList", {
pageNum: this.pageNum,
pageSize: '20',
beginTime: this.beginTime,
endTime: this.endTime,
status: this.status,
field: this.field
}).then(res => {
if (res.code == 200)
console.log(res.data.rows)
this.dataList = !flag ? res.data.rows : this.dataList.concat(res.data.rows)
this.total = res.data.total
})
},
getItem(e) {
// 1-待处理 2-已退款 3-已拒绝
this.curent = e
this.status = this.curent;
this.getAfterSalesOrderList()
},
//搜
search() {
this.getAfterSalesOrderList()
}
}
}
</script>
<style lang="scss">
.bgMains {
background: #f9f6f4;
padding: 20rpx;
min-height: 100vh;
}
.afterSelesList {
background: #FFFFFF;
border-radius: 14rpx 14rpx 14rpx 14rpx;
.afterItem {
display: flex;
justify-content: space-between;
padding: 24rpx;
.left {
text-align: right;
font-size: 24rpx;
color: #999999;
position: relative;
.state {
top: 0%;
}
.team {
padding-top: 36rpx;
padding-bottom: 27rpx;
}
}
.afterinfo {
display: flex;
.title {
font-size: 28rpx;
color: #333333;
}
.goodsInfo {
padding-left: 10rpx;
.price {
display: flex;
padding-top: 15rpx;
.currentPrice {
font-size: 28rpx;
color: #FF4502;
font-weight: 800;
}
.originalPrice {
text-decoration-line: line-through;
font-size: 24rpx;
padding-left: 5rpx;
color: #999999;
}
}
.num {
padding-top: 13rpx;
display: flex;
.teamSize {
font-weight: 400;
font-size: 24rpx;
}
.number {
color: #A8A8A8;
padding-left: 5rpx;
font-size: 24rpx
}
}
}
}
}
.img {
width: 156rpx;
height: 156rpx;
}
}
.tab {
padding-top: 25rpx;
font-size: 32rpx;
color: #999999;
padding-bottom: 20rpx;
display: flex;
padding-left: 25rpx;
.gxflex {
display: flex;
align-items: center;
justify-content: space-around;
}
.item {
background: #FFFFFF;
text-align: center;
padding-left: 30rpx;
}
.active {
background: #FFFFFF;
color: #FF4502 !important;
}
}
.search_filter {
text-align: center;
display: flex;
padding-left: 24rpx;
.tvfilter {
font-size: 28rpx;
color: #FF4502;
padding-left: 30rpx;
padding-top: 20rpx;
}
.filter {
padding: 15rpx;
justify-content: space-between;
display: flex;
background: #FAF7F6;
border-radius: 8rpx 8rpx 8rpx 8rpx;
font-size: 28rpx;
color: #999999;
width: 600rpx;
display: flex;
align-items: center;
.img {
width: 32rpx;
height: 32rpx;
text-align: center;
}
}
}
.search {
padding: 24rpx;
}
.verified {
padding-left: 55rpx;
}
</style>
\ No newline at end of file
<template>
<view>
<u-navbar autoBack placeholder bgColor="#FFFFFF">
<view class="navSlot" slot="center">
<!-- <u-icon name="arrow-left" size="19"></u-icon> -->
<view class="title">去处理</view>
</view>
</u-navbar>
<view class="bg">
<view>选择处理结果</view>
<u-radio-group v-model="value" @change="radioGroupChange">
<u-radio class="radio-left" @change="radioChange(item.status)" v-for="(item, index) in list" :key="index" :name="item.name"
:disabled="item.disabled" shape>
{{item.name}}
</u-radio>
</u-radio-group>
<u--textarea border="none" placeholder="请输入申请原因" v-model="storeRemark" ></u--textarea>
<view class="butSubmmit" @click="submit">提交</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
id:"",
storeProcessStatus:0,
storeRemark:"",
list: [{
name: '同意',
disabled: false,
status:2
},
{
name: '拒绝',
disabled: false,
status:3
},
{
name: '其他',
disabled: false,
status:4
}
],
value: '',
}
},
onLoad(options) {
this.id=options.id
},
methods: {
gethandleAfterSales() {
this.$http.post("/api/store/personalCenter/handleAfterSales", {
id: this.id,
storeProcessStatus:this.storeProcessStatus,
storeRemark:this.storeRemark,
}).then(res => {
if (res.code == 200)
this.data = res.data
wx.showToast({
title: '提交成功!',
icon: 'none'
})
uni.navigateTo({
url: '/pages/afterSalesOrder/afterSalesOrder'
})
})
},
submit(){
this.gethandleAfterSales()
},
// 选中某个单选框时,由radio时触发
radioChange(e) {
console.log(e);
this.storeProcessStatus = e;
},
// 选中任一radio时,由radio-group触发
radioGroupChange(e) {
console.log(e);
}
}
}
</script>
<style lang="scss">
.bg{
padding: 24rpx;
.butSubmmit{
background: linear-gradient( 90deg, #FF4502 0%, #FF8903 100%);
border-radius: 44rpx 44rpx 44rpx 44rpx;
text-align: center;
color: white;
font-weight: 800;
padding-top: 26rpx;
position: fixed;
width: 702rpx;
bottom: 2%;
padding-bottom: 25rpx;
}
}
.radio-left{
display: flex;
}
</style>
\ No newline at end of file
<template>
<view>
<u-navbar autoBack placeholder bgColor="#FFFFFF">
<view class="navSlot" slot="center">
<!-- <u-icon name="arrow-left" size="19"></u-icon> -->
<view class="title">修改密码</view>
</view>
</u-navbar>
<view class="loginView">
<view class="title">安全验证</view>
<view class="phoneTitle">手机号验证码进行验证</view>
<view class="u-demo-block__content">
<!-- 注意:由于兼容性差异,如果需要使用前后插槽,nvue下需使用u--input,非nvue下需使用u-input -->
<!-- #ifndef APP-NVUE -->
<u-input placeholder="请输入手机号" maxlength="11" border="none" font-size="24rpx" v-model="phoneNumber">
<!-- #endif -->
<!-- #ifdef APP-NVUE -->
<!-- #endif -->
<u--text text="+86 |" slot="prefix" margin="0 3px 0 0" type="tips"></u--text>
<!-- #ifndef APP-NVUE -->
</u-input>
<!-- #endif -->
<!-- #ifdef APP-NVUE -->
</u--input>
<!-- #endif -->
</view>
<view class="u-demo-block__content" style="margin-top: 15px;" v-if="fcode==true">
<!-- 注意:由于兼容性差异,如果需要使用前后插槽,nvue下需使用u--input,非nvue下需使用u-input -->
<!-- #ifndef APP-NVUE -->
<u-input placeholder="手机验证码" border="none" font-size="24rpx" v-model="code">
<!-- #endif -->
<!-- #ifdef APP-NVUE -->
<!-- #endif -->
<template slot="suffix">
<u-code ref="uCode" @change="codeChange" seconds="20" changeText="X秒重新获取"></u-code>
<view style="color: #FF4502; font-weight: 800; font-size: 28rpx;" @click="getCode">
{{tips}}
</view>
<!-- <u-button
@tap="getCode"
:text="tips"
type="success"
></u-button> -->
</template>
<!-- #ifndef APP-NVUE -->
</u-input>
<!-- #endif -->
<!-- #ifdef APP-NVUE -->
</u--input>
<!-- #endif -->
</view>
<view class="setPasswodrdTitle">设置您的新密码 </view>
<view class="setPasswrord"><u--input v-model="password" border="none" font-size="24rpx" placeholder="请输入密码" prefixIcon=""
></u--input></view>
<view class="setPasswodrdTitle">请再次输入您的密码 </view>
<view class="setPasswrord"><u--input v-model="password2" border="none" font-size="24rpx" placeholder="请输入密码" prefixIcon=""
></u--input></view>
<view class="submmint" @click="submmint">提交</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
fcode: true,
flag: true,
tips: '',
password:'',
phoneNumber:'',
code:'',
password2:''
}
},
methods: {
submmint(){
let data = {
password:this.password,
phoneNumber:this.phoneNumber,
code:this.code
}
if(this.password != this.password2){
uni.showToast({
icon:'none',
title:'新密码不一致'
})
return
}
this.$http.post('/api/store/personalCenter/retrievePassword',data).then(res=>{
uni.showToast({
icon:'none',
title:res.msg
})
this.password = ''
this.phoneNumber = ''
this.code = ''
})
console.log(data);
},
getCode() {
uni.showLoading({
title: '正在获取验证码'
})
if(!uni.$u.test.mobile(this.phoneNumber)){
uni.$u.toast('请输如正确的手机号');
return
}
this.$http.post("/api/store/personalCenter/retrieveSendSmsCode", {
phoneNumber: this.phoneNumber,
}).then(res => {
if (res.code == 200)
uni.hideLoading();
console.log(res)
uni.$u.toast('验证码已发送');
this.$refs.uCode.start();
// uni.redirectTo({
// url: '/pages/home/home'
// })
})
// /api/store/sendSmsCode
if (this.$refs.uCode.canGetCode) {
// 模拟向后端请求验证码
setTimeout(() => {
// 这里此提示会被this.start()方法中的提示覆盖
// 通知验证码组件内部开始倒计时
}, 2000);
} else {
uni.$u.toast('倒计时结束后再发送');
}
},
codeChange(text) {
console.log(text);
this.tips = text;
},
}
}
</script>
<style lang="scss">
.submmint {
text-align: center;
color: white;
padding-top: 29rpx;
margin-top: 423rpx;
padding-bottom: 29rpx;
background: linear-gradient(90deg, #FF4502 0%, #FF8903 100%);
border-radius: 8rpx 8rpx 8rpx 8rpx;
}
.setPasswrord{
margin-top: 20rpx;
background: #F6F6F6;
border-radius: 8rpx 8rpx 8rpx 8rpx;
padding: 20rpx
}
.loginView {
padding: 61rpx;
background: #FFFFFF;
margin-top: -30rpx;
border-radius: 40rpx 40rpx 0rpx 0rpx;
.setPasswodrdTitle {
padding-top: 36rpx;
font-size: 24rpx;
color: #999999;
}
.phoneTitle {
padding-top: 36rpx;
font-size: 24rpx;
color: #999999;
}
.title {
padding-top: 36rpx;
font-size: 32rpx;
color: #333333;
font-weight: 800;
}
}
.u-demo-block__content {
margin-top: 20rpx;
background: #F6F6F6;
border-radius: 8rpx 8rpx 8rpx 8rpx;
padding: 31rpx
}
</style>
\ No newline at end of file
<template>
<view>
<u-navbar autoBack placeholder bgColor="#FFFFFF">
<view class="navSlot" slot="center">
<!-- <u-icon name="arrow-left" size="19"></u-icon> -->
<view class="title">评价管理</view>
</view>
</u-navbar>
<view class="search">
<u-search placeholder="搜索商品名称、评价内容" :showAction="false" @search="search" bgColor="#FAF7F6"
:animation="false"></u-search>
</view>
<view class="bgMains">
<view class="evaluationList" v-for="(item, index) in dataList">
<view>
<view class="evaluationItem">
<view class="">
<image class="img" :src="item.goodsImage"></image>
</view>
<view class="evaluatInfo">
<view class="goodsNmae">{{item.goodsName}}</view>
<view class="goodprice">
<view class="title">商品总售:</view>
<view class="goodsPrice">{{item.totalSales}}</view>
</view>
<view class="price">
<view style="color: #FF4502;font-weight: 800;">{{item.goodsPrice}}</view>
<view class="inventory">库存:{{item.inventory}}</view>
</view>
</view>
</view>
<u-line class="line" length="100%"></u-line>
<view class="selComment">
<view></view>
<view class="comment" @click="selComment(item)">
查看评价
</view>
</view>
</view>
</view>
<view v-if="dataList.length == 0">
<image style="width: 376rpx;display: block;margin: 0 auto;" src="../../static/icon_xx_k.png">
</image>
<text style="display: block;text-align: center;color: #ccc;">暂无数据</text>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
dataList: [],
pageNum: 1,
total: 0
}
},
onLoad() {
this.getGoodsLiat()
},
onPullDownRefresh() {
this.pageNum = 1,
this.getGoodsLiat()
},
onReachBottom() {
console.log(this.total, this.list.length);
if (this.total > this.list.length) {
this.pageNum = this.pageNum + 1
this.getGoodsLiat()
} else {
wx.showToast({
title: '没有更多啦!',
icon: 'none'
})
}
},
methods: {
selComment(item) {
uni.navigateTo({
url: '/pages/productEvaluation/productEvaluation?id=' + item.goodsId
})
// uni.navigateTo({
// url:'/pages/commentManager/reviewsGoods'
// })
},
getGoodsLiat() {
this.$http.post("/api/store/goodsComment/goodsLiat", {
pageNum: this.pageNum,
pageSize: '20',
field: this.keyword
}).then(res => {
if (res.code == 200)
console.log(res.data.rows)
this.dataList = res.data.rows
this.total = res.data.total
})
}
}
}
</script>
<style lang="less">
.bgMains{
padding: 24rpx;
background: #f9f6f4;
min-height: 100vh;
}
.evaluationList {
margin-top: 20rpx;
padding: 21rpx;
background: #FFFFFF;
border-radius: 14rpx 14rpx 14rpx 14rpx;
.selComment {
margin-top: 10rpx;
display: flex;
justify-content: space-between;
.comment {
font-size: 28rpx;
color: #FF4502;
}
}
.line {
padding-left: 20rpx;
padding-top: 10rpx;
}
.evaluationItem {
display: flex;
.evaluatInfo {
flex: 1;
padding-left: 10rpx;
.goodsNmae {
display: flex;
font-size: 28rpx;
color: #333333;
}
.goodprice {
padding-top: 13rpx;
display: flex;
.title {
font-size: 24rpx;
color: #333333;
}
.goodsPrice {
font-size: 24rpx;
color: #999999;
}
}
.price {
padding-top: 15rpx;
display: flex;
align-items: center;
justify-content: space-between;
.inventory {
font-size: 24rpx;
color: #999999;
}
}
}
}
}
.img {
width: 156rpx;
height: 156rpx;
}
.search {
padding: 24rpx;
}
</style>
\ No newline at end of file
<template>
<view>
<u-navbar autoBack placeholder bgColor="#FFFFFF">
<view class="navSlot" slot="center">
<!-- <u-icon name="arrow-left" size="19"></u-icon> -->
<view class="title">评价详情</view>
</view>
</u-navbar>
<view class="search">
<u-search placeholder="搜索商品名称、评价内容" :showAction="false" @search="search" bgColor="#FAF7F6"
:animation="false">
</u-search>
</view>
<view class="search_filter">
<view class="filter">
<view>开始时间-结束时间</view>
<image class="img" src="../../static/tabar/ic_edit.png"></image>
</view>
<view class="tvfilter">筛选</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style lang="scss">
.search {
padding: 24rpx;
}
.search_filter {
text-align: center;
display: flex;
padding-left: 24rpx;
.tvfilter {
font-size: 28rpx;
color: #FF4502;
padding-left: 30rpx;
padding-top: 20rpx;
}
.filter {
padding: 15rpx;
justify-content: space-between;
display: flex;
background: #FAF7F6;
border-radius: 8rpx 8rpx 8rpx 8rpx;
font-size: 28rpx;
color: #999999;
.img {
width: 32rpx;
height: 32rpx;
padding-left: 324rpx;
text-align: center;
}
}
}
</style>
This diff is collapsed.
<template>
<view>
<view class="bgMain">
<view>
<view class="orderList" @click="clickItem">
<view class="order">
<view class="orderId">订单号:{{data.orderNo}}</view>
<view class="orderStatus">{{data.status == 1?'未核销':'已核销'}}</view>
</view>
<view class="orderItem">
<view>
<image class="img" :src="data.goodsImage"></image>
</view>
<view class="goodsInfo">
<view class="orderGoodsName">{{data.goodsName}}</view>
<view class="orderGoodsType">{{data.goodsType}}</view>
<view class="price">
<view class="orderPrice">{{data.goodsPrice}}</view>
<view class="goodsNum">×{{data.goodsNum}}</view>
</view>
</view>
</view>
</view>
<view class="verificationInfo">
<view class="bg"></view>
<view class="verifi">订单信息</view>
</view>
<view class="orderInfo">
<view class="orderId">
<view class="orderTitle">订单号</view>
<view>{{data.orderNo}}</view>
</view>
<view class="orderId">
<view class="orderTitle">手机号</view>
<view>{{data.phoneNumber}}</view>
</view>
<view class="orderId">
<view class="orderTitle">交易方式</view>
<view>{{data.transactions==1? "微信交易":"支付宝"}}</view>
</view>
<view class="orderId">
<view class="orderTitle">下单时间</view>
<view>{{data.orderTime}}</view>
</view>
<view class="orderId">
<view class="orderTitle">付款时间</view>
<view>{{data.paymentTime}}</view>
</view>
</view>
</view>
</view>
<view class="confirmVerification" @click="confirmVerification">
确认核销
</view>
</view>
</template>
<script>
export default {
data() {
return {
couponCode: "",
data: {}
}
},
onLoad(options) {
console.log(options)
this.couponCode = options.id
this.getOrderDetails();
},
methods: {
//核销
confirmVerification(){
uni.showModal({
title:'提示',
content:'确认核销该订单吗,请确认!',
success: (modalRes) => {
console.log(modalRes);
if(modalRes.confirm){
this.$http.get('/api/store/writeOff/writeOff',{
writeOffId:this.data.id
}).then(res=>{
uni.showToast({
icon:'none',
title:res.msg
})
if(res.code == 200){
setTimeout(()=>{
uni.navigateBack()
},800)
}
})
}
}
})
},
getOrderDetails() {
this.$http.post("/api/store/writeOff/writeOffOrderDetails", {
couponCode: this.couponCode,
}).then(res => {
if (res.code == 200)
console.log(res.data)
this.data = res.data
})
},
}
}
</script>
<style lang="scss">
.left {}
.infoleft {
flex: 1;
}
.brandLogo {
width: 60rpx;
height: 52rpx;
}
.goodType {
font-size: 24rpx;
color: #999999;
}
.vehicleInfo {
margin-top: 20rpx;
display: flex;
align-items: center;
padding: 24rpx;
background: #FFFFFF;
border-radius: 18rpx 18rpx 18rpx 18rpx;
.img {
width: 11rpx;
height: 23rpx;
}
.vehicle {
display: flex;
justify-content: space-between;
.plate {
display: flex;
color: #FFFFFF;
padding-right: 50rpx;
}
}
.economize {
background: #0087EF;
border-radius: 8rpx 0rpx 0rpx 8rpx;
font-size: 24rpx;
padding: 12rpx 20rpx 12rpx 20rpx;
border: 1rpx solid #0087EF;
}
.licensePlate {
background: #E5EEF5;
border-radius: 0rpx 8rpx 8rpx 0rpx;
border: 1rpx solid #0087EF;
padding: 12rpx 20rpx 12rpx 20rpx;
color: #0087EF;
}
}
.orderInfo {
margin-top: 20rpx;
padding: 24rpx;
background: #FFFFFF;
border-radius: 14rpx 14rpx 14rpx 14rpx;
font-size: 28rpx;
color: #333333;
.orderTitle {
font-size: 28rpx;
color: #666666;
}
}
.orderId {
padding-top: 37rpx;
display: flex;
justify-content: space-between;
}
.qr {
margin-top: 20rpx;
background: #FFFFFF;
border-radius: 14rpx 14rpx 14rpx 14rpx;
.verificationTime {
padding-left: 20rpx;
padding-top: 5rpx;
font-size: 28rpx;
padding-bottom: 20rpx;
color: #333333;
}
.verifQr {
font-size: 28rpx;
color: #333333;
}
.qrInfo {
padding: 20rpx;
justify-content: space-between;
display: flex;
.verifiedoff {
font-size: 28rpx;
color: #999999;
}
}
.qrImg {
text-align: center;
}
}
.qrCode {
padding-top: 20rpx;
width: 493rpx;
height: 322rpx;
}
.verificationInfo {
display: flex;
padding-top: 37rpx;
.verifi {
margin-left: 15rpx;
font-size: 28rpx;
color: #333333;
}
.bg {
padding-top: 10rpx;
width: 6rpx;
height: 37rpx;
background: #FF4502;
border-radius: 0rpx 0rpx 0rpx 0rpx;
}
}
.orderList {
padding: 24rpx;
background: #FFFFFF;
border-radius: 14rpx 14rpx 14rpx 14rpx;
.orderItem {
display: flex;
padding-top: 10rpx;
.orderGoodsName {
font-size: 28rpx;
color: #333333;
}
.goodsInfo {
padding-left: 10rpx;
flex: 1
}
.orderGoodsType {
padding-top: 10rpx;
font-size: 24rpx;
color: #999999;
}
.price {
display: flex;
justify-content: space-between;
padding-top: 30rpx;
.orderPrice {
font-size: 32rpx;
color: #FF4502;
font-weight: 800;
}
.goodsNum {
font-size: 24rpx;
color: #999999;
}
}
}
.order {
justify-content: space-between;
display: flex;
.orderId {
font-size: 24rpx;
color: #999999;
}
.orderStatus {
font-size: 24rpx;
color: #FF4502;
}
}
.img {
width: 156rpx;
height: 156rpx;
}
}
.confirmVerification{
width: 702rpx;
height: 100rpx;
background: linear-gradient( 90deg, #FF4502 0%, #FF8903 100%);
border-radius: 50rpx 50rpx 50rpx 50rpx;
text-align: center;
line-height: 100rpx;
position: fixed;
bottom: 50rpx;
left: 50%;
transform: translateX(-50%);
font-weight: bold;
font-size: 32rpx;
color: #FFFFFF;
}
</style>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template>
<view>
<view>adasd</view>
<tabBar :pageIndex="pageVal" :textType="1" @toTab="toTab"></tabBar>
</view>
</template>
<script>
import tabBar from '@/components/Madman-tabBar/tabBar.vue';
export default {
components: {
tabBar
},
data() {
return {
pageVal: 0,
}
},
onLoad(opt) {
this.pageVal = opt.id ? Number(opt.id) : ''
},
methods: {
toTab(data) {
uni.redirectTo({
url: data.pageUrl
})
},
}
}
</script>
<style>
</style>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment