import { ref, defineComponent, computed, onMounted, onUnmounted, reactive, } from 'vue'; import { useRoute, useRouter } from 'vue-router'; import { upload, UploadData } from '@/api/common'; import cloneDeep from 'lodash/cloneDeep'; import div from '@/components/div'; import { useCommonStore, useIncidentStore } from '@/store'; import QueryMap from '@/components/QueryMap'; import { BaseMediaUrl} from '@/utils/index'; // import MediaUpload from '@/components/MediaUpload'; import './index.scss'; import { DropdownItemOption, NavBar, DropdownMenu, DropdownItem, Icon, PullRefresh, Sticky, Collapse, CollapseItem, Loading, Form, Field, CellGroup, Popup, Picker, ActionBar, Button, Notify, Uploader, UploaderFileListItem, } from 'vant'; import { isArray } from 'lodash'; export default defineComponent({ name: 'IncidentManagementReport', setup() { const store = useIncidentStore(); const commonStore = useCommonStore(); const detail = computed(() => store.incidentDetail?.baseInfo); const addr = ref(''); const form = ref({ ...detail.value }); const formRef = ref(); const showCreateByPicker = ref(false); const showCreateTypeByPicker = ref(false); const route = useRoute(); const router = useRouter(); const isshowprew = ref(false); const videosrclist = reactive([]); const imagessrclist = reactive([]); const videop = ref(); const videopsrc = ref(""); const handleUpload = (file) => { upload(file).then((res) => { let type = /\w+([.jpg|.png|.gif|.swf|.bmp|.jpeg]){1}$/.test( res.data.fileName?.substr( res.data.fileName?.lastIndexOf('.') + 1 ) ?? '', ); if (!type) { videosrclist.push(res.data); } else { imagessrclist.push(res.data);; } }).catch((error)=>{ }); }; const handleSaveReport = () => { const { id } = route.query; const saveFn = id ? store.putIncidentItem : store.postIncidentItem; // console.log(formRef); const result = saveFn({ ...form.value, level: Number(form.value.level) ?? null, type: Number(form.value.type) ?? null, pic: imagessrclist.map((i: UploadData) => i.url).join(','), video: videosrclist.map((i: UploadData) => i.url).join(','), // status: route.params.status as unknown as number, }); }; onMounted(async () => { commonStore.getGlobalDict('zhdd_incident_level'); commonStore.getGlobalDict('zhdd_incident_type'); commonStore.getGlobalDict('zhdd_org_upload'); route.query.id && (await store.getIncidentItem(route.query.id as string)); addr.value = detail?.value?.addr ?? ''; if (detail.value) { form.value = cloneDeep(detail.value); } }); onUnmounted(() => { commonStore.uploadFiles = []; store.incidentDetail = {}; store.incidentDetail = { baseInfo: {}, process: [], task: [], }; }); return () => (
router.push('/home')} /> { videop.value.pause(); }}>
(showCreateTypeByPicker.value = true)} /> ({ text: i.dictLabel, value: i.dictValue }), )} onConfirm={(value) => { form.value.typeText = value.text; form.value.type = value.value; console.log(value, '---'); showCreateTypeByPicker.value = false; }} onCancel={() => { showCreateTypeByPicker.value = false; }} /> (showCreateByPicker.value = true)} /> ({ text: i.dictLabel, value: i.dictValue }), )} onConfirm={(value) => { form.value.levelText = value.text; form.value.level = value.value; console.log(value, '---'); showCreateByPicker.value = false; }} onCancel={() => { showCreateByPicker.value = false; }} /> { addr.value = add.target.value; }} rules={[{ required: true, message: '事件地点必填' }]} /> { form.value.addr = name; }} onRestPositon={() => { addr.value = store.incidentDetail.baseInfo?.addr ?? ''; form.value.addr = store.incidentDetail.baseInfo?.addr; form.value.locations = store.incidentDetail.baseInfo?.locations; }} /> ( { handleUpload((isArray(file) ? file[0] : file).file); return false; }} onDelete={(filep, detail) => { videosrclist.splice(detail.index, 1); console.log(videosrclist); }} onClick-preview={(index) => { isshowprew.value = true; try { videopsrc.value = URL.createObjectURL(index.file); videop.value.play(); videop.value.currentTime = 0; } catch (error) {} }} // v-slots={{ // 'preview-cover': () => ( // // ), // }} /> ), }} /> ( { imagessrclist.splice(detail.index, 1); console.log(imagessrclist); }} afterRead={( file: UploaderFileListItem | UploaderFileListItem[], ) => { handleUpload((isArray(file) ? file[0] : file).file); return false; }} /> ), }} />
); }, });