shish 1 dzień temu
rodzic
commit
2aa1a44129

+ 20 - 9
ghs/src/components/order/OrderCommitDialog.vue

@@ -1,7 +1,7 @@
 <!--
   开单确认提交面板(常驻在购物车右侧,非弹窗)
   由开单 POS 页四栏布局直接挂载,始终渲染;切换客户时刷新表单。
-  UI/业务对齐 ghsApp affirm:配送、打折、付款与备注提交
+  UI/业务对齐 ghsApp affirm:账单日期入口已下线;送货日期写入 sendTime,可补录过去日期
 -->
 <template>
   <aside class="order-commit-panel">
@@ -218,7 +218,8 @@
       <div class="accounts-list">
         <span class="accounts-label">送货日期</span>
         <div class="accounts-center">
-          <el-date-picker v-model="form.sendTimeWant" style="width: 100%" type="date" value-format="yyyy-MM-dd" placeholder="默认当天或跨天" />
+          <!-- 写入 sendTime,允许补录过去日期;不要绑 sendTimeWant,过去日会被采购单拦截 -->
+          <el-date-picker v-model="form.sendTime" style="width: 100%" type="date" value-format="yyyy-MM-dd" placeholder="默认当天,可补录过去日期" />
         </div>
       </div>
       <div class="accounts-list">
@@ -229,12 +230,7 @@
           </el-select>
         </div>
       </div>
-      <div class="accounts-list">
-        <span class="accounts-label">账单日期</span>
-        <div class="accounts-center">
-          <el-date-picker v-model="form.historyDate" style="width: 100%" type="date" value-format="yyyy-MM-dd" placeholder="默认当天" />
-        </div>
-      </div>
+      <!-- 账单日期入口已下线:historyDate 固定空,后端按当天写 payTime -->
       <div class="accounts-list accounts-list--top">
         <span class="accounts-label">备注信息</span>
         <div class="accounts-center">
@@ -367,6 +363,7 @@ export default {
         needPrint: 1,
         getStaffId: 0,
         getStaffName: '',
+        sendTime: '',
         sendTimeWant: '',
         historyDate: '',
         remark: '',
@@ -476,6 +473,9 @@ export default {
       this.form.packCost = ''
       this.form.wlName = ''
       this.form.remark = ''
+      this.form.sendTime = ''
+      this.form.sendTimeWant = ''
+      this.form.historyDate = ''
       this.form.dealPrice = 0
       this.form.reductionRule = 0
       this.form.callErrand = 0
@@ -702,6 +702,14 @@ export default {
         }
       }
 
+      // 预订单送货日仍是客户要求日 sendTimeWant,采购单禁止过去;普通单只写 sendTime,可补录过去
+      const sendDate = this.form.sendTime || ''
+      const today = dayjs().format('YYYY-MM-DD')
+      if (Number(this.form.book) === 1 && sendDate && sendDate < today) {
+        this.$message({ message: '预订单不能选过去的送货日期', type: 'warning' })
+        return
+      }
+
       const product = this.selectList.map(ele => {
         return {
           productId: ele.id,
@@ -719,7 +727,10 @@ export default {
         product: JSON.stringify(product),
         modifyPrice: this.modifyPrice,
         newVersion: 1,
-        dealPrice: forceDealPrice ? 1 : this.form.dealPrice
+        dealPrice: forceDealPrice ? 1 : this.form.dealPrice,
+        historyDate: '',
+        sendTime: sendDate,
+        sendTimeWant: Number(this.form.book) === 1 ? sendDate : ''
       }
 
       // 跑腿平台参数(对齐 affirm)

+ 1 - 0
ghs/src/service/order/index.js

@@ -55,6 +55,7 @@ export class OrderService extends BaseService {
 		});
 	}
 
+	/** 订单列表:searchTimeType 0 开单 addTime、1 账单 payTime、2 发货 sendTime */
 	getOrderList(data) {
 		return this.request({
 			url: '/list',

+ 17 - 5
ghs/src/views/order/confirm.vue

@@ -191,7 +191,8 @@
 
         <div class="accounts-list">
           送货日期
-          <el-date-picker v-model="form.sendTimeWant" style="width: 80%" type="date" value-format="yyyy-MM-dd" placeholder="请选择,默认当天或跨天"> </el-date-picker>
+          <!-- 写入 sendTime,允许补录过去日期;不要绑 sendTimeWant,过去日会被采购单拦截 -->
+          <el-date-picker v-model="form.sendTime" style="width: 80%" type="date" value-format="yyyy-MM-dd" placeholder="默认当天,可补录过去日期"> </el-date-picker>
         </div>
         <div class="accounts-list">
           开单人员
@@ -199,10 +200,7 @@
             <el-option v-for="item in staffList" :key="item.id" :label="item.name" :value="item"> </el-option>
           </el-select>
         </div>
-        <div class="accounts-list">
-          账单日期
-          <el-date-picker v-model="form.historyDate" style="width: 80%" type="date" value-format="yyyy-MM-dd" placeholder="请选择,默认当天"> </el-date-picker>
-        </div>
+        <!-- 账单日期入口已下线:historyDate 固定空,后端按当天写 payTime -->
         <div class="accounts-list">
           备注信息
           <div class="accounts-center">
@@ -252,6 +250,7 @@ export default {
         transType:0,
         sendSide: "2",
         sendDate: "",
+        sendTime: "",
         sendTimeWant: "",
         historyDate:'',
         sendCost: "",
@@ -550,6 +549,19 @@ export default {
       }
 
       let params = {...formData,modifyPrice: this.modifyPrice,newVersion:1};
+      const sendDate = this.form.sendTime || ''
+      const now = new Date()
+      const month = String(now.getMonth() + 1).padStart(2, '0')
+      const day = String(now.getDate()).padStart(2, '0')
+      const today = now.getFullYear() + '-' + month + '-' + day
+      // 预订单送货日仍是客户要求日,不能过去;普通单只写 sendTime,可补录过去
+      if (this.form.book == 1 && sendDate && sendDate < today) {
+        this.$message({message: '预订单不能选过去的送货日期',type: 'warning'})
+        return false
+      }
+      params.historyDate = ''
+      params.sendTime = sendDate
+      params.sendTimeWant = this.form.book == 1 ? sendDate : ''
 
       if(this.form.book == 1){
         if(Number(this.form.sendCost)>0){

+ 18 - 5
ghs/src/views/order/list.vue

@@ -52,6 +52,12 @@
         <span v-else>-</span>
       </template>
 
+      <template #table-column-sendTime="{scope}">
+        <div>
+          {{ scope.row.sendTime && scope.row.sendTime.indexOf('0000-00-00') < 0 ? formatTime(scope.row.sendTime):'-' }}
+        </div>
+      </template>
+
       <template #table-column-addTime="{scope}">
         <div>
           {{ scope.row.addTime?formatTime(scope.row.addTime):'' }}
@@ -194,7 +200,8 @@
 					<el-option v-for="item in staffList" :key="item.id" :label="item.name" :value="item.id"></el-option>
 				</el-select>
         <el-button-group style="margin-left:9px;margin-right:4px;">
-          <el-button size="mini" :type="searchTimeType === 0 ? 'primary' : 'default'" @click="changeSearchTimeType(0)">创建时间</el-button>
+          <el-button size="mini" :type="searchTimeType === 0 ? 'primary' : 'default'" @click="changeSearchTimeType(0)">开单时间</el-button>
+          <el-button size="mini" :type="searchTimeType === 2 ? 'primary' : 'default'" @click="changeSearchTimeType(2)">发货时间</el-button>
           <el-button size="mini" :type="searchTimeType === 1 ? 'primary' : 'default'" @click="changeSearchTimeType(1)">账单时间</el-button>
         </el-button-group>
         <el-date-picker v-model="currentDateList" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" @change="getSearchDate" value-format="yyyy-MM-dd"
@@ -396,7 +403,7 @@ export default {
       startTime:'',
       endTime:'',
       searchTime:'',
-      /** 时间筛选类型:0 创建时间,1 账单时间 */
+      /** 时间筛选类型:0 开单 addTime,1 账单 payTime,2 发货 sendTime */
       searchTimeType: 0,
       name:'',
       currentRefundData:{},
@@ -450,7 +457,7 @@ export default {
         searchTimeType: this.searchTimeType
       }, extra)
     },
-    /** 切换按创建时间/账单时间筛选 */
+    /** 切换开单 / 发货 / 账单时间筛选,列表排序跟着当前类型走 */
     changeSearchTimeType(type) {
       if (this.searchTimeType === type) {
         return
@@ -993,8 +1000,8 @@ export default {
                 width: 90
               },
               {
-                prop: 'payTime',
-                label: '账单时间',
+                prop: 'sendTime',
+                label: '发货时间',
                 align: 'center',
                 width: 90
               },
@@ -1003,6 +1010,12 @@ export default {
                 label: '开单时间',
                 align: 'center',
                 width: 90
+              },
+              {
+                prop: 'payTime',
+                label: '账单时间',
+                align: 'center',
+                width: 90
               }
             ],
             on: {

+ 2 - 2
ghsApp/src/admin/home/components/OrderItem.vue

@@ -20,11 +20,11 @@
           <view>{{ item.sendNum }}</view>
         </view>
         <view class="order-info_box">
-          <view>创建:</view>
+          <view>开单:</view>
           <view>
             {{ item.addTime ? item.addTime.substr(5, 11) : '' }}
           </view>
-          <!-- 发货日与创建日不是同一天时才展示,避免列表每条都重复当天日期 -->
+          <!-- 发货日与开单日不是同一天时才展示,避免列表每条都重复当天日期 -->
           <view
             v-if="item.addTime && item.sendTime && item.sendTime.indexOf('0000-00-00') < 0 && item.addTime.substr(5, 5) != item.sendTime.substr(5, 5)"
             class="bill-date"

+ 4 - 3
ghsApp/src/admin/home/order.vue

@@ -341,7 +341,7 @@ export default {
       filterBook: -1,
       filterOnlinePay: -1,
       filterSendType: -1,
-      searchTimeType: 0, // 0: 创建时间,1: 账单时间
+      searchTimeType: 0, // 0 开单 addTime,1 账单 payTime,2 发货 sendTime
       debtOptions: [
         { label: '全部', value: -1 },
         { label: '挂账', value: 1 },
@@ -358,7 +358,8 @@ export default {
         { label: '普通单', value: 0 }
       ],
       timeTypeOptions: [
-        { label: '创建时间', value: 0 },
+        { label: '开单时间', value: 0 },
+        { label: '发货时间', value: 2 },
         { label: '账单时间', value: 1 }
       ],
       sendTypeOptions: [
@@ -552,7 +553,7 @@ export default {
       }
     },
     /**
-     * 选择时间筛选类型:0 创建时间,1 账单时间
+     * 选择时间筛选类型:0 开单 addTime,1 账单 payTime,2 发货 sendTime
      */
     onSelectTimeType(index) {
       const item = this.timeTypeOptions[index];

+ 3 - 2
ghsApp/src/api/order/index.js

@@ -151,8 +151,9 @@ export const wxPay = data => {
 
 // =====================  B 端 ========================
 
-/** *
- * 订单列表 b
+/**
+ * 供货商订单列表:searchTimeType 0 开单 addTime、1 账单 payTime、2 发货 sendTime。
+ * 对应 OrderController::actionList。
  */
 export const getListB = data => {
 	return https.get("/order/list", data);