|
|
@@ -50,6 +50,7 @@
|
|
|
class="!w-240px"
|
|
|
/>
|
|
|
<el-checkbox
|
|
|
+ v-if="!isFrontDesk"
|
|
|
v-model="formData.inIsOrderConfirm"
|
|
|
class="ml-4"
|
|
|
:disabled="inEquipCount === 0"
|
|
|
@@ -106,6 +107,7 @@
|
|
|
class="!w-240px"
|
|
|
/>
|
|
|
<el-checkbox
|
|
|
+ v-if="!isFrontDesk"
|
|
|
v-model="formData.outIsOrderConfirm"
|
|
|
class="ml-4"
|
|
|
:disabled="outEquipCount === 0"
|
|
|
@@ -163,6 +165,7 @@
|
|
|
class="!w-240px"
|
|
|
/>
|
|
|
<el-checkbox
|
|
|
+ v-if="!isFrontDesk"
|
|
|
v-model="formData.pressureIsOrderConfirm"
|
|
|
class="ml-4"
|
|
|
:disabled="preEquipCount == 0"
|
|
|
@@ -265,6 +268,7 @@
|
|
|
type="primary"
|
|
|
@click="handleConfirm"
|
|
|
:disabled="isConfirmDisabled"
|
|
|
+ :loading="submitLoading"
|
|
|
>
|
|
|
确定
|
|
|
</el-button>
|
|
|
@@ -334,9 +338,13 @@ const props = defineProps({
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+// 是否前台约检来源:前台约检跳过计划表提交+约检确认,直接生成受理单
|
|
|
+const isFrontDesk = computed(() => props.source === 'plan')
|
|
|
+
|
|
|
const emit = defineEmits(['success', 'close', 'clear-selected-rows'])
|
|
|
const dialogVisible = ref(false)
|
|
|
const formRef = ref<FormInstance>()
|
|
|
+const submitLoading = ref(false) // 提交按钮 loading
|
|
|
const isBatch = ref(false)
|
|
|
const title = computed(() => props.selectedRows.length > 1 ? '批量计划排期' : '计划排期')
|
|
|
|
|
|
@@ -1038,16 +1046,17 @@ const handleConfirm = async () => {
|
|
|
const form = unref(formRef)
|
|
|
if (!form) return
|
|
|
|
|
|
- // 验证日期
|
|
|
- await form.validate()
|
|
|
- // 验证检验员必填
|
|
|
- const validations: boolean[] = []
|
|
|
- if (inEquipCount.value > 0) validations.push(checkerInRef.value?.validate())
|
|
|
- if (outEquipCount.value > 0) validations.push(checkerOutRef.value?.validate())
|
|
|
- if (preEquipCount.value !== 0) validations.push(checkerPreRef.value?.validate())
|
|
|
- if (validations.some(v => v === false)) return
|
|
|
-
|
|
|
+ submitLoading.value = true
|
|
|
try {
|
|
|
+ // 验证日期
|
|
|
+ await form.validate()
|
|
|
+ // 验证检验员必填
|
|
|
+ const validations: boolean[] = []
|
|
|
+ if (inEquipCount.value > 0) validations.push(checkerInRef.value?.validate())
|
|
|
+ if (outEquipCount.value > 0) validations.push(checkerOutRef.value?.validate())
|
|
|
+ if (preEquipCount.value !== 0) validations.push(checkerPreRef.value?.validate())
|
|
|
+ if (validations.some(v => v === false)) return
|
|
|
+
|
|
|
// 组装新的数据结构
|
|
|
const submitData: { taskList: any[]; source: number } = {
|
|
|
taskList: [],
|
|
|
@@ -1092,7 +1101,7 @@ const handleConfirm = async () => {
|
|
|
submitData.taskList.push({
|
|
|
equipIds: item.map(item => item.id).join(','),
|
|
|
type: '100',
|
|
|
- hasOrderConfirm: formData.value.inIsOrderConfirm,
|
|
|
+ hasOrderConfirm: isFrontDesk.value ? false : formData.value.inIsOrderConfirm,
|
|
|
date: formData.value.inDate,
|
|
|
teamList: formData.value.inTeamList,
|
|
|
chargeType: formData.value.inChargeType,
|
|
|
@@ -1143,7 +1152,7 @@ const handleConfirm = async () => {
|
|
|
submitData.taskList.push({
|
|
|
equipIds: item.map(item => item.id).join(','),
|
|
|
type: '200',
|
|
|
- hasOrderConfirm: formData.value.outIsOrderConfirm,
|
|
|
+ hasOrderConfirm: isFrontDesk.value ? false : formData.value.outIsOrderConfirm,
|
|
|
date: formData.value.outDate,
|
|
|
teamList: formData.value.outTeamList,
|
|
|
chargeType: formData.value.outChargeType,
|
|
|
@@ -1195,7 +1204,7 @@ const handleConfirm = async () => {
|
|
|
submitData.taskList.push({
|
|
|
equipIds: item.map(item => item.id).join(','),
|
|
|
type: '300',
|
|
|
- hasOrderConfirm: formData.value.pressureIsOrderConfirm,
|
|
|
+ hasOrderConfirm: isFrontDesk.value ? false : formData.value.pressureIsOrderConfirm,
|
|
|
date: formData.value.preDate,
|
|
|
teamList: formData.value.preTeamList,
|
|
|
chargeType: formData.value.preChargeType,
|
|
|
@@ -1245,6 +1254,8 @@ const handleConfirm = async () => {
|
|
|
(error) {
|
|
|
console.error( error)
|
|
|
message.error('保存失败')
|
|
|
+ } finally {
|
|
|
+ submitLoading.value = false
|
|
|
}
|
|
|
}
|
|
|
|