Browse Source

订单整改

lxf 1 year ago
parent
commit
77e6e4925b

+ 11 - 1
src/components/process/order.vue

@@ -1000,6 +1000,12 @@ watch(
             } else {
               fileList.value = [];
             }
+            let outerBoxSelfAdhesiveStickerFile = fileObj[formData.data.id].filter((item) => item.businessType == "1");
+            if (outerBoxSelfAdhesiveStickerFile && outerBoxSelfAdhesiveStickerFile.length > 0) {
+              formData.data.outerBoxSelfAdhesiveStickerFile = outerBoxSelfAdhesiveStickerFile[0];
+            } else {
+              formData.data.outerBoxSelfAdhesiveStickerFile = {};
+            }
           }
           for (let i = 0; i < formData.data.orderSkuList.length; i++) {
             if (fileObj[formData.data.orderSkuList[i].id] && fileObj[formData.data.orderSkuList[i].id].length > 0) {
@@ -1018,8 +1024,12 @@ watch(
     deep: true,
   }
 );
+const saveShippingPackage = (data) => {
+  formData.data.orderPackageBomList = data.orderPackageBomList;
+  formData.data.outerBoxSelfAdhesiveStickerFile = data.outerBoxSelfAdhesiveStickerFile;
+};
 // 向父组件暴露
-defineExpose({ getFormData, handleSubmit });
+defineExpose({ getFormData, handleSubmit, saveShippingPackage });
 </script>
 
 <style lang="scss" scoped>

+ 121 - 0
src/components/selectAssembly/index.vue

@@ -0,0 +1,121 @@
+<template>
+  <div class="select-card">
+    <byTable
+      :source="sourceList.data"
+      :pagination="sourceList.pagination"
+      :config="config"
+      :loading="loading"
+      highlight-current-row
+      @get-list="getList"
+      @clickReset="clickReset">
+    </byTable>
+  </div>
+</template>
+
+<script setup>
+import byTable from "/src/components/byTable/index";
+import { ElMessage, ElMessageBox } from "element-plus";
+
+const { proxy } = getCurrentInstance();
+const sourceList = ref({
+  data: [],
+  pagination: {
+    total: 0,
+    pageNum: 1,
+    pageSize: 10,
+  },
+});
+const loading = ref(false);
+const config = computed(() => {
+  return [
+    {
+      attrs: {
+        label: "组合名称",
+        prop: "name",
+      },
+    },
+    {
+      attrs: {
+        label: "操作",
+        width: 120,
+        align: "center",
+        fixed: "right",
+      },
+      renderHTML(row) {
+        return [
+          {
+            attrs: {
+              label: "选择",
+              type: "primary",
+              text: true,
+            },
+            el: "button",
+            click() {
+              selectAssembly(row);
+            },
+          },
+          {
+            attrs: {
+              label: "删除",
+              type: "danger",
+              text: true,
+            },
+            el: "button",
+            click() {
+              clickDelete(row);
+            },
+          },
+        ];
+      },
+    },
+  ];
+});
+const getList = async (req, status) => {
+  if (status) {
+    sourceList.value.pagination = {
+      pageNum: sourceList.value.pagination.pageNum,
+      pageSize: sourceList.value.pagination.pageSize,
+    };
+  } else {
+    sourceList.value.pagination = { ...sourceList.value.pagination, ...req };
+  }
+  loading.value = true;
+  proxy.post("/packagingAssembly/page", sourceList.value.pagination).then((res) => {
+    sourceList.value.data = res.rows;
+    sourceList.value.pagination.total = res.total;
+    setTimeout(() => {
+      loading.value = false;
+    }, 200);
+  });
+};
+getList();
+const clickReset = () => {
+  getList("", true);
+};
+const emit = defineEmits(["selectAssembly"]);
+const selectAssembly = (item) => {
+  emit("selectAssembly", item);
+};
+const clickDelete = (row) => {
+  ElMessageBox.confirm("你是否确认此操作", "提示", {
+    confirmButtonText: "确定",
+    cancelButtonText: "取消",
+    type: "warning",
+  })
+    .then(() => {
+      proxy.post("/packagingAssembly/delete", { id: row.id }).then(() => {
+        ElMessage({ message: "删除成功", type: "success" });
+        getList();
+      });
+    })
+    .catch(() => {});
+};
+</script>
+
+<style lang="scss" scoped>
+.select-card {
+  height: calc(100vh - 184px);
+  overflow-y: auto;
+  overflow-x: hidden;
+}
+</style>

+ 54 - 7
src/views/group/order/management/index.vue

@@ -78,6 +78,28 @@ const props = defineProps({
   departmentId: String,
 });
 const departmentList = ref([{ dictKey: "0", dictValue: "胜德体育" }]);
+const flowStatus = ref([
+  {
+    dictKey: 0,
+    dictValue: "未发起",
+  },
+  {
+    dictKey: 1,
+    dictValue: "进行中",
+  },
+  {
+    dictKey: 2,
+    dictValue: "已通过",
+  },
+  {
+    dictKey: 3,
+    dictValue: "已驳回",
+  },
+  {
+    dictKey: 4,
+    dictValue: "已作废",
+  },
+]);
 const sourceList = ref({
   data: [],
   pagination: {
@@ -113,7 +135,6 @@ const searchConfig = computed(() => {
           data: departmentList.value,
           label: "事业部",
         },
-
     props.departmentId
       ? {}
       : {
@@ -162,11 +183,24 @@ const config = computed(() => {
     },
     {
       attrs: {
+        label: "流程状态",
+        prop: "flowStatus",
+        width: 120,
+      },
+      render(val) {
+        return proxy.dictKeyValue(val, flowStatus.value);
+      },
+    },
+    {
+      attrs: {
         label: "订单状态",
         prop: "status",
         width: 120,
       },
-      render(val) {
+      render(val, row) {
+        if (val == 0 && row.flowStatus !== 2) {
+          return "";
+        }
         return proxy.dictKeyValue(val, proxy.useUserStore().allDict["order_status"]);
       },
     },
@@ -333,7 +367,8 @@ const config = computed(() => {
                   clickSelect(row);
                 },
               }
-            : {
+            : row.status && row.status != 0
+            ? {
                 attrs: {
                   label: "税率",
                   type: "primary",
@@ -343,7 +378,8 @@ const config = computed(() => {
                 click() {
                   clickChangeTaxRate(row);
                 },
-              },
+              }
+            : {},
           (row.status == 0 || row.status == 10 || row.status == 20) && !props.selectStatus
             ? {
                 attrs: {
@@ -421,13 +457,24 @@ const clickReset = () => {
 };
 const clickCode = (row) => {
   proxy.$router.replace({
-    path: "/order-detail",
+    path: "/platform_manage/process/processApproval",
     query: {
-      detailId: row.id,
-      text: "订单详情",
+      flowKey: "order",
+      flowName: "订单详情",
+      processType: "20",
+      id: row.id,
+      flowId: row.flowId,
       random: proxy.random(),
     },
   });
+  // proxy.$router.replace({
+  //   path: "/order-detail",
+  //   query: {
+  //     detailId: row.id,
+  //     text: "订单详情",
+  //     random: proxy.random(),
+  //   },
+  // });
 };
 const clickDelete = (row) => {
   ElMessageBox.confirm("你是否确认此操作", "提示", {

+ 384 - 32
src/views/process/processApproval/index.vue

@@ -10,7 +10,15 @@
                 : keyName[queryData.query.flowKey] + "(审批)"
             }}
           </span>
-          <el-button type="success" size="small" @click="clickRecords()" v-preReClick>审批记录</el-button>
+          <el-button type="primary" size="small" @click="clickRecords()" v-preReClick>审批记录</el-button>
+          <el-button
+            type="primary"
+            size="small"
+            @click="clickViewPackaging()"
+            v-if="queryData.query.processType && ['10', '20'].includes(queryData.query.processType) && queryData.query.flowKey == 'order'"
+            v-preReClick>
+            包装配置
+          </el-button>
         </div>
         <div class="line"></div>
         <Subscribe :queryData="detailsData.data" v-if="queryData.query.flowKey == 'apply_buy'" ref="makeDom"></Subscribe>
@@ -31,6 +39,13 @@
               v-preReClick>
               保存草稿
             </el-button>
+            <el-button
+              type="primary"
+              v-if="(!queryData.query.processType || ['30', '40'].includes(queryData.query.processType)) && queryData.query.flowKey == 'order'"
+              @click="handlePackagingConfiguration"
+              v-preReClick>
+              包装配置
+            </el-button>
             <el-button type="primary" v-if="approvalRecordData.buttonInfoList.length == 0" @click="handleSubmit" v-preReClick>提交</el-button>
             <el-button type="primary" v-else v-for="i in approvalRecordData.buttonInfoList" :key="i.type" @click="handleSubmit(i.type)" v-preReClick>
               {{ i.name }}
@@ -54,6 +69,7 @@
         </el-form-item>
       </el-form>
     </el-dialog>
+
     <el-drawer v-model="drawer" :direction="'rtl'">
       <div class="right-card">
         <el-tabs v-model="activeName" class="demo-tabs">
@@ -98,13 +114,162 @@
         </el-tabs>
       </div>
     </el-drawer>
+
+    <el-dialog title="包装配置" v-if="openShippingPackage" v-model="openShippingPackage" width="80%">
+      <div style="height: calc(100vh - 184px); overflow-y: auto; overflow-x: hidden">
+        <el-form :model="formShippingPackage.data" :rules="rulesShippingPackage" ref="shippingPackage">
+          <div style="font-weight: 700; margin: 20px 0 10px 0">发货包装</div>
+          <div style="margin-bottom: 10px">
+            <el-button type="primary" size="small" @click="clickSelectAssembly()">选择常用组合</el-button>
+            <el-button type="primary" size="small" @click="clickExpressPacking()">选择快递物流包材</el-button>
+          </div>
+          <el-table :data="formShippingPackage.data.orderPackageBomList" :row-style="{ height: '35px' }" header-row-class-name="tableHeader">
+            <el-table-column label="品号" prop="code" width="160" />
+            <el-table-column label="品名" prop="name" min-width="220" />
+            <el-table-column label="销售单价" prop="internalSellingPrice" width="100" />
+            <el-table-column label="成本单价" prop="costPrice" width="100" />
+            <el-table-column label="数量" width="120">
+              <template #default="{ row, $index }">
+                <div class="shippingPackage">
+                  <el-form-item
+                    :prop="'orderPackageBomList.' + $index + '.quantity'"
+                    :rules="rulesShippingPackage.quantity"
+                    :inline-message="true"
+                    style="width: 100%">
+                    <el-input-number
+                      onmousewheel="return false;"
+                      v-model="row.quantity"
+                      placeholder="修正数量"
+                      style="width: 100%"
+                      :controls="false"
+                      :min="0"
+                      :precision="0" />
+                  </el-form-item>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="销售小计" width="120">
+              <template #default="{ row }">
+                {{ moneyFormat(computeMoney(row, "internalSellingPrice"), 2) }}
+              </template>
+            </el-table-column>
+            <el-table-column label="成本小计" width="120">
+              <template #default="{ row }">
+                {{ moneyFormat(computeMoney(row, "costPrice"), 2) }}
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" fixed="right" width="80">
+              <template #default="{ $index }">
+                <el-button type="danger" @click="clickDelete($index)" text>删除</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <div style="font-weight: 700; margin: 20px 0 10px 0">外箱不干胶图稿</div>
+          <div style="display: flex; width: 100%">
+            <div style="width: 80px; line-height: 32px">不干胶图片:</div>
+            <div style="width: calc(100% - 80px)">
+              <el-image
+                fit="scale-down"
+                style="width: 148px; height: 148px; margin-right: 10px; cursor: pointer"
+                v-if="formShippingPackage.data.outerBoxSelfAdhesiveStickerFile && formShippingPackage.data.outerBoxSelfAdhesiveStickerFile.fileUrl"
+                :src="formShippingPackage.data.outerBoxSelfAdhesiveStickerFile.fileUrl"
+                @click="openFile(formShippingPackage.data.outerBoxSelfAdhesiveStickerFile.fileUrl)" />
+              <div style="display: flex">
+                <el-upload
+                  :show-file-list="false"
+                  action="https://winfaster.obs.cn-south-1.myhuaweicloud.com"
+                  :data="uploadAdhesiveData"
+                  :before-upload="uploadAdhesiveFile"
+                  :on-success="
+                    (response, uploadFile) => {
+                      return handleAdhesiveSuccess(uploadFile);
+                    }
+                  "
+                  style="width: 100%">
+                  <el-button type="primary" text>上传文件</el-button>
+                </el-upload>
+              </div>
+            </div>
+          </div>
+        </el-form>
+      </div>
+      <template #footer>
+        <el-button type="primary" @click="clickSaveAssembly" v-preReClick>保存常用组合</el-button>
+        <el-button @click="openShippingPackage = false">取 消</el-button>
+        <el-button type="primary" @click="clickSaveShippingPackage" v-preReClick>保 存</el-button>
+      </template>
+    </el-dialog>
+
+    <el-dialog title="选择快递包装" v-if="openExpressPacking" v-model="openExpressPacking" width="90%">
+      <SelectBOM :selectStatus="true" :expressStatus="true" @selectBOM="selectExpressPacking"></SelectBOM>
+      <template #footer>
+        <el-button @click="openExpressPacking = false">关 闭</el-button>
+      </template>
+    </el-dialog>
+
+    <el-dialog title="保存常用组合" v-if="openAssembly" v-model="openAssembly" width="500">
+      <el-form :model="formShippingPackage.data" :rules="rulesAssembly" ref="assembly">
+        <el-form-item label="组合名称" prop="assemblyName">
+          <el-input v-model="formShippingPackage.data.assemblyName" placeholder="请输入组合名称" />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <el-button @click="openAssembly = false">关 闭</el-button>
+        <el-button type="primary" @click="submitAssembly" v-preReClick>保 存</el-button>
+      </template>
+    </el-dialog>
+
+    <el-dialog title="选择常用组合" v-if="openSelectAssembly" v-model="openSelectAssembly" width="700">
+      <SelectAssembly @selectAssembly="selectAssembly"></SelectAssembly>
+      <template #footer>
+        <el-button @click="openSelectAssembly = false">关 闭</el-button>
+      </template>
+    </el-dialog>
+
+    <el-dialog title="包装配置" v-if="openViewPackaging" v-model="openViewPackaging" width="80%">
+      <div style="height: calc(100vh - 184px); overflow-y: auto; overflow-x: hidden">
+        <div style="font-weight: 700; margin: 20px 0 10px 0">发货包装</div>
+        <el-table :data="viewPackaging.data.orderPackageBomList" :row-style="{ height: '35px' }" header-row-class-name="tableHeader">
+          <el-table-column label="品号" prop="code" width="160" />
+          <el-table-column label="品名" prop="name" min-width="220" />
+          <el-table-column label="销售单价" prop="internalSellingPrice" width="100" />
+          <el-table-column label="成本单价" prop="costPrice" width="100" />
+          <el-table-column label="数量" prop="quantity" width="120" />
+          <el-table-column label="销售小计" width="120">
+            <template #default="{ row }">
+              {{ moneyFormat(computeMoney(row, "internalSellingPrice"), 2) }}
+            </template>
+          </el-table-column>
+          <el-table-column label="成本小计" width="120">
+            <template #default="{ row }">
+              {{ moneyFormat(computeMoney(row, "costPrice"), 2) }}
+            </template>
+          </el-table-column>
+        </el-table>
+        <div style="font-weight: 700; margin: 20px 0 10px 0">外箱不干胶图稿</div>
+        <div style="display: flex; width: 100%">
+          <div style="width: 80px; line-height: 32px">不干胶图片:</div>
+          <div style="width: calc(100% - 80px)">
+            <el-image
+              fit="scale-down"
+              style="width: 148px; height: 148px; margin-right: 10px; cursor: pointer"
+              v-if="viewPackaging.data.outerBoxSelfAdhesiveStickerFile && viewPackaging.data.outerBoxSelfAdhesiveStickerFile.fileUrl"
+              :src="viewPackaging.data.outerBoxSelfAdhesiveStickerFile.fileUrl"
+              @click="openFile(viewPackaging.data.outerBoxSelfAdhesiveStickerFile.fileUrl)" />
+          </div>
+        </div>
+      </div>
+      <template #footer>
+        <el-button @click="openViewPackaging = false">关 闭</el-button>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
 <script setup>
 import useTagsViewStore from "/src/store/modules/tagsView.js";
 import { useRouter, useRoute } from "vue-router";
-import { ElMessage } from "element-plus";
+import { ElMessage, ElMessageBox } from "element-plus";
 // 申购单
 import Subscribe from "/src/components/process/subscribe";
 // 采购合同
@@ -112,6 +277,8 @@ import Purchase from "/src/components/process/purchase";
 // 新建订单
 import Order from "/src/components/process/order";
 import refreshStore from "/src/store/modules/refresh";
+import SelectBOM from "/src/views/group/BOM/management/index";
+import SelectAssembly from "/src/components/selectAssembly/index";
 
 const typeName = ref({
   10: "(审批)",
@@ -194,37 +361,18 @@ const handleSubmit = async (_type) => {
     if (flag) {
       flowFormDom.value.validate((valid) => {
         if (valid) {
-          const data = { ...proxy.$refs.makeDom.getFormData() };
-          if (queryData.query.processType == "10" || queryData.query.processType == "30") {
-            if (_type && _type == 1) {
-              proxy
-                .post("/flowExample/setStartData", {
-                  exampleId: queryData.query.flowId,
-                  startData: data,
-                })
-                .then();
-            }
-            proxy
-              .post("/flowProcess/jump", {
-                ...flowForm,
-                data,
-                handleType: _type,
-                version: queryData.query.version,
-                flowId: queryData.query.flowId,
+          if (queryData.query.flowKey == "order") {
+            ElMessageBox.confirm("请确认包装配置", "提示", {
+              confirmButtonText: "确定",
+              cancelButtonText: "取消",
+              type: "warning",
+            })
+              .then(() => {
+                processSubmit(_type);
               })
-              .then((res) => {
-                handleResult(res);
-              });
-            return;
+              .catch(() => {});
           } else {
-            proxy
-              .post("/flowProcess/initiate", {
-                ...flowForm,
-                data,
-              })
-              .then((res) => {
-                handleResult(res);
-              });
+            processSubmit(_type);
           }
         }
       });
@@ -233,6 +381,32 @@ const handleSubmit = async (_type) => {
     console.log("数据未填完整!", err);
   }
 };
+const processSubmit = (_type) => {
+  const data = { ...proxy.$refs.makeDom.getFormData() };
+  if (queryData.query.processType == "10" || queryData.query.processType == "30") {
+    proxy
+      .post("/flowProcess/jump", {
+        ...flowForm,
+        data,
+        handleType: _type,
+        version: queryData.query.version,
+        flowId: queryData.query.flowId,
+      })
+      .then((res) => {
+        handleResult(res);
+      });
+    return;
+  } else {
+    proxy
+      .post("/flowProcess/initiate", {
+        ...flowForm,
+        data,
+      })
+      .then((res) => {
+        handleResult(res);
+      });
+  }
+};
 // 页面跳转
 const skipPage = () => {
   const useTagsStore = useTagsViewStore();
@@ -321,7 +495,7 @@ onMounted(() => {
   if (route.query) {
     queryData.query = route.query;
   }
-  //processType 10 为修改 20为查看 30回退发起 40为草稿修改
+  //processType 10 为审批 20为查看 30回退发起 40为草稿修改
   flowForm.flowKey = queryData.query.flowKey;
   flowForm.tenantType = queryData.query.tenantType;
   if (queryData.query.random) {
@@ -350,6 +524,172 @@ const drawer = ref(false);
 const clickRecords = () => {
   drawer.value = true;
 };
+const formShippingPackage = reactive({
+  data: {
+    assemblyName: "",
+    orderPackageBomList: [],
+    outerBoxSelfAdhesiveStickerFile: {},
+  },
+});
+const rulesShippingPackage = ref({
+  quantity: [{ required: true, message: "请输入数量", trigger: "blur" }],
+});
+const openShippingPackage = ref(false);
+const handlePackagingConfiguration = () => {
+  let orderData = proxy.$refs.makeDom.getFormData();
+  if (orderData.orderPackageBomList && orderData.orderPackageBomList.length > 0) {
+    formShippingPackage.data.orderPackageBomList = orderData.orderPackageBomList;
+  } else {
+    formShippingPackage.data.orderPackageBomList = [];
+  }
+  if (orderData.outerBoxSelfAdhesiveStickerFile) {
+    formShippingPackage.data.outerBoxSelfAdhesiveStickerFile = orderData.outerBoxSelfAdhesiveStickerFile;
+  } else {
+    formShippingPackage.data.outerBoxSelfAdhesiveStickerFile = {};
+  }
+  openShippingPackage.value = true;
+};
+const openExpressPacking = ref(false);
+const clickExpressPacking = () => {
+  openExpressPacking.value = true;
+};
+const selectExpressPacking = (data) => {
+  if (formShippingPackage.data.orderPackageBomList && formShippingPackage.data.orderPackageBomList.length > 0) {
+    let list = formShippingPackage.data.orderPackageBomList.filter((item) => item.bomSpecId === data.id);
+    if (list && list.length > 0) {
+      return ElMessage("快递物流包材已添加");
+    }
+    formShippingPackage.data.orderPackageBomList.push({
+      bomSpecId: data.id,
+      code: data.code,
+      name: data.name,
+      costPrice: data.costPrice,
+      internalSellingPrice: data.internalSellingPrice,
+      quantity: undefined,
+    });
+  } else {
+    formShippingPackage.data.orderPackageBomList = [
+      {
+        bomSpecId: data.id,
+        code: data.code,
+        name: data.name,
+        costPrice: data.costPrice,
+        internalSellingPrice: data.internalSellingPrice,
+        quantity: undefined,
+      },
+    ];
+  }
+  ElMessage({ message: "添加成功", type: "success" });
+};
+const computeMoney = (item, label) => {
+  let money = 0;
+  if (item.quantity && item[label]) {
+    money = Number(Math.round(item.quantity * item[label] * 100) / 100);
+  }
+  return money;
+};
+const clickDelete = (index) => {
+  formShippingPackage.data.orderPackageBomList.splice(index, 1);
+};
+const uploadAdhesiveData = ref({});
+const uploadAdhesiveFile = async (file) => {
+  const res = await proxy.post("/fileInfo/getSing", { fileName: file.name });
+  uploadAdhesiveData.value = res.uploadBody;
+  file.id = res.id;
+  file.fileName = res.fileName;
+  file.fileUrl = res.fileUrl;
+  return true;
+};
+const handleAdhesiveSuccess = (UploadFile) => {
+  formShippingPackage.data.outerBoxSelfAdhesiveStickerFile = {
+    id: UploadFile.raw.id,
+    fileName: UploadFile.raw.fileName,
+    fileUrl: UploadFile.raw.fileUrl,
+  };
+};
+const openFile = (path) => {
+  window.open(path);
+};
+const openAssembly = ref(false);
+const rulesAssembly = ref({
+  assemblyName: [{ required: true, message: "请输入组合名称", trigger: "blur" }],
+});
+const clickSaveAssembly = () => {
+  if (formShippingPackage.data.orderPackageBomList && formShippingPackage.data.orderPackageBomList.length > 0) {
+    formShippingPackage.data.assemblyName = "";
+    openAssembly.value = true;
+  } else {
+    return ElMessage("请添加快递物流包材");
+  }
+};
+const submitAssembly = () => {
+  proxy.$refs.assembly.validate((valid) => {
+    if (valid) {
+      proxy
+        .post("/packagingAssembly/add", { name: formShippingPackage.data.assemblyName, packagingAssemblyBomList: formShippingPackage.data.orderPackageBomList })
+        .then(() => {
+          ElMessage({ message: "保存成功!", type: "success" });
+          openAssembly.value = false;
+        });
+    }
+  });
+};
+const openSelectAssembly = ref(false);
+const clickSelectAssembly = () => {
+  openSelectAssembly.value = true;
+};
+const selectAssembly = (item) => {
+  if (item.id) {
+    proxy.post("/packagingAssembly/getPackagingBomList", { id: item.id }).then((res) => {
+      if (res && res.length > 0) {
+        formShippingPackage.data.orderPackageBomList = res.map((resItem) => {
+          return {
+            bomSpecId: resItem.id,
+            code: resItem.code,
+            name: resItem.name,
+            costPrice: resItem.costPrice,
+            internalSellingPrice: resItem.internalSellingPrice,
+            quantity: undefined,
+          };
+        });
+      }
+      ElMessage({ message: "选择完成", type: "success" });
+      openSelectAssembly.value = false;
+    });
+  } else {
+    return ElMessage("选择失败,请重新选择");
+  }
+};
+const clickSaveShippingPackage = () => {
+  proxy.$refs.shippingPackage.validate((valid) => {
+    if (valid) {
+      proxy.$refs.makeDom.saveShippingPackage(formShippingPackage.data);
+      ElMessage({ message: "保存完成", type: "success" });
+      openShippingPackage.value = false;
+    }
+  });
+};
+const viewPackaging = reactive({
+  data: {
+    orderPackageBomList: [],
+    outerBoxSelfAdhesiveStickerFile: {},
+  },
+});
+const openViewPackaging = ref(false);
+const clickViewPackaging = () => {
+  let orderData = proxy.$refs.makeDom.getFormData();
+  if (orderData.orderPackageBomList && orderData.orderPackageBomList.length > 0) {
+    viewPackaging.data.orderPackageBomList = orderData.orderPackageBomList;
+  } else {
+    viewPackaging.data.orderPackageBomList = [];
+  }
+  if (orderData.outerBoxSelfAdhesiveStickerFile) {
+    viewPackaging.data.outerBoxSelfAdhesiveStickerFile = orderData.outerBoxSelfAdhesiveStickerFile;
+  } else {
+    viewPackaging.data.outerBoxSelfAdhesiveStickerFile = {};
+  }
+  openViewPackaging.value = true;
+};
 </script>
 <style lang="scss" scoped>
 .processApproval {
@@ -504,4 +844,16 @@ const clickRecords = () => {
 ::v-deep(.el-drawer) {
   width: 400px !important;
 }
+:deep(.el-dialog) {
+  margin-top: 10px !important;
+  margin-bottom: 10px !important;
+}
+::v-deep(.el-input-number .el-input__inner) {
+  text-align: left;
+}
+.shippingPackage {
+  .el-form-item {
+    margin-bottom: 0;
+  }
+}
 </style>

+ 1 - 1
src/views/subsidiary/order/management/index.vue

@@ -402,7 +402,7 @@ const clickCode = (row) => {
     path: "/platform_manage/process/processApproval",
     query: {
       flowKey: "order",
-      flowName: "新建订单流程",
+      flowName: "订单详情",
       processType: "20",
       id: row.id,
       flowId: row.flowId,