|
|
@@ -11,9 +11,16 @@
|
|
|
<template #quantity>
|
|
|
<el-input v-model.number="ruleFormData.quantity" placeholder="请输入报废数量" type="number" min="1" step="1">
|
|
|
</el-input>
|
|
|
+ <div>最多可报废数量:{{ supply?.currentQuantity }}</div>
|
|
|
+ </template>
|
|
|
+ <template #scrapReason>
|
|
|
+ <el-input v-model="ruleFormData.scrapReason" placeholder="请输入报废理由" type="textarea" rows="3">
|
|
|
+ </el-input>
|
|
|
+ </template>
|
|
|
+ <template #scrapImage>
|
|
|
+ <UploadImages :maxCount="9" ref="uploadImagesRef" @uploadSuccess="handleUploadSuccess" />
|
|
|
</template>
|
|
|
</BasicForm>
|
|
|
- <div class="discard-note">最多可报废数量:{{ supply?.currentQuantity }}</div>
|
|
|
</template>
|
|
|
<template #footer>
|
|
|
<el-button type="primary" @click="handleSumbit">提交</el-button>
|
|
|
@@ -27,10 +34,17 @@
|
|
|
import { ElMessage } from 'element-plus';
|
|
|
import BasicDialog from '@/components/BasicDialog.vue';
|
|
|
import BasicForm from '@/components/BasicForm.vue';
|
|
|
+ import UploadImages from '@/components/UploadImages/UploadImages.vue';
|
|
|
import { useFormConfigHook } from '@/hooks/useFormConfigHook';
|
|
|
import { DiscardSuppliesForm, EmergencySupplyListResponse } from '@/types/emergency-supplier';
|
|
|
import { discardEmergencySupply } from '@/api/emergency-supplier';
|
|
|
- import { SUPPLIES_DISCARD_FROM_CONFIG, SUPPLIES_DISCARD_FROM_DATA, SUPPLIES_DISCARD_FROM_RULES } from '../config';
|
|
|
+ import {
|
|
|
+ SUPPLIES_DISCARD_FROM_CONFIG,
|
|
|
+ SUPPLIES_DISCARD_FROM_DATA,
|
|
|
+ SUPPLIES_DISCARD_FROM_RULES,
|
|
|
+ } from '../config/form';
|
|
|
+ import { formatImageList } from '@/components/UploadImages/utils';
|
|
|
+ import type { ImageItem } from '@/types/disaster-control';
|
|
|
|
|
|
const emit = defineEmits<{
|
|
|
(e: 'refreshList'): void;
|
|
|
@@ -38,6 +52,7 @@
|
|
|
|
|
|
const basicDialogRef = ref<InstanceType<typeof BasicDialog>>();
|
|
|
const basicFormRef = ref<InstanceType<typeof BasicForm>>();
|
|
|
+ const uploadImagesRef = ref<InstanceType<typeof UploadImages>>();
|
|
|
const { ruleFormConfig, ruleFormData, formRules } = useFormConfigHook<DiscardSuppliesForm>(
|
|
|
SUPPLIES_DISCARD_FROM_CONFIG,
|
|
|
SUPPLIES_DISCARD_FROM_DATA,
|
|
|
@@ -49,6 +64,7 @@
|
|
|
const openDialog = (item: EmergencySupplyListResponse) => {
|
|
|
supply.value = item;
|
|
|
basicDialogRef.value?.openDialog();
|
|
|
+ uploadImagesRef.value?.removeAllImages();
|
|
|
(formRules.quantity as Array<any>).push({
|
|
|
validator: (_rule, value, callback) => {
|
|
|
if (!supply.value) {
|
|
|
@@ -68,12 +84,28 @@
|
|
|
trigger: 'blur',
|
|
|
});
|
|
|
};
|
|
|
+
|
|
|
+ const scrapImage = ref<ImageItem[]>([]);
|
|
|
+ const handleUploadSuccess = (files: ImageItem[]) => {
|
|
|
+ scrapImage.value = files;
|
|
|
+ };
|
|
|
+
|
|
|
const handleSumbit = async () => {
|
|
|
const validate = await basicFormRef.value?.validateForm();
|
|
|
if (!validate) return;
|
|
|
if (!supply.value) return;
|
|
|
try {
|
|
|
- await discardEmergencySupply(supply.value.id, ruleFormData.quantity!);
|
|
|
+ const scrapImageString = await formatImageList(scrapImage.value);
|
|
|
+ if (scrapImageString) {
|
|
|
+ ruleFormData.scrapImage = JSON.stringify(scrapImageString as string[]);
|
|
|
+ }
|
|
|
+ const query = {
|
|
|
+ supplyId: supply.value.id,
|
|
|
+ quantity: ruleFormData.quantity as number,
|
|
|
+ scrapReason: ruleFormData.scrapReason,
|
|
|
+ scrapImage: ruleFormData.scrapImage,
|
|
|
+ };
|
|
|
+ await discardEmergencySupply(query);
|
|
|
ElMessage.success('物资报废成功');
|
|
|
emit('refreshList');
|
|
|
basicDialogRef.value?.closeDialog();
|
|
|
@@ -88,9 +120,3 @@
|
|
|
openDialog,
|
|
|
});
|
|
|
</script>
|
|
|
-
|
|
|
-<style scoped lang="scss">
|
|
|
- .discard-note {
|
|
|
- padding-left: 80px;
|
|
|
- }
|
|
|
-</style>
|