Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c31ef2f096 | |||
| 709e88bc29 | |||
|
|
908eb71b48 | ||
|
|
9492db65e9 | ||
|
|
fb74b5bb1d | ||
| 338cbe6990 | |||
|
|
2b2e320e6d | ||
| 8e3d07d747 | |||
|
|
c314eae594 | ||
|
|
ac333c68d7 | ||
| fc60f7cbdf | |||
|
|
bb1b3123d5 | ||
|
|
a1bd58544b | ||
| 542e85cc74 | |||
|
|
038e6f8669 | ||
| 0693c18d9b |
@@ -13,7 +13,7 @@ VUE_APP_DOMAIN = uat.xingoil.com/ws
|
||||
# uat.xingoil.com/ws
|
||||
|
||||
# 开发环境,不会进行加密,会打印出数据1
|
||||
VUE_APP_ENV = 'development'
|
||||
VUE_APP_ENV = 'production'
|
||||
#production
|
||||
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
||||
@@ -12,3 +12,4 @@ VUE_APP_UPLOAD_PRIVATE_URL = '/adminapi/oil-dict/imageHandler/uploadProtectedImg
|
||||
VUE_APP_ENV = 'production'
|
||||
|
||||
VUE_APP_DOMAIN = www.xingoil.com/ws
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
"test:ci": "npm run lint && npm run test:unit",
|
||||
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
|
||||
"analyzer": "cross-env use_analyzer=true npm run dev",
|
||||
"new": "plop"
|
||||
"new": "plop",
|
||||
"dev2": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve",
|
||||
"build:prod2": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
|
||||
@@ -76,6 +76,29 @@ export default {
|
||||
data: orderInfo
|
||||
})
|
||||
},
|
||||
getMainDataOne() {
|
||||
// 首页订单数据
|
||||
return request({
|
||||
url: `/${service_name}/${group_name}/getMainData1`,
|
||||
method: 'post'
|
||||
// data: orderInfo
|
||||
})
|
||||
},
|
||||
getMainDataTwo(time) {
|
||||
// 首页订单统计
|
||||
return request({
|
||||
url: `/${service_name}/${group_name}/getMainData2`,
|
||||
method: 'post',
|
||||
data: time
|
||||
})
|
||||
},
|
||||
getProductOverview() {
|
||||
// 获取商品统计信息
|
||||
return request({
|
||||
url: `/${service_name}/mallProductInfo/getProductOverview`,
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
exportExcel(page) {
|
||||
// 导出
|
||||
return request({
|
||||
@@ -85,6 +108,15 @@ export default {
|
||||
responseType: 'blob'
|
||||
})
|
||||
},
|
||||
RefundexportExcel(page) {
|
||||
// 导出
|
||||
return request({
|
||||
url: `/${service_name}/${group_name}/getRefundOrderExport`,
|
||||
method: 'post',
|
||||
data: page,
|
||||
responseType: 'blob'
|
||||
})
|
||||
},
|
||||
deleteById(id) {
|
||||
// 根据id删除
|
||||
return request({
|
||||
|
||||
@@ -89,12 +89,13 @@ export default {
|
||||
}
|
||||
},
|
||||
beforeAvatarUpload(file) {
|
||||
const isLt2M = file.size / 1024 < 50
|
||||
console.log(file)
|
||||
const isLt2M = file.size / 1024 > 5 * 1024
|
||||
|
||||
if (!isLt2M) {
|
||||
this.$message.error('图片大小不能超过50KB! 请重新上传!')
|
||||
if (isLt2M) {
|
||||
this.$message.error('图片大小不能超过5M! 请重新上传!')
|
||||
}
|
||||
return isLt2M
|
||||
return !isLt2M
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
20
src/main.js
20
src/main.js
@@ -1,12 +1,11 @@
|
||||
|
||||
import 'babel-polyfill'
|
||||
import 'babel-polyfill'
|
||||
import Vue from 'vue'
|
||||
import router from './router'
|
||||
import Cookies from 'js-cookie'
|
||||
import Element from 'element-ui'
|
||||
import { UTable, UTableColumn } from 'umy-ui'
|
||||
import Element from 'element-ui'
|
||||
import { UTable, UTableColumn } from 'umy-ui'
|
||||
Vue.use(UTable)
|
||||
Vue.use(UTableColumn)
|
||||
Vue.use(UTableColumn)
|
||||
import App from './App'
|
||||
import store from './store'
|
||||
import * as filters from './filters' // 全局过滤器
|
||||
@@ -24,23 +23,23 @@ import 'normalize.css/normalize.css'
|
||||
import 'vue2-animate/dist/vue2-animate.min.css'
|
||||
|
||||
import './styles/element-variables.scss'
|
||||
import 'element-ui/lib/theme-chalk/display.css'
|
||||
import 'element-ui/lib/theme-chalk/display.css'
|
||||
import 'wowjs/css/libs/animate.css'
|
||||
import '@/styles/index.scss'
|
||||
import '@/styles/index.scss'
|
||||
import './icons' // icon
|
||||
import './permission' // permission control
|
||||
import { getToken, setToken, removeToken } from '@/utils/auth.js'
|
||||
import pagesHeader from '@/components/pagesHeader';
|
||||
import pagesHeader from '@/components/pagesHeader'
|
||||
|
||||
import SlideVerify from 'vue-monoplasty-slide-verify'
|
||||
import '@/theme/index.scss';
|
||||
import '@/theme/index.scss'
|
||||
|
||||
Vue.use(SlideVerify)
|
||||
Vue.use(permission)
|
||||
Vue.use(dragDialog)
|
||||
Vue.use(dragDrawer)
|
||||
Vue.use(GlobalComponents)
|
||||
Vue.component('pagesHeader', pagesHeader);
|
||||
Vue.component('pagesHeader', pagesHeader)
|
||||
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
// 切换环境时执行代码
|
||||
@@ -57,6 +56,7 @@ Object.keys(filters).forEach(key => {
|
||||
|
||||
Vue.config.productionTip = false
|
||||
Vue.prototype.$utils = utils
|
||||
Vue.prototype.$bus = new Vue()
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Cookies from 'js-cookie'
|
||||
|
||||
const TokenKey = 'Authorization'
|
||||
const TokenKey = 'mall_Authorization'
|
||||
const NetWorkId = 'networkId'
|
||||
const UserName = 'username'
|
||||
const PassWord = 'password'
|
||||
|
||||
@@ -212,7 +212,15 @@ export function param2Obj(url) {
|
||||
if (!search) {
|
||||
return {}
|
||||
}
|
||||
return JSON.parse('{"' + decodeURIComponent(search).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"').replace(/\+/g, ' ') + '"}')
|
||||
return JSON.parse(
|
||||
'{"' +
|
||||
decodeURIComponent(search)
|
||||
.replace(/"/g, '\\"')
|
||||
.replace(/&/g, '","')
|
||||
.replace(/=/g, '":"')
|
||||
.replace(/\+/g, ' ') +
|
||||
'"}'
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -288,7 +296,7 @@ export function getTime(type) {
|
||||
export function debounce(func, wait, immediate) {
|
||||
let timeout, args, context, timestamp, result
|
||||
|
||||
const later = function () {
|
||||
const later = function() {
|
||||
// 据上一次触发时间间隔
|
||||
const last = +new Date() - timestamp
|
||||
|
||||
@@ -305,7 +313,7 @@ export function debounce(func, wait, immediate) {
|
||||
}
|
||||
}
|
||||
|
||||
return function (...args) {
|
||||
return function(...args) {
|
||||
context = this
|
||||
timestamp = +new Date()
|
||||
const callNow = immediate && !timeout
|
||||
@@ -420,9 +428,9 @@ export function fileAdd(file, resolve, reject) {
|
||||
const reader = new FileReader()
|
||||
const image = new Image()
|
||||
reader.readAsDataURL(file)
|
||||
reader.onload = function () {
|
||||
reader.onload = function() {
|
||||
file.src = this.result
|
||||
image.onload = function () {
|
||||
image.onload = function() {
|
||||
const width = image.width
|
||||
const height = image.height
|
||||
file.width = width
|
||||
@@ -444,7 +452,7 @@ export function startImgCompress(path, obj, resolve, reject) {
|
||||
// path是指上传的图片,obj是压缩的品质,越低越模糊
|
||||
var img = new Image()
|
||||
img.src = path.src
|
||||
img.onload = function () {
|
||||
img.onload = function() {
|
||||
var that = this // 这里的this 是把img的对象指向改变为that
|
||||
// 默认按比例压缩
|
||||
var w = that.width
|
||||
@@ -501,7 +509,7 @@ export function formatXML(xml, tab) {
|
||||
var formatted = ''
|
||||
var indent = ''
|
||||
tab = tab || ' '
|
||||
xml.split(/>\s*</).forEach(function (node) {
|
||||
xml.split(/>\s*</).forEach(function(node) {
|
||||
if (node.match(/^\/\w/)) indent = indent.substring(tab.length)
|
||||
formatted += indent + '<' + node + '>\r\n'
|
||||
if (node.match(/^<?\w[^>]*[^\/]$/)) indent += tab
|
||||
@@ -660,7 +668,7 @@ export const exportDefault = 'export default '
|
||||
// 类型判断
|
||||
export function typeJudgment(object) {
|
||||
try {
|
||||
let res = {}.__proto__.toString.call(object);
|
||||
let res = {}.__proto__.toString.call(object)
|
||||
// let type = /(?<= ).+(?=\])/.exec(res);
|
||||
let type = res.replace(/[\[\]]/g, '').split(' ')
|
||||
return type.length ? type[1] : ''
|
||||
@@ -668,3 +676,21 @@ export function typeJudgment(object) {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
// url取参
|
||||
export function urlParamsHandle(url) {
|
||||
const search = url.split('?')[1]
|
||||
if (!search) {
|
||||
return {}
|
||||
}
|
||||
const result = {}
|
||||
const searchArr = search.split('&')
|
||||
searchArr.forEach(v => {
|
||||
const index = v.indexOf('=')
|
||||
if (index !== -1) {
|
||||
const name = v.substring(0, index)
|
||||
const val = v.substring(index + 1, v.length)
|
||||
result[name] = val
|
||||
}
|
||||
})
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -12,25 +12,25 @@
|
||||
<i style="font-size: 40px; color:#1ABC9C" class="el-icon-tickets"></i>
|
||||
<div>
|
||||
<div>今日订单总数</div>
|
||||
<div>200</div>
|
||||
<div>{{ orderData.total }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="orderData-right oneflex flex jw ae">
|
||||
<div class="orderData-right-item">
|
||||
<span>待核销订单</span>
|
||||
<span>(10)</span>
|
||||
<span>待退款订单</span>
|
||||
<span>({{ orderData.daiTuiKuan }})</span>
|
||||
</div>
|
||||
<div class="orderData-right-item">
|
||||
<span>待核销订单</span>
|
||||
<span>({{ orderData.daiHeXiao }})</span>
|
||||
</div>
|
||||
<div class="orderData-right-item mt">
|
||||
<span>已核销订单</span>
|
||||
<span>(10)</span>
|
||||
<span>({{ orderData.yiHeXiao }})</span>
|
||||
</div>
|
||||
<div class="orderData-right-item mt">
|
||||
<span>已完成订单</span>
|
||||
<span>(10)</span>
|
||||
</div>
|
||||
<div class="orderData-right-item mt">
|
||||
<span>待退款订单</span>
|
||||
<span>(10)</span>
|
||||
<span>已退款订单</span>
|
||||
<span>({{ orderData.yiTuiKuan }})</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -45,23 +45,9 @@
|
||||
<span class="card-title">商品总览</span>
|
||||
</div>
|
||||
<div class="product-card flex js ac">
|
||||
<div class="product-card-item">
|
||||
<div class="number">100</div>
|
||||
<div>已下架</div>
|
||||
</div>
|
||||
<div class="product-card-item">
|
||||
<div class="number">100</div>
|
||||
<div>已下架</div>
|
||||
</div>
|
||||
|
||||
<div class="product-card-item">
|
||||
<div class="number">100</div>
|
||||
<div>已下架</div>
|
||||
</div>
|
||||
|
||||
<div class="product-card-item">
|
||||
<div class="number">100</div>
|
||||
<div>已下架</div>
|
||||
<div class="product-card-item" v-for="(item, index) in productList" :key="index">
|
||||
<div class="number">{{ item.currentNum }}</div>
|
||||
<div>{{ item.productStatus }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -104,13 +90,13 @@
|
||||
<div class="orderStatistics-card-left flex column jc">
|
||||
<div class="orderStatistics-card-left-item">
|
||||
<div class="orderStatistics-card-left-item-title">本月订单总数</div>
|
||||
<div class="orderStatistics-card-left-item-number">10000</div>
|
||||
<div class="orderStatistics-card-left-item-title">10% 同比上周</div>
|
||||
<div class="orderStatistics-card-left-item-number">{{ month }}</div>
|
||||
<!-- <div class="orderStatistics-card-left-item-title">10% 同比上周</div> -->
|
||||
</div>
|
||||
<div class="orderStatistics-card-left-item mt">
|
||||
<div class="orderStatistics-card-left-item-title">本周订单数量</div>
|
||||
<div class="orderStatistics-card-left-item-number">10000</div>
|
||||
<div class="orderStatistics-card-left-item-title">10% 同比上周</div>
|
||||
<div class="orderStatistics-card-left-item-number">{{ week }}</div>
|
||||
<!-- <div class="orderStatistics-card-left-item-title">10% 同比上周</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="orderStatistics-card-right oneflex">
|
||||
@@ -128,7 +114,7 @@
|
||||
:picker-options="pickerOptions"
|
||||
>
|
||||
</el-date-picker>
|
||||
<el-button type="primary" @click="userSearchs" style="margin-left:10px">查询</el-button>
|
||||
<el-button type="primary" @click="userSearchs" style="margin-left:10px">查询</el-button>
|
||||
</div>
|
||||
|
||||
<div style="width: 100%; height:500px;margin-top:20px" id="chart"></div>
|
||||
@@ -142,6 +128,7 @@
|
||||
|
||||
<script>
|
||||
import echarts from 'echarts'
|
||||
import orderInfoApi from '@/api/order/orderInfo.js'
|
||||
|
||||
export default {
|
||||
filters: {},
|
||||
@@ -149,16 +136,67 @@ export default {
|
||||
return {
|
||||
myChart: null,
|
||||
createTime: '',
|
||||
orderData: {},
|
||||
startTime: null,
|
||||
endTime: null,
|
||||
week: null,
|
||||
month: null,
|
||||
option: {
|
||||
color: ['#DBEEFC'],
|
||||
grid: {
|
||||
x: 50,
|
||||
y: 25,
|
||||
x2: 30,
|
||||
y2: 35
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false
|
||||
// data: ['07-01周六', '07-02周日', '07-03周一', '07-04周二', '07-05周三', '07-06周四', '07-07周五']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
// data: [820, 932, 901, 934, 1290, 1330, 1320],
|
||||
type: 'line',
|
||||
smooth: true,
|
||||
itemStyle: {
|
||||
color: '#49A9EE',
|
||||
normal: {
|
||||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||||
{
|
||||
offset: 0,
|
||||
color: '#49A9EE' // 起始颜色
|
||||
},
|
||||
{
|
||||
offset: 1,
|
||||
color: '#DBEEFC' // 结束颜色
|
||||
}
|
||||
]),
|
||||
lineStyle: {
|
||||
width: 2 // 线条宽度
|
||||
}
|
||||
}
|
||||
},
|
||||
areaStyle: {}
|
||||
}
|
||||
]
|
||||
},
|
||||
pickerOptions: {
|
||||
shortcuts: [
|
||||
{
|
||||
text: '今天',
|
||||
onClick(picker) {
|
||||
const end = new Date()
|
||||
const start = new Date()
|
||||
picker.$emit('pick', [start, end])
|
||||
}
|
||||
},
|
||||
// {
|
||||
// text: '今天',
|
||||
// onClick(picker) {
|
||||
// const end = new Date()
|
||||
// const start = new Date()
|
||||
// picker.$emit('pick', [start, end])
|
||||
// }
|
||||
// },
|
||||
{
|
||||
text: '最近一周',
|
||||
onClick(picker) {
|
||||
@@ -178,45 +216,118 @@ export default {
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
productList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.init()
|
||||
// this.init()
|
||||
},
|
||||
mounted() {
|
||||
this.initChart('chart')
|
||||
this.myChart = echarts.init(document.getElementById('chart'))
|
||||
var DaysAgo = this.timeBefore()
|
||||
var sevenDaysAgo = this.timeBefore7()
|
||||
this.createTime = [new Date(sevenDaysAgo), new Date(DaysAgo)]
|
||||
|
||||
this.getMainDataOne()
|
||||
this.getMainDataTwo(sevenDaysAgo, DaysAgo)
|
||||
this.getProductOverview()
|
||||
},
|
||||
methods: {
|
||||
initChart(id = 'chart') {
|
||||
this.myChart = echarts.init(document.getElementById(id))
|
||||
this.myChart.setOption({
|
||||
color: ['#4370da'],
|
||||
grid: {
|
||||
x: 50,
|
||||
y: 25,
|
||||
x2: 30,
|
||||
y2: 35
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: ['07-01周六', '07-02周日', '07-03周一', '07-04周二', '07-05周三', '07-06周四', '07-07周五']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
data: [820, 932, 901, 934, 1290, 1330, 1320],
|
||||
type: 'line',
|
||||
smooth: true,
|
||||
areaStyle: {}
|
||||
}
|
||||
]
|
||||
// 表格搜索
|
||||
userSearchs() {
|
||||
if (this.createTime !== null && this.createTime.length !== 0) {
|
||||
if (this.isDate(this.createTime[0])) {
|
||||
this.startTime = this.createTime[0]
|
||||
this.endTime = this.createTime[1]
|
||||
} else {
|
||||
var time1 = this.getSimpleDate(this.createTime[0])
|
||||
var time2 = this.getSimpleDate(this.createTime[1])
|
||||
this.startTime = time1
|
||||
this.endTime = time2
|
||||
}
|
||||
|
||||
this.getMainDataTwo(this.startTime, this.endTime)
|
||||
} else {
|
||||
this.$message.error('请选择要查询的时间段!')
|
||||
}
|
||||
},
|
||||
// 首页订单数据
|
||||
async getMainDataOne() {
|
||||
await orderInfoApi.getMainDataOne().then(res => {
|
||||
if ((res.code = 20000)) {
|
||||
this.orderData = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
init() {}
|
||||
async getMainDataTwo(startTime, endTime) {
|
||||
await orderInfoApi.getMainDataTwo({ createTimeStart: startTime, createTimeEnd: endTime }).then(res => {
|
||||
if ((res.code = 20000)) {
|
||||
this.week = res.data.week
|
||||
this.month = res.data.month
|
||||
this.option.xAxis.data = res.data.date
|
||||
this.option.series[0].data = res.data.value
|
||||
|
||||
this.myChart.setOption(this.option)
|
||||
}
|
||||
})
|
||||
},
|
||||
async getProductOverview() {
|
||||
await orderInfoApi.getProductOverview().then(res => {
|
||||
if ((res.code = 20000)) {
|
||||
this.productList = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
timeBefore(date) {
|
||||
if (!date) {
|
||||
date = new Date()
|
||||
}
|
||||
var y = date.getFullYear()
|
||||
var m = date.getMonth() + 1
|
||||
var d = date.getDate()
|
||||
if (d < 0) {
|
||||
m = date.getMonth()
|
||||
var d1 = new Date(y, m, 0)
|
||||
var d2 = d1.getDate()
|
||||
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d2 + d)
|
||||
} else {
|
||||
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)
|
||||
}
|
||||
},
|
||||
timeBefore7(date) {
|
||||
if (!date) {
|
||||
date = new Date()
|
||||
}
|
||||
var y = date.getFullYear()
|
||||
var m = date.getMonth() + 1
|
||||
var d = date.getDate() - 7
|
||||
if (d < 0) {
|
||||
m = date.getMonth()
|
||||
var d1 = new Date(y, m, 0)
|
||||
var d2 = d1.getDate()
|
||||
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d2 + d)
|
||||
} else {
|
||||
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)
|
||||
}
|
||||
},
|
||||
isDate(dateStr) {
|
||||
var pattern = /^\d{4}-\d{2}-\d{2}$/
|
||||
return pattern.test(dateStr)
|
||||
},
|
||||
getSimpleDate(date) {
|
||||
var y = date.getFullYear()
|
||||
var m = date.getMonth() + 1
|
||||
m = m < 10 ? '0' + m : m
|
||||
var d = date.getDate()
|
||||
d = d < 10 ? '0' + d : d
|
||||
// var h = date.getHours()
|
||||
// var minute = date.getMinutes()
|
||||
// minute = minute < 10 ? '0' + minute : minute
|
||||
// var s = date.getSeconds()
|
||||
// s = s < 10 ? '0' + s : s
|
||||
return y + '-' + m + '-' + d
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<el-col>
|
||||
<el-form-item label="广告图片" prop="positionImage">
|
||||
<div class="upLoadPicBox">
|
||||
<upload :photo="advertisement.positionImage" @success="uploadSuccess" tip="只能上传jpg/png格式文件,文件不能超过50kb"></upload>
|
||||
<upload :photo="advertisement.positionImage" @success="uploadSuccess" tip="只能上传jpg/png格式文件"></upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div style="background: #f3f3f3;height:60px">
|
||||
<span style="line-height:60px;margin:0px 30px;color:red; font-size:16px"> 当前订单状态:{{ detailData.orderStatus | orderStatus }}</span>
|
||||
</div>
|
||||
<el-descriptions title="基本信息" class="text" direction="vertical" :column="6" border>
|
||||
<el-descriptions title="基本信息" class="orderText" direction="vertical" :column="6" border>
|
||||
<el-descriptions-item label="订单编号">{{ detailData.orderCode }}</el-descriptions-item>
|
||||
<el-descriptions-item label="用户账号">{{ detailData.customerPhone }}</el-descriptions-item>
|
||||
<el-descriptions-item label="支付积分">{{ detailData.integral }}</el-descriptions-item>
|
||||
@@ -13,13 +13,13 @@
|
||||
<el-descriptions-item label="提货码">{{ detailData.takeCode }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<el-descriptions title="收货人信息" class="text" direction="vertical" :column="3" border>
|
||||
<el-descriptions title="收货人信息" class="orderText" direction="vertical" :column="3" border>
|
||||
<el-descriptions-item label="收货人">{{ detailData.customerName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="手机号码">{{ detailData.customerPhone }}</el-descriptions-item>
|
||||
<el-descriptions-item label="订单备注">{{ detailData.remark || '暂无' }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div class="text">商品信息</div>
|
||||
<div class="orderText">商品信息</div>
|
||||
<el-table
|
||||
:data="detailData.mallOrderInfoDetails"
|
||||
class="ivu-mt mt14"
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
<el-table-column label="小计" min-width="120" align="center" prop="allMarketPrice"> </el-table-column>
|
||||
</el-table>
|
||||
<div class="text">操作信息</div>
|
||||
<div class="orderText">操作信息</div>
|
||||
<el-table :data="detailData.mallOrderInfoRecords" class="ivu-mt mt14" v-loading="loading" border highlight-current-row empty-text="暂无数据">
|
||||
<el-table-column label="操作者" min-width="120" align="center">
|
||||
<template slot-scope="scope">
|
||||
@@ -291,7 +291,7 @@ export default {
|
||||
.label_width {
|
||||
width: 400px;
|
||||
}
|
||||
.text {
|
||||
.orderText {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 20px;
|
||||
|
||||
@@ -247,7 +247,7 @@ export default {
|
||||
const searchParam = { ...this.page }
|
||||
searchParam.pageSize = endIndex
|
||||
searchParam.currentPage = this.output.startPage
|
||||
orderInfoApi.getRefundOrder(searchParam).then(res => {
|
||||
orderInfoApi.RefundexportExcel(searchParam).then(res => {
|
||||
const link = document.createElement('a')
|
||||
// 创建Blob对象,设置文件类型
|
||||
const blob = new Blob([res], { type: 'application/vnd.ns-excel' }) // MIME类型
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="article-manager">
|
||||
<el-card :bordered="false" shadow="never" class="ivu-mt mt16 mb30" :body-style="{ padding: '0 20px 20px' }">
|
||||
<div class="text">退货商品</div>
|
||||
<div class="orderText">退货商品</div>
|
||||
<el-table
|
||||
:data="detailData.mallOrderInfoDetails"
|
||||
class="ivu-mt mt14"
|
||||
@@ -37,7 +37,7 @@
|
||||
<el-table-column label="小计" min-width="120" align="center" prop="allMarketPrice"> </el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-descriptions title="基本信息" class="text" :column="1" border>
|
||||
<el-descriptions title="基本信息" class="orderText" :column="1" border>
|
||||
<el-descriptions-item label="订单id">{{ detailData.id }}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请状态">{{ detailData.refundStatus | refundStatus }}</el-descriptions-item>
|
||||
<el-descriptions-item label="订单编号">{{ detailData.orderCode }} </el-descriptions-item>
|
||||
@@ -49,7 +49,7 @@
|
||||
<el-descriptions-item label="退款原因">{{ detailData.refundMark }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<el-descriptions title="" class="text" :column="1" border>
|
||||
<el-descriptions title="" class="orderText" :column="1" border>
|
||||
<el-descriptions-item label="处理人员">{{ OrderInfoRecord.customerName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="处理时间">{{ OrderInfoRecord.createTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="操作备注">{{ OrderInfoRecord.remark }} </el-descriptions-item>
|
||||
@@ -275,7 +275,7 @@ export default {
|
||||
.label_width {
|
||||
width: 400px;
|
||||
}
|
||||
.text {
|
||||
.orderText {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 20px;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
list-type="picture-card">
|
||||
<i slot="default" class="el-icon-plus"></i>
|
||||
<div slot="file" slot-scope="{file}">
|
||||
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
|
||||
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
|
||||
<span class="el-upload-list__item-actions">
|
||||
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
|
||||
<i class="el-icon-zoom-in"></i>
|
||||
@@ -16,9 +16,9 @@
|
||||
<slot :file="file" name="imgButton">
|
||||
|
||||
</slot>
|
||||
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-upload>
|
||||
<!-- <div style="width: 100%;display: flex;justify-content: center;">
|
||||
<slot name="footer">
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
limit: {
|
||||
@@ -57,7 +57,7 @@ export default {
|
||||
this.fileList.push(Object.assign(file, { url }));
|
||||
},
|
||||
handleRemove(file) {
|
||||
this.fileList = this.fileList.filter(item => item.name !== file.name)
|
||||
this.fileList = this.fileList.filter(item => item !== file)
|
||||
},
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url;
|
||||
@@ -68,7 +68,7 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
<style scoped lang="scss"> ::v-deep .hiedd .el-upload--picture-card {
|
||||
display: none !important;
|
||||
/* 上传按钮隐藏 */
|
||||
@@ -79,4 +79,4 @@ export default {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -32,9 +32,9 @@
|
||||
<el-option label="平台商品" value="1"> </el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="油站名称:" label-for="siteName">
|
||||
<!-- <el-form-item label="油站名称:" label-for="siteName">
|
||||
<el-input clearable placeholder="请输入油站名称:" v-model="page.params.siteName" class="form_content_width" />
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="userSearchs">查询</el-button>
|
||||
</el-form-item>
|
||||
@@ -125,13 +125,13 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="油站" min-width="150" align="center">
|
||||
<!-- <el-table-column label="油站" min-width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{ scope.row.siteName || '暂无' }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="库存" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<!-- <span>{{ scope.row.stockList.length }}</span> <br /> -->
|
||||
@@ -459,8 +459,17 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.init()
|
||||
this.$bus.$on('productRefresh', () => {
|
||||
console.log('productRefresh')
|
||||
this.init()
|
||||
})
|
||||
},
|
||||
activated() {
|
||||
// let { refresh } = this.$utils.urlParamsHandle(location.href)
|
||||
// if (refresh) {
|
||||
// this.init()
|
||||
// }
|
||||
},
|
||||
activated() {},
|
||||
methods: {
|
||||
auditing(row, auditStatus) {
|
||||
this.$prompt('审核', '提示', {
|
||||
@@ -711,7 +720,7 @@ export default {
|
||||
},
|
||||
// 编辑
|
||||
edit(row) {
|
||||
console.log(row)
|
||||
// console.log(row)
|
||||
this.$router.push({
|
||||
path: '/product/productAdd',
|
||||
query: {
|
||||
|
||||
@@ -25,12 +25,12 @@ module.exports = {
|
||||
proxy: {
|
||||
[process.env.VUE_APP_BASE_API]: {
|
||||
// target: `cls`,
|
||||
// target: `http://192.168.0.6:38080`,
|
||||
target: `http://192.168.0.24:38080`,
|
||||
// target: `http://192.168.0.254:38080`,
|
||||
// target: `http://192.168.110.230:38080`,
|
||||
// target: `http://192.168.1.83:38080`,
|
||||
// target: 'http://222.132.26.119:8081',
|
||||
// target: `https://www.xingoil.com/adminapi`,
|
||||
// target: 'http://uat.xingoil.com/adminapi',
|
||||
target: 'http://uat.xingoil.com/adminapi',
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
['^' + process.env.VUE_APP_BASE_API]: ''
|
||||
|
||||
Reference in New Issue
Block a user