xg
This commit is contained in:
BIN
docs/xiugai/商品.docx
Normal file
BIN
docs/xiugai/商品.docx
Normal file
Binary file not shown.
46
docs/xiugai/营销系统问题及修改20230313.txt
Normal file
46
docs/xiugai/营销系统问题及修改20230313.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
银行提问:3.后台首页可点击,跳转空白页,作用是什么?
|
||||
后台首页显示的统计数据,将点击链接去掉(即只展示数据不需要页面跳转)。页面上展示的需要是真实数据,如果暂时无真实数据的接口,先隐藏不显示,后期完成接口后再进行展示。(郭兴)
|
||||
银行提问:4.优惠券面额无法输入小数点。
|
||||
修改新增优惠券界面的验证规则,设置优惠券面额可输入2位小数。(郭兴)
|
||||
银行提问:8.新注册用户余额充值报错?
|
||||
经过讨论与沟通,余额充值及余额支付功能的实际用途不大。可先将余额相关功能屏蔽,1、“我的云链”界面,不显示“余额”(需要对界面效果进行调整,“余额”这里可显示其他内容,不要显的太空);2、购买支付时,不显示“余额支付”选项;3、测试APP端各个界面,屏蔽“余额”相关内容。(郭兴负责手机端)
|
||||
管理后台“会员列表”页面也需要屏蔽“余额”列及“余额充值”按钮。
|
||||
银行提问:7.新注册用户默认有50余额,使用余额支付后金额不扣减。
|
||||
经测试,没出现该问题。
|
||||
针对 账号13832363123存在该问题,对账号13832363123的数据分析结果如下:
|
||||
注册时间:2023-02-27 10:07:48,注册时余额为0;
|
||||
余额增加:2023-02-27 15:42:16,增加方式:后台余额充值,充值金额:50。该操作为测试人员测试后台账户余额充值功能时所进行;
|
||||
余额消费:2023-03-08 11:42:54,APP端订单使用余额付款0.03元,余额值减少0元,余额无变化;
|
||||
余额消费:2023-03-08 11:43:31,APP端订单使用余额付款0.03元,余额值减少0元,余额无变化;
|
||||
余额消费:2023-03-11 18:30:44,APP端订单使用余额付款0.03元,余额值减少0元,余额无变化;
|
||||
结论:新注册用户不会有50余额,如果使用余额付款低于1元钱,余额账户无变化。
|
||||
引申问题:1:需要确认已有账户再次注册(即13832363123账号已经注册成功,退出登录后再用13832363123进行注册)的情况下前后台的执行逻辑是什么?2:使用余额支付时,支付金额较小时(如:0.03元),余额值也应该进行调整(该功能优先级较低,完成其他修改后再处理)
|
||||
问题:1. APP端,已经过期的优惠券应该归到已失效里边。
|
||||
查看优惠券列表的接口,接口返回数据时对应正确的状态。(郭兴查看手机端调用接口及显示数据参数,底孟哲调整接口数据)
|
||||
|
||||
三、需要讨论后修改
|
||||
银行提问:6.待支付的订单取消后优惠券不回退。
|
||||
该问题需要从创建订单时使用优惠券到订单取消或失败整个流程的各个环节进行分析,确认取消支付或支付失败的情况下优惠券都正确退回。
|
||||
|
||||
优化:
|
||||
1.系统增加退单流程。
|
||||
2.订单归集统计?对于商品待发货、已发货、已完成订单统计列表。
|
||||
(1)全部提货点的商品订单统计。
|
||||
(2)各个提货点的商品订单统计。
|
||||
(3)各个提货点对应到人的订单统计。
|
||||
3.系统发货后自动收货确认时间是多久?
|
||||
|
||||
后台管理,发货界面加一个批量发货,具体实现逻辑再讨论,先修改问题。
|
||||
|
||||
商品发货以及到达取货点,现实现功能为商品发货后发送一个物流信息到用户手机APP信息界面,需要用户进入信息界面主动向服务端发起查询。需要考虑是否发达推送消息或短信通知(推送消息需集成第三方消息推送)。
|
||||
|
||||
因为原系统订单流程是用户下单、支付、商家发货、物流送货到用户收货地址、确认收货交易完成。
|
||||
现在订单流程为用户下单、支付、商家发货、物流送货到用户指定取货点、用户到取货点取货及确认收货交易完成。
|
||||
需要对订单流程进行完整测试,各个环节状态的改变,对用户的通知等都需要再考虑完善。
|
||||
|
||||
四、修改原则
|
||||
1. 现有功能不可以报错,功能可以简化但不可以出错、不可以有缺陷;
|
||||
2. 首先考虑手机端APP的稳定性,后期功能完善和调整,通过后台操作或接口来实现,避免手机端APP的升级;
|
||||
3. 业务流程需要完整,能够形成完整的闭环,不可以有操作过程中有断开无法连贯的情况。
|
||||
|
||||
@@ -1,48 +1,40 @@
|
||||
<template>
|
||||
<section class="data_section" ref="data_section">
|
||||
<a :href="github" target="_blank">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<div class="total-frame">
|
||||
<svg-icon icon-class="order" class="total-icon">
|
||||
</svg-icon>
|
||||
<svg-icon icon-class="order" class="total-icon"></svg-icon>
|
||||
<div class="total-title">今日下单</div>
|
||||
<div class="total-value">123</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="total-frame">
|
||||
<svg-icon icon-class="total-today" class="total-icon">
|
||||
</svg-icon>
|
||||
<svg-icon icon-class="total-today" class="total-icon"></svg-icon>
|
||||
<div class="total-title">今日销售总额</div>
|
||||
<div class="total-value">¥456</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="total-frame">
|
||||
<svg-icon icon-class="total-yesterday" class="total-icon">
|
||||
</svg-icon>
|
||||
<svg-icon icon-class="total-yesterday" class="total-icon"></svg-icon>
|
||||
<div class="total-title">昨日销售总额</div>
|
||||
<div class="total-value">¥111</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="total-frame">
|
||||
<svg-icon icon-class="total-week" class="total-icon">
|
||||
</svg-icon>
|
||||
<svg-icon icon-class="total-week" class="total-icon"></svg-icon>
|
||||
<div class="total-title">近7天销售总额</div>
|
||||
<div class="total-value">¥222</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</a>
|
||||
<el-row :gutter="10" class="row_list order_list">
|
||||
<!-- <el-col :span="7">
|
||||
<log-list></log-list>
|
||||
</el-col> -->
|
||||
<el-col >
|
||||
<bar-chart type="barChart"></bar-chart>
|
||||
</el-col>
|
||||
<el-col><bar-chart type="barChart"></bar-chart></el-col>
|
||||
</el-row>
|
||||
<!-- <el-row :gutter="10" class="row_list order_list">
|
||||
<el-col :span="7">
|
||||
@@ -66,26 +58,25 @@
|
||||
<card-list></card-list>
|
||||
</el-col>
|
||||
</el-row> -->
|
||||
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import echarts from 'echarts'
|
||||
import salesTable from "./components/salesTable"; // 销售数据表格
|
||||
import commentList from "./components/commentList"; // 用户评论列表
|
||||
import cardList from "./components/cardList"; // card列表
|
||||
import logList from "./components/logList"; // 日志列表
|
||||
import barChart from '@/components/echarts/barChart' // 用户投资类型 柱状图
|
||||
import pieChart from '@/components/echarts/pieChart' // 用户投资类型 饼状图
|
||||
import radarChart from '@/components/echarts/radarChart' // 用户投资类型 雷达图
|
||||
import lineChart from '@/components/echarts/lineChart' // 用户投资类型 折线图
|
||||
import { github } from "@/utils/env";
|
||||
import echarts from 'echarts'
|
||||
import salesTable from './components/salesTable' // 销售数据表格
|
||||
import commentList from './components/commentList' // 用户评论列表
|
||||
import cardList from './components/cardList' // card列表
|
||||
import logList from './components/logList' // 日志列表
|
||||
import barChart from '@/components/echarts/barChart' // 用户投资类型 柱状图
|
||||
import pieChart from '@/components/echarts/pieChart' // 用户投资类型 饼状图
|
||||
import radarChart from '@/components/echarts/radarChart' // 用户投资类型 雷达图
|
||||
import lineChart from '@/components/echarts/lineChart' // 用户投资类型 折线图
|
||||
import { github } from '@/utils/env'
|
||||
|
||||
export default {
|
||||
data(){
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
github:github
|
||||
github: github
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -98,50 +89,46 @@
|
||||
radarChart,
|
||||
lineChart
|
||||
},
|
||||
created(){
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
}
|
||||
created() {},
|
||||
mounted() {},
|
||||
methods: {}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.total-frame {
|
||||
border: 1px solid #DCDFE6;
|
||||
.total-frame {
|
||||
border: 1px solid #dcdfe6;
|
||||
padding: 20px;
|
||||
height: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
.total-icon {
|
||||
913656
|
||||
color: #409EFF;
|
||||
.total-icon {
|
||||
913656color: #409eff;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
.total-title {
|
||||
.total-title {
|
||||
position: relative;
|
||||
font-size: 16px;
|
||||
color: #909399;
|
||||
left: 70px;
|
||||
top: -35px;
|
||||
}
|
||||
}
|
||||
|
||||
.total-value {
|
||||
.total-value {
|
||||
position: relative;
|
||||
font-size: 18px;
|
||||
color: #606266;
|
||||
left: 70px;
|
||||
top: -25px;
|
||||
}
|
||||
.data_section{
|
||||
}
|
||||
.data_section {
|
||||
margin: 20px;
|
||||
border-radius: 2px;
|
||||
.row_list{
|
||||
.row_list {
|
||||
margin-bottom: 20px;
|
||||
.row_base{
|
||||
.row_base {
|
||||
padding: 10px;
|
||||
box-sizing: border-box;
|
||||
background: #fff;
|
||||
@@ -149,8 +136,8 @@
|
||||
height: 120px;
|
||||
}
|
||||
}
|
||||
.order_list{
|
||||
.orderArea{
|
||||
.order_list {
|
||||
.orderArea {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
background: #fff !important;
|
||||
@@ -160,46 +147,44 @@
|
||||
padding-top: 40px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.orderbarArea{
|
||||
.orderbarArea {
|
||||
height: 370px;
|
||||
}
|
||||
}
|
||||
.data_list{
|
||||
.data_list {
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
border-radius: 6px;
|
||||
padding: 10px;
|
||||
color:#fff;
|
||||
color: #fff;
|
||||
height: 80px;
|
||||
.leftItem{
|
||||
.leftItem {
|
||||
align-items: start;
|
||||
justify-content: space-between;
|
||||
text-align: left;
|
||||
}
|
||||
.rightItem{
|
||||
width:62px;
|
||||
.rightItem {
|
||||
width: 62px;
|
||||
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.svg-icon{
|
||||
.svg-icon {
|
||||
font-size: 30px;
|
||||
}
|
||||
}
|
||||
.number{
|
||||
.number {
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
.perTitle{
|
||||
.perTitle {
|
||||
font-size: 13px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.pay{
|
||||
.leftItem{
|
||||
.pay {
|
||||
.leftItem {
|
||||
justify-content: space-around;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -7,12 +7,7 @@
|
||||
size="small">
|
||||
<el-form-item label="优惠券类型:">
|
||||
<el-select v-model="coupon.type">
|
||||
<el-option
|
||||
v-for="type in typeOptions"
|
||||
:key="type.value"
|
||||
:label="type.label"
|
||||
:value="type.value">
|
||||
</el-option>
|
||||
<el-option v-for='type in typeOptions' :key='type.value' :label='type.label' :value='type.value'></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="优惠券名称:" prop="name">
|
||||
@@ -190,6 +185,23 @@
|
||||
value: 2
|
||||
}
|
||||
];
|
||||
var validatePrice = (rule, value, callback) => {
|
||||
if (!value) {
|
||||
callback(new Error("面额不能为空"));
|
||||
} else if (value.split(".").length > 2) {
|
||||
callback(new Error("请输入正确格式的金额")); //防止输入多个小数点
|
||||
}
|
||||
// else if (value > add_Com.Retail_Price) {
|
||||
// callback(new Error("金额不能大于零售价"));
|
||||
// }
|
||||
else {
|
||||
value = Math.round(value * Math.pow(10, 2)) / Math.pow(10, 2); //四舍五入
|
||||
value = Number(value).toFixed(2); //不足补位
|
||||
this.add_Com.Cost_Price = value;
|
||||
callback();
|
||||
}
|
||||
};
|
||||
|
||||
export default {
|
||||
name: 'CouponDetail',
|
||||
props: {
|
||||
@@ -212,7 +224,8 @@
|
||||
{type: 'number',required: true, message: '只能输入正整数', trigger: 'blur'}
|
||||
],
|
||||
amount: [
|
||||
{type: 'number',required: true,message: '面值只能是数值,0.01-10000,限2位小数',trigger: 'blur'}
|
||||
// {type: 'number',required: true,message: '面值只能是数值,0.01-10000,限2位小数',trigger: 'blur'}
|
||||
{ required: true, validator: validatePrice, trigger: "blur" },
|
||||
],
|
||||
minPoint: [
|
||||
{type: 'number',required: true,message: '只能输入正整数',trigger: 'blur'}
|
||||
|
||||
Reference in New Issue
Block a user