From 9d901b4215323c97a00a068cd962f5c9c04dadfa Mon Sep 17 00:00:00 2001 From: doum <doum> Date: 星期四, 04 九月 2025 10:15:09 +0800 Subject: [PATCH] 前端 --- admin/src/views/business/orders.vue | 104 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 73 insertions(+), 31 deletions(-) diff --git a/admin/src/views/business/orders.vue b/admin/src/views/business/orders.vue index e449613..ed2d66e 100644 --- a/admin/src/views/business/orders.vue +++ b/admin/src/views/business/orders.vue @@ -3,13 +3,13 @@ <!-- 鎼滅储琛ㄥ崟 --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="璁㈠崟鍙�" prop="releaseMemberId"> - <el-input v-model="searchForm.code" style="width: 120px" placeholder="璇疯緭鍏ヨ鍗曞彿" @keypress.enter.native="search"></el-input> + <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="acceptName"> - <el-input v-model="searchForm.acceptName" style="width: 120px" placeholder="璇疯緭鍏ユ帴鍗曟柟" @keypress.enter.native="search"></el-input> + <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="releaseName"> - <el-input v-model="searchForm.releaseName" style="width: 120px" placeholder="璇疯緭鍏ュ彂鍗曟柟" @keypress.enter.native="search"></el-input> + <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="type"> <el-select v-model="searchForm.type" style="width: 120px" @keypress.enter.native="search" clearable placeholder="璁㈠崟绫诲瀷"> @@ -19,7 +19,7 @@ </el-select> </el-form-item> <el-form-item label="璁㈠崟鐘舵��" prop="status"> - <el-select v-model="searchForm.status" style="width: 120px" @keypress.enter.native="search" clearable placeholder="鐘舵��"> + <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> @@ -28,27 +28,34 @@ <el-option label="宸插彇娑�" :value="99"></el-option> </el-select> </el-form-item> - <el-form-item label="鍙戝竷鏃堕棿" style="width: 380px;" label-width="100px" > - <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.createTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" - placeholder="寮�濮嬫椂闂�" />- - <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.createTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" + <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="鎺ュ崟鏃堕棿" style="width: 380px;" label-width="100px" > - <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.acceptTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" - placeholder="寮�濮嬫椂闂�" />- - <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.acceptTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" + <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="瀹屾垚鏃堕棿" style="width: 380px;" label-width="100px" > - <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.doneTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" - placeholder="寮�濮嬫椂闂�" />- - <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.doneTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" + <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> <!-- 琛ㄦ牸鍜屽垎椤� --> @@ -64,12 +71,16 @@ stripe @selection-change="handleSelectionChange" > - <el-table-column prop="code" label="璁㈠崟缂栧彿" min-width="100px" fixed="left"> + <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" > </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> @@ -78,14 +89,14 @@ </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="鍙戝崟鏂�" min-width="100px"> + <el-table-column prop="releaseName" label="鍙戝崟鏂�" min-width="100px" :show-overflow-tooltip='true'> <template slot-scope="{row}"> - {{(row.releaseName||'鍖垮悕') +' - ' +(row.releasePhone||'鏃�') }} + <span v-if="row.releaseName || row.releasePhone">{{(row.releaseName||'') +' - ' +(row.releasePhone||'') }}</span> </template> </el-table-column> - <el-table-column prop="acceptName" label="鎺ュ崟鏂�" min-width="100px"> + <el-table-column prop="acceptName" label="鎺ュ崟鏂�" min-width="100px" :show-overflow-tooltip='true'> <template slot-scope="{row}"> - {{(row.acceptName||'鍖垮悕') +' - ' +(row.acceptPhone ||'鏃�') }} + <span v-if="row.acceptName || row.acceptPhone">{{(row.acceptName||'') +' - ' +(row.acceptPhone ||'') }}</span> </template> </el-table-column> <el-table-column prop="createTime" label="鍙戝竷鏃堕棿" min-width="150px"></el-table-column> @@ -114,7 +125,7 @@ fixed="right" > <template slot-scope="{row}"> - <el-button type="text" class="redstate" @click="cancenDo(row)" v-if="row.status>-1 && row.status<4" icon="el-icon-delete" v-permissions="['business:orders:update']">鍙栨秷</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> @@ -127,7 +138,7 @@ </pagination> </template> <!-- 鏂板缓/淇敼 --> - <OperaOrdersWindow ref="operaOrdersWindow" @success="handlePageChange"/> + <OperaOrderDetailWindow ref="OperaOrderDetailWindow" @success="handlePageChange"/> </TableLayout> </template> @@ -135,11 +146,12 @@ 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 { // 鎼滅储 @@ -154,7 +166,7 @@ doneTimeStart: null, doneTimeEnd: null, status: null, - code:null + code: null } } }, @@ -167,12 +179,42 @@ }) this.search() }, - methods:{ + 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.OperaMemberDetailWindow.open('鐢ㄦ埛璇︽儏', row.id) + this.$refs.OperaOrderDetailWindow.open('璁㈠崟璇︽儏', row ) }, - cancenDo(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 + }) + }) } } } -- Gitblit v1.9.3