|
@@ -4,42 +4,87 @@
|
|
|
<div class="order-management-body">
|
|
|
<div class="order-management-inner">
|
|
|
<span>时间段:</span>
|
|
|
- <el-date-picker size="large" v-model="searchDate" type="daterange" unlink-panels range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions2" value-format="yyyy-MM-dd" align="center">
|
|
|
+ <el-date-picker
|
|
|
+ size="large"
|
|
|
+ v-model="searchDate"
|
|
|
+ type="daterange"
|
|
|
+ unlink-panels
|
|
|
+ range-separator="-"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ :picker-options="pickerOptions2"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
</el-date-picker>
|
|
|
<span>关键字:</span>
|
|
|
- <el-input @keyup.enter.native="_searchOrderData(1)" ref="searchOrderNumber" v-model="searchOrderNumber" value="" placeholder="留言内容、备注"></el-input>
|
|
|
- <el-button type="primary" @click="_searchOrderData(1)" color='red'>筛选</el-button>
|
|
|
+ <el-input
|
|
|
+ @keyup.enter.native="_searchOrderData(1)"
|
|
|
+ ref="searchOrderNumber"
|
|
|
+ v-model="searchOrderNumber"
|
|
|
+ value=""
|
|
|
+ placeholder="留言内容、备注"
|
|
|
+ ></el-input>
|
|
|
+ <el-button type="primary" @click="_searchOrderData(1)" color="red"
|
|
|
+ >筛选</el-button
|
|
|
+ >
|
|
|
|
|
|
- <el-button type="success" @click="active = {file: ''}" color='red' style="float: right">上传</el-button>
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ @click="active = { file: '' }"
|
|
|
+ color="red"
|
|
|
+ style="float: right"
|
|
|
+ >上传</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
<div class="order-check_bottom">
|
|
|
<div class="order-management-table">
|
|
|
- <el-table ref="order_table" @expand-change="_getOrderDetail" class='e-table' :data="orders" style="width: 100%">
|
|
|
- <el-table-column prop="id" label="序号">
|
|
|
- </el-table-column>
|
|
|
+ <el-table
|
|
|
+ ref="order_table"
|
|
|
+ @expand-change="_getOrderDetail"
|
|
|
+ class="e-table"
|
|
|
+ :data="orders"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-table-column prop="id" label="序号"> </el-table-column>
|
|
|
<!-- <el-table-column prop="name" label="名称">
|
|
|
</el-table-column> -->
|
|
|
- <el-table-column prop="description" label="描述">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="version" label="版本">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="fileUrl" label="文件地址">
|
|
|
+ <el-table-column prop="description" label="描述"> </el-table-column>
|
|
|
+ <el-table-column prop="version" label="版本"> </el-table-column>
|
|
|
+ <el-table-column prop="minVersion" label="最低版本号">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.minVersion || '-'}}</span>
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column prop="fileUrl" label="文件地址"> </el-table-column>
|
|
|
<el-table-column prop="state" label="状态">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-switch @change="updateAduitStatus(scope.row.id,scope.row.status)" :value="scope.row.status === 'A'" active-color="#13ce66" inactive-color="#ff4949">
|
|
|
+ <el-switch
|
|
|
+ @change="updateAduitStatus(scope.row.id, scope.row.status)"
|
|
|
+ :value="scope.row.status === 'A'"
|
|
|
+ active-color="#13ce66"
|
|
|
+ inactive-color="#ff4949"
|
|
|
+ >
|
|
|
</el-switch>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="发布日期">
|
|
|
<template slot-scope="scope">
|
|
|
- <div>{{new Date(scope.row.createTime).format('yyyy-MM-dd hh:mm:ss')}}</div>
|
|
|
+ <div>
|
|
|
+ {{ new Date(scope.row.createTime).format("yyyy-MM-dd hh:mm:ss") }}
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
<div class="order-management-pagination">
|
|
|
- <el-pagination @current-change="handleCurrentChange" :current-page.sync="currentPage" :page-size="10" layout="total, prev, pager, next, jumper" :total="total">
|
|
|
+ <el-pagination
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ :current-page.sync="currentPage"
|
|
|
+ :page-size="10"
|
|
|
+ layout="total, prev, pager, next, jumper"
|
|
|
+ :total="total"
|
|
|
+ >
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -60,8 +105,8 @@
|
|
|
<el-form-item label="文件" width="100%">
|
|
|
<div class="upload-file">
|
|
|
<el-button type="primary">文件上传</el-button>
|
|
|
- <input type="file" @change="active.file = $event.target.value" ref="file">
|
|
|
- <p>{{active.file}}</p>
|
|
|
+ <input type="file" @change="active.file = $event.target.value" ref="file" />
|
|
|
+ <p>{{ active.file }}</p>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -70,23 +115,18 @@
|
|
|
<el-button type="primary" @click="updateMaker">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-
|
|
|
export default {
|
|
|
-
|
|
|
name: 'order-check',
|
|
|
|
|
|
data () {
|
|
|
return {
|
|
|
type: 1, // 1八目,2双目,不传默认八目 3:转台相机 4:激光
|
|
|
active: null,
|
|
|
- colors: [
|
|
|
- '#08e2c0', '#39bafe', '#fce439', '#fda000', '#f96d6c'
|
|
|
- ],
|
|
|
+ colors: ['#08e2c0', '#39bafe', '#fce439', '#fda000', '#f96d6c'],
|
|
|
statusMap: {
|
|
|
unprocessed: '未处理',
|
|
|
processed: '已确认',
|
|
@@ -94,11 +134,11 @@ export default {
|
|
|
invalid: '已取消'
|
|
|
},
|
|
|
payMap: {
|
|
|
- '0': '微信',
|
|
|
- '1': '支付宝',
|
|
|
- '2': 'paypal',
|
|
|
- '3': '其他',
|
|
|
- '4': '货到付款'
|
|
|
+ 0: '微信',
|
|
|
+ 1: '支付宝',
|
|
|
+ 2: 'paypal',
|
|
|
+ 3: '其他',
|
|
|
+ 4: '货到付款'
|
|
|
},
|
|
|
paymentStatusMap: {
|
|
|
unpaid: '未付款',
|
|
@@ -108,43 +148,55 @@ export default {
|
|
|
partRefund: '部分退款',
|
|
|
refunded: '全额退款'
|
|
|
},
|
|
|
- tabs: [{ name: '全部', idx: -1 }, { name: '未支付', idx: 0 }, { name: '待发货', idx: 1 }, { name: '已发货', idx: 2 }, { name: '已完成', idx: 3 }],
|
|
|
+ tabs: [
|
|
|
+ { name: '全部', idx: -1 },
|
|
|
+ { name: '未支付', idx: 0 },
|
|
|
+ { name: '待发货', idx: 1 },
|
|
|
+ { name: '已发货', idx: 2 },
|
|
|
+ { name: '已完成', idx: 3 }
|
|
|
+ ],
|
|
|
expandedArr: [],
|
|
|
orders: [],
|
|
|
currentPage: 1,
|
|
|
key_input: '',
|
|
|
fullscreenLoading: false,
|
|
|
product: {
|
|
|
- 'name': '',
|
|
|
- 'packageName': '',
|
|
|
- 'count': '',
|
|
|
- 'amount': '',
|
|
|
- 'url': ''
|
|
|
+ name: '',
|
|
|
+ packageName: '',
|
|
|
+ count: '',
|
|
|
+ amount: '',
|
|
|
+ url: ''
|
|
|
},
|
|
|
receive: {
|
|
|
- 'name': '',
|
|
|
- 'phone': '',
|
|
|
- 'address': '',
|
|
|
- 'invoice': '',
|
|
|
- 'expressNum': ''
|
|
|
+ name: '',
|
|
|
+ phone: '',
|
|
|
+ address: '',
|
|
|
+ invoice: '',
|
|
|
+ expressNum: ''
|
|
|
},
|
|
|
total: 0,
|
|
|
- options: [{
|
|
|
- value: undefined,
|
|
|
- label: '全部筛选订单'
|
|
|
- }, {
|
|
|
- value: 0,
|
|
|
- label: '未支付筛选订单'
|
|
|
- }, {
|
|
|
- value: 1,
|
|
|
- label: '待发货筛选订单'
|
|
|
- }, {
|
|
|
- value: 2,
|
|
|
- label: '已发货筛选订单'
|
|
|
- }, {
|
|
|
- value: 3,
|
|
|
- label: '已完成筛选订单'
|
|
|
- }],
|
|
|
+ options: [
|
|
|
+ {
|
|
|
+ value: undefined,
|
|
|
+ label: '全部筛选订单'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 0,
|
|
|
+ label: '未支付筛选订单'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 1,
|
|
|
+ label: '待发货筛选订单'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 2,
|
|
|
+ label: '已发货筛选订单'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 3,
|
|
|
+ label: '已完成筛选订单'
|
|
|
+ }
|
|
|
+ ],
|
|
|
selectValue: '',
|
|
|
// expressNum_input: "",
|
|
|
searchDate: [],
|
|
@@ -154,31 +206,35 @@ export default {
|
|
|
hasClickSearch: false,
|
|
|
tabIndex: -1,
|
|
|
pickerOptions2: {
|
|
|
- shortcuts: [{
|
|
|
- text: '最近一周',
|
|
|
- onClick (picker) {
|
|
|
- const end = new Date()
|
|
|
- const start = new Date()
|
|
|
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
|
|
- picker.$emit('pick', [start, end])
|
|
|
- }
|
|
|
- }, {
|
|
|
- text: '最近一个月',
|
|
|
- onClick (picker) {
|
|
|
- const end = new Date()
|
|
|
- const start = new Date()
|
|
|
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
|
|
- picker.$emit('pick', [start, end])
|
|
|
- }
|
|
|
- }, {
|
|
|
- text: '最近三个月',
|
|
|
- onClick (picker) {
|
|
|
- const end = new Date()
|
|
|
- const start = new Date()
|
|
|
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
|
|
- picker.$emit('pick', [start, end])
|
|
|
+ shortcuts: [
|
|
|
+ {
|
|
|
+ text: '最近一周',
|
|
|
+ onClick (picker) {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
|
|
+ picker.$emit('pick', [start, end])
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '最近一个月',
|
|
|
+ onClick (picker) {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
|
|
+ picker.$emit('pick', [start, end])
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '最近三个月',
|
|
|
+ onClick (picker) {
|
|
|
+ const end = new Date()
|
|
|
+ const start = new Date()
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
|
|
+ picker.$emit('pick', [start, end])
|
|
|
+ }
|
|
|
}
|
|
|
- }]
|
|
|
+ ]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -188,7 +244,9 @@ export default {
|
|
|
},
|
|
|
async updateAduitStatus (id, status) {
|
|
|
let m = status === 'A' ? 'I' : 'A'
|
|
|
- let data = (await this.$http.get('/manager/goods/version/update/' + id + '/' + m + '/' + this.type))
|
|
|
+ let data = await this.$http.get(
|
|
|
+ '/manager/goods/version/update/' + id + '/' + m + '/' + this.type
|
|
|
+ )
|
|
|
this._searchOrderData(this.currentPage)
|
|
|
},
|
|
|
async updateMaker () {
|
|
@@ -222,9 +280,7 @@ export default {
|
|
|
if (pattern.test(expressNum)) {
|
|
|
this.$alert('快递单号不能为中文', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
- callback: action => {
|
|
|
-
|
|
|
- }
|
|
|
+ callback: (action) => {}
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -243,7 +299,7 @@ export default {
|
|
|
} else {
|
|
|
this.$alert('保存失败', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
- callback: action => {}
|
|
|
+ callback: (action) => {}
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -296,8 +352,8 @@ export default {
|
|
|
let date1, date2, orderNum
|
|
|
this.date1 = this.searchDate ? this.searchDate[0] : null
|
|
|
this.date2 = this.searchDate ? this.searchDate[1] : null
|
|
|
- date1 = this.date1 ? (this.date1 + ' 00:00:00') : null
|
|
|
- date2 = this.date2 ? (this.date2 + ' 23:59:59') : null
|
|
|
+ date1 = this.date1 ? this.date1 + ' 00:00:00' : null
|
|
|
+ date2 = this.date2 ? this.date2 + ' 23:59:59' : null
|
|
|
|
|
|
this.userName = this.searchPhone || null
|
|
|
this.expressNum = this.searchExpressNum || null
|
|
@@ -329,7 +385,7 @@ export default {
|
|
|
console.log(method, para)
|
|
|
if (method === 'get') {
|
|
|
let paras = []
|
|
|
- Object.keys(para).forEach(k => {
|
|
|
+ Object.keys(para).forEach((k) => {
|
|
|
if (para[k] || typeof para[k] === 'number') {
|
|
|
paras.push(`${k}=${para[k]}`)
|
|
|
} else {
|
|
@@ -357,20 +413,20 @@ export default {
|
|
|
let date1, date2, userName, expressNum, orderNum
|
|
|
this.date1 = this.searchDate ? this.searchDate[0] : null
|
|
|
this.date2 = this.searchDate ? this.searchDate[1] : null
|
|
|
- date1 = this.date1 ? (this.date1 + ' 00:00:00') : null
|
|
|
- date2 = this.date2 ? (this.date2 + ' 23:59:59') : null
|
|
|
+ date1 = this.date1 ? this.date1 + ' 00:00:00' : null
|
|
|
+ date2 = this.date2 ? this.date2 + ' 23:59:59' : null
|
|
|
|
|
|
this.userName = userName = this.searchPhone || null
|
|
|
this.expressNum = expressNum = this.searchExpressNum || null
|
|
|
this.orderNum = orderNum = this.searchOrderNumber || null
|
|
|
|
|
|
let data = {
|
|
|
- 'type': this.status,
|
|
|
- 'startDate': date1,
|
|
|
- 'endDate': date2,
|
|
|
- 'orderSn': orderNum,
|
|
|
- 'phoneNum': userName,
|
|
|
- 'expressNum': expressNum
|
|
|
+ type: this.status,
|
|
|
+ startDate: date1,
|
|
|
+ endDate: date2,
|
|
|
+ orderSn: orderNum,
|
|
|
+ phoneNum: userName,
|
|
|
+ expressNum: expressNum
|
|
|
}
|
|
|
this.fullscreenLoading = true
|
|
|
|
|
@@ -379,35 +435,38 @@ export default {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
- }).then(async () => {
|
|
|
- let exec = await this.$http({
|
|
|
- methods: 'get',
|
|
|
- params: data,
|
|
|
- url: '/manager/order/export',
|
|
|
- responseType: 'arraybuffer'
|
|
|
+ })
|
|
|
+ .then(async () => {
|
|
|
+ let exec = await this.$http({
|
|
|
+ methods: 'get',
|
|
|
+ params: data,
|
|
|
+ url: '/manager/order/export',
|
|
|
+ responseType: 'arraybuffer'
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ let blob = new Blob([exec], { type: 'application/vnd.ms-excel' })
|
|
|
+ let url = URL.createObjectURL(blob)
|
|
|
+ location.href = url
|
|
|
+ } catch (e) {
|
|
|
+ console.error(e)
|
|
|
+ }
|
|
|
+ this.fullscreenLoading = false
|
|
|
})
|
|
|
- try {
|
|
|
- let blob = new Blob([exec], {type: 'application/vnd.ms-excel'})
|
|
|
- let url = URL.createObjectURL(blob)
|
|
|
- location.href = url
|
|
|
- } catch (e) {
|
|
|
- console.error(e)
|
|
|
- }
|
|
|
- this.fullscreenLoading = false
|
|
|
- }).catch(() => {
|
|
|
- this.$message({
|
|
|
- type: 'info',
|
|
|
- message: '已取消导出'
|
|
|
+ .catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: 'info',
|
|
|
+ message: '已取消导出'
|
|
|
+ })
|
|
|
+ this.fullscreenLoading = false
|
|
|
})
|
|
|
- this.fullscreenLoading = false
|
|
|
- })
|
|
|
},
|
|
|
async _getOrderDetail (row) {
|
|
|
this.fullscreenLoading = true
|
|
|
- let data = (await this.$http.post('/manager/order/detail', {orderId: row.id})).data
|
|
|
- let temp = this.orders.find(item => item.id === row.id)
|
|
|
+ let data = (await this.$http.post('/manager/order/detail', { orderId: row.id }))
|
|
|
+ .data
|
|
|
+ let temp = this.orders.find((item) => item.id === row.id)
|
|
|
|
|
|
- temp.items = data.orderItems.map(item => {
|
|
|
+ temp.items = data.orderItems.map((item) => {
|
|
|
return {
|
|
|
...item,
|
|
|
product: {
|
|
@@ -440,11 +499,11 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
-@import url('./style.css');
|
|
|
+@import url("./style.css");
|
|
|
</style>
|
|
|
|
|
|
<style type="text/css">
|
|
|
-.el-table__expand-icon>i {
|
|
|
+.el-table__expand-icon > i {
|
|
|
display: none !important;
|
|
|
}
|
|
|
</style>
|