|
@ -19,214 +19,190 @@ |
|
|
styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } |
|
|
styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } |
|
|
" |
|
|
" |
|
|
> |
|
|
> |
|
|
<a-form-item label="用户ID" name="userId"> |
|
|
|
|
|
<a-input |
|
|
|
|
|
allow-clear |
|
|
|
|
|
placeholder="请输入用户ID" |
|
|
|
|
|
v-model:value="form.userId" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<a-form-item label="车辆编号" name="carNo"> |
|
|
|
|
|
{{ form.carNo }} |
|
|
</a-form-item> |
|
|
</a-form-item> |
|
|
<a-form-item label="车辆ID" name="carId"> |
|
|
|
|
|
<a-input |
|
|
|
|
|
allow-clear |
|
|
|
|
|
placeholder="请输入车辆ID" |
|
|
|
|
|
v-model:value="form.carId" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<a-form-item label="事故类型" name="accidentType"> |
|
|
|
|
|
{{ form.accidentType }} |
|
|
</a-form-item> |
|
|
</a-form-item> |
|
|
<a-form-item |
|
|
|
|
|
label="保险图片" |
|
|
|
|
|
name="image"> |
|
|
|
|
|
<SelectFile |
|
|
|
|
|
:placeholder="`请选择图片`" |
|
|
|
|
|
:limit="1" |
|
|
|
|
|
:data="images" |
|
|
|
|
|
@done="chooseImage" |
|
|
|
|
|
@del="onDeleteItem" |
|
|
|
|
|
/> |
|
|
|
|
|
</a-form-item> |
|
|
|
|
|
<a-form-item label="排序(数字越小越靠前)" name="sortNumber"> |
|
|
|
|
|
<a-input-number |
|
|
|
|
|
:min="0" |
|
|
|
|
|
:max="9999" |
|
|
|
|
|
class="ele-fluid" |
|
|
|
|
|
placeholder="请输入排序号" |
|
|
|
|
|
v-model:value="form.sortNumber" |
|
|
|
|
|
|
|
|
<a-form-item |
|
|
|
|
|
label="保险图片" |
|
|
|
|
|
name="image"> |
|
|
|
|
|
<SelectFile |
|
|
|
|
|
:placeholder="`请选择图片`" |
|
|
|
|
|
:limit="1" |
|
|
|
|
|
:data="images" |
|
|
|
|
|
@done="chooseImage" |
|
|
|
|
|
@del="onDeleteItem" |
|
|
/> |
|
|
/> |
|
|
</a-form-item> |
|
|
</a-form-item> |
|
|
<a-form-item label="备注" name="comments"> |
|
|
|
|
|
<a-textarea |
|
|
|
|
|
:rows="4" |
|
|
|
|
|
:maxlength="200" |
|
|
|
|
|
placeholder="请输入描述" |
|
|
|
|
|
v-model:value="form.comments" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
<a-form-item label="事故描述" name="comments"> |
|
|
|
|
|
{{ form.comments }} |
|
|
|
|
|
<!-- <a-textarea--> |
|
|
|
|
|
<!-- :rows="4"--> |
|
|
|
|
|
<!-- :maxlength="200"--> |
|
|
|
|
|
<!-- placeholder="请输入描述"--> |
|
|
|
|
|
<!-- v-model:value="form.comments"--> |
|
|
|
|
|
<!-- />--> |
|
|
</a-form-item> |
|
|
</a-form-item> |
|
|
<a-form-item label="状态, 0正常, 1冻结" name="status"> |
|
|
|
|
|
|
|
|
<a-form-item label="操作员" name="realName"> |
|
|
|
|
|
{{ form.realName }} |
|
|
|
|
|
</a-form-item> |
|
|
|
|
|
<a-form-item label="状态" name="status"> |
|
|
<a-radio-group v-model:value="form.status"> |
|
|
<a-radio-group v-model:value="form.status"> |
|
|
<a-radio :value="0">显示</a-radio> |
|
|
|
|
|
<a-radio :value="1">隐藏</a-radio> |
|
|
|
|
|
|
|
|
<a-radio :value="0">待处理</a-radio> |
|
|
|
|
|
<a-radio :value="1">已处理</a-radio> |
|
|
</a-radio-group> |
|
|
</a-radio-group> |
|
|
</a-form-item> |
|
|
</a-form-item> |
|
|
<a-form-item label="是否删除, 0否, 1是" name="deleted"> |
|
|
|
|
|
<a-input |
|
|
|
|
|
allow-clear |
|
|
|
|
|
placeholder="请输入是否删除, 0否, 1是" |
|
|
|
|
|
v-model:value="form.deleted" |
|
|
|
|
|
/> |
|
|
|
|
|
</a-form-item> |
|
|
|
|
|
<a-form-item label="修改时间" name="updateTime"> |
|
|
|
|
|
<a-input |
|
|
|
|
|
allow-clear |
|
|
|
|
|
placeholder="请输入修改时间" |
|
|
|
|
|
v-model:value="form.updateTime" |
|
|
|
|
|
/> |
|
|
|
|
|
</a-form-item> |
|
|
|
|
|
</a-form> |
|
|
</a-form> |
|
|
</ele-modal> |
|
|
</ele-modal> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script lang="ts" setup> |
|
|
<script lang="ts" setup> |
|
|
import { ref, reactive, watch } from 'vue'; |
|
|
|
|
|
import { Form, message } from 'ant-design-vue'; |
|
|
|
|
|
import { assignObject, uuid } from 'ele-admin-pro'; |
|
|
|
|
|
import { addHjmBxLog, updateHjmBxLog } from '@/api/hjm/hjmBxLog'; |
|
|
|
|
|
import { HjmBxLog } from '@/api/hjm/hjmBxLog/model'; |
|
|
|
|
|
import { useThemeStore } from '@/store/modules/theme'; |
|
|
|
|
|
import { storeToRefs } from 'pinia'; |
|
|
|
|
|
import { ItemType } from 'ele-admin-pro/es/ele-image-upload/types'; |
|
|
|
|
|
import { FormInstance } from 'ant-design-vue/es/form'; |
|
|
|
|
|
import { FileRecord } from '@/api/system/file/model'; |
|
|
|
|
|
|
|
|
import {ref, reactive, watch} from 'vue'; |
|
|
|
|
|
import {Form, message} from 'ant-design-vue'; |
|
|
|
|
|
import {assignObject, uuid} from 'ele-admin-pro'; |
|
|
|
|
|
import {addHjmBxLog, updateHjmBxLog} from '@/api/hjm/hjmBxLog'; |
|
|
|
|
|
import {HjmBxLog} from '@/api/hjm/hjmBxLog/model'; |
|
|
|
|
|
import {useThemeStore} from '@/store/modules/theme'; |
|
|
|
|
|
import {storeToRefs} from 'pinia'; |
|
|
|
|
|
import {ItemType} from 'ele-admin-pro/es/ele-image-upload/types'; |
|
|
|
|
|
import {FormInstance} from 'ant-design-vue/es/form'; |
|
|
|
|
|
import {FileRecord} from '@/api/system/file/model'; |
|
|
|
|
|
|
|
|
// 是否是修改 |
|
|
|
|
|
const isUpdate = ref(false); |
|
|
|
|
|
const useForm = Form.useForm; |
|
|
|
|
|
// 是否开启响应式布局 |
|
|
|
|
|
const themeStore = useThemeStore(); |
|
|
|
|
|
const { styleResponsive } = storeToRefs(themeStore); |
|
|
|
|
|
|
|
|
// 是否是修改 |
|
|
|
|
|
const isUpdate = ref(false); |
|
|
|
|
|
const useForm = Form.useForm; |
|
|
|
|
|
// 是否开启响应式布局 |
|
|
|
|
|
const themeStore = useThemeStore(); |
|
|
|
|
|
const {styleResponsive} = storeToRefs(themeStore); |
|
|
|
|
|
|
|
|
const props = defineProps<{ |
|
|
|
|
|
// 弹窗是否打开 |
|
|
|
|
|
visible: boolean; |
|
|
|
|
|
// 修改回显的数据 |
|
|
|
|
|
data?: HjmBxLog | null; |
|
|
|
|
|
}>(); |
|
|
|
|
|
|
|
|
const props = defineProps<{ |
|
|
|
|
|
// 弹窗是否打开 |
|
|
|
|
|
visible: boolean; |
|
|
|
|
|
// 修改回显的数据 |
|
|
|
|
|
data?: HjmBxLog | null; |
|
|
|
|
|
}>(); |
|
|
|
|
|
|
|
|
const emit = defineEmits<{ |
|
|
|
|
|
(e: 'done'): void; |
|
|
|
|
|
(e: 'update:visible', visible: boolean): void; |
|
|
|
|
|
}>(); |
|
|
|
|
|
|
|
|
const emit = defineEmits<{ |
|
|
|
|
|
(e: 'done'): void; |
|
|
|
|
|
(e: 'update:visible', visible: boolean): void; |
|
|
|
|
|
}>(); |
|
|
|
|
|
|
|
|
// 提交状态 |
|
|
|
|
|
const loading = ref(false); |
|
|
|
|
|
// 是否显示最大化切换按钮 |
|
|
|
|
|
const maxable = ref(true); |
|
|
|
|
|
// 表格选中数据 |
|
|
|
|
|
const formRef = ref<FormInstance | null>(null); |
|
|
|
|
|
const images = ref<ItemType[]>([]); |
|
|
|
|
|
|
|
|
// 提交状态 |
|
|
|
|
|
const loading = ref(false); |
|
|
|
|
|
// 是否显示最大化切换按钮 |
|
|
|
|
|
const maxable = ref(true); |
|
|
|
|
|
// 表格选中数据 |
|
|
|
|
|
const formRef = ref<FormInstance | null>(null); |
|
|
|
|
|
const images = ref<ItemType[]>([]); |
|
|
|
|
|
|
|
|
// 用户信息 |
|
|
|
|
|
const form = reactive<HjmBxLog>({ |
|
|
|
|
|
id: undefined, |
|
|
|
|
|
userId: undefined, |
|
|
|
|
|
carId: undefined, |
|
|
|
|
|
image: undefined, |
|
|
|
|
|
sortNumber: undefined, |
|
|
|
|
|
comments: undefined, |
|
|
|
|
|
status: undefined, |
|
|
|
|
|
deleted: undefined, |
|
|
|
|
|
tenantId: undefined, |
|
|
|
|
|
createTime: undefined, |
|
|
|
|
|
updateTime: undefined, |
|
|
|
|
|
hjmBxLogId: undefined, |
|
|
|
|
|
hjmBxLogName: '', |
|
|
|
|
|
status: 0, |
|
|
|
|
|
comments: '', |
|
|
|
|
|
sortNumber: 100 |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
// 用户信息 |
|
|
|
|
|
const form = reactive<HjmBxLog>({ |
|
|
|
|
|
id: undefined, |
|
|
|
|
|
userId: undefined, |
|
|
|
|
|
carId: undefined, |
|
|
|
|
|
carNo: undefined, |
|
|
|
|
|
realName: undefined, |
|
|
|
|
|
accidentType: undefined, |
|
|
|
|
|
parentOrganization: undefined, |
|
|
|
|
|
image: undefined, |
|
|
|
|
|
comments: undefined, |
|
|
|
|
|
status: undefined, |
|
|
|
|
|
deleted: undefined, |
|
|
|
|
|
tenantId: undefined, |
|
|
|
|
|
createTime: undefined, |
|
|
|
|
|
updateTime: undefined, |
|
|
|
|
|
sortNumber: 100 |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
/* 更新visible */ |
|
|
|
|
|
const updateVisible = (value: boolean) => { |
|
|
|
|
|
emit('update:visible', value); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
/* 更新visible */ |
|
|
|
|
|
const updateVisible = (value: boolean) => { |
|
|
|
|
|
emit('update:visible', value); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
// 表单验证规则 |
|
|
|
|
|
const rules = reactive({ |
|
|
|
|
|
hjmBxLogName: [ |
|
|
|
|
|
{ |
|
|
|
|
|
required: true, |
|
|
|
|
|
type: 'string', |
|
|
|
|
|
message: '请填写黄家明_报险记录名称', |
|
|
|
|
|
trigger: 'blur' |
|
|
|
|
|
} |
|
|
|
|
|
] |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
// 表单验证规则 |
|
|
|
|
|
const rules = reactive({ |
|
|
|
|
|
hjmBxLogName: [ |
|
|
|
|
|
{ |
|
|
|
|
|
required: true, |
|
|
|
|
|
type: 'string', |
|
|
|
|
|
message: '请填写黄家明_报险记录名称', |
|
|
|
|
|
trigger: 'blur' |
|
|
|
|
|
} |
|
|
|
|
|
] |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
const chooseImage = (data: FileRecord) => { |
|
|
|
|
|
images.value.push({ |
|
|
|
|
|
uid: data.id, |
|
|
|
|
|
url: data.path, |
|
|
|
|
|
status: 'done' |
|
|
|
|
|
}); |
|
|
|
|
|
form.image = data.path; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
const chooseImage = (data: FileRecord) => { |
|
|
|
|
|
images.value.push({ |
|
|
|
|
|
uid: data.id, |
|
|
|
|
|
url: data.path, |
|
|
|
|
|
status: 'done' |
|
|
|
|
|
}); |
|
|
|
|
|
form.image = data.path; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
const onDeleteItem = (index: number) => { |
|
|
|
|
|
images.value.splice(index, 1); |
|
|
|
|
|
form.image = ''; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
const onDeleteItem = (index: number) => { |
|
|
|
|
|
images.value.splice(index, 1); |
|
|
|
|
|
form.image = ''; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
const { resetFields } = useForm(form, rules); |
|
|
|
|
|
|
|
|
const {resetFields} = useForm(form, rules); |
|
|
|
|
|
|
|
|
/* 保存编辑 */ |
|
|
|
|
|
const save = () => { |
|
|
|
|
|
if (!formRef.value) { |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
formRef.value |
|
|
|
|
|
.validate() |
|
|
|
|
|
.then(() => { |
|
|
|
|
|
loading.value = true; |
|
|
|
|
|
const formData = { |
|
|
|
|
|
...form |
|
|
|
|
|
}; |
|
|
|
|
|
const saveOrUpdate = isUpdate.value ? updateHjmBxLog : addHjmBxLog; |
|
|
|
|
|
saveOrUpdate(formData) |
|
|
|
|
|
.then((msg) => { |
|
|
|
|
|
loading.value = false; |
|
|
|
|
|
message.success(msg); |
|
|
|
|
|
updateVisible(false); |
|
|
|
|
|
emit('done'); |
|
|
|
|
|
}) |
|
|
|
|
|
.catch((e) => { |
|
|
|
|
|
loading.value = false; |
|
|
|
|
|
message.error(e.message); |
|
|
|
|
|
}); |
|
|
|
|
|
}) |
|
|
|
|
|
.catch(() => {}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
/* 保存编辑 */ |
|
|
|
|
|
const save = () => { |
|
|
|
|
|
if (!formRef.value) { |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
formRef.value |
|
|
|
|
|
.validate() |
|
|
|
|
|
.then(() => { |
|
|
|
|
|
loading.value = true; |
|
|
|
|
|
const formData = { |
|
|
|
|
|
...form |
|
|
|
|
|
}; |
|
|
|
|
|
const saveOrUpdate = isUpdate.value ? updateHjmBxLog : addHjmBxLog; |
|
|
|
|
|
saveOrUpdate(formData) |
|
|
|
|
|
.then((msg) => { |
|
|
|
|
|
loading.value = false; |
|
|
|
|
|
message.success(msg); |
|
|
|
|
|
updateVisible(false); |
|
|
|
|
|
emit('done'); |
|
|
|
|
|
}) |
|
|
|
|
|
.catch((e) => { |
|
|
|
|
|
loading.value = false; |
|
|
|
|
|
message.error(e.message); |
|
|
|
|
|
}); |
|
|
|
|
|
}) |
|
|
|
|
|
.catch(() => { |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
watch( |
|
|
|
|
|
() => props.visible, |
|
|
|
|
|
(visible) => { |
|
|
|
|
|
if (visible) { |
|
|
|
|
|
images.value = []; |
|
|
|
|
|
if (props.data) { |
|
|
|
|
|
assignObject(form, props.data); |
|
|
|
|
|
if(props.data.image){ |
|
|
|
|
|
|
|
|
watch( |
|
|
|
|
|
() => props.visible, |
|
|
|
|
|
(visible) => { |
|
|
|
|
|
if (visible) { |
|
|
|
|
|
images.value = []; |
|
|
|
|
|
if (props.data) { |
|
|
|
|
|
assignObject(form, props.data); |
|
|
|
|
|
if (props.data.image) { |
|
|
|
|
|
const arr = JSON.parse(props.data.image); |
|
|
|
|
|
arr.map((item) => { |
|
|
images.value.push({ |
|
|
images.value.push({ |
|
|
uid: uuid(), |
|
|
uid: uuid(), |
|
|
url: props.data.image, |
|
|
|
|
|
|
|
|
url: item.url, |
|
|
status: 'done' |
|
|
status: 'done' |
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
isUpdate.value = true; |
|
|
|
|
|
} else { |
|
|
|
|
|
isUpdate.value = false; |
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
isUpdate.value = true; |
|
|
} else { |
|
|
} else { |
|
|
resetFields(); |
|
|
|
|
|
|
|
|
isUpdate.value = false; |
|
|
} |
|
|
} |
|
|
}, |
|
|
|
|
|
{ immediate: true } |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
resetFields(); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
{immediate: true} |
|
|
|
|
|
); |
|
|
</script> |
|
|
</script> |
|
|