Commit 46f6440f1df0c072508f12e3466e6b01d635be13

Authored by 史婷婷
1 parent 904236b3

feat: 规格变更单-新增&编辑-产品-发货日期 控制选择范围 得大于 订货日期

@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 44
45 <!-- 产品 --> 45 <!-- 产品 -->
46 <view class="section2"> 46 <view class="section2">
47 - <Product mode="add" :list="initPurchaseOrderLineList" @change="purchaseOrderLineListChange" /> 47 + <Product mode="add" :list="initPurchaseOrderLineList" @change="purchaseOrderLineListChange" :orderDate="form.orderDate" />
48 </view> 48 </view>
49 49
50 <view class="section"> 50 <view class="section">
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 43
44 <!-- 产品 --> 44 <!-- 产品 -->
45 <view class="section2"> 45 <view class="section2">
46 - <Product mode="add" :list="initPurchaseOrderLineList" @change="purchaseOrderLineListChange" /> 46 + <Product mode="add" :list="initPurchaseOrderLineList" @change="purchaseOrderLineListChange" :orderDate="form.orderDate" />
47 </view> 47 </view>
48 48
49 <view class="section"> 49 <view class="section">
@@ -127,7 +127,7 @@ @@ -127,7 +127,7 @@
127 </uni-list-item> 127 </uni-list-item>
128 <uni-list-item title="发货日期"> 128 <uni-list-item title="发货日期">
129 <template v-slot:footer> 129 <template v-slot:footer>
130 - <uni-datetime-picker type="date" v-model="item.deliveryDate" /> 130 + <uni-datetime-picker type="date" v-model="item.deliveryDate" :start="minDeliveryDate" @change="onDeliveryChange($event, item, idx)" />
131 </template> 131 </template>
132 </uni-list-item> 132 </uni-list-item>
133 <uni-list-item title="考核超协"> 133 <uni-list-item title="考核超协">
@@ -211,7 +211,8 @@ export default { @@ -211,7 +211,8 @@ export default {
211 mode: { type: String, default: 'add' }, 211 mode: { type: String, default: 'add' },
212 list: { type: Array, default: () => [] }, 212 list: { type: Array, default: () => [] },
213 max: { type: Number, default: 8 }, 213 max: { type: Number, default: 8 },
214 - totalQuantity: { type: Number, default: 0 } 214 + totalQuantity: { type: Number, default: 0 },
  215 + orderDate: { type: String, default: '' }
215 }, 216 },
216 data() { 217 data() {
217 return { 218 return {
@@ -219,7 +220,22 @@ export default { @@ -219,7 +220,22 @@ export default {
219 collapsedView: false, 220 collapsedView: false,
220 } 221 }
221 }, 222 },
222 - computed: { 223 + computed: {
  224 + minDeliveryDate() {
  225 + const s = this.orderDate
  226 + if (!s) return ''
  227 + const parts = String(s).split('-')
  228 + const y = Number(parts[0])
  229 + const m = Number(parts[1])
  230 + const d = Number(parts[2])
  231 + if (!y || !m || !d) return ''
  232 + const dt = new Date(y, m - 1, d)
  233 + dt.setDate(dt.getDate() + 1)
  234 + const yy = dt.getFullYear()
  235 + const mm = String(dt.getMonth() + 1).padStart(2, '0')
  236 + const dd = String(dt.getDate()).padStart(2, '0')
  237 + return `${yy}/${mm}/${dd}`
  238 + }
223 }, 239 },
224 watch: { 240 watch: {
225 items: { 241 items: {
@@ -327,6 +343,29 @@ export default { @@ -327,6 +343,29 @@ export default {
327 }, 343 },
328 toggleViewCollapse() { 344 toggleViewCollapse() {
329 this.collapsedView = !this.collapsedView 345 this.collapsedView = !this.collapsedView
  346 + },
  347 + onDeliveryChange(e, item, idx) {
  348 + const getStr = (x) => {
  349 + if (x && x.detail && x.detail.value !== undefined) return x.detail.value
  350 + if (typeof x === 'string') return x
  351 + return item && item.deliveryDate ? item.deliveryDate : ''
  352 + }
  353 + const val = getStr(e)
  354 + if (!val || !this.orderDate) return
  355 + const parse = (s) => {
  356 + const p = String(s).replace(/\//g, '-').split('-')
  357 + const y = Number(p[0])
  358 + const m = Number(p[1])
  359 + const d = Number(p[2])
  360 + return new Date(y, m - 1, d)
  361 + }
  362 + const sel = parse(val)
  363 + const ord = parse(this.orderDate)
  364 + if (!(sel > ord)) {
  365 + item.deliveryDate = ''
  366 + this.$set(this.items, idx, { ...item })
  367 + uni.showToast({ title: '发货日期必须大于订货日期', icon: 'none' })
  368 + }
330 } 369 }
331 } 370 }
332 } 371 }