xiaozy_0517
xiaozhiyong 2 years ago
parent ad818c11c8
commit 2a419dde26
  1. 431
      src/views/order/index.vue

@ -1,18 +1,9 @@
<template> <template>
<div class="order"> <div class="order">
<div class="frame"> <div class="frame">
<el-input <el-input class="mr20" v-model="parameter.params.id" placeholder="订单编号" clearable></el-input>
class="mr20"
v-model="parameter.params.id"
placeholder="订单编号"
clearable
></el-input>
<!-- 公司名称 --> <!-- 公司名称 -->
<autocomplete <autocomplete class="mr20" :params="parameter.params" :config="configAutocomplete" />
class="mr20"
:params="parameter.params"
:config="configAutocomplete"
/>
<!-- <el-select style="margin-right: 20px;" v-model="parameter.params.id" placeholder="用户名称" clearable> <!-- <el-select style="margin-right: 20px;" v-model="parameter.params.id" placeholder="用户名称" clearable>
<el-option <el-option
v-for="item in refineryList" v-for="item in refineryList"
@ -23,11 +14,7 @@
</el-option> </el-option>
</el-select> --> </el-select> -->
<!-- 炼厂名称 --> <!-- 炼厂名称 -->
<autocomplete <autocomplete class="mr20" :params="parameter.params" :config="configAutocompleteLc" />
class="mr20"
:params="parameter.params"
:config="configAutocompleteLc"
/>
<!-- 产品名称 --> <!-- 产品名称 -->
<!-- <autocomplete <!-- <autocomplete
class="mr20" class="mr20"
@ -44,9 +31,7 @@
</el-option> </el-option>
</el-select> --> </el-select> -->
<div class="buttons"> <div class="buttons">
<el-button icon="el-icon-search" @click="handleCurrentChange(1)" <el-button icon="el-icon-search" @click="handleCurrentChange(1)">查询</el-button>
>查询</el-button
>
<el-button icon="el-icon-refresh" @click="reset">重置</el-button> <el-button icon="el-icon-refresh" @click="reset">重置</el-button>
</div> </div>
</div> </div>
@ -54,27 +39,15 @@
<div class="operation"> <div class="operation">
<!-- <el-button icon="el-icon-upload2" @click="addition">炼厂入驻</el-button> --> <!-- <el-button icon="el-icon-upload2" @click="addition">炼厂入驻</el-button> -->
</div> </div>
<el-table <el-table v-if="tableHeight" ref="multipleTable" :height="tableHeight" :data="tableData" style="width: 100%">
v-if="tableHeight" <el-table-column prop="id" label="订单ID" show-overflow-tooltip minWidth="250"> </el-table-column>
ref="multipleTable"
:height="tableHeight"
:data="tableData"
style="width: 100%"
>
<el-table-column
prop="id"
label="订单ID"
show-overflow-tooltip
minWidth="250"
>
</el-table-column>
<el-table-column label="购方客户信息" minWidth="250"> <el-table-column label="购方客户信息" minWidth="250">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<p class="gray"> <p class="gray">
<span>{{ row.customerName }}</span> <span>{{ row.customerName }}</span>
</p> </p>
<p class="gray"> <p class="gray">
<span>{{ row.customerId || "暂无" }}</span> <span>{{ row.customerId || '暂无' }}</span>
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
@ -89,38 +62,22 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="salePrice" label="价格" minWidth="90"> <el-table-column prop="salePrice" label="价格" minWidth="90"> </el-table-column>
</el-table-column>
<el-table-column <el-table-column prop="payStatus" label="支付状态" minWidth="120" show-overflow-tooltip>
prop="payStatus"
label="支付状态"
minWidth="120"
show-overflow-tooltip
>
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-tag <el-tag :effect="payTagType(row.payStatus).effect" :type="payTagType(row.payStatus).type">{{ payTagType(row.payStatus).label }}</el-tag>
:effect="payTagType(row.payStatus).effect"
:type="payTagType(row.payStatus).type"
>{{ payTagType(row.payStatus).label }}</el-tag
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="orderStatus" label="订单状态" minWidth="120"> <el-table-column prop="orderStatus" label="订单状态" minWidth="120">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-tag <el-tag :effect="orderTagType(row.orderStatus).effect" :type="orderTagType(row.orderStatus).type">{{
:effect="orderTagType(row.orderStatus).effect" orderTagType(row.orderStatus).label
:type="orderTagType(row.orderStatus).type" }}</el-tag>
>{{ orderTagType(row.orderStatus).label }}</el-tag
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="orderSerialNumber" label="订单提货量(实际/预约)" minWidth="180">
prop="orderSerialNumber"
label="订单提货量(实际/预约)"
minWidth="180"
>
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<span <span
>{{ row.actQuantity | toNumberFixed }} / >{{ row.actQuantity | toNumberFixed }} /
@ -130,16 +87,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="orderSerialNumber" label="订单金额(实际/预约)" minWidth="180">
prop="orderSerialNumber"
label="订单金额(实际/预约)"
minWidth="180"
>
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<span <span>{{ row.actAmount | toNumberFixed }} / {{ row.preAmount | toNumberFixed }} </span>
>{{ row.actAmount | toNumberFixed }} /
{{ row.preAmount | toNumberFixed }} </span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="时间" minWidth="235"> <el-table-column label="时间" minWidth="235">
@ -148,76 +98,37 @@
创建时间 <span>{{ row.createTime }}</span> 创建时间 <span>{{ row.createTime }}</span>
</p> </p>
<p class="gray"> <p class="gray">
更新时间 <span>{{ row.updateTime || "暂无" }}</span> 更新时间 <span>{{ row.updateTime || '暂无' }}</span>
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="orderSerialNumber" fixed="right" label="操作" width="250">
prop="orderSerialNumber"
fixed="right"
label="操作"
width="250"
>
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-link type="primary" :underline="false" @click="detail(row)" <el-link type="primary" :underline="false" @click="detail(row)">详情</el-link>
>详情</el-link
>
<el-link <el-link
v-show=" v-show="row.orderStatus !== 'SUBMITED' && row.orderStatus !== 'ORDER_LOCKED'"
row.orderStatus !== 'SUBMITED' &&
row.orderStatus !== 'ORDER_LOCKED'
"
type="primary" type="primary"
:underline="false" :underline="false"
@click="billOfLading(row)" @click="billOfLading(row)"
>提货单</el-link >提货单</el-link
> >
<el-popconfirm <el-popconfirm :title="row.orderStatus == 'SUBMITED' ? '是否确认订单锁定?' : '是否确认下单?'" icon-color="red" @confirm="Locked(row)">
:title="
row.orderStatus == 'SUBMITED'
? '是否确认订单锁定?'
: '是否确认下单?'
"
icon-color="red"
@confirm="Locked(row)"
>
<el-link <el-link
v-show=" v-show="row.orderStatus == 'SUBMITED' || row.orderStatus == 'ORDER_LOCKED'"
row.orderStatus == 'SUBMITED' ||
row.orderStatus == 'ORDER_LOCKED'
"
slot="reference" slot="reference"
type="primary" type="primary"
:underline="false" :underline="false"
>{{ >{{ row.orderStatus == 'SUBMITED' ? '订单锁定' : '下单确认' }}</el-link
row.orderStatus == "SUBMITED" ? "订单锁定" : "下单确认"
}}</el-link
> >
</el-popconfirm> </el-popconfirm>
<el-popconfirm <el-popconfirm
:title=" :title="row.orderStatus == 'SUBMITED' || row.orderStatus == 'ORDER_LOCKED' ? '是否确认取消订单?' : '是否确认退款?'"
row.orderStatus == 'SUBMITED' ||
row.orderStatus == 'ORDER_LOCKED'
? '是否确认取消订单?'
: '是否确认退款?'
"
icon-color="red" icon-color="red"
@confirm="orderCencle(row)" @confirm="orderCencle(row)"
> >
<el-link <el-link v-show="row.orderStatus !== 'CANCELED' && row.payStatus !== 'REFUNDED'" slot="reference" type="primary" :underline="false">{{
v-show=" row.orderStatus == 'SUBMITED' || row.orderStatus == 'ORDER_LOCKED' ? '订单取消' : '订单退款'
row.orderStatus !== 'CANCELED' && row.payStatus !== 'REFUNDED' }}</el-link>
"
slot="reference"
type="primary"
:underline="false"
>{{
row.orderStatus == "SUBMITED" ||
row.orderStatus == "ORDER_LOCKED"
? "订单取消"
: "订单退款"
}}</el-link
>
</el-popconfirm> </el-popconfirm>
</template> </template>
</el-table-column> </el-table-column>
@ -236,13 +147,7 @@
</el-pagination> </el-pagination>
</div> </div>
<el-drawer <el-drawer title="详情" direction="ltr" size="60%" :withHeader="false" :visible="controlWindows.detail">
title="详情"
direction="ltr"
size="60%"
:withHeader="false"
:visible="controlWindows.detail"
>
<general-details <general-details
title="详情" title="详情"
:isHeader="true" :isHeader="true"
@ -254,32 +159,28 @@
</general-details> </general-details>
</el-drawer> </el-drawer>
<!-- 提货单 --> <!-- 提货单 -->
<billOfLading <billOfLading :billData="billData" :controlWindows="controlWindows" @closeWindow="handleCurrentChange" />
:billData="billData"
:controlWindows="controlWindows"
@closeWindow="handleCurrentChange"
/>
</div> </div>
</template> </template>
<script> <script>
import serve from "api/refineryInfo.js"; import serve from 'api/refineryInfo.js'
import commonServe from "api/common.js"; import commonServe from 'api/common.js'
import productApi from "api/product.js"; import productApi from 'api/product.js'
import order from "api/order.js"; import order from 'api/order.js'
import generalDetails from "components/generalDetails/index.vue"; import generalDetails from 'components/generalDetails/index.vue'
import autocomplete from "components/autocomplete/index.vue"; import autocomplete from 'components/autocomplete/index.vue'
import billOfLading from "./components/billOfLading.vue"; import billOfLading from './components/billOfLading.vue'
export default { export default {
filters: { filters: {
toNumberFixed(val) { toNumberFixed(val) {
if (val) { if (val) {
return Number(val).toFixed(2); return Number(val).toFixed(2)
} else { } else {
return "--"; return '--'
} }
}, }
}, },
data() { data() {
return { return {
@ -287,37 +188,37 @@ export default {
add: false, add: false,
addInfo: {}, addInfo: {},
detail: false, detail: false,
bill: false, bill: false
}, },
configAutocomplete: { configAutocomplete: {
serveTarget: commonServe.getRefineryCompanyList, serveTarget: commonServe.getRefineryCompanyList,
autocompleteKey: "name", autocompleteKey: 'name',
labelKey: "name", labelKey: 'name',
valueKey: "id", valueKey: 'id',
placeholder: "企业名称", placeholder: '企业名称',
querykey: "customerId", querykey: 'customerId'
}, },
configAutocompleteLc: { configAutocompleteLc: {
serveTarget: serve.findByEntity, serveTarget: serve.findByEntity,
autocompleteKey: "refineryName", autocompleteKey: 'refineryName',
labelKey: "refineryName", labelKey: 'refineryName',
valueKey: "id", valueKey: 'id',
placeholder: "炼厂名称", placeholder: '炼厂名称',
querykey: "refineryId", querykey: 'refineryId'
}, },
configAutocompleteCp: { configAutocompleteCp: {
serveTarget: productApi.getRefineryProductList, serveTarget: productApi.getRefineryProductList,
autocompleteKey: "name", autocompleteKey: 'name',
labelKey: "refineryName", labelKey: 'refineryName',
valueKey: "id", valueKey: 'id',
placeholder: "产品名称", placeholder: '产品名称',
querykey: "productId", querykey: 'productId'
}, },
refineryTypeEnum: [ refineryTypeEnum: [
{ {
label: "普通炼厂", label: '普通炼厂',
value: "COMMON", value: 'COMMON'
}, }
], ],
refineryList: [], refineryList: [],
tableHeight: 0, tableHeight: 0,
@ -327,179 +228,174 @@ export default {
currentPage: 1, currentPage: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
params: {}, params: {}
}, },
oilCompanyMatch: {}, oilCompanyMatch: {},
billData: [], billData: [],
mappingData: [ mappingData: [
{ {
carTitle: "", carTitle: '',
carItems: [ carItems: [
{ label: "订单ID", value: "id" }, { label: '订单ID', value: 'id' },
{ label: "炼厂ID", value: "refineryId" }, { label: '炼厂ID', value: 'refineryId' },
{ label: "支付状态", value: "payStatus" }, { label: '支付状态', value: 'payStatus' },
{ label: "订单状态", value: "orderStatus" }, { label: '订单状态', value: 'orderStatus' },
{ label: "提货单数量", value: "deliveryCount" }, { label: '提货单数量', value: 'deliveryCount' }
// { label: "ID", value: "createUser" }, // { label: "ID", value: "createUser" },
// { label: "", value: "createTime" }, // { label: "", value: "createTime" },
// { label: "ID", value: "updateUser" }, // { label: "ID", value: "updateUser" },
// { label: "", value: "updateTime" }, // { label: "", value: "updateTime" },
], ]
}, }
], ]
}; }
}, },
components: { components: {
generalDetails, generalDetails,
billOfLading, billOfLading,
autocomplete, autocomplete,
productApi, productApi
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.heightHandle(); this.heightHandle()
}); })
window.addEventListener( window.addEventListener('resize', this.$utils.debounce(this.heightHandle, 500))
"resize",
this.$utils.debounce(this.heightHandle, 500)
);
}, },
created() { created() {
this.findByEntity(); this.findByEntity()
this.getByPage(); this.getByPage()
}, },
methods: { methods: {
payTagType(val) { payTagType(val) {
switch (val) { switch (val) {
case "PREPAID": case 'PREPAID':
return { label: "预支付", type: "info" }; return { label: '预支付', type: 'info' }
case "PAYING": case 'PAYING':
return { label: "支付中", type: "warning" }; return { label: '支付中', type: 'warning' }
case "SUCCESS": case 'SUCCESS':
return { label: "支付成功", type: "success", effect: "dark" }; return { label: '支付成功', type: 'success', effect: 'dark' }
case "FAILURE": case 'FAILURE':
return { label: "支付失败", type: "danger", effect: "dark" }; return { label: '支付失败', type: 'danger', effect: 'dark' }
case "CANCELED": case 'CANCELED':
return { label: "支付取消", type: "info" }; return { label: '支付取消', type: 'info' }
case "REFUNDED": case 'REFUNDED':
return { label: "退款成功", type: "danger", effect: "dark" }; return { label: '退款成功', type: 'danger', effect: 'dark' }
case "REFUNDING": case 'REFUNDING':
return { label: "退款中", type: "warning" }; return { label: '退款中', type: 'warning' }
case "REFUNDFAIL": case 'REFUNDFAIL':
return { label: "退款失败", type: "info", effect: "dark" }; return { label: '退款失败', type: 'info', effect: 'dark' }
} }
return { label: val ? val : "暂无数据", type: "info", effect: "plain" }; return { label: val ? val : '暂无数据', type: 'info', effect: 'plain' }
}, },
orderTagType(val) { orderTagType(val) {
switch (val) { switch (val) {
case "SUBMITED": case 'SUBMITED':
return { label: "订单提交 ", type: "info" }; return { label: '订单提交 ', type: 'info' }
case "ORDER_LOCKED": case 'ORDER_LOCKED':
return { label: "订单锁定", type: "warning" }; return { label: '订单锁定', type: 'warning' }
case "ORDER_SUCCESS": case 'ORDER_SUCCESS':
return { label: "下单成功", type: "success", effect: "dark" }; return { label: '下单成功', type: 'success', effect: 'dark' }
case "DELIVERING": case 'DELIVERING':
return { label: "提货中", type: "" }; return { label: '提货中', type: '' }
case "COMPLETE": case 'COMPLETE':
return { label: "订单完成", type: "success", effect: "dark" }; return { label: '订单完成', type: 'success', effect: 'dark' }
case "CANCELED": case 'CANCELED':
return { label: "订单取消", type: "info" }; return { label: '订单取消', type: 'info' }
} }
return { label: val ? val : "暂无数据", type: "info" }; return { label: val ? val : '暂无数据', type: 'info' }
}, },
// currentPage change // currentPage change
handleCurrentChange(page) { handleCurrentChange(page) {
this.parameter.currentPage = page; this.parameter.currentPage = page
this.getByPage(); this.getByPage()
}, },
// pageSize change // pageSize change
handleSizeChange(size) { handleSizeChange(size) {
this.parameter.currentPage = 1; this.parameter.currentPage = 1
this.parameter.pageSize = size; this.parameter.pageSize = size
this.getByPage(); this.getByPage()
}, },
//table list //table list
getByPage() { getByPage() {
order.getByPage(this.parameter).then((res) => { order.getByPage(this.parameter).then(res => {
this.tableData = res.data.list; this.tableData = res.data.list
this.total = res.data.totalCount; this.total = res.data.totalCount
}); })
}, },
//list //list
findByEntity() { findByEntity() {
serve.findByEntity().then((res) => { serve.findByEntity().then(res => {
this.refineryList = res.data; this.refineryList = res.data
}); })
}, },
// //
orderCencle(row) { orderCencle(row) {
if (row.orderStatus == "SUBMITED" || row.orderStatus == "ORDER_LOCKED") { if (row.orderStatus == 'SUBMITED' || row.orderStatus == 'ORDER_LOCKED') {
order order.orderUpdate({ id: row.id, orderStatus: 'CANCELED' }).then(res => {
.orderUpdate({ id: row.id, orderStatus: "CANCELED" }) if (res.code == 20000) {
.then((res) => { this.getByPage()
if (res.code == 20000) { }
this.getByPage(); })
}
});
} else { } else {
order.orderRefund({ id: row.id }).then((res) => { order.orderRefund({ id: row.id }).then(res => {
if (res.code == 20000) { if (res.code == 20000) {
this.getByPage(); this.getByPage()
} }
}); })
} }
}, },
// //
addition() { addition() {
this.controlWindows.addInfo.title = "炼厂入驻"; this.controlWindows.addInfo.title = '炼厂入驻'
this.controlWindows.add = true; this.controlWindows.add = true
}, },
// //
async billOfLading(row) { async billOfLading(row) {
this.controlWindows.addInfo.title = ""; this.controlWindows.addInfo.title = ''
await order.findDeliveryByOrderId(row.id).then((res) => { await order.findDeliveryByOrderId(row.id).then(res => {
this.billData.list = res.data; this.billData.list = res.data
}); })
await order.findByOrderId(row.id).then((res) => { await order.findByOrderId(row.id).then(res => {
this.billData.orderInfo = res.data; this.billData.orderInfo = res.data
}); })
this.controlWindows.addInfo = row; this.controlWindows.addInfo = row
this.controlWindows.bill = true; this.controlWindows.bill = true
}, },
// //
detail(row) { detail(row) {
this.oilCompanyMatch = [row]; this.oilCompanyMatch = [row]
this.controlWindows.detail = true; this.controlWindows.detail = true
}, },
// //
Locked(row) { Locked(row) {
if (row.orderStatus == "SUBMITED") { if (row.orderStatus == 'SUBMITED') {
order.orderLock({ id: row.id }).then((res) => { order.orderLock({ id: row.id }).then(res => {
if (res.code == 20000) { if (res.code == 20000) {
this.getByPage(); this.getByPage()
} }
}); })
} else { } else {
order.orderSuccess({ id: row.id }).then((res) => { order.orderSuccess({ id: row.id }).then(res => {
if (res.code == 20000) { if (res.code == 20000) {
this.getByPage(); this.getByPage()
} }
}); })
} }
}, },
// //
switchTrigger(val, row) { switchTrigger(val, row) {
row.enableMark = row.enableMark; row.enableMark = row.enableMark
serve serve
.update({ .update({
id: row.id, id: row.id,
enableMark: val, enableMark: val
}) })
.then((res) => { .then(res => {
if (res.code === 20000) { if (res.code === 20000) {
this.getByPage(); this.getByPage()
} else this.$message.error(res.msg); } else this.$message.error(res.msg)
}); })
}, },
// //
reset() { reset() {
@ -507,23 +403,22 @@ export default {
currentPage: 1, currentPage: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
params: {}, params: {}
}; }
}, },
// table height // table height
heightHandle() { heightHandle() {
let bodyHeight = document.body.clientHeight; let bodyHeight = document.body.clientHeight
let frameHeight = this.obtainElement(".frame").clientHeight; let frameHeight = this.obtainElement('.frame').clientHeight
let operationHeight = this.obtainElement(".operation").clientHeight; let operationHeight = this.obtainElement('.operation').clientHeight
let paginationHeight = this.obtainElement(".el-pagination").clientHeight; let paginationHeight = this.obtainElement('.el-pagination').clientHeight
this.tableHeight = this.tableHeight = bodyHeight - frameHeight - operationHeight - paginationHeight - 145
bodyHeight - frameHeight - operationHeight - paginationHeight - 145;
}, },
obtainElement(className) { obtainElement(className) {
return document.documentElement.querySelector(className); return document.documentElement.querySelector(className)
}, }
}, }
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

Loading…
Cancel
Save