|
@@ -10,7 +10,7 @@
|
|
|
<a-row :gutter="24">
|
|
|
<a-col :span="24">
|
|
|
<a-form-item label="提货时间段:" name="confStartEndTime">
|
|
|
- <a-range-picker v-model:value="formData.confStartEndTime" value-format="YYYY-MM-DD HH:mm" show-time style="width: 100%" />
|
|
|
+ <a-range-picker v-model:value="formData.confStartEndTime" value-format="YYYY-MM-DD HH:mm" show-time :disabled-date="disabledDate" style="width: 100%" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
@@ -68,9 +68,11 @@
|
|
|
|
|
|
<script setup name="goodsConfForm">
|
|
|
import { cloneDeep } from 'lodash-es'
|
|
|
+ import { message } from 'ant-design-vue'
|
|
|
import { required } from '@/utils/formRules'
|
|
|
import goodsApi from '@/api/biz/goodsApi'
|
|
|
import goodsConfApi from '@/api/biz/goodsConfApi'
|
|
|
+ import dayjs from 'dayjs'
|
|
|
|
|
|
// 抽屉状态
|
|
|
const open = ref(false)
|
|
@@ -85,6 +87,15 @@
|
|
|
const labelCol = ref({ span: 4})
|
|
|
const wrapperCol = ref({ span: 16})
|
|
|
|
|
|
+ // 当前时间
|
|
|
+ const nowTime = ref(new Date())
|
|
|
+ // 禁用时间范围
|
|
|
+ const disabledDate = (current) => {
|
|
|
+ return (
|
|
|
+ (current && current < dayjs(nowTime.value).startOf('time'))
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
// 打开抽屉
|
|
|
const onOpen = (record) => {
|
|
|
open.value = true
|
|
@@ -111,8 +122,10 @@
|
|
|
}
|
|
|
// 关闭抽屉
|
|
|
const onClose = () => {
|
|
|
- formRef.value.resetFields()
|
|
|
- formData.value = {}
|
|
|
+ formData.value = {
|
|
|
+ confStartEndTime: '',
|
|
|
+ goodsJson: []
|
|
|
+ }
|
|
|
open.value = false
|
|
|
}
|
|
|
// 默认要校验的
|
|
@@ -140,15 +153,28 @@
|
|
|
formRef.value
|
|
|
.validate()
|
|
|
.then(() => {
|
|
|
+ let goodsFlag = true;
|
|
|
// 因为不切断,我下面转换数据格式,影响上面表单会报错
|
|
|
let formDatas = JSON.parse(JSON.stringify(formData.value))
|
|
|
// 判断货品信息:至少选择一个
|
|
|
if (formDatas.goodsJson && formDatas.goodsJson.length > 0) {
|
|
|
+ // 判断当前货品列表选择是否存在重复的
|
|
|
+ let goodsId = []
|
|
|
+ formDatas.goodsJson.map((item, index) => {
|
|
|
+ if(goodsId.indexOf(item.goodsId)==-1){
|
|
|
+ goodsId.push(item.goodsId)
|
|
|
+ }else{
|
|
|
+ goodsFlag = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ goodsFlag = false
|
|
|
+ }
|
|
|
+
|
|
|
+ if(goodsFlag){
|
|
|
formDatas.goodsJson = JSON.stringify(formDatas.goodsJson)
|
|
|
-
|
|
|
const formDataParam = cloneDeep(formData.value)
|
|
|
submitLoading.value = true
|
|
|
-
|
|
|
formDatas.confStartTime = formDataParam.confStartEndTime[0]+":00"
|
|
|
formDatas.confEndTime = formDataParam.confStartEndTime[1]+":00"
|
|
|
goodsConfApi
|
|
@@ -160,10 +186,11 @@
|
|
|
.finally(() => {
|
|
|
submitLoading.value = false
|
|
|
})
|
|
|
- } else {
|
|
|
- // 不允许提交 提示信息
|
|
|
-
|
|
|
+ }else{
|
|
|
+ message.error('货品信息存在重复情况,请处理!')
|
|
|
+ return
|
|
|
}
|
|
|
+
|
|
|
})
|
|
|
.catch(() => {})
|
|
|
}
|