瀏覽代碼

添加图片上传,延期操作

yangg 1 年之前
父節點
當前提交
15769df796

+ 10 - 0
manager-admin/src/api/order.js

@@ -284,3 +284,13 @@ export function getSendOrderDetail(order_id) {
     loading: false
   })
 }
+/* 订单延期/admin/erp/order/extension/{orderId} */
+export function extension(id,param) {
+  return request({
+    url: `/admin/erp/order/extension/${id}`,
+    method: 'post',
+    headers: { 'Content-Type': 'application/json' },
+    data:param
+  })
+}
+

+ 11 - 0
manager-admin/src/components/UploadSortIcon/index.js

@@ -0,0 +1,11 @@
+/**
+ * 商品规格选择器
+ */
+import Vue from 'vue'
+import UploadSortIcon from './src/main'
+
+UploadSortIcon.install = function() {
+  Vue.component(UploadSortIcon.name, UploadSortIcon)
+}
+
+export default UploadSortIcon

+ 12 - 0
manager-admin/src/components/UploadSortIcon/src/index.scss

@@ -0,0 +1,12 @@
+.upload-queue{
+  .el-upload-list__item:hover{
+    .el-upload-list__item-actions{
+      display: block;
+      opacity: 1;
+    }
+  }
+
+  .el-upload--picture-card .el-upload--text{
+    width: 100%;
+  }
+}

+ 175 - 0
manager-admin/src/components/UploadSortIcon/src/main.vue

@@ -0,0 +1,175 @@
+<template>
+  <div class="upload-queue" @change="updateList(goods_gallery_list)">
+    <draggable v-model="goods_gallery_list" @start="drag=true" @end="drag=false"
+      class="el-upload-list el-upload-list--picture-card" style="display: inline">
+      <div class="el-upload-list__item" v-for="(item, index) in goods_gallery_list" :key="index">
+      <img :src="item.original" class="el-upload-list__item-thumbnail">
+      <span class="el-upload-list__item-actions">
+        <span class="el-upload-list__item-preview" @click="handlePreview(item.url)">
+          <i class="el-icon-zoom-in"></i>
+        </span>
+        <span class="el-upload-list__item-delete" @click="handleDraggableRemove(item, index)">
+          <i class="el-icon-delete"></i>
+        </span>
+      </span>
+      </div>
+    </draggable>
+    <el-upload
+      style="display: inline"
+      class="avatar-uploader goods-images"
+      :action="`${MixinUploadIconApi}?scene=goods`"
+      :show-file-list='false'
+      list-type="picture-card"
+      :multiple='true'
+      :file-list="goods_gallery_list"
+      :on-preview="handlePictureCardPreview"
+      :before-upload="beforeAvatarUpload"
+      :on-remove="handleRemove"
+      :on-error="handleError"
+      :on-success="handleSuccess">
+      <i class="el-icon-plus avatar-uploader-icon"></i>
+      <div slot="tip" class="el-upload__tip" style="margin-top: -5px">上传后图片会自动压缩</div>
+    </el-upload>
+    <el-dialog :visible.sync="dialogVisible">
+      <img width="100%" :src="dialogImageUrl">
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import draggable from 'vuedraggable'
+  export default {
+    name: 'UploadSortIcon',
+    components: { draggable },
+    props: {
+      max: {
+        type: Number,
+        default: 15
+      },
+      goodsGalleryList: {
+        type: Array,
+        default: () => []
+      },
+      param: {
+        type: String,
+        default: ''
+      }
+    },
+    data() {
+      return {
+        drag: false,
+        dragOptions: {
+          animation: 200,
+          group: 'description',
+          disabled: false,
+          ghostClass: 'ghost'
+        },
+        /** 用来校验的商品相册 */
+        goods_gallery: [],
+        dialogImageUrl: '',
+        dialogVisible: false
+      }
+    },
+
+    computed: {
+      goods_gallery_list: {
+        get() {
+          return this.goodsGalleryList
+        },
+        set(val) {
+          this.updateList(val)
+        }
+      }
+    },
+
+    methods: {
+      updateList(list) {
+        this.$emit('change', list)
+      },
+
+      /** 点击已上传的文件链接时的钩子 放大 */
+      handlePictureCardPreview(file) {
+        this.dialogImageUrl = file.url
+        this.dialogVisible = true
+      },
+
+      /** 图片上传之前的校验  */
+      beforeAvatarUpload(file) {
+        const isType = file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png'
+        const isLt1M = file.size / 1024 / 1024 < 1
+
+        if (!isType) {
+          this.$message.error('上传图片只能是 JPG/JPEG/PNG 格式!')
+        }
+        if (!isLt1M) {
+          this.$message.error('上传商品相册图片大小不能超过 1MB!')
+        }
+
+        /** 重复校验*/
+        const isExit = this.goods_gallery_list.some(key => {
+          return file.name === key.name
+        })
+        if (isExit) {
+          this.$message.error('图片已存在')
+        }
+
+        return isType && isLt1M && !isExit
+      },
+
+      /** 文件列表上传成功时的钩子  上传成功校验 */
+      async handleSuccess(response, file, fileList) {
+         console.log(fileList);
+        if (fileList.every(item => item.status === 'success')) {
+          fileList.map(item => {
+           
+            if (item.response) {
+              this.goods_gallery_list.push({
+                img_id: -1,
+                original: item.response.url,
+                url: item.response.url,
+                sort: 0,
+                name: item.response.name
+              })
+              this.$emit('change', this.goods_gallery_list)
+            }
+          })
+        }
+      },
+
+      handleError() {
+        this.$message.error('上传失败!')
+      },
+
+      handleDraggableRemove(file, index) {
+        this.goods_gallery_list.splice(index, 1)
+        this.$emit('change', this.goods_gallery_list)
+      },
+
+      handleRemove(file, fileList) {
+        this.goods_gallery_list.forEach((key, index) => {
+          if (key.img_id !== -1) {
+            if (key.img_id === file.img_id) {
+              this.goods_gallery_list.splice(index, 1)
+            }
+          } else {
+            if (key.name === file.response.name) {
+              this.goods_gallery_list.splice(index, 1)
+            }
+          }
+        })
+        if (fileList.length <= 0) {
+          this.goods_gallery_list = []
+        }
+      },
+
+      handlePreview(url) {
+        this.dialogImageUrl = url
+        this.dialogVisible = true
+      }
+    }
+  }
+</script>
+
+<style lang="scss">
+  @import './index.scss';
+</style>

+ 2 - 0
manager-admin/src/components/UploadSortable/src/main.vue

@@ -118,8 +118,10 @@
 
       /** 文件列表上传成功时的钩子  上传成功校验 */
       async handleSuccess(response, file, fileList) {
+         console.log(fileList);
         if (fileList.every(item => item.status === 'success')) {
           fileList.map(item => {
+           
             if (item.response) {
               this.goods_gallery_list.push({
                 img_id: -1,

+ 5 - 2
manager-admin/src/components/index.js

@@ -1,8 +1,10 @@
 import UploadSortable from './UploadSortable'
+import UploadSortIcon from './UploadSortIcon'
 import UE from './UE'
 const components = {
   UploadSortable,
-  UE
+  UE,
+  UploadSortIcon
 }
 
 components.install = function(Vue) {
@@ -15,5 +17,6 @@ export default components
 
 export {
   UploadSortable,
-  UE
+  UE,
+  UploadSortIcon
 }

+ 2 - 0
manager-admin/src/utils/mixin.js

@@ -11,6 +11,8 @@ import request from './request'
 export default {
   data() {
     return {
+      // 图标上传API
+      MixinUploadIconApi: api.admin + '/uploaders/uploadSmall',
       // 图片上传API
       MixinUploadApi: api.admin + '/uploaders',
       // 地区API

+ 11 - 0
manager-admin/src/views/basicSetting/goods/editForm/BasicInfo.vue

@@ -87,6 +87,9 @@
       <el-form-item label="商品图片" prop="image_list" :rules="formRules.image_list">
         <upload-sortable :goodsGalleryList="formData.image_list" @change="handlePictureChange"/>
       </el-form-item>
+      <el-form-item label="商品图标" prop="image_list" :rules="formRules.image_small">
+        <UploadSortIcon :goodsGalleryList="formData.image_small_list" @change="handlePictureIconChange"/>
+      </el-form-item>
       <el-form-item label="商品视频" prop="video">
         <div v-if="formData.video" class="video">
           <video :src="formData.video" class="video-play" controls="controls">
@@ -260,6 +263,14 @@ export default {
       })   this.formData.images = url.join(',') */
       this.formData.image_list=fileList
 
+    },
+     /** 商品图片发生改变 */
+     handlePictureIconChange(fileList) {
+      /* let url=fileList.map(el=>{
+        return el.url
+      })   this.formData.images = url.join(',') */
+      this.formData.image_small_list=fileList
+
     },
     /** 视频上传效验 */
     beforeUploadVideo(file) {

+ 3 - 2
manager-admin/src/views/stock/goodsLend.vue

@@ -197,7 +197,8 @@
         <div class="tips-t" v-for="(item, index) in codeList" :key="index">
           <div>
             <!-- <div class="qrcode-pic" ref="codeItem" ></div> -->
-            <h1
+            <barcode :value="item"  format="CODE128" fontSize="20"></barcode>
+           <!--  <h1
               class="qrcode-title"
               style="
                 margin-top: 20px;
@@ -207,7 +208,7 @@
               "
             >
               {{ item }}
-            </h1>
+            </h1> -->
           </div>
         </div>
       </div>

+ 17 - 12
manager-admin/src/views/stock/order.vue

@@ -173,10 +173,15 @@
             {{ typeName(scope.row.status) }}
           </template>
         </el-table-column>
-        <!-- <el-table-column prop="status" label="订单状态">
-          <template slot-scope="scope">{{ scope.row.payment_status_text }}</template>
-        </el-table-column> -->
-        <el-table-column label="操作" width="250">
+        <el-table-column label="延期次数">
+          <template slot-scope="scope">
+            {{ scope.row.extension }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="status" label="订单类型">
+          <template slot-scope="scope">{{ scope.row.type=='TO_B'?'销售订单':'租赁订单' }}</template>
+        </el-table-column>
+        <el-table-column label="操作" width="300">
           <template slot-scope="scope">
             <el-button size="mini" @click="handleAudit(scope.row)"
               >查看</el-button
@@ -188,14 +193,15 @@
               @click="handleSubmit(scope.row.id)"
               >确认</el-button
             >
-            <!-- <el-button size="mini" type="danger" v-if="scope.row.allowable.withdraw && checkPermission(['order:withdraw'])"
-                       @click="handleWithdraw(scope.row.id)">撤回</el-button> -->
+            
             <el-button
               size="mini"
               @click="handleEdit(scope.row)"
               v-if="scope.row.status === 'TO_BE_COMMIT'"
               >编辑</el-button
             >
+            <el-button size="mini" type="danger" v-if="scope.row.type === 'TO_C'"
+                       @click="handleWithdraw(scope.row.id)">延期</el-button>
             <!-- <el-button size="mini" type="primary" v-if="scope.row.allowable.payment && checkPermission(['order:payment'])"
                        @click="handlePayment(scope.row.id)">设为已支付</el-button> -->
           </template>
@@ -478,13 +484,12 @@ export default {
       // 刷新列表
       this.GET_OrderList();
     },
-    /** 撤回订单 */
+    /** 延期 */
     async handleWithdraw(id) {
-      // 发起修改
-      await API_order.withdraw(id);
-      this.$message.success("操作成功!");
-      // 刷新列表
-      this.GET_OrderList();
+      this.$router.push({
+        name: "orderEdit",
+        params: { id: id,type:'pone' },
+      });
     },
 
     GET_OrderList() {

+ 183 - 364
manager-admin/src/views/stock/orderAdd.vue

@@ -1,40 +1,26 @@
 <template>
   <div class="bg-in-stock" ref="printId">
-   <!--  <h2 v-if="barcodeValue">订单编号</h2> -->
-    <div class="numOrder" v-if="barcodeValue">
+    <!--  <h2 v-if="barcodeValue">订单编号</h2> -->
+    <div class="numOrder" v-if="barcodeValue &&type !=='pone'">
       <barcode :value="barcodeValue"></barcode>
     </div>
-    <el-form
-      ref="orderFormRef"
-      :rules="rules"
-      :model="OrderForm"
-      label-width="120px"
-      inline
-      :disabled="isDetail"
-    >
+    <el-form ref="orderFormRef" :rules="rules" :model="OrderForm" label-width="120px" inline :disabled="isDetail">
       <h3>基本信息</h3>
       <el-row>
         <el-col :span="10">
           <el-form-item label="订单类型" prop="type" :rules="rules.type">
             <!-- @change="cleanGoodsList" -->
-            <el-select v-model="OrderForm.type" clearable>
-              <el-option
-                v-for="(item, index) in orderTypeList"
-                :key="index"
-                :label="item.label"
-                :value="item.value"
-              />
+            <el-select v-model="OrderForm.type" clearable :disabled="type=='pone'">
+              <el-option v-for="(item, index) in orderTypeList" :key="index" :label="item.label" :value="item.value" />
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="10">
-          <el-form-item
-            label="租赁时间"
-            prop="time"
-            :rules="rules.time"
-            v-if="OrderForm.type == 'TO_C'"
-          >
-            <!--  -->
+          <el-form-item label="起始时间" prop="time" :rules="rules.start_time" v-if="OrderForm.type == 'TO_C'" >
+            <el-date-picker v-model="OrderForm.start_time" type="datetime" placeholder="选择日期时间" :disabled="type=='pone'"
+              :picker-options="pickerOptions" value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+            <!--  
             <el-date-picker
               v-model="time"
               type="daterange"
@@ -62,125 +48,62 @@
                 shortcuts: MixinPickerShortcuts,
               }"
             >
-            </el-date-picker>
+            </el-date-picker>-->
           </el-form-item>
         </el-col>
         <el-col :span="10">
-          <el-form-item
-            label="下单客户"
-            prop="member_id"
-            :rules="rules.member_id"
-          >
-            <el-select v-model="OrderForm.member_id" clearable>
-              <el-option
-                v-for="item in customerList"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
-              />
+          <el-form-item label="下单客户" prop="member_id" :rules="rules.member_id" >
+            <el-select v-model="OrderForm.member_id" clearable :disabled="type=='pone'">
+              <el-option v-for="item in customerList" :key="item.id" :label="item.name" :value="item.id" />
             </el-select>
-            <el-button type="primary" @click="addCust">新增客户</el-button>
+            <el-button type="primary" v-if="type!=='pone'" @click="addCust">新增客户</el-button>
           </el-form-item>
         </el-col>
         <el-col :span="10">
-          <el-form-item
-            label="付款方式"
-            prop="pay_type"
-            :rules="rules.pay_type"
-          >
-            <el-select v-model="OrderForm.pay_type" clearable>
-              <el-option
-                v-for="item in collectingAccountList"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
-              />
+          <el-form-item label="付款方式" prop="pay_type" :rules="rules.pay_type" >
+            <el-select v-model="OrderForm.pay_type" clearable :disabled="type=='pone'">
+              <el-option v-for="item in collectingAccountList" :key="item.id" :label="item.name" :value="item.id" />
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="10">
-          <el-form-item
-            label="应付金额:"
-            prop="pay_price"
-            :rules="rules.pay_price"
-          >
+          <el-form-item label="应付金额:" prop="pay_price" :rules="rules.pay_price">
             <span>{{ "¥" + price }}</span>
           </el-form-item>
         </el-col>
         <el-col :span="10">
-          <el-form-item
-            label="实付金额:"
-            prop="pay_price"
-            :rules="rules.pay_price"
-          >
-          <!-- @input="validateNumber" -->
-            <span
-              >折扣:<el-input
-                placeholder="请输入"
-                v-model="discount"
-                @blur="handleBlur"
-                style="width: 70px"
-              ></el-input>
+          <el-form-item label="实付金额:" prop="pay_price" :rules="rules.pay_price">
+            <!-- @input="validateNumber" -->
+            <span>折扣:<el-input placeholder="请输入" v-model="discount" @blur="handleBlur" style="width: 70px" :disabled="type=='pone'"></el-input>
             </span>
             <span>折后金额:</span>
-            <el-input
-              v-model="OrderForm.real_price"
-              placeholder="请输入"
-            ></el-input>
+            <el-input v-model="OrderForm.real_price" placeholder="请输入" :disabled="type=='pone'"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="10">
           <el-form-item label="销售人员" :rules="rules.marketing_id">
-            <el-select v-model="OrderForm.marketing_id" clearable>
-              <el-option
-                v-for="item in marketingList"
-                :key="item.id"
-                :label="item.real_name"
-                :value="item.id"
-              />
+            <el-select v-model="OrderForm.marketing_id" clearable :disabled="type=='pone'">
+              <el-option v-for="item in marketingList" :key="item.id" :label="item.real_name" :value="item.id" />
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="10">
-          <el-form-item
-            label="配送方式"
-            prop="send_type"
-            :rules="rules.send_type"
-          >
-            <el-select v-model="OrderForm.send_type" clearable>
-              <el-option
-                v-for="item in deliveryTypeList"
-                :key="item.code"
-                :label="item.name"
-                :value="item.code"
-              />
+          <el-form-item label="配送方式" prop="send_type" :rules="rules.send_type" >
+            <el-select v-model="OrderForm.send_type" clearable :disabled="type=='pone'">
+              <el-option v-for="item in deliveryTypeList" :key="item.code" :label="item.name" :value="item.code" />
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="10">
-          <el-form-item
-            label="配送仓库"
-            prop="warehouse_id"
-            :rules="rules.warehouse_id"
-          >
+          <el-form-item label="配送仓库" prop="warehouse_id" :rules="rules.warehouse_id" >
             <!-- <el-cascader v-model="OrderForm.dept_id" :options="deptList" :props="{
             label: 'name',
             value: 'id',
             emitPath: false,
             checkStrictly: true
           }" clearable></el-cascader> -->
-            <el-select
-              @change="cleanGoodsList"
-              v-model="OrderForm.warehouse_id"
-              multiple
-              clearable
-            >
-              <el-option
-                v-for="item in warehouseList"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
-              />
+            <el-select @change="cleanGoodsList" v-model="OrderForm.warehouse_id" multiple clearable :disabled="type=='pone'">
+              <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id" />
             </el-select>
           </el-form-item>
         </el-col>
@@ -194,38 +117,23 @@
                 :value="item.id"
               />
             </el-select> -->
-            <el-cascader
-              size="large"
-              :options="options"
-              clearable
-              v-model="selectedOptions"
-              @change="handleChange"
-            >
+            <el-cascader size="large" :options="options" clearable v-model="selectedOptions" @change="handleChange" :disabled="type=='pone'">
             </el-cascader>
-            <el-input
-              v-model="OrderForm.address"
-              placeholder="请输入"
-            ></el-input>
+            <el-input v-model="OrderForm.address" placeholder="请输入" :disabled="type=='pone'"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="10">
-          <el-form-item
-            label="允许负库存"
-          >
-          <el-radio-group v-model="OrderForm.subtract_stock">
-            <el-radio :label="false">禁止</el-radio>
-            <el-radio :label="true">允许</el-radio>
-          </el-radio-group>
+          <el-form-item label="允许负库存">
+            <el-radio-group v-model="OrderForm.subtract_stock" :disabled="type=='pone'">
+              <el-radio :label="false">禁止</el-radio>
+              <el-radio :label="true">允许</el-radio>
+            </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="10">
           <div class="redClass">
-            <el-form-item label="备注" prop="remark">
-              <el-input
-                v-model="OrderForm.remark"
-                type="textarea"
-                :autosize="{ minRows: 2 }"
-              ></el-input>
+            <el-form-item label="备注" prop="remark" >
+              <el-input v-model="OrderForm.remark" type="textarea" :autosize="{ minRows: 2 }" :disabled="type=='pone'"></el-input>
             </el-form-item>
           </div>
         </el-col>
@@ -233,25 +141,18 @@
       <div style="margin-bottom: 10px">
         <h3>商品明细</h3>
         <div v-if="!isDetail">
-          <el-button
-            class="button"
-            size="mini"
-            type="primary"
-            @click="handleSelectGoods"
-            >手动选择</el-button
-          >
+          <el-button class="button" size="mini" type="primary" @click="handleSelectGoods">手动选择</el-button>
         </div>
       </div>
       <div style="display: block">
-        <el-table
-          :data="OrderForm.product_list"
-          border
-          :cell-style="{ textAlign: 'center' }"
-          @selection-change="handleSelectionChange"
-          :header-cell-style="{ textAlign: 'center' }"
-          style="width: 95%"
-        >
+        <el-table :data="OrderForm.product_list" border :cell-style="{ textAlign: 'center' }"
+          @selection-change="handleSelectionChange" :header-cell-style="{ textAlign: 'center' }" style="width: 95%">
           <el-table-column type="selection" width="40" align="center" />
+          <el-table-column label="图标">
+            <template slot-scope="scope">
+             <img :src="scope.row.goods_vo.image_small_list[0].original" alt="" width="50px">
+            </template>
+          </el-table-column>
           <el-table-column label="仓库名称">
             <template slot-scope="scope">
               {{ warehouseName(scope.row.warehouse_id) }}
@@ -293,12 +194,7 @@
           </el-table-column>
           <el-table-column label="订单数量">
             <template slot-scope="scope">
-              <el-input
-                v-model="scope.row.num"
-                type="number"
-                :min="0"
-                :maxlength="20"
-              ></el-input>
+              <el-input v-model="scope.row.num" type="number" :min="0" :maxlength="20"></el-input>
             </template>
           </el-table-column>
           <el-table-column label="库存数量">
@@ -306,12 +202,19 @@
               {{ scope.row.usable_stock }}
             </template>
           </el-table-column>
-          <el-table-column label="差异">
+          <el-table-column label="结束时间" width="200" v-if="OrderForm.type == 'TO_C'">
+            <template slot-scope="scope">
+              <el-date-picker style="width: 170px;" v-model="scope.row.end_time" type="datetime" placeholder="选择日期时间"
+                :picker-options="pickerOptionsEnd" value-format="yyyy-MM-dd HH:mm:ss">
+              </el-date-picker>
+            </template>
+          </el-table-column>
+          <!-- <el-table-column label="差异">
             <template slot-scope="scope">
               {{ scope.row.usable_stock - scope.row.num || 0 }}
             </template>
           </el-table-column>
-          <!-- <el-table-column label="数量">
+           <el-table-column label="数量">
           <template slot-scope="scope">
             <el-form-item v-if="!isDetail" :prop="'product_list.'+scope.$index+'.num'" :rules="rules.product_list.num" class="tableFormItem">
               <el-input v-model="scope.row.num" :maxlength="20" :minlength="1"></el-input>
@@ -364,13 +267,9 @@
             <span v-else>{{ scope.row.remark }}</span>
           </template>
         </el-table-column> -->
-          <el-table-column label="操作" v-if="!isDetail">
+          <el-table-column label="操作" v-if="!isDetail&& type!=='pone'">
             <template slot-scope="scope">
-              <el-button
-                size="mini"
-                type="danger"
-                @click="OrderForm.product_list.splice(scope.$index, 1)"
-                >删除
+              <el-button size="mini" type="danger" @click="OrderForm.product_list.splice(scope.$index, 1)">删除
               </el-button>
             </template>
           </el-table-column>
@@ -421,97 +320,42 @@
       </el-table>
     </div> -->
       <div class="footer">
-        <el-button
-          type="primary"
-          @click="submitOrderForm"
-          v-if="!isDetail"
-          :loading="formLoading"
-          >保存</el-button
-        >
-        <el-button
-          type="primary"
-          @click="saveSubmitOrderForm"
-          v-if="!isDetail"
-          :loading="formLoading"
-          >确认并保存</el-button
-        >
+        <el-button type="primary" @click="submit" v-if="!isDetail&&type=='pone'" :loading="formLoading">确认</el-button>
+        <el-button type="primary" @click="submitOrderForm" v-if="!isDetail&&type!=='pone'" :loading="formLoading">保存</el-button>
+        <el-button type="primary" @click="saveSubmitOrderForm" v-if="!isDetail&&type!=='pone'" :loading="formLoading">确认并保存</el-button>
         <el-button @click="printIng" :disabled="false" v-if="isDetail">打印</el-button>
         <!-- <el-button type="primary" :disabled="false" @click="handleAudit(true)" v-if="isDetail && checkPermission(['order:audit']) && OrderForm.allowable.audit">审核通过</el-button>
       <el-button type="danger" :disabled="false" @click="handleAudit(false)" v-if="isDetail && checkPermission(['order:audit']) && OrderForm.allowable.audit">审核驳回</el-button> -->
         <el-button @click="roBack()" :disabled="false">返回</el-button>
       </div>
     </el-form>
-    <el-dialog
-      title="添加客户信息"
-      :visible.sync="customer.dialogVisible"
-      width="1100px"
-      @open="handleDialogOpen"
-      :modal-append-to-body="false"
-      :close-on-click-modal="false"
-      :close-on-press-escape="false"
-    >
-      <el-form
-        :model="customer.supplierForm"
-        :rules="customer.supplierRules"
-        ref="supplierForm"
-        label-width="120px"
-        inline
-      >
+    <el-dialog title="添加客户信息" :visible.sync="customer.dialogVisible" width="1100px" @open="handleDialogOpen"
+      :modal-append-to-body="false" :close-on-click-modal="false" :close-on-press-escape="false">
+      <el-form :model="customer.supplierForm" :rules="customer.supplierRules" ref="supplierForm" label-width="120px"
+        inline>
         <el-form-item label="公司名称" prop="name">
-          <el-input
-            v-model="customer.supplierForm.name"
-            :minlength="2"
-            :maxlength="20"
-            clearable
-            placeholder="请输入公司名称"
-          ></el-input>
+          <el-input v-model="customer.supplierForm.name" :minlength="2" :maxlength="20" clearable
+            placeholder="请输入公司名称"></el-input>
         </el-form-item>
         <el-form-item label="客户联系人" prop="contact ">
-          <el-input
-            v-model="customer.supplierForm.contact"
-            :minlength="2"
-            :maxlength="20"
-            clearable
-            placeholder="请输入客户联系人"
-          ></el-input>
+          <el-input v-model="customer.supplierForm.contact" :minlength="2" :maxlength="20" clearable
+            placeholder="请输入客户联系人"></el-input>
         </el-form-item>
         <el-form-item label="性别" prop="gender">
-          <el-radio v-model="customer.supplierForm.gender" label="男"
-            >男</el-radio
-          >
-          <el-radio v-model="customer.supplierForm.gender" label="女"
-            >女</el-radio
-          >
+          <el-radio v-model="customer.supplierForm.gender" label="男">男</el-radio>
+          <el-radio v-model="customer.supplierForm.gender" label="女">女</el-radio>
         </el-form-item>
         <el-form-item label="手机号码" prop="mobile">
-          <el-input
-            v-model="customer.supplierForm.mobile"
-            :minlength="2"
-            :maxlength="20"
-            clearable
-            placeholder="请输入手机号码"
-          ></el-input>
+          <el-input v-model="customer.supplierForm.mobile" :minlength="2" :maxlength="20" clearable
+            placeholder="请输入手机号码"></el-input>
         </el-form-item>
         <el-form-item label="邮件" prop="email">
-          <el-input
-            v-model="customer.supplierForm.email"
-            :minlength="2"
-            :maxlength="20"
-            clearable
-            placeholder="请输入电子邮件"
-          ></el-input>
+          <el-input v-model="customer.supplierForm.email" :minlength="2" :maxlength="20" clearable
+            placeholder="请输入电子邮件"></el-input>
         </el-form-item>
         <el-form-item label="客户类别" prop="type">
-          <el-select
-            v-model="customer.supplierForm.type"
-            placeholder="请选择客户类别"
-          >
-            <el-option
-              v-for="item in customer.options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
+          <el-select v-model="customer.supplierForm.type" placeholder="请选择客户类别">
+            <el-option v-for="item in customer.options" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
@@ -557,6 +401,7 @@ const initOrderForm = {
   send_type: "express",
   subtract_stock: false,
   payment_status: "NOT_PAY",
+  start_time: null,
 };
 
 export default {
@@ -591,7 +436,8 @@ export default {
         address: "",
         province_city_area_address: "",
         subtract_stock: false,
-        warehouse_id:[],
+        warehouse_id: [],
+        start_time: null,
       },
       formLoading: false,
       isDetail: undefined,
@@ -763,28 +609,29 @@ export default {
           ],
         },
         supplierForm: {},
-        options: [
-          /*  {
-              value: '全部',
-              label: '全部'
-            },{
-              value: '销售客户',
-              label: '销售客户'
-            }, {
-              value: '租赁客户',
-              label: '租赁客户'
-            }, */
-        ],
+        options: [],
       },
       //折扣
       discount: '',
+      pickerOptions: {
+        disabledDate(v) {
+          return v.getTime() < new Date().getTime() - 86400000;//  - 86400000是否包括当天
+        }
+      },
+      pickerOptionsEnd:{
+        disabledDate(time){
+          // 禁用所有在 start_time 之前的时间
+          return time.getTime() < new Date().getTime() ;
+        }
+      },
+      type:'',
     };
   },
   computed: {
-    ...mapGetters(["user"]),
+    ...mapGetters(["user"])
   },
   mounted() {
-    console.log(this.OrderForm);
+    this.type=this.$route.params.type
     this.GET_WarehouseList();
     this.GET_MemberList();
     this.GET_MarketingList();
@@ -801,18 +648,18 @@ export default {
         this.discount = ''; // 清空不符合条件的输入
       }
     },
-   /*  //折扣正则
-    handleInput(event) {
-      // 使用正则表达式来检查输入是否为1到10的整数或最多两位小数
-      const value = event.target.value;
-      const regex = /^(10|([1-9](\.\d{0,1})?))$/;
-      console.log(regex.test(value) || value === '');
-      if (regex.test(value) || value === '') {
-        this.discount = value;
-      } else {
-        event.target.value = this.discount;
-      }
-    }, */
+    /*  //折扣正则
+     handleInput(event) {
+       // 使用正则表达式来检查输入是否为1到10的整数或最多两位小数
+       const value = event.target.value;
+       const regex = /^(10|([1-9](\.\d{0,1})?))$/;
+       console.log(regex.test(value) || value === '');
+       if (regex.test(value) || value === '') {
+         this.discount = value;
+       } else {
+         event.target.value = this.discount;
+       }
+     }, */
     // 打印功能
     printIng() {
       // Print({
@@ -861,17 +708,17 @@ export default {
           console.error(err);
         });
     },
-  /*   validateNumber(){
-      const regex = '/^(?:[0-9]|10(?:\.0{1,2})?)$/';
-     return regex.test(this.discount)
-    }, */
+    /*   validateNumber(){
+        const regex = '/^(?:[0-9]|10(?:\.0{1,2})?)$/';
+       return regex.test(this.discount)
+      }, */
     //获取仓库名称
-    warehouseName(val){
-      let name=''
-      this.warehouseList.map(el=>{
-       if(el.id==val) {
-        return name=el.name
-       }
+    warehouseName(val) {
+      let name = ''
+      this.warehouseList.map(el => {
+        if (el.id == val) {
+          return name = el.name
+        }
       })
       return name
     },
@@ -934,7 +781,7 @@ export default {
           this.customerList = response.data;
           console.log(this.customerList);
         })
-        .catch(() => {});
+        .catch(() => { });
       API_Setting.getPage({ dictType: "order_type" }).then((res) => {
         this.orderTypeList = res.data;
       });
@@ -992,42 +839,25 @@ export default {
     },
     // 选择批次商品
     async handleSelectGoods() {
-      if(!this.OrderForm.type){
+      if (!this.OrderForm.type) {
         this.$message.error("请选择订单类型!");
         return
       }
-      if (this.OrderForm.warehouse_id.length==0) {
+      if (this.OrderForm.warehouse_id.length == 0) {
         this.$message.error("请选择仓库!");
         return;
       }
-      let warehouse_ids=this.OrderForm.warehouse_id.join(',')
+      let warehouse_ids = this.OrderForm.warehouse_id.join(',')
       console.log(this.OrderForm.warehouse_id);
       const goodsData = await this.$EnPickerGoods({
-        goodsApi:`/admin/erp/warehouseOut/getGoodByWarehouse/warehouseIdAndOrderType/${this.OrderForm.type}/${warehouse_ids}`,
-       // goodsApi: `/admin/erp/warehouseOut/getGoodByWarehouse/warehouseIdAndOrderType`,
+        goodsApi: `/admin/erp/warehouseOut/getGoodByWarehouse/warehouseIdAndOrderType/${this.OrderForm.type}/${warehouse_ids}`,
+        // goodsApi: `/admin/erp/warehouseOut/getGoodByWarehouse/warehouseIdAndOrderType`,
         selectedIds: this.OrderForm.product_list.map((item) => item.product_id),
         //goodsApiParams: { order_type: this.OrderForm.type,warehouse_ids:arr },
 
       });
 
       this.OrderForm.product_list = goodsData;
-      /* .map((item) => {
-        // 初始化字段,和订单的item字段名保持一致
-        item.product_id = item.id;
-        item.product_name = item.name;
-        item.product_sn = item.sn;
-        item.product_specification = item.specification;
-        item.product_unit = item.unit;
-        item.num = 0;
-        item.discount_price = 0;
-        // 原价(总)
-        item.total_price = 0;
-        // 税额(总)
-        item.tax_price = 0;
-        // 合计
-
-        return item;
-      }); */
     },
     /** 添加支付方式 */
     handleInsertPayment() {
@@ -1134,17 +964,6 @@ export default {
         return;
       }
       const { id } = this.OrderForm;
-      //设置时间
-      delete this.OrderForm.start_time;
-      delete this.OrderForm.end_time;
-      if (this.time && this.time.length >= 2) {
-        this.OrderForm.start_time = this.time[0];
-        this.OrderForm.end_time = this.time[1];
-      } else {
-          console.error("时间数组不完整:", this.time);
-          // 可以设置一些默认值或进行错误处理
-      }
-
       var loc = "";
       for (let i = 0; i < this.selectedOptions.length; i++) {
         loc += codeToText[this.selectedOptions[i]] + ",";
@@ -1161,7 +980,7 @@ export default {
         el.goods_id = el.id;
         el.id = "";
       });*/
-      params.price = this.price;
+      params.pay_price = this.price;
       params.real_price = Number(params.real_price);
       /*  params.product_list.map((el) => {
         return (el.product_id = el.id);
@@ -1202,13 +1021,13 @@ export default {
       }
       const { id } = this.OrderForm;
       //设置时间
-      delete this.OrderForm.start_time;
-      delete this.OrderForm.end_time;
-      if (this.time) {
-        this.OrderForm.start_time = this.time[0];
-        this.OrderForm.end_time = this.time[1];
-      }
-      delete this.time;
+      /*    delete this.OrderForm.start_time;
+         delete this.OrderForm.end_time;
+         if (this.time) {
+           this.OrderForm.start_time = this.time[0];
+           this.OrderForm.end_time = this.time[1];
+         }
+         delete this.time; */
       var loc = "";
       for (let i = 0; i < this.selectedOptions.length; i++) {
         loc += codeToText[this.selectedOptions[i]] + ",";
@@ -1220,7 +1039,7 @@ export default {
         el.id = "";
         return el;
       });
-      params.price = this.price;
+      params.pay_price = this.price;
       params.real_price = Number(params.real_price);
       params.item_list = params.product_list;
       /* params.product_list.map((el) => {
@@ -1257,6 +1076,36 @@ export default {
           });
       }
     },
+    //延期确定
+   async submit(){
+      // 校验商品明细数据
+      const valid = await this.$refs.orderFormRef
+        .validate()
+        .catch((err) => err);
+      if (valid !== true) {
+        this.$message.error("表单数据输入有误,请检查!");
+        return;
+      }
+      const { id } = this.OrderForm;
+      /* var loc = "";
+      for (let i = 0; i < this.selectedOptions.length; i++) {
+        loc += codeToText[this.selectedOptions[i]] + ",";
+      }
+      this.OrderForm.province_city_area_address = loc + this.OrderForm.address; */
+      const params = this.MixinClone(this.OrderForm);
+    /*   params.pay_price = this.price;
+      params.real_price = Number(params.real_price); */
+      params.item_list = params.product_list;
+      this.formLoading = true;
+      API_Order.extension(id, params)
+          .then((response) => {
+            this.$message.success("调整成功!");
+            this.backOrderList();
+          })
+          .finally(() => {
+            this.formLoading = false;
+          });
+    },
     /** 获取仓库 */
     GET_WarehouseList() {
       API_BasicSetting.getWarehouseListAll({}).then((response) => {
@@ -1293,48 +1142,11 @@ export default {
     GET_OrderDetail() {
       API_Order.getOrderDetail(this.id).then((response) => {
         /**/ this.price = response.price;
-        this.barcodeValue=response.sn
-        response.product_list = response.item_list.map(el=>{
-          el.good_vo=el.goods_vo
+        this.barcodeValue = response.sn
+        response.product_list = response.item_list.map(el => {
+          el.good_vo = el.goods_vo
           return el
-        }); /* .map((el) => {
-          el.allow_sn = el.good_vo.allow_sn;
-          el.bar_code = el.goods_vo.bar_code;
-          el.brand_id = el.goods_vo.brand_id;
-          el.brand_name = el.goods_vo.brand_name;
-          el.category_id = el.goods_vo.category_id;
-          el.category_ids = el.goods_vo.category_ids;
-          el.category_name = el.goods_vo.category_name;
-          el.cost_price = el.goods_vo.cost_price;
-          el.create_time = el.goods_vo.create_time;
-          el.creator = el.goods_vo.creator;
-          el.description = el.goods_vo.description;
-          el.en_name = el.goods_vo.en_name;
-          el.freight_template_id = el.goods_vo.freight_template_id;
-          el.goods_style = el.goods_vo.goods_style;
-          el.goods_unit = el.goods_vo.goods_unit;
-          el.goods_unit = el.goods_vo.goods_unit;
-          el.have_spec = el.goods_vo.have_spec;
-          el.hire_or_sail = el.goods_vo.hire_or_sail;
-          el.id = el.goods_vo.id;
-          el.image = el.goods_vo.image;
-          el.image_list = el.goods_vo.image_list;
-          el.label_names = el.goods_vo.label_names;
-          el.market_enable = el.goods_vo.market_enable;
-          el.mkt_price = el.goods_vo.mkt_price;
-          el.name = el.goods_vo.name;
-          el.params_list = el.goods_vo.params_list;
-          el.price = el.goods_vo.price;
-          el.sn = el.goods_vo.sn;
-          el.sn_code = el.goods_vo.sn_code;
-          el.sort = el.goods_vo.sort;
-          el.update_time = el.goods_vo.update_time;
-          el.updater = el.goods_vo.updater;
-          el.usable_stock = el.goods_vo.usable_stock;
-          el.video = el.goods_vo.video;
-          return el;
-        }); */
-
+        }); 
         this.selectedOptions = response.province_city_area.split(",");
         this.OrderForm = response;
         console.log(this.OrderForm.product_list);
@@ -1348,27 +1160,28 @@ export default {
           this.time.push(response.start_time);
           this.time.push(response.end_time);
         }
-        if (this.OrderForm.payment_time) {
+        /* if (this.OrderForm.payment_time) {
           this.OrderForm.payment_time = Math.floor(
             this.OrderForm.payment_time * 1000
           );
-        }
+        } */
       });
     },
   },
   computed: {
     price() {
       let total = 0;
-      if(!this.OrderForm.product_list) return
+      if (!this.OrderForm.product_list) return
       if (!this.id) {
         if (this.OrderForm.type == "TO_C") {
-          var start = new Date(this.time[1]); // 将起始日期字符串转换为Date对象
-          var end = new Date(this.time[0]); // 将结束日期字符串转换为Date对象
+          var start = new Date(this.OrderForm.start_time); // 将起始日期字符串转换为Date对象
+          this.OrderForm.product_list.map((item) => {
+          var end = new Date(item.end_time); // 将结束日期字符串转换为Date对象
           var timeDiff = Math.abs(end.getTime() - start.getTime()); // 获取时间差(单位:毫秒)
           var monthDiff = Math.ceil(timeDiff / (24 * 60 * 60 * 1000)); // 根据每个月平均天数进行近似计算
-          this.OrderForm.product_list.map((item) => {
-            total += item.day_price * item.num * monthDiff;
+            total += item.product_vo.day_price * item.num * monthDiff;
           });
+         
           return total;
         } else {
           this.OrderForm.product_list.map((item) => {
@@ -1399,7 +1212,7 @@ export default {
     discount: {
       deep: true,
       handler(newVal) {
-        this.OrderForm.real_price = this.price * newVal/10;
+        this.OrderForm.real_price = this.price * newVal / 10;
       },
     },
     "OrderForm.product_list": {
@@ -1480,6 +1293,7 @@ export default {
   background-color: #fff;
   margin: 10px;
   padding: 25px;
+
   .numOrder {
     display: flex;
     justify-content: center;
@@ -1512,23 +1326,28 @@ export default {
 /deep/ .el-form-item__error {
   // position: relative;
 }
+
 /** date-picker宽度和其他输入框保持一致 */
 /deep/ .el-date-editor {
   .el-input__inner {
     padding-inline-start: 15px;
   }
+
   .el-input__prefix {
     display: none;
   }
 }
+
 .redClass /deep/ .el-form-item__label {
   //color: red !important;
   font-weight: 700;
   width: 500px;
 }
+
 /deep/ .el-form-item {
   width: 100%;
   height: auto;
+
   .el-input {
     width: 200px;
   }

+ 72 - 12
manager-admin/src/views/stock/orderOutbound.vue

@@ -311,21 +311,23 @@
             <el-step
               icon="el-icon-error"
               :title="
-                deliveryForms.create_order_fail.orderStatus == 600
+                deliveryForms.create_order_fail && deliveryForms.create_order_fail.orderStatus  == 600
                   ? '下单失败'
                   : ''
               "
             >
               <div slot="description">
                 <p class="row-remark">
-                  {{ deliveryForms.create_order_fail.remark }}
-                </p>
-                <p class="row-time">
-                  {{
-                    (deliveryForms.create_order_fail.requestTime / 1000)
-                      | unixToDate
-                  }}
+                  {{ safeAccess(deliveryForms.create_order_fail, 'remark') }}
                 </p>
+                <div slot="description" v-if="deliveryForms.create_order_fail">
+                  <p class="row-remark">
+                    {{ deliveryForms.create_order_fail.remark }}
+                  </p>
+                  <p class="row-time" v-if="deliveryForms.create_order_fail.requestTime">
+                    {{ (deliveryForms.create_order_fail.requestTime / 1000) | unixToDate }}
+                  </p>
+                </div>
               </div>
             </el-step>
           </el-steps>
@@ -335,14 +337,20 @@
             class="steps"
             direction="vertical"
             process-status="finish"
-            :active="0"
+            :active="activeStep"
           >
             <el-step
               icon="el-icon-success"
-              v-if="JSON.stringify(deliveryForms.sign_in) !== '{}'"
+              v-if="JSON.stringify(deliveryForms.sign_in) !== '{}'&&deliveryForms.sign_in.orderStatus == 402"
               :title="deliveryForms.sign_in.orderStatus == 402 ? '退回' : ''"
             >
               <div slot="description">
+                <p class="row-remark">
+                  订单号:{{ deliveryForms.create_order_success.orderCode }}
+                </p>
+                <p class="row-remark">
+                  物流单号:{{ deliveryForms.create_order_success.channelOrderCode }}
+                </p>
                 <p class="row-remark">{{ deliveryForms.sign_in.remark }}</p>
                 <p class="row-time">
                   {{ (deliveryForms.sign_in.requestTime / 1000) | unixToDate }}
@@ -355,6 +363,12 @@
               :title="deliveryForms.sign_in.orderStatus == 401 ? '签收' : ''"
             >
               <div slot="description">
+                <p class="row-remark">
+                  订单号:{{ deliveryForms.create_order_success.orderCode }}
+                </p>
+                <p class="row-remark">
+                  物流单号:{{ deliveryForms.create_order_success.channelOrderCode }}
+                </p>
                 <p class="row-remark">{{ deliveryForms.sign_in.remark }}</p>
                 <p class="row-time">
                   {{ (deliveryForms.sign_in.requestTime / 1000) | unixToDate }}
@@ -369,6 +383,12 @@
               "
             >
               <div slot="description">
+                <p class="row-remark">
+                  订单号:{{ deliveryForms.create_order_success.orderCode }}
+                </p>
+                <p class="row-remark">
+                  物流单号:{{ deliveryForms.create_order_success.channelOrderCode }}
+                </p>
                 <p class="row-remark">
                   {{ deliveryForms.user_sending.remark }}
                 </p>
@@ -387,6 +407,12 @@
               "
             >
               <div slot="description">
+                <p class="row-remark">
+                  订单号:{{ deliveryForms.create_order_success.orderCode }}
+                </p>
+                <p class="row-remark">
+                  物流单号:{{ deliveryForms.create_order_success.channelOrderCode }}
+                </p>
                 <p class="row-remark">
                   {{ deliveryForms.user_arrives.remark }}
                 </p>
@@ -405,6 +431,12 @@
               "
             >
               <div slot="description">
+                <p class="row-remark">
+                  订单号:{{ deliveryForms.create_order_success.orderCode }}
+                </p>
+                <p class="row-remark">
+                  物流单号:{{ deliveryForms.create_order_success.channelOrderCode }}
+                </p>
                 <p class="row-remark">
                   {{ deliveryForms.user_take_order.remark }}
                 </p>
@@ -426,6 +458,12 @@
               "
             >
               <div slot="description">
+                <p class="row-remark">
+                  订单号:{{ deliveryForms.create_order_success.orderCode }}
+                </p>
+                <p class="row-remark">
+                  物流单号:{{ deliveryForms.create_order_success.channelOrderCode }}
+                </p>
                 <p class="row-remark">
                   {{ deliveryForms.create_order_success.remark }}
                 </p>
@@ -674,6 +712,25 @@ export default {
   },
   computed: {
     ...mapGetters(["user"]),
+    activeStep() {
+    // 定义步骤数组,每个元素对应一个步骤的条件
+    const steps = [
+      this.deliveryForms.sign_in && this.deliveryForms.sign_in.orderStatus === 402,
+      this.deliveryForms.sign_in && this.deliveryForms.sign_in.orderStatus === 401,
+      this.deliveryForms.user_sending && this.deliveryForms.user_sending.orderStatus === 300,
+      this.deliveryForms.user_arrives && this.deliveryForms.user_arrives.orderStatus === 202,
+      this.deliveryForms.user_take_order && this.deliveryForms.user_take_order.orderStatus === 201,
+      this.deliveryForms.create_order_success && this.deliveryForms.create_order_success.orderStatus === 100
+    ];
+
+    // 找出最后一个为真的步骤的索引
+    for (let i = steps.length - 1; i >= 0; i--) {
+      if (steps[i]) return i;
+    }
+
+    // 如果没有任何步骤是激活的,返回-1或者你可以选择返回0显示第一步
+    return -1;
+  }
   },
   mounted() {
     /**/ this.id = this.$route.params.id;
@@ -683,6 +740,9 @@ export default {
     /* this.generateMap(regionData); */
   },
   methods: {
+    safeAccess(obj, key) {
+      return obj ? obj[key] : '';
+    },
     /* 收获地址 */
     receiverChange(val) {
       this.deliveryForms.receiver.province_name =
@@ -828,7 +888,7 @@ export default {
       API_order.getSendOrderDetail(this.id).then((res) => {
         res.product_list = res.order_item_vos;
         this.product_list = res.order_item_vos;
-        console.log(res.kdn_order_code == undefined);
+        console.log(JSON.stringify(res.create_order_fail)=='{}');
 
         if (this.outType !== undefined || res.kdn_order_code !== undefined) {
           this.disabledType = true;
@@ -862,13 +922,13 @@ export default {
             arr.push(res.order_fee)
             arr.push(res.sign_in)
             console.log(arr);*/
+            this.deliveryForms.sign_in = res.sign_in;
             this.deliveryForms.create_order_fail = res.create_order_fail;
             this.deliveryForms.create_order_success = res.create_order_success;
             this.deliveryForms.user_take_order = res.user_take_order;
             this.deliveryForms.user_arrives = res.user_arrives;
             this.deliveryForms.user_sending = res.user_sending;
             this.deliveryForms.order_fee = res.order_fee;
-            this.deliveryForms.sign_in = res.sign_in;
           }
         }
         res.order_item_vos.map((el) => {