From 71a9eef518f2f2f1a1eb2fb90f2eb8ab7b155bc8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 08 一月 2026 14:57:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_天津军泰伟业' into dev_天津军泰伟业

---
 src/views/salesManagement/orderManagement/index.vue |  783 +++++++++++++++++++++++++++++++------------------------
 1 files changed, 443 insertions(+), 340 deletions(-)

diff --git a/src/views/salesManagement/orderManagement/index.vue b/src/views/salesManagement/orderManagement/index.vue
index 90bdd67..a5e59d3 100644
--- a/src/views/salesManagement/orderManagement/index.vue
+++ b/src/views/salesManagement/orderManagement/index.vue
@@ -2,164 +2,238 @@
   <div class="app-container">
     <el-card class="box-card">
       <!-- 鎼滅储鍖哄煙 -->
-      <el-row :gutter="20" class="search-row">
+      <el-row :gutter="20"
+              class="search-row">
         <el-col :span="6">
-          <el-input
-            v-model="searchForm.orderNo"
-            placeholder="璇疯緭鍏ヨ鍗曞彿"
-            clearable
-            @keyup.enter="handleSearch"
-          >
+          <el-input v-model="searchForm.orderNo"
+                    placeholder="璇疯緭鍏ヨ鍗曞彿"
+                    clearable
+                    @keyup.enter="handleSearch">
             <template #prefix>
-              <el-icon><Search /></el-icon>
+              <el-icon>
+                <Search />
+              </el-icon>
             </template>
           </el-input>
         </el-col>
         <el-col :span="6">
-          <el-select v-model="searchForm.customer" placeholder="璇烽�夋嫨瀹㈡埛" clearable>
-            <el-option label="涓婃捣绉戞妧鏈夐檺鍏徃" value="涓婃捣绉戞妧鏈夐檺鍏徃"></el-option>
-            <el-option label="娣卞湷鐢靛瓙鏈夐檺鍏徃" value="娣卞湷鐢靛瓙鏈夐檺鍏徃"></el-option>
-            <el-option label="鍖椾含璐告槗鍏徃" value="鍖椾含璐告槗鍏徃"></el-option>
+          <el-select v-model="searchForm.customer"
+                     placeholder="璇烽�夋嫨瀹㈡埛"
+                     clearable>
+            <el-option label="涓婃捣绉戞妧鏈夐檺鍏徃"
+                       value="涓婃捣绉戞妧鏈夐檺鍏徃"></el-option>
+            <el-option label="娣卞湷鐢靛瓙鏈夐檺鍏徃"
+                       value="娣卞湷鐢靛瓙鏈夐檺鍏徃"></el-option>
+            <el-option label="鍖椾含璐告槗鍏徃"
+                       value="鍖椾含璐告槗鍏徃"></el-option>
           </el-select>
         </el-col>
         <el-col :span="6">
-          <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨璁㈠崟鐘舵��" clearable>
-            <el-option label="寰呭鏍�" value="寰呭鏍�"></el-option>
-            <el-option label="宸插鏍�" value="宸插鏍�"></el-option>
-            <el-option label="宸插彂璐�" value="宸插彂璐�"></el-option>
-            <el-option label="宸插畬鎴�" value="宸插畬鎴�"></el-option>
-            <el-option label="宸插彇娑�" value="宸插彇娑�"></el-option>
+          <el-select v-model="searchForm.status"
+                     placeholder="璇烽�夋嫨璁㈠崟鐘舵��"
+                     clearable>
+            <el-option label="寰呭鏍�"
+                       value="寰呭鏍�"></el-option>
+            <el-option label="宸插鏍�"
+                       value="宸插鏍�"></el-option>
+            <el-option label="宸插彂璐�"
+                       value="宸插彂璐�"></el-option>
+            <el-option label="宸插畬鎴�"
+                       value="宸插畬鎴�"></el-option>
+            <el-option label="宸插彇娑�"
+                       value="宸插彇娑�"></el-option>
           </el-select>
         </el-col>
         <el-col :span="6">
-          <el-button type="primary" @click="handleSearch">鎼滅储</el-button>
+          <el-button type="primary"
+                     @click="handleSearch">鎼滅储</el-button>
           <el-button @click="resetSearch">閲嶇疆</el-button>
-          <el-button style="float: right;" type="primary" @click="handleAdd">
+          <el-button style="float: right;"
+                     type="primary"
+                     @click="handleAdd">
             鏂板璁㈠崟
           </el-button>
         </el-col>
       </el-row>
-
       <!-- 璁㈠崟鍒楄〃 -->
-      <el-table
-        :data="filteredList"
-        style="width: 100%"
-        v-loading="loading"
-        border
-        stripe
-        height="calc(100vh - 22em)"
-      >
-        <el-table-column prop="id" label="ID" width="80" align="center"/>
-        <el-table-column prop="orderNo" label="璁㈠崟鍙�" width="150" />
-        <el-table-column prop="customer" label="瀹㈡埛鍚嶇О" />
-        <el-table-column prop="salesperson" label="涓氬姟鍛�" width="100" />
-        <el-table-column prop="orderDate" label="涓嬪崟鏃ユ湡" width="120" />
-        <el-table-column prop="amount" label="璁㈠崟閲戦" width="120">
+      <el-table :data="filteredList"
+                style="width: 100%"
+                v-loading="loading"
+                border
+                stripe
+                height="calc(100vh - 22em)">
+        <el-table-column prop="id"
+                         label="ID"
+                         width="80"
+                         align="center" />
+        <el-table-column prop="orderNo"
+                         label="璁㈠崟鍙�"
+                         width="150" />
+        <el-table-column prop="customer"
+                         label="瀹㈡埛鍚嶇О" />
+        <el-table-column prop="salesperson"
+                         label="涓氬姟鍛�"
+                         width="100" />
+        <el-table-column prop="orderDate"
+                         label="涓嬪崟鏃ユ湡"
+                         width="120" />
+        <el-table-column prop="amount"
+                         label="璁㈠崟閲戦"
+                         width="120">
           <template #default="scope">
             楼{{ scope.row.amount.toFixed(2) }}
           </template>
         </el-table-column>
-        <el-table-column prop="status" label="璁㈠崟鐘舵��" width="100">
+        <el-table-column prop="status"
+                         label="璁㈠崟鐘舵��"
+                         width="100">
           <template #default="scope">
             <el-tag :type="getStatusType(scope.row.status)">
               {{ scope.row.status }}
             </el-tag>
           </template>
         </el-table-column>
-        <el-table-column label="鎿嶄綔" width="250" fixed="right" align="center">
+        <el-table-column label="鎿嶄綔"
+                         width="250"
+                         fixed="right"
+                         align="center">
           <template #default="scope">
-            <el-button link type="primary" @click="handleView(scope.row)">鏌ョ湅</el-button>
-            <el-button link type="primary" @click="handleEdit(scope.row)" v-if="scope.row.status === '寰呭鏍�'">缂栬緫</el-button>
-            <el-button link type="primary" @click="handleReview(scope.row)" v-if="scope.row.status === '寰呭鏍�'">瀹℃牳</el-button>
-            <el-button link type="primary" @click="handleTransfer(scope.row)" v-if="scope.row.status === '宸插鏍�'">杞崟</el-button>
-            <el-button link type="danger" @click="handleCancel(scope.row)" v-if="scope.row.status === '寰呭鏍�'">鍙栨秷</el-button>
+            <el-button link
+                       type="primary"
+                       @click="handleView(scope.row)">鏌ョ湅</el-button>
+            <el-button link
+                       type="primary"
+                       @click="handleEdit(scope.row)"
+                       v-if="scope.row.status === '寰呭鏍�'">缂栬緫</el-button>
+            <el-button link
+                       type="primary"
+                       @click="handleReview(scope.row)"
+                       v-if="scope.row.status === '寰呭鏍�'">瀹℃牳</el-button>
+            <el-button link
+                       type="primary"
+                       @click="handleTransfer(scope.row)"
+                       v-if="scope.row.status === '宸插鏍�'">杞崟</el-button>
+            <el-button link
+                       type="danger"
+                       @click="handleCancel(scope.row)"
+                       v-if="scope.row.status === '寰呭鏍�'">鍙栨秷</el-button>
           </template>
         </el-table-column>
       </el-table>
-
       <!-- 鍒嗛〉 -->
-      <pagination
-        :total="pagination.total"
-        layout="total, sizes, prev, pager, next, jumper"
-        :page="pagination.currentPage"
-        :limit="pagination.pageSize"
-        @pagination="handleCurrentChange"
-      />
+      <pagination :total="pagination.total"
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :page="pagination.currentPage"
+                  :limit="pagination.pageSize"
+                  @pagination="handleCurrentChange" />
     </el-card>
-
     <!-- 鏂板/缂栬緫瀵硅瘽妗� -->
-    <el-dialog v-model="dialogVisible" :title="dialogTitle" width="700px">
-      <el-form :model="form" :rules="rules" ref="formRef" label-width="100px">
+    <el-dialog v-model="dialogVisible"
+               :title="dialogTitle"
+               width="700px">
+      <el-form :model="form"
+               :rules="rules"
+               ref="formRef"
+               label-width="100px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="瀹㈡埛鍚嶇О" prop="customer">
-              <el-select v-model="form.customer" placeholder="璇烽�夋嫨瀹㈡埛" style="width: 100%">
-                <el-option label="涓婃捣绉戞妧鏈夐檺鍏徃" value="涓婃捣绉戞妧鏈夐檺鍏徃"></el-option>
-                <el-option label="娣卞湷鐢靛瓙鏈夐檺鍏徃" value="娣卞湷鐢靛瓙鏈夐檺鍏徃"></el-option>
-                <el-option label="鍖椾含璐告槗鍏徃" value="鍖椾含璐告槗鍏徃"></el-option>
+            <el-form-item label="瀹㈡埛鍚嶇О"
+                          prop="customer">
+              <el-select v-model="form.customer"
+                         placeholder="璇烽�夋嫨瀹㈡埛"
+                         style="width: 100%">
+                <el-option label="涓婃捣绉戞妧鏈夐檺鍏徃"
+                           value="涓婃捣绉戞妧鏈夐檺鍏徃"></el-option>
+                <el-option label="娣卞湷鐢靛瓙鏈夐檺鍏徃"
+                           value="娣卞湷鐢靛瓙鏈夐檺鍏徃"></el-option>
+                <el-option label="鍖椾含璐告槗鍏徃"
+                           value="鍖椾含璐告槗鍏徃"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="涓氬姟鍛�" prop="salesperson">
-              <el-select v-model="form.salesperson" placeholder="璇烽�夋嫨涓氬姟鍛�" style="width: 100%">
-                <el-option label="闄堝織寮�" value="闄堝織寮�"></el-option>
-                <el-option label="鍒橀泤濠�" value="鍒橀泤濠�"></el-option>
-                <el-option label="鐜嬪缓鍥�" value="鐜嬪缓鍥�"></el-option>
+            <el-form-item label="涓氬姟鍛�"
+                          prop="salesperson">
+              <el-select v-model="form.salesperson"
+                         placeholder="璇烽�夋嫨涓氬姟鍛�"
+                         style="width: 100%">
+                <el-option label="闄堝織寮�"
+                           value="闄堝織寮�"></el-option>
+                <el-option label="鍒橀泤濠�"
+                           value="鍒橀泤濠�"></el-option>
+                <el-option label="鐜嬪缓鍥�"
+                           value="鐜嬪缓鍥�"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="璁㈠崟鏃ユ湡" prop="orderDate">
-              <el-date-picker
-                v-model="form.orderDate"
-                type="date"
-                placeholder="閫夋嫨璁㈠崟鏃ユ湡"
-                style="width: 100%"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
-              />
+            <el-form-item label="璁㈠崟鏃ユ湡"
+                          prop="orderDate">
+              <el-date-picker v-model="form.orderDate"
+                              type="date"
+                              placeholder="閫夋嫨璁㈠崟鏃ユ湡"
+                              style="width: 100%"
+                              format="YYYY-MM-DD"
+                              value-format="YYYY-MM-DD" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="璁㈠崟閲戦" prop="amount">
-              <el-input-number v-model="form.amount" :precision="2" :min="0" style="width: 100%"></el-input-number>
+            <el-form-item label="璁㈠崟閲戦"
+                          prop="amount">
+              <el-input-number v-model="form.amount"
+                               :precision="2"
+                               :min="0"
+                               style="width: 100%"></el-input-number>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="璁㈠崟鐘舵��" prop="status">
-              <el-select v-model="form.status" placeholder="璇烽�夋嫨鐘舵��" style="width: 100%">
-                <el-option label="寰呭鏍�" value="寰呭鏍�"></el-option>
-                <el-option label="宸插鏍�" value="宸插鏍�"></el-option>
-                <el-option label="宸插彂璐�" value="宸插彂璐�"></el-option>
-                <el-option label="宸插畬鎴�" value="宸插畬鎴�"></el-option>
-                <el-option label="宸插彇娑�" value="宸插彇娑�"></el-option>
+            <el-form-item label="璁㈠崟鐘舵��"
+                          prop="status">
+              <el-select v-model="form.status"
+                         placeholder="璇烽�夋嫨鐘舵��"
+                         style="width: 100%">
+                <el-option label="寰呭鏍�"
+                           value="寰呭鏍�"></el-option>
+                <el-option label="宸插鏍�"
+                           value="宸插鏍�"></el-option>
+                <el-option label="宸插彂璐�"
+                           value="宸插彂璐�"></el-option>
+                <el-option label="宸插畬鎴�"
+                           value="宸插畬鎴�"></el-option>
+                <el-option label="宸插彇娑�"
+                           value="宸插彇娑�"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="澶囨敞" prop="remark">
-              <el-input type="textarea" v-model="form.remark" placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�" rows="3"></el-input>
+            <el-form-item label="澶囨敞"
+                          prop="remark">
+              <el-input type="textarea"
+                        v-model="form.remark"
+                        placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�"
+                        rows="3"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
+          <el-button type="primary"
+                     @click="handleSubmit">纭� 瀹�</el-button>
           <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
-          <el-button type="primary" @click="handleSubmit">纭� 瀹�</el-button>
         </div>
       </template>
     </el-dialog>
-
     <!-- 璁㈠崟瀹℃牳瀵硅瘽妗� -->
-    <el-dialog v-model="reviewDialogVisible" title="璁㈠崟瀹℃牳" width="500px">
+    <el-dialog v-model="reviewDialogVisible"
+               title="璁㈠崟瀹℃牳"
+               width="500px">
       <el-form label-width="100px">
         <el-form-item label="璁㈠崟鍙�">
           <span>{{ currentOrder.orderNo }}</span>
@@ -170,26 +244,33 @@
         <el-form-item label="璁㈠崟閲戦">
           <span>楼{{ currentOrder.amount.toFixed(2) }}</span>
         </el-form-item>
-        <el-form-item label="瀹℃牳缁撴灉" prop="reviewResult">
+        <el-form-item label="瀹℃牳缁撴灉"
+                      prop="reviewResult">
           <el-radio-group v-model="reviewResult">
             <el-radio label="閫氳繃">閫氳繃</el-radio>
             <el-radio label="鎷掔粷">鎷掔粷</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="瀹℃牳鎰忚" prop="reviewComment">
-          <el-input type="textarea" v-model="reviewComment" rows="3" placeholder="璇疯緭鍏ュ鏍告剰瑙�"></el-input>
+        <el-form-item label="瀹℃牳鎰忚"
+                      prop="reviewComment">
+          <el-input type="textarea"
+                    v-model="reviewComment"
+                    rows="3"
+                    placeholder="璇疯緭鍏ュ鏍告剰瑙�"></el-input>
         </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
+          <el-button type="primary"
+                     @click="saveReview">纭� 瀹�</el-button>
           <el-button @click="reviewDialogVisible = false">鍙� 娑�</el-button>
-          <el-button type="primary" @click="saveReview">纭� 瀹�</el-button>
         </div>
       </template>
     </el-dialog>
-
     <!-- 璁㈠崟杞崟瀵硅瘽妗� -->
-    <el-dialog v-model="transferDialogVisible" title="璁㈠崟杞崟" width="500px">
+    <el-dialog v-model="transferDialogVisible"
+               title="璁㈠崟杞崟"
+               width="500px">
       <el-form label-width="100px">
         <el-form-item label="璁㈠崟鍙�">
           <span>{{ currentOrder.orderNo }}</span>
@@ -197,21 +278,32 @@
         <el-form-item label="褰撳墠涓氬姟鍛�">
           <span>{{ currentOrder.salesperson }}</span>
         </el-form-item>
-        <el-form-item label="杞崟缁�" prop="newSalesperson">
-          <el-select v-model="newSalesperson" placeholder="璇烽�夋嫨鏂颁笟鍔″憳" style="width: 100%">
-            <el-option label="闄堝織寮�" value="闄堝織寮�"></el-option>
-            <el-option label="鍒橀泤濠�" value="鍒橀泤濠�"></el-option>
-            <el-option label="鐜嬪缓鍥�" value="鐜嬪缓鍥�"></el-option>
+        <el-form-item label="杞崟缁�"
+                      prop="newSalesperson">
+          <el-select v-model="newSalesperson"
+                     placeholder="璇烽�夋嫨鏂颁笟鍔″憳"
+                     style="width: 100%">
+            <el-option label="闄堝織寮�"
+                       value="闄堝織寮�"></el-option>
+            <el-option label="鍒橀泤濠�"
+                       value="鍒橀泤濠�"></el-option>
+            <el-option label="鐜嬪缓鍥�"
+                       value="鐜嬪缓鍥�"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="杞崟鍘熷洜" prop="transferReason">
-          <el-input type="textarea" v-model="transferReason" rows="3" placeholder="璇疯緭鍏ヨ浆鍗曞師鍥�"></el-input>
+        <el-form-item label="杞崟鍘熷洜"
+                      prop="transferReason">
+          <el-input type="textarea"
+                    v-model="transferReason"
+                    rows="3"
+                    placeholder="璇疯緭鍏ヨ浆鍗曞師鍥�"></el-input>
         </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
+          <el-button type="primary"
+                     @click="saveTransfer">纭� 瀹�</el-button>
           <el-button @click="transferDialogVisible = false">鍙� 娑�</el-button>
-          <el-button type="primary" @click="saveTransfer">纭� 瀹�</el-button>
         </div>
       </template>
     </el-dialog>
@@ -219,261 +311,272 @@
 </template>
 
 <script setup>
-import { ref, reactive, computed } from 'vue'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { Plus, Search } from '@element-plus/icons-vue'
-import Pagination from '@/components/PIMTable/Pagination.vue'
+  import { ref, reactive, computed } from "vue";
+  import { ElMessage, ElMessageBox } from "element-plus";
+  import { Plus, Search } from "@element-plus/icons-vue";
+  import Pagination from "@/components/PIMTable/Pagination.vue";
 
-// 鍝嶅簲寮忔暟鎹�
-const loading = ref(false)
-const searchForm = reactive({
-  orderNo: '',
-  customer: '',
-  status: ''
-})
+  // 鍝嶅簲寮忔暟鎹�
+  const loading = ref(false);
+  const searchForm = reactive({
+    orderNo: "",
+    customer: "",
+    status: "",
+  });
 
-const orderList = ref([
-  {
-    id: 1,
-    orderNo: 'ORD202312001',
-    customer: '骞垮窞绉戞妧鍏徃',
-    salesperson: '寮犱笁',
-    orderDate: '2023-12-01',
-    amount: 50000.00,
-    status: '寰呭鏍�',
-    remark: '閲嶈瀹㈡埛璁㈠崟'
-  },
-  {
-    id: 2,
-    orderNo: 'ORD202312002',
-    customer: '娣卞湷鐢靛瓙鏈夐檺鍏徃',
-    salesperson: '鍒橀泤濠�',
-    orderDate: '2023-12-02',
-    amount: 35000.00,
-    status: '宸插鏍�',
-    remark: '甯歌璁㈠崟'
-  },
-  {
-    id: 3,
-    orderNo: 'ORD202312003',
-    customer: '鍖椾含璐告槗鍏徃',
-    salesperson: '鐜嬪缓鍥�',
-    orderDate: '2023-12-03',
-    amount: 28000.00,
-    status: '宸插彂璐�',
-    remark: '鏂板鎴疯鍗�'
-  }
-])
+  const orderList = ref([
+    {
+      id: 1,
+      orderNo: "ORD202312001",
+      customer: "骞垮窞绉戞妧鍏徃",
+      salesperson: "寮犱笁",
+      orderDate: "2023-12-01",
+      amount: 50000.0,
+      status: "寰呭鏍�",
+      remark: "閲嶈瀹㈡埛璁㈠崟",
+    },
+    {
+      id: 2,
+      orderNo: "ORD202312002",
+      customer: "娣卞湷鐢靛瓙鏈夐檺鍏徃",
+      salesperson: "鍒橀泤濠�",
+      orderDate: "2023-12-02",
+      amount: 35000.0,
+      status: "宸插鏍�",
+      remark: "甯歌璁㈠崟",
+    },
+    {
+      id: 3,
+      orderNo: "ORD202312003",
+      customer: "鍖椾含璐告槗鍏徃",
+      salesperson: "鐜嬪缓鍥�",
+      orderDate: "2023-12-03",
+      amount: 28000.0,
+      status: "宸插彂璐�",
+      remark: "鏂板鎴疯鍗�",
+    },
+  ]);
 
-const pagination = reactive({
-  total: 3,
-  currentPage: 1,
-  pageSize: 10
-})
+  const pagination = reactive({
+    total: 3,
+    currentPage: 1,
+    pageSize: 10,
+  });
 
-const dialogVisible = ref(false)
-const dialogTitle = ref('鏂板璁㈠崟')
-const form = reactive({
-  customer: '',
-  salesperson: '',
-  orderDate: '',
-  amount: 0,
-  status: '寰呭鏍�',
-  remark: ''
-})
+  const dialogVisible = ref(false);
+  const dialogTitle = ref("鏂板璁㈠崟");
+  const form = reactive({
+    customer: "",
+    salesperson: "",
+    orderDate: "",
+    amount: 0,
+    status: "寰呭鏍�",
+    remark: "",
+  });
 
-const rules = {
-  customer: [{ required: true, message: '璇烽�夋嫨瀹㈡埛', trigger: 'change' }],
-  salesperson: [{ required: true, message: '璇烽�夋嫨涓氬姟鍛�', trigger: 'change' }],
-  orderDate: [{ required: true, message: '璇烽�夋嫨璁㈠崟鏃ユ湡', trigger: 'change' }],
-  amount: [{ required: true, message: '璇疯緭鍏ヨ鍗曢噾棰�', trigger: 'blur' }],
-  status: [{ required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'change' }]
-}
+  const rules = {
+    customer: [{ required: true, message: "璇烽�夋嫨瀹㈡埛", trigger: "change" }],
+    salesperson: [{ required: true, message: "璇烽�夋嫨涓氬姟鍛�", trigger: "change" }],
+    orderDate: [{ required: true, message: "璇烽�夋嫨璁㈠崟鏃ユ湡", trigger: "change" }],
+    amount: [{ required: true, message: "璇疯緭鍏ヨ鍗曢噾棰�", trigger: "blur" }],
+    status: [{ required: true, message: "璇烽�夋嫨鐘舵��", trigger: "change" }],
+  };
 
-const isEdit = ref(false)
-const editId = ref(null)
-const reviewDialogVisible = ref(false)
-const transferDialogVisible = ref(false)
-const currentOrder = ref({})
-const reviewResult = ref('')
-const reviewComment = ref('')
-const newSalesperson = ref('')
-const transferReason = ref('')
-const formRef = ref()
+  const isEdit = ref(false);
+  const editId = ref(null);
+  const reviewDialogVisible = ref(false);
+  const transferDialogVisible = ref(false);
+  const currentOrder = ref({});
+  const reviewResult = ref("");
+  const reviewComment = ref("");
+  const newSalesperson = ref("");
+  const transferReason = ref("");
+  const formRef = ref();
 
-// 璁$畻灞炴��
-const filteredList = computed(() => {
-  let list = orderList.value
-  if (searchForm.orderNo) {
-    list = list.filter(item => item.orderNo.includes(searchForm.orderNo))
-  }
-  if (searchForm.customer) {
-    list = list.filter(item => item.customer === searchForm.customer)
-  }
-  if (searchForm.status) {
-    list = list.filter(item => item.status === searchForm.status)
-  }
-  return list
-})
-
-// 鏂规硶
-const getStatusType = (status) => {
-  const statusMap = {
-    '寰呭鏍�': 'warning',
-    '宸插鏍�': 'primary',
-    '宸插彂璐�': 'success',
-    '宸插畬鎴�': 'success',
-    '宸插彇娑�': 'danger'
-  }
-  return statusMap[status] || 'info'
-}
-
-const handleSearch = () => {
-  // 鎼滅储閫昏緫宸插湪computed涓鐞�
-}
-
-const resetSearch = () => {
-  searchForm.orderNo = ''
-  searchForm.customer = ''
-  searchForm.status = ''
-}
-
-const handleAdd = () => {
-  dialogTitle.value = '鏂板璁㈠崟'
-  isEdit.value = false
-  form.customer = ''
-  form.salesperson = ''
-  form.orderDate = ''
-  form.amount = 0
-  form.status = '寰呭鏍�'
-  form.remark = ''
-  dialogVisible.value = true
-}
-
-const handleView = (row) => {
-  // 鏌ョ湅璁㈠崟璇︽儏
-  ElMessage.info('鏌ョ湅璁㈠崟璇︽儏鍔熻兘寰呭疄鐜�')
-}
-
-const handleEdit = (row) => {
-  dialogTitle.value = '缂栬緫璁㈠崟'
-  isEdit.value = true
-  editId.value = row.id
-  Object.assign(form, row)
-  dialogVisible.value = true
-}
-
-const handleReview = (row) => {
-  currentOrder.value = row
-  reviewResult.value = ''
-  reviewComment.value = ''
-  reviewDialogVisible.value = true
-}
-
-const handleTransfer = (row) => {
-  currentOrder.value = row
-  newSalesperson.value = ''
-  transferReason.value = ''
-  transferDialogVisible.value = true
-}
-
-const handleCancel = (row) => {
-  ElMessageBox.confirm('纭鍙栨秷璇ヨ鍗曞悧锛�', '鎻愮ず', {
-    confirmButtonText: '纭畾',
-    cancelButtonText: '鍙栨秷',
-    type: 'warning'
-  }).then(() => {
-    const index = orderList.value.findIndex(item => item.id === row.id)
-    if (index > -1) {
-      orderList.value[index].status = '宸插彇娑�'
-      ElMessage.success('璁㈠崟宸插彇娑�')
+  // 璁$畻灞炴��
+  const filteredList = computed(() => {
+    let list = orderList.value;
+    if (searchForm.orderNo) {
+      list = list.filter(item => item.orderNo.includes(searchForm.orderNo));
     }
-  })
-}
-
-const handleDelete = (row) => {
-  ElMessageBox.confirm('纭鍒犻櫎璇ヨ鍗曞悧锛�', '鎻愮ず', {
-    confirmButtonText: '纭畾',
-    cancelButtonText: '鍙栨秷',
-    type: 'warning'
-  }).then(() => {
-    const index = orderList.value.findIndex(item => item.id === row.id)
-    if (index > -1) {
-      orderList.value.splice(index, 1)
-      pagination.total--
-      ElMessage.success('鍒犻櫎鎴愬姛')
+    if (searchForm.customer) {
+      list = list.filter(item => item.customer === searchForm.customer);
     }
-  })
-}
-
-const saveReview = () => {
-  if (!reviewResult.value) {
-    ElMessage.warning('璇烽�夋嫨瀹℃牳缁撴灉')
-    return
-  }
-  
-  const index = orderList.value.findIndex(item => item.id === currentOrder.value.id)
-  if (index > -1) {
-    if (reviewResult.value === '閫氳繃') {
-      orderList.value[index].status = '宸插鏍�'
-      ElMessage.success('璁㈠崟瀹℃牳閫氳繃')
-    } else {
-      orderList.value[index].status = '宸插彇娑�'
-      ElMessage.success('璁㈠崟瀹℃牳鎷掔粷')
+    if (searchForm.status) {
+      list = list.filter(item => item.status === searchForm.status);
     }
-    reviewDialogVisible.value = false
-  }
-}
+    return list;
+  });
 
-const saveTransfer = () => {
-  if (!newSalesperson.value) {
-    ElMessage.warning('璇烽�夋嫨鏂颁笟鍔″憳')
-    return
-  }
-  
-  const index = orderList.value.findIndex(item => item.id === currentOrder.value.id)
-  if (index > -1) {
-    orderList.value[index].salesperson = newSalesperson.value
-    ElMessage.success('璁㈠崟杞崟鎴愬姛')
-    transferDialogVisible.value = false
-  }
-}
+  // 鏂规硶
+  const getStatusType = status => {
+    const statusMap = {
+      寰呭鏍�: "warning",
+      宸插鏍�: "primary",
+      宸插彂璐�: "success",
+      宸插畬鎴�: "success",
+      宸插彇娑�: "danger",
+    };
+    return statusMap[status] || "info";
+  };
 
-const handleSubmit = () => {
-  formRef.value.validate((valid) => {
-    if (valid) {
-      if (isEdit.value) {
-        // 缂栬緫
-        const index = orderList.value.findIndex(item => item.id === editId.value)
-        if (index > -1) {
-          orderList.value[index] = { ...form, id: editId.value }
-          ElMessage.success('缂栬緫鎴愬姛')
-        }
-      } else {
-        // 鏂板
-        const newId = Math.max(...orderList.value.map(item => item.id)) + 1
-        const orderNo = `ORD${new Date().getFullYear()}${String(new Date().getMonth() + 1).padStart(2, '0')}${String(new Date().getDate()).padStart(2, '0')}${String(newId).padStart(3, '0')}`
-        orderList.value.push({
-          ...form,
-          id: newId,
-          orderNo: orderNo
-        })
-        pagination.total++
-        ElMessage.success('鏂板鎴愬姛')
+  const handleSearch = () => {
+    // 鎼滅储閫昏緫宸插湪computed涓鐞�
+  };
+
+  const resetSearch = () => {
+    searchForm.orderNo = "";
+    searchForm.customer = "";
+    searchForm.status = "";
+  };
+
+  const handleAdd = () => {
+    dialogTitle.value = "鏂板璁㈠崟";
+    isEdit.value = false;
+    form.customer = "";
+    form.salesperson = "";
+    form.orderDate = "";
+    form.amount = 0;
+    form.status = "寰呭鏍�";
+    form.remark = "";
+    dialogVisible.value = true;
+  };
+
+  const handleView = row => {
+    // 鏌ョ湅璁㈠崟璇︽儏
+    ElMessage.info("鏌ョ湅璁㈠崟璇︽儏鍔熻兘寰呭疄鐜�");
+  };
+
+  const handleEdit = row => {
+    dialogTitle.value = "缂栬緫璁㈠崟";
+    isEdit.value = true;
+    editId.value = row.id;
+    Object.assign(form, row);
+    dialogVisible.value = true;
+  };
+
+  const handleReview = row => {
+    currentOrder.value = row;
+    reviewResult.value = "";
+    reviewComment.value = "";
+    reviewDialogVisible.value = true;
+  };
+
+  const handleTransfer = row => {
+    currentOrder.value = row;
+    newSalesperson.value = "";
+    transferReason.value = "";
+    transferDialogVisible.value = true;
+  };
+
+  const handleCancel = row => {
+    ElMessageBox.confirm("纭鍙栨秷璇ヨ鍗曞悧锛�", "鎻愮ず", {
+      confirmButtonText: "纭畾",
+      cancelButtonText: "鍙栨秷",
+      type: "warning",
+    }).then(() => {
+      const index = orderList.value.findIndex(item => item.id === row.id);
+      if (index > -1) {
+        orderList.value[index].status = "宸插彇娑�";
+        ElMessage.success("璁㈠崟宸插彇娑�");
       }
-      dialogVisible.value = false
-    }
-  })
-}
+    });
+  };
 
-const handleCurrentChange = (val) => {
-  pagination.currentPage = val.page
-  pagination.pageSize = val.limit
-}
+  const handleDelete = row => {
+    ElMessageBox.confirm("纭鍒犻櫎璇ヨ鍗曞悧锛�", "鎻愮ず", {
+      confirmButtonText: "纭畾",
+      cancelButtonText: "鍙栨秷",
+      type: "warning",
+    }).then(() => {
+      const index = orderList.value.findIndex(item => item.id === row.id);
+      if (index > -1) {
+        orderList.value.splice(index, 1);
+        pagination.total--;
+        ElMessage.success("鍒犻櫎鎴愬姛");
+      }
+    });
+  };
+
+  const saveReview = () => {
+    if (!reviewResult.value) {
+      ElMessage.warning("璇烽�夋嫨瀹℃牳缁撴灉");
+      return;
+    }
+
+    const index = orderList.value.findIndex(
+      item => item.id === currentOrder.value.id
+    );
+    if (index > -1) {
+      if (reviewResult.value === "閫氳繃") {
+        orderList.value[index].status = "宸插鏍�";
+        ElMessage.success("璁㈠崟瀹℃牳閫氳繃");
+      } else {
+        orderList.value[index].status = "宸插彇娑�";
+        ElMessage.success("璁㈠崟瀹℃牳鎷掔粷");
+      }
+      reviewDialogVisible.value = false;
+    }
+  };
+
+  const saveTransfer = () => {
+    if (!newSalesperson.value) {
+      ElMessage.warning("璇烽�夋嫨鏂颁笟鍔″憳");
+      return;
+    }
+
+    const index = orderList.value.findIndex(
+      item => item.id === currentOrder.value.id
+    );
+    if (index > -1) {
+      orderList.value[index].salesperson = newSalesperson.value;
+      ElMessage.success("璁㈠崟杞崟鎴愬姛");
+      transferDialogVisible.value = false;
+    }
+  };
+
+  const handleSubmit = () => {
+    formRef.value.validate(valid => {
+      if (valid) {
+        if (isEdit.value) {
+          // 缂栬緫
+          const index = orderList.value.findIndex(
+            item => item.id === editId.value
+          );
+          if (index > -1) {
+            orderList.value[index] = { ...form, id: editId.value };
+            ElMessage.success("缂栬緫鎴愬姛");
+          }
+        } else {
+          // 鏂板
+          const newId = Math.max(...orderList.value.map(item => item.id)) + 1;
+          const orderNo = `ORD${new Date().getFullYear()}${String(
+            new Date().getMonth() + 1
+          ).padStart(2, "0")}${String(new Date().getDate()).padStart(
+            2,
+            "0"
+          )}${String(newId).padStart(3, "0")}`;
+          orderList.value.push({
+            ...form,
+            id: newId,
+            orderNo: orderNo,
+          });
+          pagination.total++;
+          ElMessage.success("鏂板鎴愬姛");
+        }
+        dialogVisible.value = false;
+      }
+    });
+  };
+
+  const handleCurrentChange = val => {
+    pagination.currentPage = val.page;
+    pagination.pageSize = val.limit;
+  };
 </script>
 
 <style scoped>
-.search-row {
-  margin-bottom: 20px;
-}
+  .search-row {
+    margin-bottom: 20px;
+  }
 </style>

--
Gitblit v1.9.3