hurx 2 mesiacov pred
rodič
commit
0550a37fc1

+ 0 - 181
src/views/order/orderAssignment/assignmentDialog.vue

@@ -1,181 +0,0 @@
-<template>
-  <el-drawer v-model="drawer.visible" :title="drawer.title" size="500px" direction="rtl" :before-close="handleClose">
-    <div class="drawer-content">
-      <el-form ref="orderAssignmentFormRef" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="订单编号" v-if="form.orderNo">
-          <span class="form-value">{{ form.orderNo }}</span>
-        </el-form-item>
-
-        <el-form-item label="订单数量" v-if="orderCount > 1">
-          <span class="form-value">{{ orderCount }} 个订单</span>
-        </el-form-item>
-
-        <el-divider v-if="form.platformCode" />
-
-        <el-form-item label="当前平台" v-if="form.platformCode">
-          <dict-tag :options="sys_platform_code" :value="form.platformCode" />
-        </el-form-item>
-
-        <el-form-item label="分配后平台" prop="platformAfter">
-          <el-select v-model="form.platformAfter" placeholder="请选择平台" style="width: 100%" filterable clearable>
-            <el-option v-for="dict in sys_platform_code" :key="dict.value" :label="dict.label" :value="dict.value" />
-          </el-select>
-        </el-form-item>
-
-        <el-divider content-position="left">分配原因</el-divider>
-
-        <el-form-item label-width="0" prop="remark">
-          <el-input v-model="form.remark" type="textarea" :rows="6" placeholder="请输入分配原因(选填)" maxlength="500" show-word-limit />
-        </el-form-item>
-      </el-form>
-    </div>
-
-    <template #footer>
-      <div class="drawer-footer">
-        <el-button @click="cancel">取 消</el-button>
-        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
-      </div>
-    </template>
-  </el-drawer>
-</template>
-
-<style scoped lang="scss">
-.drawer-content {
-  padding: 0 20px 20px;
-  height: calc(100% - 60px);
-  overflow-y: auto;
-}
-
-.drawer-footer {
-  display: flex;
-  justify-content: flex-end;
-  gap: 10px;
-  padding: 10px 20px;
-  border-top: 1px solid #e4e7ed;
-}
-
-.form-value {
-  font-weight: 500;
-  color: #303133;
-  font-size: 14px;
-}
-
-:deep(.el-divider__text) {
-  font-weight: 600;
-  font-size: 14px;
-}
-
-:deep(.el-form-item__label) {
-  font-weight: 500;
-}
-</style>
-<script setup name="OrderAssignmentDialog" lang="ts">
-import { getOrderAssignment, addOrderAssignment, updateOrderAssignment } from '@/api/order/orderAssignmentLog';
-import { OrderAssignmentForm } from '@/api/order/orderAssignmentLog/types';
-
-const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { sys_platform_code } = toRefs<any>(proxy?.useDict('sys_platform_code'));
-
-const emit = defineEmits(['success']);
-
-const buttonLoading = ref(false);
-const orderAssignmentFormRef = ref<ElFormInstance>();
-const orderCount = ref(0); // 订单数量
-
-const drawer = reactive<DialogOption>({
-  visible: false,
-  title: ''
-});
-
-const initFormData: OrderAssignmentForm = {
-  id: undefined,
-  orderId: undefined,
-  orderIds: undefined,
-  orderNo: undefined,
-  platformBefore: undefined,
-  platformAfter: undefined,
-  assignedBy: undefined,
-  assignTime: undefined,
-  assignType: '0',
-  status: undefined,
-  remark: undefined
-};
-
-const data = reactive<PageData<OrderAssignmentForm, any>>({
-  form: { ...initFormData },
-  queryParams: {},
-  rules: {
-    platformAfter: [{ required: true, message: '分配后平台不能为空', trigger: 'blur' }]
-  }
-});
-
-const { form, rules } = toRefs(data);
-
-/** 打开对话框 */
-const open = async (orderIds: Array<string | number>, orderNo?: string, platformCode?: string) => {
-  reset();
-  drawer.visible = true;
-  drawer.title = orderIds.length > 1 ? '批量整单分配' : '整单分配';
-
-  form.value.orderNo = orderNo;
-  form.value.platformCode = platformCode;
-  orderCount.value = orderIds.length;
-
-  // 如果是单个订单,可以查询已有的分配信息
-  if (orderIds.length === 1) {
-    try {
-      form.value.orderIds = orderIds[0] as string;
-    } catch (error) {}
-  } else {
-    // 批量分配
-    form.value.orderIds = orderIds.join(',');
-  }
-};
-
-/** 表单重置 */
-const reset = () => {
-  form.value = { ...initFormData };
-  orderAssignmentFormRef.value?.resetFields();
-};
-
-/** 取消按钮 */
-const cancel = () => {
-  drawer.visible = false;
-  reset();
-};
-
-/** 关闭前的回调 */
-const handleClose = (done: () => void) => {
-  if (buttonLoading.value) {
-    return;
-  }
-  done();
-  reset();
-};
-
-/** 提交按钮 */
-const submitForm = () => {
-  orderAssignmentFormRef.value?.validate(async (valid: boolean) => {
-    if (valid) {
-      buttonLoading.value = true;
-      try {
-        if (form.value.id) {
-          await updateOrderAssignment(form.value);
-          proxy?.$modal.msgSuccess('修改成功');
-        } else {
-          await addOrderAssignment(form.value);
-          proxy?.$modal.msgSuccess('分配成功');
-        }
-        drawer.visible = false;
-        emit('success');
-      } finally {
-        buttonLoading.value = false;
-      }
-    }
-  });
-};
-
-defineExpose({
-  open
-});
-</script>

+ 0 - 337
src/views/order/orderAssignment/index.vue

@@ -1,337 +0,0 @@
-<template>
-  <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
-      <div v-show="showSearch" class="mb-[10px]">
-        <el-card shadow="hover">
-          <el-form ref="queryFormRef" :model="queryParams" :inline="true">
-            <el-form-item label="订单编号" prop="orderNo">
-              <el-input v-model="queryParams.orderNo" placeholder="请输入订单编号" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-            <el-form-item label="客户编号" prop="customerCode">
-              <el-input v-model="queryParams.customerCode" placeholder="请输入客户编号" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-            <el-form-item label="客户名称" prop="customerName">
-              <el-input v-model="queryParams.customerName" placeholder="请输入客户名称" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-            <el-form-item label="订单来源" prop="orderSource">
-              <el-select v-model="queryParams.orderSource" placeholder="请选择订单来源" clearable>
-                <el-option v-for="dict in order_source" :key="dict.value" :label="dict.label" :value="dict.value" />
-              </el-select>
-            </el-form-item>
-            <!-- <el-form-item label="订单状态" prop="orderStatus">
-              <el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable>
-                <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="dateRange">
-              <el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
-            </el-form-item>
-
-            <el-form-item>
-              <el-button type="primary" icon="Search" @click="handleQuery()">搜索</el-button>
-              <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-            </el-form-item>
-          </el-form>
-        </el-card>
-      </div>
-    </transition>
-
-    <el-card shadow="never">
-      <template #header>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="18"> 订单分配列表 </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" :disabled="!ids.length" plain @click="handleAssignment(null)">批量整单分配</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" :disabled="!ids.length" plain>关闭订单</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" :disabled="!ids.length" plain>删除订单</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" :disabled="!ids.length" plain>导出订单</el-button>
-          </el-col>
-        </el-row>
-      </template>
-
-      <el-table v-loading="loading" border :data="orderMainList" @selection-change="handleSelectionChange">
-        <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">
-          <template #default="scope">
-            <dict-tag :options="pay_method" :value="scope.row.payType" />
-          </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="orderSource">
-          <template #default="scope">
-            <dict-tag :options="order_source" :value="scope.row.orderSource" />
-          </template>
-        </el-table-column>
-        <el-table-column label="分配状态" align="center" prop="assignmentStatus">
-          <template #default="scope">
-            <dict-tag :options="order_assignment_status" :value="scope.row.assignmentStatus" />
-          </template>
-        </el-table-column>
-        <el-table-column label="当前平台" align="center" prop="platformCode">
-          <template #default="scope">
-            <dict-tag :options="sys_platform_code" :value="scope.row.platformCode" />
-          </template>
-        </el-table-column>
-
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180">
-          <template #default="scope">
-            <el-button link type="primary" @click="handleReview(scope.row)">查看</el-button>
-            <el-button
-              link
-              type="primary"
-              v-if="scope.row.checkStatus == '1' && scope.row.assignmentStatus == '0'"
-              @click="handleAssignment(scope.row)"
-              >订单分配</el-button
-            >
-            <el-button
-              link
-              type="primary"
-              v-if="scope.row.checkStatus == '1' && scope.row.assignmentStatus == '1'"
-              @click="handleAssignment(scope.row)"
-              >重新分配</el-button
-            >
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
-    </el-card>
-
-    <!-- 订单分配对话框 -->
-    <assignment-dialog ref="assignmentDialogRef" @success="getList" />
-    <!-- 拆单分配对话框 -->
-    <split-assign-dialog ref="splitAssignDialogRef" @success="getList" />
-  </div>
-</template>
-
-<script setup name="OrderAssignment" lang="ts">
-import { listOrderAssignment, getOrderMain, delOrderMain } from '@/api/order/orderMain';
-import { OrderMainVO, OrderMainQuery, OrderMainForm } from '@/api/order/orderMain/types';
-import AssignmentDialog from './assignmentDialog.vue';
-import SplitAssignDialog from './splitAssignDialog.vue';
-
-const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { order_assignment_status, order_check_status, pay_method, order_source, sys_platform_code } = toRefs<any>(
-  proxy?.useDict('order_assignment_status', 'order_check_status', 'pay_method', 'order_source', 'sys_platform_code')
-);
-
-const orderMainList = ref<OrderMainVO[]>([]);
-const buttonLoading = ref(false);
-const loading = ref(true);
-const showSearch = ref(true);
-const ids = ref<Array<string | number>>([]);
-const single = ref(true);
-const multiple = ref(true);
-const total = ref(0);
-const router = useRouter();
-const queryFormRef = ref<ElFormInstance>();
-const orderMainFormRef = ref<ElFormInstance>();
-const assignmentDialogRef = ref<InstanceType<typeof AssignmentDialog>>();
-const splitAssignDialogRef = ref<InstanceType<typeof SplitAssignDialog>>();
-
-const dateRange = ref<[DateModelType, DateModelType]>(['', '']);
-const dialog = reactive<DialogOption>({
-  visible: false,
-  title: ''
-});
-
-const initFormData: OrderMainForm = {
-  id: undefined,
-  orderNo: undefined,
-  shipmentNo: undefined,
-  subOrderNo: undefined,
-  companyId: undefined,
-  customerId: undefined,
-  customerCode: undefined,
-  userId: undefined,
-  shippingAddressId: undefined,
-  purchaseReason: undefined,
-  invoiceType: undefined,
-  payType: undefined,
-  warehouseId: undefined,
-  creditLimit: undefined,
-  expectedDeliveryTime: undefined,
-  businessStaff: undefined,
-  customerService: undefined,
-  businessDept: undefined,
-  userDept: undefined,
-  productQuantity: undefined,
-  shippingFee: undefined,
-  totalAmount: undefined,
-  payableAmount: undefined,
-  paymentStatus: undefined,
-  orderSource: undefined,
-  orderStatus: undefined,
-  orderTime: undefined,
-  confirmTime: undefined,
-  shippingTime: undefined,
-  receivingTime: undefined,
-  shippedQuantity: undefined,
-  unshippedQuantity: undefined,
-  packageCount: undefined,
-  signedQuantity: undefined,
-  afterSaleCompleted: undefined,
-  afterSalePending: undefined,
-  deliveryDesc: undefined,
-  pushStatus: undefined,
-  attachmentPath: undefined,
-  deliveryType: undefined,
-  orderCategory: undefined,
-  productCode: undefined,
-  cancelReason: undefined,
-  expenseType: undefined,
-  userNo: undefined,
-  status: undefined,
-  remark: undefined,
-  isSplitChild: undefined,
-  orderProductBos: [],
-  customerSalesInfoVo: {}
-};
-const data = reactive<PageData<OrderMainForm, OrderMainQuery>>({
-  form: { ...initFormData },
-  queryParams: {
-    pageNum: 1,
-    pageSize: 10,
-    checkStatus: '1',
-    orderNo: undefined,
-    shipmentNo: undefined,
-    subOrderNo: undefined,
-    companyId: undefined,
-    customerCode: undefined,
-    customerId: undefined,
-    userId: undefined,
-    payType: undefined,
-    warehouseId: undefined,
-    expectedDeliveryTime: undefined,
-    businessStaff: undefined,
-    customerService: undefined,
-    businessDept: undefined,
-    productQuantity: undefined,
-    totalAmount: undefined,
-    payableAmount: undefined,
-    paymentStatus: undefined,
-    orderSource: undefined,
-    orderStatus: undefined,
-    orderTime: undefined,
-    confirmTime: undefined,
-    status: undefined,
-    isSplitChild: '1',
-    params: {}
-  },
-  rules: {}
-});
-
-const { queryParams, form, rules } = toRefs(data);
-
-/** 查询订单主信息列表 */
-const getList = async () => {
-  loading.value = true;
-  const res = await listOrderAssignment(proxy?.addDateRange(queryParams.value, dateRange.value));
-  orderMainList.value = res.rows;
-  total.value = res.total;
-  loading.value = false;
-};
-
-/** 取消按钮 */
-const cancel = () => {
-  reset();
-  dialog.visible = false;
-};
-
-/** 表单重置 */
-const reset = () => {
-  form.value = { ...initFormData };
-  orderMainFormRef.value?.resetFields();
-};
-
-/** 搜索按钮操作 */
-const handleQuery = (orderStatus?: string) => {
-  if (orderStatus) {
-    queryParams.value.orderStatus = orderStatus;
-  } else {
-    queryParams.value.orderStatus = undefined;
-  }
-  queryParams.value.pageNum = 1;
-  getList();
-};
-
-/** 重置按钮操作 */
-const resetQuery = () => {
-  dateRange.value = ['', ''];
-  queryFormRef.value?.resetFields();
-  handleQuery();
-};
-
-/** 多选框选中数据 */
-const handleSelectionChange = (selection: OrderMainVO[]) => {
-  ids.value = selection.map((item) => item.id);
-  single.value = selection.length != 1;
-  multiple.value = !selection.length;
-};
-
-const handleReview = (row?: OrderMainVO) => {
-  router.push({
-    path: '/order-manage/order-sendDetail',
-    query: { id: row.id }
-  });
-};
-
-/** 订单分配按钮操作 */
-const handleAssignment = async (row?: OrderMainVO | null) => {
-  let orderIds: Array<string | number>;
-
-  if (row) {
-    // 单个订单分配 - 直接打开统一的分配抽屉
-    splitAssignDialogRef.value?.open(row.id);
-  } else {
-    // 批量分配 - 只支持整单分配
-    if (!ids.value || ids.value.length === 0) {
-      proxy?.$modal.msgWarning('请选择要分配的订单');
-      return;
-    }
-    orderIds = ids.value;
-    assignmentDialogRef.value?.open(orderIds, undefined, undefined);
-  }
-};
-
-/** 删除按钮操作 */
-const handleDelete = async (row?: OrderMainVO) => {
-  const _ids = row?.id || ids.value;
-  await proxy?.$modal.confirm('是否确认删除订单主信息编号为"' + _ids + '"的数据项?').finally(() => (loading.value = false));
-  await delOrderMain(_ids);
-  proxy?.$modal.msgSuccess('删除成功');
-  await getList();
-};
-
-/** 导出按钮操作 */
-const handleExport = () => {
-  proxy?.download(
-    'order/orderMain/export',
-    {
-      ...queryParams.value
-    },
-    `orderMain_${new Date().getTime()}.xlsx`
-  );
-};
-
-onMounted(() => {
-  getList();
-});
-
-onActivated(() => {
-  getList();
-});
-</script>

+ 0 - 328
src/views/order/orderAssignment/splitAssignDialog.vue

@@ -1,328 +0,0 @@
-<template>
-  <el-drawer v-model="drawer.visible" :title="drawer.title" size="70%" direction="rtl" :before-close="handleClose">
-    <div class="drawer-content">
-      <!-- 分配方式选择 -->
-      <div class="assign-type-selector">
-        <el-radio-group v-model="assignType" @change="handleAssignTypeChange">
-          <el-radio-button value="whole">整单分配</el-radio-button>
-          <el-radio-button value="split">拆单分配</el-radio-button>
-        </el-radio-group>
-      </div>
-
-      <el-divider />
-
-      <!-- 整单分配表单 -->
-      <div v-show="assignType === 'whole'" class="whole-assign-form">
-        <el-form ref="wholeAssignFormRef" :model="wholeForm" :rules="wholeRules" label-width="120px">
-          <el-form-item label="订单编号" v-if="orderInfo.orderNo">
-            <span class="form-value">{{ orderInfo.orderNo }}</span>
-          </el-form-item>
-
-          <el-form-item label="当前平台" v-if="orderInfo.platformCode">
-            <dict-tag :options="sys_platform_code" :value="orderInfo.platformCode" />
-          </el-form-item>
-
-          <el-form-item label="分配后平台" prop="platformAfter">
-            <el-select v-model="wholeForm.platformAfter" placeholder="请选择平台" style="width: 100%" filterable clearable>
-              <el-option v-for="dict in sys_platform_code" :key="dict.value" :label="dict.label" :value="dict.value" />
-            </el-select>
-          </el-form-item>
-
-          <el-divider content-position="left">分配原因</el-divider>
-
-          <el-form-item label-width="0" prop="remark">
-            <el-input v-model="wholeForm.remark" type="textarea" :rows="6" placeholder="请输入分配原因(选填)" maxlength="500" show-word-limit />
-          </el-form-item>
-        </el-form>
-      </div>
-
-      <!-- 拆单分配表单 -->
-      <div v-show="assignType === 'split'" class="split-assign-form">
-        <el-form ref="splitAssignFormRef" :model="form" label-width="100px">
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="订单编号">
-                <span class="form-value">{{ orderInfo.orderNo }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="12">
-              <el-form-item label="当前平台">
-                <dict-tag :options="sys_platform_code" :value="orderInfo.platformCode" />
-              </el-form-item>
-            </el-col>
-          </el-row>
-
-          <el-divider content-position="left">商品列表</el-divider>
-
-          <el-form-item label-width="0">
-            <el-table :data="form.productList" border style="width: 100%" max-height="500">
-              <el-table-column type="index" label="序号" width="60" align="center" />
-              <el-table-column label="商品图片" width="100" align="center">
-                <template #default="scope">
-                  <el-image
-                    v-if="scope.row.productImage"
-                    :src="scope.row.productImage"
-                    style="width: 60px; height: 60px"
-                    fit="cover"
-                    :preview-src-list="[scope.row.productImage]"
-                  />
-                  <span v-else style="color: #999">暂无图片</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="商品编号" prop="productNo" width="140" align="center" />
-              <el-table-column label="商品名称" prop="productName" show-overflow-tooltip />
-              <el-table-column label="数量" prop="orderQuantity" width="100" align="center" />
-              <el-table-column label="单价" prop="orderPrice" width="120" align="center">
-                <template #default="scope">
-                  <span>¥{{ scope.row.orderPrice }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="小计" width="120" align="center">
-                <template #default="scope">
-                  <span>¥{{ (scope.row.orderPrice * scope.row.orderQuantity).toFixed(2) }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="分配平台" align="center" fixed="right">
-                <template #default="scope">
-                  <el-select v-model="scope.row.targetPlatform" placeholder="请选择平台" style="width: 100%">
-                    <el-option v-for="dict in sys_platform_code" :key="dict.value" :label="dict.label" :value="dict.value" />
-                  </el-select>
-                </template>
-              </el-table-column>
-            </el-table>
-          </el-form-item>
-
-          <el-divider content-position="left">分配原因</el-divider>
-
-          <el-form-item label-width="0" prop="remark">
-            <el-input v-model="form.remark" type="textarea" :rows="4" placeholder="请输入分配原因(选填)" maxlength="500" show-word-limit />
-          </el-form-item>
-        </el-form>
-      </div>
-    </div>
-
-    <template #footer>
-      <div class="drawer-footer">
-        <el-button @click="cancel">取 消</el-button>
-        <el-button v-if="assignType === 'whole'" :loading="buttonLoading" type="primary" @click="submitWholeForm">确 定</el-button>
-        <el-button v-else :loading="buttonLoading" type="primary" @click="submitSplitForm">确 定</el-button>
-      </div>
-    </template>
-  </el-drawer>
-</template>
-
-<style scoped lang="scss">
-.drawer-content {
-  padding: 0 20px 20px;
-  height: calc(100% - 60px);
-  overflow-y: auto;
-}
-
-.assign-type-selector {
-  display: flex;
-  justify-content: center;
-  padding: 10px 0;
-
-  :deep(.el-radio-button__inner) {
-    padding: 12px 30px;
-    font-size: 14px;
-  }
-}
-
-.drawer-footer {
-  display: flex;
-  justify-content: flex-end;
-  gap: 10px;
-  padding: 10px 20px;
-  border-top: 1px solid #e4e7ed;
-}
-
-.form-value {
-  font-weight: 500;
-  color: #303133;
-}
-
-:deep(.el-divider__text) {
-  font-weight: 600;
-  font-size: 14px;
-}
-</style>
-
-<script setup name="SplitAssignDialog" lang="ts">
-import { getOrderMain } from '@/api/order/orderMain';
-import { addOrderSplitAssign, addOrderAssignment } from '@/api/order/orderAssignmentLog';
-import { OrderSplitAssignForm, OrderProductAssignRule, OrderAssignmentForm } from '@/api/order/orderAssignmentLog/types';
-
-const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { sys_platform_code } = toRefs<any>(proxy?.useDict('sys_platform_code'));
-
-const emit = defineEmits(['success']);
-
-const buttonLoading = ref(false);
-const splitAssignFormRef = ref<ElFormInstance>();
-const wholeAssignFormRef = ref<ElFormInstance>();
-
-// 分配类型:whole-整单分配,split-拆单分配
-const assignType = ref<'whole' | 'split'>('whole');
-
-const drawer = reactive<DialogOption>({
-  visible: false,
-  title: '订单分配'
-});
-
-const orderInfo = ref<any>({
-  orderNo: '',
-  id: undefined,
-  platformCode: ''
-});
-
-// 拆单分配表单
-const form = reactive({
-  productList: [] as any[],
-  remark: ''
-});
-
-// 整单分配表单
-const wholeForm = reactive({
-  platformAfter: '',
-  remark: ''
-});
-
-const wholeRules = {
-  platformAfter: [{ required: true, message: '分配后平台不能为空', trigger: 'blur' }]
-};
-
-/** 打开对话框 */
-const open = async (orderId: string | number) => {
-  reset();
-  drawer.visible = true;
-  assignType.value = 'whole'; // 默认显示整单分配
-
-  try {
-    // 获取订单详情
-    const res = await getOrderMain(orderId);
-    orderInfo.value = {
-      orderNo: res.data.orderNo,
-      id: res.data.id,
-      platformCode: res.data.platformCode
-    };
-
-    // 加载订单商品列表(用于拆单分配)
-    if (res.data.orderProductList && res.data.orderProductList.length > 0) {
-      form.productList = res.data.orderProductList.map((item: any) => ({
-        ...item,
-        itemId: item.id, // 商品行ID
-        targetPlatform: '' // 初始化分配平台为空
-      }));
-    }
-  } catch (error) {
-    proxy?.$modal.msgError('获取订单信息失败');
-    drawer.visible = false;
-  }
-};
-
-/** 分配类型切换 */
-const handleAssignTypeChange = (value: 'whole' | 'split') => {
-  // 切换时可以做一些清理工作
-  if (value === 'split' && form.productList.length === 0) {
-    proxy?.$modal.msgWarning('该订单没有商品信息,无法进行拆单分配');
-    assignType.value = 'whole';
-  }
-};
-
-/** 表单重置 */
-const reset = () => {
-  form.productList = [];
-  form.remark = '';
-  wholeForm.platformAfter = '';
-  wholeForm.remark = '';
-  assignType.value = 'whole';
-  orderInfo.value = {
-    orderNo: '',
-    id: undefined,
-    platformCode: ''
-  };
-  splitAssignFormRef.value?.resetFields();
-  wholeAssignFormRef.value?.resetFields();
-};
-
-/** 取消按钮 */
-const cancel = () => {
-  drawer.visible = false;
-  reset();
-};
-
-/** 关闭前的回调 */
-const handleClose = (done: () => void) => {
-  if (buttonLoading.value) {
-    return;
-  }
-  done();
-  reset();
-};
-
-/** 提交整单分配 */
-const submitWholeForm = async () => {
-  wholeAssignFormRef.value?.validate(async (valid: boolean) => {
-    if (valid) {
-      buttonLoading.value = true;
-      try {
-        const submitData: OrderAssignmentForm = {
-          orderIds: orderInfo.value.id,
-          platformAfter: wholeForm.platformAfter,
-          assignType: '0', // 整单分配
-          remark: wholeForm.remark
-        };
-
-        await addOrderAssignment(submitData);
-        proxy?.$modal.msgSuccess('整单分配成功');
-        drawer.visible = false;
-        emit('success');
-      } catch (error) {
-        proxy?.$modal.msgError('整单分配失败');
-      } finally {
-        buttonLoading.value = false;
-      }
-    }
-  });
-};
-
-/** 提交拆单分配 */
-const submitSplitForm = async () => {
-  // 验证每个商品都选择了平台
-  const unassignedProducts = form.productList.filter((item) => !item.targetPlatform);
-  if (unassignedProducts.length > 0) {
-    proxy?.$modal.msgWarning('请为所有商品选择分配平台');
-    return;
-  }
-
-  buttonLoading.value = true;
-  try {
-    // 组装数据结构
-    const submitData: OrderSplitAssignForm = {
-      orderId: orderInfo.value.id,
-      itemRules: form.productList.map(
-        (product): OrderProductAssignRule => ({
-          itemId: product.itemId,
-          targetPlatform: product.targetPlatform
-        })
-      ),
-      remark: form.remark
-    };
-
-    // 调用拆单分配接口
-    await addOrderSplitAssign(submitData);
-    proxy?.$modal.msgSuccess('拆单分配成功');
-    drawer.visible = false;
-    emit('success');
-  } catch (error) {
-    proxy?.$modal.msgError('拆单分配失败');
-  } finally {
-    buttonLoading.value = false;
-  }
-};
-
-defineExpose({
-  open
-});
-</script>