From a223d5e29e9384f720ae98c44cbe10f8fa4f73e7 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 21 八月 2025 13:42:16 +0800
Subject: [PATCH] 优化
---
admin/src/views/business/orders.vue | 279 ++++++++++++++++++++++++++++++-------------------------
1 files changed, 154 insertions(+), 125 deletions(-)
diff --git a/admin/src/views/business/orders.vue b/admin/src/views/business/orders.vue
index 7da2350..037ccd1 100644
--- a/admin/src/views/business/orders.vue
+++ b/admin/src/views/business/orders.vue
@@ -2,99 +2,131 @@
<TableLayout :permissions="['business:orders:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="鍙戝崟鏂�" prop="releaseMemberId">
- <el-input v-model="searchForm.releaseMemberId" placeholder="璇疯緭鍏ュ彂鍗曟柟" @keypress.enter.native="search"></el-input>
+ <el-form-item label="璁㈠崟鍙�" prop="releaseMemberId">
+ <el-input v-model="searchForm.code" style="width: 120px" clearable placeholder="璇疯緭鍏ヨ鍗曞彿" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鐪佷唤" prop="province">
- <el-input v-model="searchForm.province" placeholder="璇疯緭鍏ョ渷浠�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鎺ュ崟鏂�" prop="acceptName">
+ <el-input v-model="searchForm.acceptName" style="width: 120px" clearable placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鍩庡競" prop="city">
- <el-input v-model="searchForm.city" placeholder="璇疯緭鍏ュ煄甯�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鍙戝崟鏂�" prop="releaseName">
+ <el-input v-model="searchForm.releaseName" style="width: 120px" clearable placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鍖哄幙" prop="area">
- <el-input v-model="searchForm.area" placeholder="璇疯緭鍏ュ尯鍘�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="璁㈠崟绫诲瀷" prop="type">
+ <el-select v-model="searchForm.type" style="width: 120px" @keypress.enter.native="search" clearable placeholder="璁㈠崟绫诲瀷">
+ <el-option label="鐢ㄥ伐鍗�" :value="0"></el-option>
+ <el-option label="璐ц繍鍗�" :value="1"></el-option>
+ <el-option label="璁㈤鍗�" :value="2"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璁㈠崟鐘舵��" prop="status">
+ <el-select v-model="searchForm.status" style="width: 100px" @keypress.enter.native="search" clearable placeholder="鐘舵��">
+ <el-option label="寰呮敮浠�" :value="0"></el-option>
+ <el-option label="寰呮帴鍗�" :value="1"></el-option>
+ <el-option label="宸叉帴鍗�" :value="2"></el-option>
+ <el-option label="杩涜涓�" :value="3"></el-option>
+ <el-option label="宸插畬鎴�" :value="4"></el-option>
+ <el-option label="宸插彇娑�" :value="99"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍙戝竷鏃堕棿" prop="createTimeStart" label-width="100px" >
+ <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.createTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="寮�濮嬫椂闂�" /> -
+ </el-form-item>
+ <el-form-item label="" prop="createTimeEnd" label-width="0px" >
+ <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.createTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="缁撴潫鏃堕棿" />
+ </el-form-item>
+ <el-form-item label="鎺ュ崟鏃堕棿" prop="acceptTimeStart" label-width="100px" >
+ <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.acceptTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="寮�濮嬫椂闂�" /> -
+ </el-form-item>
+ <el-form-item label="" prop="acceptTimeEnd" label-width="0px" >
+ <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.acceptTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="缁撴潫鏃堕棿" />
+ </el-form-item>
+ <el-form-item label="瀹屾垚鏃堕棿" prop="doneTimeStart" label-width="100px" >
+ <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.doneTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="寮�濮嬫椂闂�" /> -
+ </el-form-item>
+ <el-form-item label="" prop="doneTimeEnd" label-width="0px" >
+ <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.doneTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="缁撴潫鏃堕棿" />
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
+ <el-button type="primary" :loading="isWorking.export" @click="exportExcel">瀵煎嚭</el-button>
</section>
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:orders:create', 'business:orders:delete']">
+<!-- <ul class="toolbar" v-permissions="['business:orders:create', 'business:orders:delete']">
<li><el-button type="primary" @click="$refs.operaOrdersWindow.open('鏂板缓璁㈠崟淇℃伅璁板綍')" icon="el-icon-plus" v-permissions="['business:orders:create']">鏂板缓</el-button></li>
<li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:orders:delete']">鍒犻櫎</el-button></li>
- </ul>
+ </ul>-->
<el-table
- :height="tableHeightNew"
+ :height="tableHeightNew"
v-loading="isWorking.search"
:data="tableData.list"
stripe
@selection-change="handleSelectionChange"
>
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
- <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
- <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <el-table-column prop="releaseMemberId" label="鍙戝崟鏂�" min-width="100px"></el-table-column>
- <el-table-column prop="type" label="绫诲瀷:0=鐢ㄥ伐锛�1=杩愯揣锛�2=璁㈤" min-width="100px"></el-table-column>
- <el-table-column prop="startDate" label="寮�濮嬫椂闂� yyyy-MM-dd" min-width="100px"></el-table-column>
- <el-table-column prop="endDate" label="缁撴潫鏃堕棿 yyyy-MM-dd" min-width="100px"></el-table-column>
- <el-table-column prop="location" label="鍦扮偣淇℃伅/鐢ㄨ溅璧风偣/鐢ㄩ鍦扮偣" min-width="100px"></el-table-column>
- <el-table-column prop="locationRemark" label="鍦扮偣鎻忚堪" min-width="100px"></el-table-column>
- <el-table-column prop="lat" label="缁忓害" min-width="100px"></el-table-column>
- <el-table-column prop="province" label="鐪佷唤" min-width="100px"></el-table-column>
- <el-table-column prop="city" label="鍩庡競" min-width="100px"></el-table-column>
- <el-table-column prop="area" label="鍖哄幙" min-width="100px"></el-table-column>
- <el-table-column prop="lgt" label="绾害" min-width="100px"></el-table-column>
- <el-table-column prop="categoryId" label="闇�姹傜被鍨嬶紙杩愯揣/鐢ㄥ伐)锛氬叧鑱� category" min-width="100px"></el-table-column>
- <el-table-column prop="workType" label="鐢ㄥ伐绫诲瀷:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級" min-width="100px"></el-table-column>
- <el-table-column prop="priceNum1" label="璁′环鏁伴噺1(澶╂暟/鐢ㄨ溅娆℃暟)" min-width="100px"></el-table-column>
- <el-table-column prop="priceNum2" label="璁′环鏁伴噺2(鐢ㄥ伐鏁伴噺/閲囨憳鏁伴噺/鐢ㄨ溅鏁伴噺/)" min-width="100px"></el-table-column>
- <el-table-column prop="supplement" label="闇�姹傝ˉ鍏�" min-width="100px"></el-table-column>
- <el-table-column prop="price" label="璐圭敤鏍囧噯" min-width="100px"></el-table-column>
- <el-table-column prop="estimatedAccount" label="棰勪及璐圭敤" min-width="100px"></el-table-column>
- <el-table-column prop="payAccount" label="瀹為檯鏀粯璐圭敤" min-width="100px"></el-table-column>
- <el-table-column prop="reviceAccount" label="瀹炴敹璐圭敤" min-width="100px"></el-table-column>
- <el-table-column prop="priceRemark" label="璐圭敤璇存槑" min-width="100px"></el-table-column>
- <el-table-column prop="carType" label="鐢ㄨ溅绫诲瀷(杩愯揣浣跨敤):0=澶╋紱1=娆�" min-width="100px"></el-table-column>
- <el-table-column prop="transportTypeId" label="杩愯緭鍝佺(杩愯揣浣跨敤) 鍏宠仈category琛�" min-width="100px"></el-table-column>
- <el-table-column prop="transportNum" label="杩愯緭閲嶉噺/鏁伴噺" min-width="100px"></el-table-column>
- <el-table-column prop="transportUnit" label="杩愯緭鍗曚綅(涓�/鏂�)" min-width="100px"></el-table-column>
- <el-table-column prop="locationEnd" label="鐢ㄨ溅缁堢偣鍦板潃" min-width="100px"></el-table-column>
- <el-table-column prop="latEnd" label="鐢ㄨ溅缁堢偣缁忓害" min-width="100px"></el-table-column>
- <el-table-column prop="lgtEnd" label="鐢ㄨ溅缁堢偣绾害" min-width="100px"></el-table-column>
- <el-table-column prop="wayInfo" label="閫旂粡鐐�/椁愭爣淇℃伅" min-width="100px"></el-table-column>
- <el-table-column prop="code" label="璁㈠崟缂栧彿" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="璁㈠崟鐘舵��:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱" min-width="100px"></el-table-column>
- <el-table-column prop="acceptTime" label="鎺ュ崟鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="acceptMemberId" label="鎺ュ崟浜�" min-width="100px"></el-table-column>
- <el-table-column prop="acceptType" label="鎺ュ崟绫诲瀷:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟锛�" min-width="100px"></el-table-column>
- <el-table-column prop="workStartTime" label="寮�濮嬩綔涓氭椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="finishTime" label="瀹屾垚鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="platformRata" label="骞冲彴鎻愭垚姣斾緥" min-width="100px"></el-table-column>
- <el-table-column prop="wxExternalNo" label="寰俊骞冲彴浜ゆ槗璁㈠崟鍙�" min-width="100px"></el-table-column>
- <el-table-column prop="commentStatus" label="鏄惁璇勪环:0=鍚︼紱1=鏄�" min-width="100px"></el-table-column>
- <el-table-column prop="commentInfo" label="璇勪环鍐呭" min-width="100px"></el-table-column>
- <el-table-column prop="commentLevel" label="璇勪环鏄熺骇1-5" min-width="100px"></el-table-column>
- <el-table-column prop="commentTime" label="璇勪环鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="commentType" label="璇勪环绫诲瀷:0=鎵嬪姩璇勪环锛�1=绯荤粺鑷姩璇勪环锛�" min-width="100px"></el-table-column>
- <el-table-column prop="cancelTime" label="鍙栨秷鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="isUpdate" label="鏄惁宸蹭慨鏀�:0=鍚︼紱1=鏄紱" min-width="100px"></el-table-column>
- <el-table-column prop="blackRecive" label="鎺ュ崟鏂归粦鍚嶅崟member:id 澶氫釜浠�,鍒嗗壊" min-width="100px"></el-table-column>
+ <el-table-column prop="code" label="璁㈠崟缂栧彿" width="180px" fixed="left">
+ <template slot-scope="{row}">
+ <span style="cursor: pointer;color: #2E68EC" @click="openDetail(row)">{{row.code}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="statusName" label="璁㈠崟鐘舵��" min-width="100px" >
+ <template slot-scope="{row}">
+ <span :class="'orderstate'+row.status">{{row.statusName}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="type" label="璁㈠崟绫诲瀷" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.type==0">鐢ㄥ伐鍗�</span>
+ <span v-if="row.type==1">璐ц繍鍗�</span>
+ <span v-if="row.type==2">璁㈤鍗�</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="orderContent" label="璁㈠崟鍐呭" width="200px" :show-overflow-tooltip='true'></el-table-column>
+ <el-table-column prop="releaseName" label="鍙戝崟鏂�" width="200px">
+ <template slot-scope="{row}">
+ {{(row.releaseName||'鍖垮悕') +' - ' +(row.releasePhone||'鏃�') }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="acceptName" label="鎺ュ崟鏂�" width="200px">
+ <template slot-scope="{row}">
+ {{(row.acceptName||'鍖垮悕') +' - ' +(row.acceptPhone ||'鏃�') }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="createTime" label="鍙戝竷鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="acceptTime" label="鎺ュ崟鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="finishTime" label="瀹屾垚鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="estimatedAccount" label="棰勪及閲戦锛堝厓锛�" min-width="150px">
+ <template slot-scope="{row}">
+ <span class="yellowstate">{{((row.estimatedAccount || 0)/100).toFixed(2)}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="payAccount" label="瀹炰粯閲戦锛堝厓锛�" min-width="150px">
+ <template slot-scope="{row}">
+ <span class="yellowstate">{{((row.payAccount || 0)/100).toFixed(2)}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="acceptType" label="鎺ュ崟绫诲瀷" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.acceptType==0">鎵嬪姩鎺ュ崟</span>
+ <span v-if="row.acceptType==1">绯荤粺娲惧崟</span>
+ </template>
+ </el-table-column>
<el-table-column
- v-if="containPermissions(['business:orders:update', 'business:orders:delete'])"
label="鎿嶄綔"
- min-width="120"
+ align="center"
+ min-width="150"
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaOrdersWindow.open('缂栬緫璁㈠崟淇℃伅璁板綍', row)" icon="el-icon-edit" v-permissions="['business:orders:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:orders:delete']">鍒犻櫎</el-button>
+ <el-button type="text" class="redstate" @click="cancelDo(row)" v-if="row.status>-1 && row.status<4" icon="el-icon-delete" v-permissions="['business:orders:update']">鍙栨秷</el-button>
+ <el-button type="text" @click="openDetail( row)" icon="el-icon-info" >璇︽儏</el-button>
</template>
</el-table-column>
</el-table>
@@ -106,7 +138,7 @@
</pagination>
</template>
<!-- 鏂板缓/淇敼 -->
- <OperaOrdersWindow ref="operaOrdersWindow" @success="handlePageChange"/>
+ <OperaOrderDetailWindow ref="OperaOrderDetailWindow" @success="handlePageChange"/>
</TableLayout>
</template>
@@ -114,68 +146,27 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
-import OperaOrdersWindow from '@/components/business/OperaOrdersWindow'
+import OperaOrderDetailWindow from '@/components/business/OperaOrderDetailWindow'
+import { cancel } from '@/api/business/orders'
export default {
name: 'Orders',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaOrdersWindow },
+ components: { TableLayout, Pagination, OperaOrderDetailWindow },
data () {
return {
// 鎼滅储
searchForm: {
- id: '',
- deleted: '',
- createUser: '',
- createTime: '',
- updateUser: '',
- updateTime: '',
- remark: '',
- releaseMemberId: '',
- type: '',
- startDate: '',
- endDate: '',
- location: '',
- locationRemark: '',
- lat: '',
- province: '',
- city: '',
- area: '',
- lgt: '',
- categoryId: '',
- workType: '',
- priceNum1: '',
- priceNum2: '',
- supplement: '',
- price: '',
- estimatedAccount: '',
- payAccount: '',
- reviceAccount: '',
- priceRemark: '',
- carType: '',
- transportTypeId: '',
- transportNum: '',
- transportUnit: '',
- locationEnd: '',
- latEnd: '',
- lgtEnd: '',
- wayInfo: '',
- code: '',
- status: '',
- acceptTime: '',
- acceptMemberId: '',
- acceptType: '',
- workStartTime: '',
- finishTime: '',
- platformRata: '',
- wxExternalNo: '',
- commentStatus: '',
- commentInfo: '',
- commentLevel: '',
- commentTime: '',
- commentType: '',
- cancelTime: '',
- isUpdate: '',
- blackRecive: ''
+ acceptName: null,
+ releaseName: null,
+ type: null,
+ createTimeEnd: null,
+ createTimeStart: null,
+ acceptTimeStart: null,
+ acceptTimeEnd: null,
+ doneTimeStart: null,
+ doneTimeEnd: null,
+ status: null,
+ code: null
}
}
},
@@ -187,6 +178,44 @@
'field.main': 'id'
})
this.search()
+ },
+ reset () {
+ this.searchForm = {
+ acceptName: null,
+ releaseName: null,
+ type: null,
+ createTimeEnd: null,
+ createTimeStart: null,
+ acceptTimeStart: null,
+ acceptTimeEnd: null,
+ doneTimeStart: null,
+ doneTimeEnd: null,
+ status: null,
+ code: null
+ }
+ this.search()
+ },
+ methods: {
+ openDetail (row) {
+ this.$refs.OperaOrderDetailWindow.open('璁㈠崟璇︽儏', row )
+ },
+ cancelDo (row) {
+ this.$dialog.actionConfirm('鎮ㄧ‘璁ゃ�愬彇娑堛�戣璁㈠崟鍚楋紵', '鎿嶄綔纭')
+ .then(() => {
+ this.dealing = true
+ cancel(row.id)
+ .then(res => {
+ this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.dealing = false
+ })
+ })
+ }
}
}
</script>
--
Gitblit v1.9.3