Forráskód Böngészése

Merge remote-tracking branch 'origin/master' into master

肖路 1 hete
szülő
commit
13d76f5b86

+ 1 - 1
.env.production

@@ -15,7 +15,7 @@ VITE_APP_MONITOR_ADMIN = '/admin/applications'
 VITE_APP_SNAILJOB_ADMIN = '/snail-job'
 
 # 生产环境
-VITE_APP_BASE_API = 'https://one.yoe365.com'
+VITE_APP_BASE_API = 'https://api1.yoe365.com'
 
 # 是否在打包时开启压缩,支持 gzip 和 brotli
 VITE_BUILD_COMPRESS = gzip

+ 4 - 0
src/api/order/orderDeliver/types.ts

@@ -176,6 +176,8 @@ export interface OrderDeliverForm extends BaseEntity {
 }
 
 export interface OrderDeliverQuery extends PageQuery {
+  id?: string | number;
+
   /**
    * 订单id
    */
@@ -252,4 +254,6 @@ export interface OrderDeliverQuery extends PageQuery {
    * 日期范围参数
    */
   params?: any;
+
+  logisticsCompanyCode?: string;
 }

+ 4 - 0
src/api/order/orderMain/types.ts

@@ -279,6 +279,8 @@ export interface OrderMainVO {
 
   assigneeName: string;
 
+  dataSourceStr: string;
+
   orderProductList: any[];
 
   deliverProductList: any[];
@@ -546,6 +548,8 @@ export interface OrderMainForm extends BaseEntity {
 
   assignmentStatus?: string;
 
+  dataSourceStr?: string;
+
   /**
    * 订单商品明细列表
    */

+ 1 - 1
src/views/order/checkOrder/sendDetail.vue

@@ -76,7 +76,7 @@
         <el-col :span="8">
           <div class="detail-item">
             <span class="label">所属项目</span>
-            <span>{{ '--' }}</span>
+            <span>{{ orderDetail.dataSourceStr }}</span>
           </div>
           <div class="detail-item">
             <span class="label">业务部门:</span>

+ 1 - 1
src/views/order/orderAssignment/index.vue

@@ -211,7 +211,7 @@ const data = reactive<PageData<OrderMainForm, OrderMainQuery>>({
     payableAmount: undefined,
     paymentStatus: undefined,
     orderSource: undefined,
-    orderStatus: undefined,
+    orderStatus: '2',
     orderTime: undefined,
     confirmTime: undefined,
     status: undefined,

+ 2 - 6
src/views/order/orderAssignment/indexProject.vue

@@ -81,11 +81,7 @@
             <dict-tag :options="order_source" :value="scope.row.orderSource" />
           </template>
         </el-table-column>
-        <el-table-column label="所属项目" align="center" prop="dataSource">
-          <template #default="scope">
-            {{ scope.row.dataSource == 'zhongche' ? '中车' : '--' }}
-          </template>
-        </el-table-column>
+        <el-table-column label="所属项目" align="center" prop="dataSourceStr"> </el-table-column>
         <el-table-column label="分配状态" align="center" prop="assignmentStatus" :resizable="false">
           <template #default="scope">
             <dict-tag :options="order_assignment_status" :value="scope.row.assignmentStatus" />
@@ -222,7 +218,7 @@ const data = reactive<PageData<OrderMainForm, OrderMainQuery>>({
     payableAmount: undefined,
     paymentStatus: undefined,
     orderSource: undefined,
-    orderStatus: undefined,
+    orderStatus: '2',
     orderTime: undefined,
     confirmTime: undefined,
     status: undefined,

+ 1 - 1
src/views/order/orderAssignment/splitAssignDialog.vue

@@ -319,7 +319,7 @@ const open = async (orderId: string | number, status: string) => {
       orderNo: res.data.orderNo,
       id: res.data.id,
       platformCode: res.data.platformCode,
-      customerName: res.data.customerName || '--',
+      customerName: res.data.customerName || res.data.assigneeName || '--',
       businessStaff: res.data.businessStaff || '--',
       productQuantity: res.data.productQuantity || 0,
 

+ 20 - 4
src/views/order/orderDeliver/index.vue

@@ -80,8 +80,9 @@
             <el-button link type="primary" v-if="scope.row.orderStatus == '2' || scope.row.orderStatus == '3'" @click="handleDeliver(scope.row)"
               >发货</el-button
             >
-            <el-button link type="primary" @click="handleReview(scope.row)">查看发货信息</el-button>
-            <el-button link type="primary">取消订单</el-button>
+            <el-button link type="primary" v-if="scope.row.orderStatus > '2'" @click="handleReview(scope.row)">查看发货信息</el-button>
+            <el-button link type="primary" v-else @click="handleReview(scope.row)">查看订单信息</el-button>
+            <!-- <el-button link type="primary" @click="handleCancel(scope.row)">取消订单</el-button> -->
             <el-button
               link
               type="primary"
@@ -110,7 +111,8 @@ import {
   addOrderMain,
   updateOrderMain,
   queryOrderStatusStats,
-  closeOrderMain
+  closeOrderMain,
+  changeStatus
 } from '@/api/order/orderMain';
 import { OrderMainVO, OrderMainQuery, OrderMainForm } from '@/api/order/orderMain/types';
 import DeliverDialog from '../saleOrder/deliverDialog.vue';
@@ -275,6 +277,20 @@ const getList = async () => {
   queryOrderStatusStatsMethod();
 };
 
+/** 取消订单按钮操作 */
+const handleCancel = async (row?: OrderMainVO) => {
+  try {
+    await proxy?.$modal.confirm('是否确认取消该订单?');
+    await changeStatus(row.id, '7');
+    getList();
+    proxy?.$modal.msgSuccess('操作成功');
+  } catch (error) {
+    if (error !== 'cancel' && error !== 'close') {
+      proxy?.$modal.msgError('操作失败,请重试');
+    }
+  }
+};
+
 /** 查看物流按钮操作 */
 const handleViewLogistics = (row?: OrderMainVO) => {
   if (!row?.id) {
@@ -289,7 +305,7 @@ const handleViewLogistics = (row?: OrderMainVO) => {
 const handleAffirm = (row?: OrderMainVO) => {
   router.push({
     path: '/order-manage/order-affirm',
-    query: { id: row.id, source: 'deliver' }
+    query: { id: row.id, source: 'deliver-list' }
   });
 };
 

+ 22 - 6
src/views/order/orderDeliver/indexProject.vue

@@ -71,9 +71,9 @@
             <span>{{ scope.row._crrcOrderNo || '' }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="客户名称" align="center" prop="customerName">
+        <el-table-column label="客户/供应商" align="center" prop="assigneeName">
           <template #default="scope">
-            <span>{{ scope.row.customerName || '--' }}</span>
+            <span>{{ scope.row.assigneeName || '--' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="订单状态" align="center" prop="orderStatus">
@@ -89,8 +89,9 @@
             <el-button link type="primary" v-if="scope.row.orderStatus == '2' || scope.row.orderStatus == '3'" @click="handleDeliver(scope.row)"
               >发货</el-button
             >
-            <el-button link type="primary" @click="handleReview(scope.row)">查看发货信息</el-button>
-            <el-button link type="primary">取消订单</el-button>
+            <el-button link type="primary" v-if="scope.row.orderStatus > '2'" @click="handleReview(scope.row)">查看发货信息</el-button>
+            <el-button link type="primary" v-else @click="handleReview(scope.row)">查看订单信息</el-button>
+            <!-- <el-button link type="primary" @click="handleCancel(scope.row)">取消订单</el-button> -->
             <el-button
               link
               type="primary"
@@ -119,7 +120,8 @@ import {
   addOrderMain,
   updateOrderMain,
   queryOrderStatusStats,
-  closeOrderMain
+  closeOrderMain,
+  changeStatus
 } from '@/api/order/orderMain';
 import { getOrderMainCrrcExt } from '@/api/order/orderMainCrrcExt';
 import { OrderMainVO, OrderMainQuery, OrderMainForm } from '@/api/order/orderMain/types';
@@ -312,6 +314,20 @@ const handleCloseOrder = async (row?: OrderMainVO) => {
   await getList();
 };
 
+/** 取消订单按钮操作 */
+const handleCancel = async (row?: OrderMainVO) => {
+  try {
+    await proxy?.$modal.confirm('是否确认取消该订单?');
+    await changeStatus(row.id, '7');
+    getList();
+    proxy?.$modal.msgSuccess('操作成功');
+  } catch (error) {
+    if (error !== 'cancel' && error !== 'close') {
+      proxy?.$modal.msgError('操作失败,请重试');
+    }
+  }
+};
+
 /** 取消按钮 */
 const cancel = () => {
   reset();
@@ -359,7 +375,7 @@ const handleReview = (row?: OrderMainVO) => {
 const handleAffirm = (row?: OrderMainVO) => {
   router.push({
     path: '/order-manage/order-affirm',
-    query: { id: row.id, source: 'project' }
+    query: { id: row.id, source: 'delivet-project' }
   });
 };
 

+ 35 - 20
src/views/order/saleOrder/index.vue

@@ -23,7 +23,13 @@
                 <el-option v-for="dict in order_status" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
-
+            <el-form-item label="确认状态" prop="confirmStatus">
+              <el-select v-model="confirmStatus" placeholder="请选择" clearable>
+                <el-option label="待确认" value="0" />
+                <el-option label="已确认" value="1" />
+                <el-option label="已取消" value="2" />
+              </el-select>
+            </el-form-item>
             <el-form-item label="提交时间" prop="orderTime">
               <el-date-picker
                 v-model="dateRange"
@@ -70,6 +76,9 @@
             <el-button :type="queryParams.orderStatus === '2' ? 'primary' : ''" :plain="queryParams.orderStatus !== '2'" @click="handleQuery('2')"
               >待发货</el-button
             >
+            <el-button :type="queryParams.orderStatus === '3' ? 'primary' : ''" :plain="queryParams.orderStatus !== '3'" @click="handleQuery('3')"
+              >部分发货</el-button
+            >
             <!-- {{ orderStatusStats.pendingShipmentCount }} -->
             <el-button :type="queryParams.orderStatus === '4' ? 'primary' : ''" :plain="queryParams.orderStatus !== '4'" @click="handleQuery('4')"
               >已发货</el-button
@@ -106,17 +115,16 @@
             <dict-tag :options="order_source" :value="scope.row.orderSource" />
           </template>
         </el-table-column>
-        <!-- <el-table-column label="审核状态" align="center" prop="checkStatus">
-          <template #default="scope">
-            <dict-tag :options="order_check_status" :value="scope.row.checkStatus" />
-          </template>
-        </el-table-column> -->
         <el-table-column label="订单状态" align="center" prop="orderStatus">
           <template #default="scope">
             <dict-tag :options="order_status" :value="scope.row.orderStatus" />
           </template>
         </el-table-column>
-
+        <el-table-column label="确认状态" align="center" prop="orderStatus">
+          <template #default="scope">
+            {{ scope.row.orderStatus === '7' ? '已取消' : scope.row.orderStatus >= '2' ? '已确认' : '待确认' }}
+          </template>
+        </el-table-column>
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <template v-for="btn in getActionButtons(scope.row)" :key="btn.label">
@@ -176,7 +184,7 @@ const showDeliverDialog = ref(false);
 const currentOrderId = ref<string | number>();
 const currentOrderNo = ref<string>();
 const dateRange = ref<[DateModelType, DateModelType]>(['', '']);
-
+const confirmStatus = ref<string>();
 const showLogisticsDialog = ref(false);
 const logisticsOrderId = ref<string | number>();
 
@@ -319,6 +327,16 @@ const { queryParams, form, rules } = toRefs(data);
 /** 查询订单主信息列表 */
 const getList = async () => {
   loading.value = true;
+  // 确认状态映射为订单状态
+  if (confirmStatus.value === '0') {
+    queryParams.value.orderStatuses = '0,1';
+  } else if (confirmStatus.value === '1') {
+    queryParams.value.orderStatuses = '2,3,4,5,6';
+  } else if (confirmStatus.value === '2') {
+    queryParams.value.orderStatuses = '7';
+  } else {
+    queryParams.value.orderStatuses = undefined;
+  }
   const res = await listOrderMain(proxy?.addDateRange(queryParams.value, dateRange.value));
   orderMainList.value = res.rows;
   total.value = res.total;
@@ -347,6 +365,7 @@ const reset = () => {
 const handleQuery = (orderStatus?: string) => {
   if (orderStatus) {
     queryParams.value.orderStatus = orderStatus;
+    confirmStatus.value = undefined;
   } else {
     queryParams.value.orderStatus = undefined;
   }
@@ -357,6 +376,7 @@ const handleQuery = (orderStatus?: string) => {
 /** 重置按钮操作 */
 const resetQuery = () => {
   dateRange.value = ['', ''];
+  confirmStatus.value = undefined;
   queryFormRef.value?.resetFields();
   handleQuery();
 };
@@ -389,7 +409,7 @@ const handleReview = (row?: OrderMainVO) => {
 const handleAffirm = (row?: OrderMainVO) => {
   router.push({
     path: '/order-manage/order-affirm',
-    query: { id: row.id }
+    query: { id: row.id, source: 'order-list' }
   });
 };
 
@@ -478,20 +498,15 @@ const handleCheck = async (row?: OrderMainVO) => {
   }
 };
 
-/** 审核按钮操作 */
+/** 取消订单按钮操作 */
 const handleCancel = async (row?: OrderMainVO) => {
-  const oldValue = row.checkStatus; // 保存旧值
-
-  // 弹出审核选择对话框
   try {
-    // 调用接口,传入用户选择的值
+    await proxy?.$modal.confirm('是否确认取消该订单?');
     await changeStatus(row.id, '7');
     getList();
     proxy?.$modal.msgSuccess('操作成功');
   } catch (error) {
-    // 用户取消或操作失败
     if (error !== 'cancel' && error !== 'close') {
-      row.checkStatus = oldValue; // 失败回滚
       proxy?.$modal.msgError('操作失败,请重试');
     }
   }
@@ -604,9 +619,9 @@ const getButtonsByStatus = (orderStatus: string, checkStatus: string): ActionBut
   // }
 
   // 待发货或部分发货:显示发货按钮
-  if (orderStatus === OrderStatus.PENDING_SHIPMENT || orderStatus === OrderStatus.PARTIAL_SHIPMENT) {
-    buttons.push({ label: '发货', handler: handleDeliver });
-  }
+  // if (orderStatus === OrderStatus.PENDING_SHIPMENT || orderStatus === OrderStatus.PARTIAL_SHIPMENT) {
+  //   buttons.push({ label: '发货', handler: handleDeliver });
+  // }
 
   // 待发货、部分发货、发货完成、已完成:显示查看订单信息按钮
   if (
@@ -623,7 +638,7 @@ const getButtonsByStatus = (orderStatus: string, checkStatus: string): ActionBut
   }
 
   // 非已取消和已关闭状态:显示取消订单按钮
-  if (orderStatus !== OrderStatus.CANCELLED && orderStatus !== OrderStatus.CLOSED && orderStatus !== OrderStatus.SHIPMENT_COMPLETED) {
+  if ([OrderStatus.PENDING_PAYMENT, OrderStatus.PENDING_CONFIRM].includes(orderStatus as OrderStatus)) {
     buttons.push({ label: '取消订单', handler: handleCancel });
   }
 

+ 63 - 108
src/views/order/saleOrder/indexProject.vue

@@ -23,7 +23,13 @@
                 <el-option v-for="dict in order_status" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
-
+            <el-form-item label="确认状态" prop="confirmStatus">
+              <el-select v-model="confirmStatus" placeholder="请选择" clearable>
+                <el-option label="待确认" value="0" />
+                <el-option label="已确认" value="1" />
+                <el-option label="已取消" value="2" />
+              </el-select>
+            </el-form-item>
             <el-form-item label="提交时间" prop="orderTime">
               <el-date-picker
                 v-model="dateRange"
@@ -70,6 +76,9 @@
             <el-button :type="queryParams.orderStatus === '2' ? 'primary' : ''" :plain="queryParams.orderStatus !== '2'" @click="handleQuery('2')"
               >待发货</el-button
             >
+            <el-button :type="queryParams.orderStatus === '3' ? 'primary' : ''" :plain="queryParams.orderStatus !== '3'" @click="handleQuery('3')"
+              >部分发货</el-button
+            >
             <!-- {{ orderStatusStats.pendingShipmentCount }} -->
             <el-button :type="queryParams.orderStatus === '4' ? 'primary' : ''" :plain="queryParams.orderStatus !== '4'" @click="handleQuery('4')"
               >已发货</el-button
@@ -91,21 +100,21 @@
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="订单时间" align="center" prop="orderTime" />
         <el-table-column label="订单编号" align="center" prop="orderNo" />
-        <el-table-column label="客户编号" align="center" prop="customerCode" />
-        <el-table-column label="订单总金额" align="center" prop="totalAmount" />
-        <el-table-column label="支付方式" align="center" prop="payType">
+        <el-table-column label="关联单号" align="center" prop="parentOrderNo" :resizable="false" />
+        <el-table-column label="平台\项目订单号" align="center" prop="projectOrderNo">
           <template #default="scope">
-            <dict-tag :options="pay_method" :value="scope.row.payType" />
+            <span>{{ scope.row._crrcOrderNo || '' }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="业务员" align="center" prop="businessStaff" />
-        <el-table-column label="客服" align="center" prop="customerService" />
-        <el-table-column label="归属部门" align="center" prop="businessDept" />
+        <!-- <el-table-column label="客户编号" align="center" prop="customerCode" /> -->
+        <el-table-column label="订单总金额" align="center" prop="totalAmount" />
         <el-table-column label="订单来源" align="center" prop="orderSource">
           <template #default="scope">
             <dict-tag :options="order_source" :value="scope.row.orderSource" />
           </template>
         </el-table-column>
+        <el-table-column label="所属项目" align="center" prop="dataSourceStr" />
+
         <!-- <el-table-column label="审核状态" align="center" prop="checkStatus">
           <template #default="scope">
             <dict-tag :options="order_check_status" :value="scope.row.checkStatus" />
@@ -116,7 +125,11 @@
             <dict-tag :options="order_status" :value="scope.row.orderStatus" />
           </template>
         </el-table-column>
-
+        <el-table-column label="确认状态" align="center" prop="orderStatus">
+          <template #default="scope">
+            {{ scope.row.orderStatus === '7' ? '已取消' : scope.row.orderStatus >= '2' ? '已确认' : '待确认' }}
+          </template>
+        </el-table-column>
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <template v-for="btn in getActionButtons(scope.row)" :key="btn.label">
@@ -152,7 +165,7 @@ import {
 import { OrderMainVO, OrderMainQuery, OrderMainForm } from '@/api/order/orderMain/types';
 import DeliverDialog from './deliverDialog.vue';
 import LogisticsDetail from './logisticsDetail.vue';
-
+import { getOrderMainCrrcExt } from '@/api/order/orderMainCrrcExt';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { order_status, order_check_status, pay_method, order_source } = toRefs<any>(
   proxy?.useDict('order_status', 'order_check_status', 'pay_method', 'order_source')
@@ -176,7 +189,7 @@ const showDeliverDialog = ref(false);
 const currentOrderId = ref<string | number>();
 const currentOrderNo = ref<string>();
 const dateRange = ref<[DateModelType, DateModelType]>(['', '']);
-
+const confirmStatus = ref<string>();
 const showLogisticsDialog = ref(false);
 const logisticsOrderId = ref<string | number>();
 
@@ -319,13 +332,43 @@ const { queryParams, form, rules } = toRefs(data);
 /** 查询订单主信息列表 */
 const getList = async () => {
   loading.value = true;
+  // 确认状态映射为订单状态
+  if (confirmStatus.value === '0') {
+    queryParams.value.orderStatuses = '0,1';
+  } else if (confirmStatus.value === '1') {
+    queryParams.value.orderStatuses = '2,3,4,5,6';
+  } else if (confirmStatus.value === '2') {
+    queryParams.value.orderStatuses = '7';
+  } else {
+    queryParams.value.orderStatuses = undefined;
+  }
   const res = await listOrderMain(proxy?.addDateRange(queryParams.value, dateRange.value));
   orderMainList.value = res.rows;
+  await fetchCrrcOrderNos(orderMainList.value);
   total.value = res.total;
   loading.value = false;
   queryOrderStatusStatsMethod();
 };
 
+// 批量获取平台订单号
+const fetchCrrcOrderNos = async (rows: OrderMainVO[]) => {
+  const results = await Promise.allSettled(
+    rows.map((row) => {
+      const id = row.parentOrderId || row.id;
+      if (!id) return Promise.resolve(null);
+      return getOrderMainCrrcExt(id);
+    })
+  );
+  rows.forEach((row, i) => {
+    const result = results[i];
+    if (result.status === 'fulfilled') {
+      (row as any)._crrcOrderNo = result.value?.data?.crrcOrderNo || '';
+    } else {
+      (row as any)._crrcOrderNo = '';
+    }
+  });
+};
+
 const queryOrderStatusStatsMethod = async () => {
   const res = await queryOrderStatusStats();
   orderStatusStats.value = res as any;
@@ -347,6 +390,7 @@ const reset = () => {
 const handleQuery = (orderStatus?: string) => {
   if (orderStatus) {
     queryParams.value.orderStatus = orderStatus;
+    confirmStatus.value = undefined;
   } else {
     queryParams.value.orderStatus = undefined;
   }
@@ -357,6 +401,7 @@ const handleQuery = (orderStatus?: string) => {
 /** 重置按钮操作 */
 const resetQuery = () => {
   dateRange.value = ['', ''];
+  confirmStatus.value = undefined;
   queryFormRef.value?.resetFields();
   handleQuery();
 };
@@ -389,109 +434,19 @@ const handleReview = (row?: OrderMainVO) => {
 const handleAffirm = (row?: OrderMainVO) => {
   router.push({
     path: '/order-manage/order-affirm',
-    query: { id: row.id }
+    query: { id: row.id, source: 'order-project' }
   });
 };
 
-/** 审核按钮操作 */
-const handleCheck = async (row?: OrderMainVO) => {
-  const oldValue = row.checkStatus; // 保存旧值
-
-  // 弹出审核选择对话框
-  try {
-    await ElMessageBox({
-      title: '审核',
-      message: h('div', { style: 'padding: 10px 0' }, [
-        h('p', { style: 'margin-bottom: 15px; font-size: 14px' }, '请选择审核结果:'),
-        h('div', { style: 'display: flex; flex-direction: column; gap: 12px' }, [
-          h(
-            'label',
-            {
-              style: 'display: flex; align-items: center; cursor: pointer; font-size: 14px',
-              onClick: () => {
-                checkStatusValue.value = '1';
-                const radio = document.querySelector('input[name="checkStatus"][value="1"]') as HTMLInputElement;
-                if (radio) radio.checked = true;
-              }
-            },
-            [
-              h('input', {
-                type: 'radio',
-                name: 'checkStatus',
-                value: '1',
-                checked: true,
-                style: 'margin-right: 8px; cursor: pointer',
-                onChange: () => {
-                  checkStatusValue.value = '1';
-                }
-              }),
-              h('span', null, '审核通过')
-            ]
-          ),
-          h(
-            'label',
-            {
-              style: 'display: flex; align-items: center; cursor: pointer; font-size: 14px',
-              onClick: () => {
-                checkStatusValue.value = '2';
-                const radio = document.querySelector('input[name="checkStatus"][value="2"]') as HTMLInputElement;
-                if (radio) radio.checked = true;
-              }
-            },
-            [
-              h('input', {
-                type: 'radio',
-                name: 'checkStatus',
-                value: '2',
-                style: 'margin-right: 8px; cursor: pointer',
-                onChange: () => {
-                  checkStatusValue.value = '2';
-                }
-              }),
-              h('span', null, '驳回')
-            ]
-          )
-        ])
-      ]),
-      showCancelButton: true,
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      beforeClose: (action, instance, done) => {
-        if (action === 'confirm') {
-          done();
-        } else {
-          done();
-        }
-      }
-    });
-
-    // 调用接口,传入用户选择的值
-    await changeCheckStatus(row.id, checkStatusValue.value);
-    getList();
-    proxy?.$modal.msgSuccess('操作成功');
-  } catch (error) {
-    // 用户取消或操作失败
-    if (error !== 'cancel' && error !== 'close') {
-      row.checkStatus = oldValue; // 失败回滚
-      proxy?.$modal.msgError('操作失败,请重试');
-    }
-  }
-};
-
-/** 审核按钮操作 */
+/** 取消订单按钮操作 */
 const handleCancel = async (row?: OrderMainVO) => {
-  const oldValue = row.checkStatus; // 保存旧值
-
-  // 弹出审核选择对话框
   try {
-    // 调用接口,传入用户选择的值
+    await proxy?.$modal.confirm('是否确认取消该订单?');
     await changeStatus(row.id, '7');
     getList();
     proxy?.$modal.msgSuccess('操作成功');
   } catch (error) {
-    // 用户取消或操作失败
     if (error !== 'cancel' && error !== 'close') {
-      row.checkStatus = oldValue; // 失败回滚
       proxy?.$modal.msgError('操作失败,请重试');
     }
   }
@@ -604,9 +559,9 @@ const getButtonsByStatus = (orderStatus: string, checkStatus: string): ActionBut
   // }
 
   // 待发货或部分发货:显示发货按钮
-  if (orderStatus === OrderStatus.PENDING_SHIPMENT || orderStatus === OrderStatus.PARTIAL_SHIPMENT) {
-    buttons.push({ label: '发货', handler: handleDeliver });
-  }
+  // if (orderStatus === OrderStatus.PENDING_SHIPMENT || orderStatus === OrderStatus.PARTIAL_SHIPMENT) {
+  //   buttons.push({ label: '发货', handler: handleDeliver });
+  // }
 
   // 待发货、部分发货、发货完成、已完成:显示查看订单信息按钮
   if (
@@ -623,7 +578,7 @@ const getButtonsByStatus = (orderStatus: string, checkStatus: string): ActionBut
   }
 
   // 非已取消和已关闭状态:显示取消订单按钮
-  if (orderStatus !== OrderStatus.CANCELLED && orderStatus !== OrderStatus.CLOSED && orderStatus !== OrderStatus.SHIPMENT_COMPLETED) {
+  if ([OrderStatus.PENDING_PAYMENT, OrderStatus.PENDING_CONFIRM].includes(orderStatus as OrderStatus)) {
     buttons.push({ label: '取消订单', handler: handleCancel });
   }
 

+ 4 - 0
src/views/order/saleOrder/logisticsDetail.vue

@@ -124,6 +124,9 @@ const handleLogisticNoChange = async (logisticNo: string) => {
     if (selected) {
       const res = await queryTrack({
         logisticNo: logisticNo,
+        logisticsCompanyCode: selected.logisticsCompanyCode,
+        //先使用送货人手机号其实应该是收货人手机号
+        phone: selected.consigneePhone,
         pageNum: 1,
         pageSize: 100
       });
@@ -150,6 +153,7 @@ const handleLogisticNoChange = async (logisticNo: string) => {
       await listOrderStatusLog({
         orderId: props.orderId,
         logisticNos: form.value.selectedLogisticNo,
+        logisticsCompanyCode: selected?.logisticsCompanyCode,
         pageNum: 1,
         pageSize: 100
       }).then((res) => {

+ 7 - 3
src/views/order/saleOrder/orderAffirm.vue

@@ -182,7 +182,7 @@
         <span>分配信息</span>
       </template>
       <el-descriptions :column="2" border class="custom-descriptions">
-        <el-descriptions-item v-if="orderInfo.dataSource" label="供应商名称">{{ orderInfo.assigneeName }}</el-descriptions-item>
+        <el-descriptions-item label="名称">{{ orderInfo.assigneeName }}</el-descriptions-item>
         <el-descriptions-item label="分配备注">{{ orderInfo.assigneeRemark }}</el-descriptions-item>
       </el-descriptions>
     </el-card>
@@ -543,10 +543,14 @@ const confirmOrder = async () => {
 
     // 根据来源返回对应列表页
     const source = route.query.source;
-    if (source === 'project') {
+    if (source === 'delivet-project') {
       router.push('/order-manage/order-delivet-project');
-    } else {
+    } else if (source === 'deliver-list') {
       router.push('/order-manage/order-deliver-list');
+    } else if (source === 'order-list') {
+      router.push('/order-manage/order-list');
+    } else if (source === 'order-project') {
+      router.push('/order-manage/order-list-project');
     }
   } catch (error) {
     console.error('确认订单失败:', error);

+ 2 - 2
src/views/order/saleOrder/sendDetail.vue

@@ -78,7 +78,7 @@
         <el-col :span="8">
           <div class="detail-item">
             <span class="label">所属项目:</span>
-            <span>{{ orderDetail.dataSource == 'zhongche' ? '中车' : '--' }}</span>
+            <span>{{ orderDetail.dataSourceStr }}</span>
           </div>
           <div class="detail-item">
             <span class="label">业务部门:</span>
@@ -113,7 +113,7 @@
         <span>分配信息</span>
       </template>
       <el-descriptions :column="2" border class="custom-descriptions">
-        <el-descriptions-item v-if="orderDetail.assigneeName" label="供应商名称">{{ orderDetail.assigneeName }}</el-descriptions-item>
+        <el-descriptions-item label="名称">{{ orderDetail.assigneeName }}</el-descriptions-item>
         <el-descriptions-item label="分配备注">{{ orderDetail.assigneeRemark }}</el-descriptions-item>
       </el-descriptions>
     </el-card>

+ 4 - 4
src/views/supplier/contact/index.vue

@@ -49,8 +49,8 @@
         </el-table-column>
         <el-table-column label="允许登录供应商端" align="center" prop="isRegister" min-width="160">
           <template #default="scope">
-            <span :style="String(scope.row.isRegister) === '0' ? { color: '#409EFF' } : undefined">
-              {{ String(scope.row.isRegister) === '0' ? '是' : '否' }}
+            <span :style="String(scope.row.isRegister) === '1' ? { color: '#409EFF' } : undefined">
+              {{ String(scope.row.isRegister) === '1' ? '是' : '否' }}
             </span>
           </template>
         </el-table-column>
@@ -139,8 +139,8 @@
           <el-col :span="24">
             <el-form-item label="允许登录" prop="isRegister">
               <el-radio-group v-model="form.isRegister">
-                <el-radio label="0"></el-radio>
-                <el-radio label="1"></el-radio>
+                <el-radio label="0"></el-radio>
+                <el-radio label="1"></el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>