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