This commit is contained in:
zmj 2024-03-14 15:51:04 +08:00
parent 4d40132a02
commit 270288c78e
87 changed files with 400 additions and 718 deletions

View File

@ -16,7 +16,7 @@
</div> </div>
</template> </template>
<script setup> <script setup>
import { ref, reactive, defineProps, defineEmits } from "vue" import { ref, defineProps, defineEmits } from "vue"
import configs from "@/config" import configs from "@/config"
import useUserStore from "@/stores/modules/user"; import useUserStore from "@/stores/modules/user";
const userStore = useUserStore(); const userStore = useUserStore();

View File

@ -1,30 +1,12 @@
<template> <template>
<div class="upload"> <div class="upload">
<el-upload <el-upload ref="uploadRefs" :action="action" :multiple="multiple" :limit="limit" :show-file-list="false"
ref="uploadRefs" :headers="headers" :data="data" :on-progress="handleProgress" :on-success="handleSuccess"
:action="action" :on-exceed="handleExceed" :on-error="handleError" :accept="getAccept">
:multiple="multiple"
:limit="limit"
:show-file-list="false"
:headers="headers"
:data="data"
:on-progress="handleProgress"
:on-success="handleSuccess"
:on-exceed="handleExceed"
:on-error="handleError"
:accept="getAccept"
>
<slot></slot> <slot></slot>
</el-upload> </el-upload>
<el-dialog <el-dialog v-if="showProgress && fileList.length" v-model="visible" title="上传进度" :close-on-click-modal="false"
v-if="showProgress && fileList.length" width="500px" :modal="false" @close="handleClose">
v-model="visible"
title="上传进度"
:close-on-click-modal="false"
width="500px"
:modal="false"
@close="handleClose"
>
<div class="file-list p-4"> <div class="file-list p-4">
<template v-for="(item, index) in fileList" :key="index"> <template v-for="(item, index) in fileList" :key="index">
<div class="mb-5"> <div class="mb-5">

View File

@ -0,0 +1,44 @@
<template>
<el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
class="upload-demo" :show-file-list="false" aria-hidden="true" :headers="{ Token: userStore?.token }"
:action="base_url + '/upload/file'" :on-success="handleAvatarSuccess" ref="upload" :limit="5" multiple>
<el-button type="primary">
上传
</el-button>
</el-upload>
<div>
<div v-for="(item, index) in formData[value]" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{
item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFile(index)">x</span>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, defineProps } from "vue"
import configs from "@/config"
import useUserStore from "@/stores/modules/user";
const userStore = useUserStore();
const base_url = ref(configs.baseUrl + configs.urlPrefix)
const props = defineProps({
formData: {
type: Object,
require: true
},
value: {
type: String,
default: 'annex'
}
})
const handleAvatarSuccess = (response: any) => {
props.formData[props.value] ||= []
// @ts-ignore
response.code != 0 ? props.formData[props.value].push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFile = (index: number) => { props.formData.annex.splice(index, 1) }
</script>

View File

@ -204,7 +204,9 @@ import bankaccountDialog from '@/components/bankaccount/index.vue'
import salescontractDialog from '@/components/salescontract/index.vue' import salescontractDialog from '@/components/salescontract/index.vue'
import { acceptancebillAdd, acceptancebillEdit, acceptancebillDetail } from '@/api/acceptance' import { acceptancebillAdd, acceptancebillEdit, acceptancebillDetail } from '@/api/acceptance'
import { toChinesNum } from "@/utils/util"; import { toChinesNum } from "@/utils/util";
import { getAllProjectTypes } from '@/api/projecttype'
import { timeFormat } from '@/utils/util'
import { isEmail, isIdCard, isPhone } from '@/utils/validate'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import { deptAll } from '@/api/org/department' import { deptAll } from '@/api/org/department'
import { getAll } from '@/api/org/organization' import { getAll } from '@/api/org/organization'

View File

@ -169,8 +169,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -272,17 +271,7 @@ const submituser = (e: any) => {
// //
const formRules = reactive<any>({ const formRules = reactive<any>({
}) })
const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
// //
const setFormData = async (data: Record<any, any>) => { const setFormData = async (data: Record<any, any>) => {

View File

@ -1,7 +1,8 @@
<template> <template>
<div class="edit-popup"> <div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose"> <popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit"
@close="handleClose">
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
@ -50,9 +51,7 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="图例说明"> <el-form-item label="图例说明">
<!-- <material-picker v-model="formData.annex" :limit="100" /> --> <uploadAnnex :formData="formData"></uploadAnnex>
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
@ -61,17 +60,10 @@
<el-input v-model="formData.quality_control_points" clearable placeholder="请输入质量控制点" /> <el-input v-model="formData.quality_control_points" clearable placeholder="请输入质量控制点" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-dialog v-model="showDialog" title="选择客户" width="70%"> <el-dialog v-model="showDialog" title="选择客户" width="70%">
<customDialog @customEvent="customEvent"></customDialog> <customDialog @customEvent="customEvent"></customDialog>
</el-dialog> </el-dialog>
</el-form> </el-form>
</popup> </popup>
@ -84,15 +76,8 @@ import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue' import Popup from '@/components/popup/index.vue'
import { buildprocesssettingsAdd, buildprocesssettingsEdit, buildprocesssettingsDetail } from '@/api/build/build_process_settings' import { buildprocesssettingsAdd, buildprocesssettingsEdit, buildprocesssettingsDetail } from '@/api/build/build_process_settings'
import type { PropType } from 'vue' import type { PropType } from 'vue'
//
import annexUpload from "@/components/annexUpload/index.vue"
const handleAvatarSuccess_four = (response: any) => {
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const showDialog = ref(false) const showDialog = ref(false)
const subentry_engineering = ref('') const subentry_engineering = ref('')
const subentry_engineering_code = ref('') const subentry_engineering_code = ref('')

View File

@ -1,7 +1,8 @@
<template> <template>
<div class="edit-popup"> <div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose"> <popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit"
@close="handleClose">
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
@ -50,9 +51,7 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="图例说明"> <el-form-item label="图例说明">
<!-- <material-picker v-model="formData.annex" :limit="100" /> --> <uploadAnnex :formData="formData"></uploadAnnex>
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
@ -61,11 +60,7 @@
<el-input v-model="formData.quality_control_points" clearable placeholder="请输入质量控制点" /> <el-input v-model="formData.quality_control_points" clearable placeholder="请输入质量控制点" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-dialog v-model="showDialog" title="选择客户" width="70%"> <el-dialog v-model="showDialog" title="选择客户" width="70%">
<customDialog @customEvent="customEvent"></customDialog> <customDialog @customEvent="customEvent"></customDialog>
</el-dialog> </el-dialog>
@ -84,15 +79,8 @@ import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue' import Popup from '@/components/popup/index.vue'
import { buildprocesssettingsAdd, buildprocesssettingsEdit, buildprocesssettingsDetail } from '@/api/build/build_process_settings' import { buildprocesssettingsAdd, buildprocesssettingsEdit, buildprocesssettingsDetail } from '@/api/build/build_process_settings'
import type { PropType } from 'vue' import type { PropType } from 'vue'
//
import annexUpload from "@/components/annexUpload/index.vue"
const handleAvatarSuccess_four = (response: any) => {
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const showDialog = ref(false) const showDialog = ref(false)
const subentry_engineering = ref('') const subentry_engineering = ref('')
const subentry_engineering_code = ref('') const subentry_engineering_code = ref('')

View File

@ -1,148 +1,3 @@
<!-- <template>
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit"
@close="handleClose">
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
<el-form-item label="项目id" prop="project_id">
<el-input v-model="formData.project_id" clearable placeholder="请输入项目id" />
</el-form-item>
<el-form-item label="文档名称" prop="title">
<el-input v-model="formData.title" clearable placeholder="请输入文档名称" />
</el-form-item>
<el-form-item label="目录id" prop="directory_id">
<el-input v-model="formData.directory_id" clearable placeholder="请输入目录id" />
</el-form-item>
<el-form-item label="子目录" prop="subdirectory_id">
<el-input v-model="formData.subdirectory_id" clearable placeholder="请输入子目录" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
</el-form-item>
<el-form-item label="附件" prop="annex">
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup name="consultAcceptEdit">
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { apiConsultAcceptAdd, apiConsultAcceptEdit, apiConsultAcceptDetail } from '@/api/consult_accept'
import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue'
defineProps({
dictData: {
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
})
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
//
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑项目咨询--验收管理' : '新增项目咨询--验收管理'
})
//
const formData = reactive({
id: '',
project_id: '',
title: '',
directory_id: '',
subdirectory_id: '',
remark: '',
annex: '',
})
//
const formRules = reactive<any>({
project_id: [{
required: true,
message: '请输入项目id',
trigger: ['blur']
}],
title: [{
required: true,
message: '请输入文档名称',
trigger: ['blur']
}],
directory_id: [{
required: true,
message: '请输入目录id',
trigger: ['blur']
}],
subdirectory_id: [{
required: true,
message: '请输入子目录',
trigger: ['blur']
}],
remark: [{
required: true,
message: '请输入备注',
trigger: ['blur']
}]
})
//
const setFormData = async (data: Record<any, any>) => {
for (const key in formData) {
if (data[key] != null && data[key] != undefined) {
//@ts-ignore
formData[key] = data[key]
}
}
}
const getDetail = async (row: Record<string, any>) => {
const data = await apiConsultAcceptDetail({
id: row.id
})
setFormData(data)
}
//
const handleSubmit = async () => {
await formRef.value?.validate()
const data = { ...formData, }
mode.value == 'edit'
? await apiConsultAcceptEdit(data)
: await apiConsultAcceptAdd(data)
popupRef.value?.close()
emit('success')
}
//
const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
//
const handleClose = () => {
emit('close')
}
defineExpose({
open,
setFormData,
getDetail
})
</script> -->
<template> <template>
<div class="edit-popup"> <div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" <popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit"
@ -172,8 +27,7 @@ defineExpose({
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -224,14 +78,6 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id
formData.project_name = e.project_name formData.project_name = e.project_name

View File

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -79,14 +78,6 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id
formData.project_name = e.project_name formData.project_name = e.project_name

View File

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -78,15 +77,6 @@ const formData = reactive({
annex: [], annex: [],
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id
formData.project_name = e.project_name formData.project_name = e.project_name

View File

@ -171,8 +171,7 @@ defineExpose({
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -223,14 +222,6 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id
formData.project_name = e.project_name formData.project_name = e.project_name

View File

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -76,13 +75,6 @@ const formData = reactive({
annex: [], annex: [],
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id

View File

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -79,21 +78,12 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id
formData.project_name = e.project_name formData.project_name = e.project_name
showDialog.value = false showDialog.value = false
} }
// //
const SubdirectoryList = ref([]) const SubdirectoryList = ref([])

View File

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -78,14 +77,6 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id
formData.project_name = e.project_name formData.project_name = e.project_name

View File

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -42,7 +41,6 @@
import type { FormInstance } from 'element-plus' import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue' import Popup from '@/components/popup/index.vue'
import { apiConsultDesignAdd, apiConsultDesignEdit, } from '@/api/consult_design' import { apiConsultDesignAdd, apiConsultDesignEdit, } from '@/api/consult_design'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import { consult_project } from "@/components/dialogTable/dialogTableConfig" import { consult_project } from "@/components/dialogTable/dialogTableConfig"
import { apiConsultSubdirectoryLists } from '@/api/consult_subdirectory' import { apiConsultSubdirectoryLists } from '@/api/consult_subdirectory'
@ -80,14 +78,6 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id
formData.project_name = e.project_name formData.project_name = e.project_name

View File

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -78,15 +77,6 @@ const formData = reactive({
annex: [], annex: [],
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id
formData.project_name = e.project_name formData.project_name = e.project_name

View File

@ -184,8 +184,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -271,14 +270,6 @@ const formData = reactive({
create_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'), create_time: timeFormat('', 'yyyy-mm-dd hh:MM:ss'),
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
// //
const formRules = reactive<any>({ const formRules = reactive<any>({

View File

@ -171,8 +171,7 @@ defineExpose({
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -223,13 +222,6 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id

View File

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -79,13 +78,6 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id

View File

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -79,14 +78,6 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const customEvent = (e: any) => { const customEvent = (e: any) => {
formData.project_id = e.id formData.project_id = e.id
formData.project_name = e.project_name formData.project_name = e.project_name
@ -145,7 +136,6 @@ const setFormData = async (data: Record<any, any>) => {
} }
let res = await apiConsultSubdirectoryLists({ directory_id: formData.directory_id }) let res = await apiConsultSubdirectoryLists({ directory_id: formData.directory_id })
SubdirectoryList.value = res.lists SubdirectoryList.value = res.lists
} }

View File

@ -171,8 +171,8 @@ defineExpose({
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -224,7 +224,7 @@ const formData = reactive({
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = [] formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -283,8 +283,8 @@
</el-row> </el-row>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
</popup> </popup>
@ -359,7 +359,7 @@ const formData = reactive({
}) })
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
if (!Array.isArray(formData.annex)) formData.annex = [] formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -33,8 +33,10 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="行业" prop="industry"> <el-form-item label="行业" prop="industry">
<el-select v-model="formData.industry" clearable placeholder="请选择行业" class="flex-1"> <el-select v-model="formData.industry" clearable placeholder="请选择行业" class="flex-1">
<el-option v-for="(item, index) in dictData.cost_consultation_industry_nature" <el-option v-for="(
:key="index" :label="item.name" :value="parseInt(item.value)" /> item, index
) in dictData.cost_consultation_industry_nature" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -84,7 +86,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="组织" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]"> <el-form-item label="组织" :rules="[
{ required: true, message: '不可为空', trigger: 'blur' },
]">
<el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织" <el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织"
@change="deptrmt"> @change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" <el-option v-for="(item, index) in list1" :key="index" :label="item.name"
@ -95,8 +99,9 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="请选择部门" prop="depar" <el-form-item label="请选择部门" prop="depar" :rules="[
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" label-width="100px"> { required: true, message: '不可为空', trigger: 'blur' },
]" label-width="100px">
<el-select class="flex-1" v-model="formData.depar" clearable placeholder="请选择部门"> <el-select class="flex-1" v-model="formData.depar" clearable placeholder="请选择部门">
<el-option v-for="(item, index) in list2" :key="index" :label="item.name" <el-option v-for="(item, index) in list2" :key="index" :label="item.name"
:value="item.id" /> :value="item.id" />
@ -188,134 +193,116 @@
</el-row> </el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
<dialogTable :config='cost_approved_projects' @customEvent="customEvent"></dialogTable> <dialogTable :config="cost_approved_projects" @customEvent="customEvent"></dialogTable>
</el-dialog> </el-dialog>
<div v-if="showDialog1"> <div v-if="showDialog1">
<personnelselector ref="personnel" @confirm="submituser" :type="persoleType"> <personnelselector ref="personnel" @confirm="submituser" :type="persoleType">
</personnelselector> </personnelselector>
</div> </div>
</el-form> </el-form>
</popup> </popup>
</div> </div>
</template> </template>
<script lang="ts" setup name="costProjectEdit"> <script lang="ts" setup name="costProjectEdit">
import type { FormInstance } from 'element-plus' import type { FormInstance } from "element-plus";
import Popup from '@/components/popup/index.vue' import Popup from "@/components/popup/index.vue";
import { apiCostProjectAdd, apiCostProjectEdit } from '@/api/cost_project' import { apiCostProjectAdd, apiCostProjectEdit } from "@/api/cost_project";
import type { PropType } from 'vue' import type { PropType } from "vue";
import { deptAll } from '@/api/org/department' import { deptAll } from "@/api/org/department";
import { getAll } from '@/api/org/organization' import { getAll } from "@/api/org/organization";
import { useRoute } from 'vue-router' import { useRoute } from "vue-router";
import { cost_approved_projects } from "@/components/dialogTable/dialogTableConfig" import { cost_approved_projects } from "@/components/dialogTable/dialogTableConfig";
import { import { apiCityList, apiAreaList, apiProvinceList } from "@/api/common";
apiCityList,
apiAreaList,
apiProvinceList,
} from "@/api/common";
defineProps({ defineProps({
dictData: { dictData: {
type: Object as PropType<Record<string, any[]>>, type: Object as PropType<Record<string, any[]>>,
default: () => ({}) default: () => ({}),
} },
}) });
const emit = defineEmits(['success', 'close']) const emit = defineEmits(["success", "close"]);
const formRef = shallowRef<FormInstance>() const formRef = shallowRef<FormInstance>();
const popupRef = shallowRef<InstanceType<typeof Popup>>() const popupRef = shallowRef<InstanceType<typeof Popup>>();
const mode = ref('add') const mode = ref("add");
const showDialog = ref(false) const showDialog = ref(false);
const showDialog1 = ref(false) const showDialog1 = ref(false);
const list1 = reactive([]) const list1 = reactive([]);
const list2 = reactive([]) const list2 = reactive([]);
const personnel = ref<any>() const personnel = ref<any>();
const route = useRoute() const route = useRoute();
// //
const popupTitle = computed(() => { const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑造价项目台账' : '新增造价项目台账' return mode.value == "edit" ? "编辑造价项目台账" : "新增造价项目台账";
}) });
// //
const formData = reactive({ const formData = reactive({
id: '', id: "",
project_num: '', project_num: "",
project_name: '', project_name: "",
contract_id: '', contract_id: "",
contract_name: "", contract_name: "",
types: '', types: "",
industry: '', industry: "",
province: '', province: "",
city: '', city: "",
org_id: "", org_id: "",
js_unit: "", js_unit: "",
address: '', address: "",
starting: '', starting: "",
endtime: '', endtime: "",
jhgq: '', jhgq: "",
depar: '', depar: "",
principal: '', principal: "",
principal_id: '', principal_id: "",
person: '', person: "",
person_id: '', person_id: "",
invest: '', invest: "",
budget: '', budget: "",
cost: '', cost: "",
approval: '', approval: "",
aunit: '', aunit: "",
Acontact: '', Acontact: "",
acontactnum: '', acontactnum: "",
date: '', date: "",
generalize: '', generalize: "",
note: '', note: "",
remark: '', remark: "",
annex: [], annex: [],
}) });
// //
const getlist = () => { const getlist = () => {
getAll().then((res) => { getAll().then((res) => {
Object.assign(list1, res) Object.assign(list1, res);
});
}) };
}
// //
const deptrmt = (e: any) => { const deptrmt = (e: any) => {
formData.dept_id = '' formData.dept_id = "";
getlist1(e) getlist1(e);
};
}
// //
const getlist1 = (id: any) => { const getlist1 = (id: any) => {
deptAll({ 'org_id': id }).then((res) => { deptAll({ org_id: id }).then((res) => {
list2.splice(0, list2.length, ...res) list2.splice(0, list2.length, ...res);
}) });
}
const handleAvatarSuccess_four = (response: any) => {
if (!Array.isArray(formData.annex)) formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
const datas = reactive({ const datas = reactive({
provinceOptions: [], provinceOptions: [],
cityOptions: [], cityOptions: [],
}); });
const customEvent = (e) => { const customEvent = (e) => {
formData.contract_id = e.id formData.contract_id = e.id;
formData.contract_name = e.contract_name formData.contract_name = e.contract_name;
showDialog.value = false showDialog.value = false;
} };
const getProvinceList = async () => { const getProvinceList = async () => {
const data = await apiProvinceList({}); const data = await apiProvinceList({});
@ -333,128 +320,140 @@ function province_change(value: string) {
// //
const formRules = reactive<any>({ const formRules = reactive<any>({
project_name: [{ project_name: [
required: true, {
message: '请输入项目名称', required: true,
trigger: ['blur'] message: "请输入项目名称",
}], trigger: ["blur"],
contract_id: [{ },
required: true, ],
message: '请输入关联合同', contract_id: [
trigger: ['blur'] {
}], required: true,
starting: [{ message: "请输入关联合同",
required: true, trigger: ["blur"],
message: '请输入计划开始日期', },
trigger: ['blur'] ],
}], starting: [
endtime: [{ {
required: true, required: true,
message: '请输入计划结束日期', message: "请输入计划开始日期",
trigger: ['blur'] trigger: ["blur"],
}], },
jhgq: [{ ],
required: true, endtime: [
message: '请输入计划工期(天)', {
trigger: ['blur'] required: true,
}], message: "请输入计划结束日期",
principal: [{ trigger: ["blur"],
required: true, },
message: '请输入项目负责人', ],
trigger: ['blur'] jhgq: [
}], {
invest: [{ required: true,
required: true, message: "请输入计划工期(天)",
message: '请输入项目总投资(万元)', trigger: ["blur"],
trigger: ['blur'] },
}], ],
aunit: [{ principal: [
required: true, {
message: '请输入委托单位', required: true,
trigger: ['blur'] message: "请输入项目负责人",
}] trigger: ["blur"],
}) },
],
invest: [
{
required: true,
message: "请输入项目总投资(万元)",
trigger: ["blur"],
},
],
aunit: [
{
required: true,
message: "请输入委托单位",
trigger: ["blur"],
},
],
});
// //
const setFormData = async (data: Record<any, any>) => { const setFormData = async (data: Record<any, any>) => {
for (const key in formData) { for (const key in formData) {
if (data[key] != null && data[key] != undefined) { if (data[key] != null && data[key] != undefined) {
//@ts-ignore //@ts-ignore
formData[key] = data[key] formData[key] = data[key];
} }
} }
formData.province = Number(formData.province) formData.province = Number(formData.province);
formData.city = Number(formData.city) formData.city = Number(formData.city);
formData.depar = Number(formData.depar) formData.depar = Number(formData.depar);
formData.contract_name = data.contract.contract_name formData.contract_name = data.contract.contract_name;
getCityList(); getCityList();
deptrmt(formData.org_id) deptrmt(formData.org_id);
} };
// //
const handleSubmit = async () => { const handleSubmit = async () => {
Array.isArray(formData.annex) ? '' : formData.annex = [] Array.isArray(formData.annex) ? "" : (formData.annex = []);
await formRef.value?.validate() await formRef.value?.validate();
const data = { ...formData, } const data = { ...formData };
mode.value == 'edit' mode.value == "edit"
? await apiCostProjectEdit(data) ? await apiCostProjectEdit(data)
: await apiCostProjectAdd(data) : await apiCostProjectAdd(data);
popupRef.value?.close() popupRef.value?.close();
emit('success') emit("success");
} };
// //
const open = (type = 'add') => { const open = (type = "add") => {
mode.value = type mode.value = type;
popupRef.value?.open() popupRef.value?.open();
getlist() getlist();
};
}
// //
const userclick = async (e: any) => { const userclick = async (e: any) => {
e == 'person' ? persoleType.value = 2 : persoleType.value = 1 e == "person" ? (persoleType.value = 2) : (persoleType.value = 1);
// label.value = e // label.value = e
showDialog1.value = true showDialog1.value = true;
await nextTick() await nextTick();
personnel.value.open() personnel.value.open();
};
} const label = ref("");
const persoleType = ref("1");
const label = ref('')
const persoleType = ref('1')
// //
const submituser = (e: any) => { const submituser = (e: any) => {
let flag = Array.isArray(e) let flag = Array.isArray(e);
let personl; let personl;
let personl_id; let personl_id;
personl = (flag ? (e.map(item => [item.name])).join(',') : e.name) personl = flag ? e.map((item) => [item.name]).join(",") : e.name;
personl_id = (flag ? (e.map(item => [item.id])).join(',') : e.id) personl_id = flag ? e.map((item) => [item.id]).join(",") : e.id;
console.log(personl_id, 'personl_id') console.log(personl_id, "personl_id");
if (flag) { if (flag) {
formData.person = personl; formData.person = personl;
formData.person_id = personl_id formData.person_id = personl_id;
} else { } else {
formData.principal = personl formData.principal = personl;
formData.principal_id = personl_id formData.principal_id = personl_id;
} }
// formData.person_id = (flag ? (e.map(item => [item.id])).join(',') : e.id) // formData.person_id = (flag ? (e.map(item => [item.id])).join(',') : e.id)
// formData[label.value] = personl // formData[label.value] = personl
showDialog1.value = false showDialog1.value = false;
} };
// //
const handleClose = () => { const handleClose = () => {
emit('close') emit("close");
} };
if (route.query.contractId) { if (route.query.contractId) {
// handleAdd() // handleAdd()
formData.contract_id = route.query.contractId formData.contract_id = route.query.contractId;
formData.contract_name = route.query.contractName formData.contract_name = route.query.contractName;
} }
getProvinceList(); getProvinceList();
@ -462,5 +461,5 @@ getProvinceList();
defineExpose({ defineExpose({
open, open,
setFormData, setFormData,
}) });
</script> </script>

View File

@ -27,8 +27,8 @@
<el-input v-model="formData.notes" clearable placeholder="请输入备注" /> <el-input v-model="formData.notes" clearable placeholder="请输入备注" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-dialog v-model="showDialog" title="选择客户" width="70%"> <el-dialog v-model="showDialog" title="选择客户" width="70%">

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="edit-popup"> <div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="60%" @confirm="handleSubmit" @close="handleClose"> <popup ref="popupRef" :title="popupTitle" :async="true" width="60%" @confirm="handleSubmit"
@close="handleClose">
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
<el-form-item label="主题" prop="name"> <el-form-item label="主题" prop="name">
<el-input v-model="formData.name" clearable placeholder="请输入主题" /> <el-input v-model="formData.name" clearable placeholder="请输入主题" />
@ -30,8 +31,7 @@
<el-input v-model="formData.description" clearable placeholder="请输入行动描述" /> <el-input v-model="formData.description" clearable placeholder="请输入行动描述" />
</el-form-item> </el-form-item>
<el-form-item label="附件/现场照片" prop="annex"> <el-form-item label="附件/现场照片" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<el-form-item label="位置" prop="coordinate"> <el-form-item label="位置" prop="coordinate">
<el-input v-model="formData.coordinate" clearable placeholder="请输入位置" /> <el-input v-model="formData.coordinate" clearable placeholder="请输入位置" />
@ -58,17 +58,7 @@ import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import { usePaging } from '@/hooks/usePaging' import { usePaging } from '@/hooks/usePaging'
import { apiCustomLists } from '@/api/custom' import { apiCustomLists } from '@/api/custom'
//
import annexUpload from "@/components/annexUpload/index.vue"
const handleAvatarSuccess_four = (response: any) => {
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
// <annexUpload : annex = "formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
// @delFile="delFileFn" />
defineProps({ defineProps({
dictData: { dictData: {

View File

@ -97,8 +97,8 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -134,27 +134,21 @@ import { apiCustomServiceAdd, apiCustomServiceDetail } from '@/api/custom_servic
import personnelselector from '@/components/personnelselector/index.vue' import personnelselector from '@/components/personnelselector/index.vue'
import { timeFormat } from '@/utils/util' import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import useUserStore from "@/stores/modules/user";
import configs from "@/config"
const list1 = reactive([]) const list1 = reactive([])
const list2 = reactive([]) const list2 = reactive([])
import { deptAll } from '@/api/org/department' import { deptAll } from '@/api/org/department'
import { getAll } from '@/api/org/organization' import { getAll } from '@/api/org/organization'
import reviewprocess from '@/components/reviewprocess/index.vue'
import costDialog from '@/components/budget/index.vue'
import peojectDialog from '@/components/project/index.vue' import peojectDialog from '@/components/project/index.vue'
// //
import annexUpload from "@/components/annexUpload/index.vue"
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };
// //
const delFileFn = (index: number) => { formData.annex.splice(index, 1) } const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
// <annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
// @delFile="delFileFn" />
const list = reactive([]) const list = reactive([])
const showDialog = ref(false) const showDialog = ref(false)

View File

@ -56,8 +56,8 @@
<el-input v-model="formData.demand_content" clearable placeholder="请输入需求内容" /> <el-input v-model="formData.demand_content" clearable placeholder="请输入需求内容" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
</popup> </popup>

View File

@ -46,8 +46,8 @@
<el-input v-model="formData.customer_feedback" clearable placeholder="请输入客户反馈" /> <el-input v-model="formData.customer_feedback" clearable placeholder="请输入客户反馈" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -81,6 +81,7 @@ import type { PropType } from 'vue'
// //
import annexUpload from "@/components/annexUpload/index.vue" import annexUpload from "@/components/annexUpload/index.vue"
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -102,8 +102,8 @@
</el-row> </el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="datas"> <el-form-item label="附件" prop="datas">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-form-item label="文本输入框" prop="fd_23"> <el-form-item label="文本输入框" prop="fd_23">
@ -143,7 +143,7 @@ const showDialog3 = ref(false)
const personnel = ref<any>() const personnel = ref<any>()
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = [] formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -3,11 +3,8 @@
<el-card class="!border-none mb-4" shadow="never"> <el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline> <el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="所属项目" prop="cost_project_id"> <el-form-item label="所属项目" prop="cost_project_id">
<el-select v-model="queryParams.project_id" remote filterable :remote-method="queryCostProject" <select-remote model="project_id" :formData="queryParams"
:loading="loading" class="flex-1"> :api="apiCostProjectDatas"></select-remote>
<el-option v-for="(item, index) in optionsData.projectList" :key="index"
:label="item.projectinfo" :value="item.id" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="单据编号" prop="num"> <el-form-item label="单据编号" prop="num">
<el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" /> <el-input class="w-[280px]" v-model="queryParams.num" clearable placeholder="请输入单据编号" />
@ -81,34 +78,14 @@
import { usePaging } from '@/hooks/usePaging' import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions' import { useDictData } from '@/hooks/useDictOptions'
import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report' import { apiJianliProjectProgressReportLists, apiJianliProjectProgressReportDelete, apiJianliProjectProgressReportDetail } from '@/api/jianli_project_progress_report'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback' import feedback from '@/utils/feedback'
import EditPopup from './edit.vue' import EditPopup from './edit.vue'
import { apiCostProjectDatas } from "@/api/cost_project"; import { apiCostProjectDatas } from "@/api/cost_project";
import { useDictOptions } from "@/hooks/useDictOptions"
const editRef = shallowRef<InstanceType<typeof EditPopup>>() const editRef = shallowRef<InstanceType<typeof EditPopup>>()
// //
const showEdit = ref(false) const showEdit = ref(false)
const loading = ref(false)
const queryCostProject = async (query: string) => {
loading.value = true
const projectList = await apiCostProjectDatas({
name: query ?? ''
})
optionsData.projectList = projectList
loading.value = false
}
const { optionsData } = useDictOptions<{
projectList: any[]
}>({
projectList: {
api: apiCostProjectDatas,
}
})
// //
const queryParams = reactive({ const queryParams = reactive({

View File

@ -36,8 +36,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -72,7 +72,7 @@ const popupTitle = computed(() => {
}) })
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = [] formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -31,8 +31,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -62,7 +62,7 @@ const showDialog = ref(false)
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = [] formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -37,8 +37,8 @@
<el-input v-model="formData.giver" clearable placeholder="请输入主送人" /> <el-input v-model="formData.giver" clearable placeholder="请输入主送人" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<el-form-item label="创建人" prop="create_user"> <el-form-item label="创建人" prop="create_user">
<el-input v-model="formData.create_user" clearable placeholder="请输入创建人" /> <el-input v-model="formData.create_user" clearable placeholder="请输入创建人" />
@ -87,7 +87,7 @@ const popupTitle = computed(() => {
}) })
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = [] formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -31,8 +31,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -68,7 +68,7 @@ const popupTitle = computed(() => {
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = [] formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -174,8 +174,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -209,7 +209,7 @@ const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add') const mode = ref('add')
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = [] formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -31,8 +31,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -87,7 +87,7 @@ const customEvent = (e: any) => {
} }
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = [] formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -1,13 +1,16 @@
<template> <template>
<div class="edit-popup"> <div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose"> <popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit"
@close="handleClose">
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<div style="display: flex; flex-direction: row-reverse; justify-content: flex-start;margin-bottom: 30px;"> <div
style="display: flex; flex-direction: row-reverse; justify-content: flex-start;margin-bottom: 30px;">
<el-select class="w-[180px]" v-model="formData.dept_id" clearable placeholder="请选择部门"> <el-select class="w-[180px]" v-model="formData.dept_id" clearable placeholder="请选择部门">
<el-option v-for="(item, index) in list2" :key="index" :label="item.name" :value="item.id" /> <el-option v-for="(item, index) in list2" :key="index" :label="item.name" :value="item.id" />
</el-select> </el-select>
<el-select class="w-[180px]" v-model="formData.org_id" clearable placeholder="请选择组织" @change="deptrmt"> <el-select class="w-[180px]" v-model="formData.org_id" clearable placeholder="请选择组织"
@change="deptrmt">
<el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" /> <el-option v-for="(item, index) in list1" :key="index" :label="item.name" :value="item.id" />
</el-select> </el-select>
</div> </div>
@ -133,7 +136,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="建设方付款方式" prop="construction_payment_method"> <el-form-item label="建设方付款方式" prop="construction_payment_method">
<el-input v-model="formData.construction_payment_method" clearable placeholder="请输入建设方付款方式" /> <el-input v-model="formData.construction_payment_method" clearable
placeholder="请输入建设方付款方式" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -224,8 +228,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -248,6 +252,7 @@ import type { PropType } from 'vue'
// //
import annexUpload from "@/components/annexUpload/index.vue" import annexUpload from "@/components/annexUpload/index.vue"
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -71,6 +71,7 @@ const showDialog = ref(false)
// //
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -216,6 +216,7 @@ const formRules = reactive<any>({
// //
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -136,6 +136,7 @@ const mode = ref('add')
// //
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -358,6 +358,7 @@ const delFileFn = (index: number) => {
const invoiceIndex = ref(0) const invoiceIndex = ref(0)
// //
const handleAvatarSuccess_four1 = (response: any) => { const handleAvatarSuccess_four1 = (response: any) => {
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.invoice_detail[invoiceIndex.value].annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.invoice_detail[invoiceIndex.value].annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -115,6 +115,7 @@ let tax_amount = computed(() => {
}) })
// //
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -93,8 +93,8 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -116,6 +116,7 @@ import { useDictData } from '@/hooks/useDictOptions'
// //
import annexUpload from "@/components/annexUpload/index.vue" import annexUpload from "@/components/annexUpload/index.vue"
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -181,6 +181,8 @@ if (props.project) customEvent(props.project);
// //
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -140,6 +140,7 @@ const formData = reactive({
// //
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };

View File

@ -53,8 +53,8 @@
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
<dialogTable :config="cost_project" @customEvent="customEvent"> <dialogTable :config="cost_project" @customEvent="customEvent">

View File

@ -45,8 +45,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入" /> <el-input v-model="formData.remark" clearable placeholder="请输入" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
<dialogTable :config="cost_project" @customEvent="customEvent"> <dialogTable :config="cost_project" @customEvent="customEvent">
@ -80,14 +79,7 @@ const mode = ref('add')
const showDialog = ref(false) const showDialog = ref(false)
const showDialog3 = ref(false) const showDialog3 = ref(false)
const personnel = ref<any>() const personnel = ref<any>()
const handleAvatarSuccess_four = (response: any) => {
Array.isArray(formData.annex) ? '' : formData.annex = []
// @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
};
//
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
// //
const popupTitle = computed(() => { const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑项目整改' : '新增项目整改' return mode.value == 'edit' ? '编辑项目整改' : '新增项目整改'
@ -141,7 +133,6 @@ const userclick = async (key) => {
// //
const submituser = (e: any) => { const submituser = (e: any) => {
formData[tableKey.value] = e.name formData[tableKey.value] = e.name
// formData.project_change_visa_content[tableIndex.value][tableKey.value + '_id'] = e.id
showDialog3.value = false showDialog3.value = false
} }
@ -160,14 +151,6 @@ const setFormData = async (data: Record<any, any>) => {
} }
const getDetail = async (row: Record<string, any>) => {
const data = await apiProjectRectificationDetail({
id: row.id
})
setFormData(data)
}
// //
const handleSubmit = async () => { const handleSubmit = async () => {
await formRef.value?.validate() await formRef.value?.validate()
@ -195,6 +178,5 @@ const handleClose = () => {
defineExpose({ defineExpose({
open, open,
setFormData, setFormData,
getDetail
}) })
</script> </script>

View File

@ -45,8 +45,8 @@
</el-form-item> </el-col> </el-form-item> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="合同附件"> <el-form-item label="合同附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -51,8 +51,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -68,8 +68,8 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
<!-- <el-upload <!-- <el-upload
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv" accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"

View File

@ -78,8 +78,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<createUserLable :formData="formData" flag></createUserLable> <createUserLable :formData="formData" flag></createUserLable>

View File

@ -87,8 +87,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="project_name"> <el-form-item label="附件" prop="project_name">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<div class="flex justify-end mt-4"> <div class="flex justify-end mt-4">
<el-button type="primary" @click="handleAccept">确定</el-button> <el-button type="primary" @click="handleAccept">确定</el-button>

View File

@ -14,8 +14,8 @@
<el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" /> <el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -42,8 +42,8 @@
<el-input v-model="formData.review_opinions" clearable placeholder="请输入复核意见" /> <el-input v-model="formData.review_opinions" clearable placeholder="请输入复核意见" />
</el-form-item> --> </el-form-item> -->
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -132,8 +132,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -14,8 +14,8 @@
<el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" /> <el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>

View File

@ -14,8 +14,8 @@
<el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" /> <el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
<dialogTable @customEvent="customEvent" :config="supervision_project" /> <dialogTable @customEvent="customEvent" :config="supervision_project" />

View File

@ -20,8 +20,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -14,8 +14,8 @@
<el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" /> <el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<el-form-item label="操作人"> <el-form-item label="操作人">
<el-input v-model="formData.create_user_name" clearable placeholder="请输入操作人" /> <el-input v-model="formData.create_user_name" clearable placeholder="请输入操作人" />

View File

@ -41,8 +41,8 @@
<el-input v-model="formData.other_matters" clearable placeholder="请输入其他事项" type="textarea" /> <el-input v-model="formData.other_matters" clearable placeholder="请输入其他事项" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -62,8 +62,8 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -14,8 +14,8 @@
<el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" /> <el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -106,8 +106,8 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>

View File

@ -115,8 +115,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>

View File

@ -107,8 +107,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -39,8 +39,8 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -36,8 +36,8 @@
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -44,8 +44,8 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -37,8 +37,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">
<dialogTable @customEvent="customEvent" :config="supervision_project" /> <dialogTable @customEvent="customEvent" :config="supervision_project" />

View File

@ -26,8 +26,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>

View File

@ -180,8 +180,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -16,8 +16,8 @@
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -24,8 +24,8 @@
</el-form-item> </el-form-item>
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -38,8 +38,8 @@
<el-input v-model="formData.giver" clearable placeholder="请输入主送人" /> <el-input v-model="formData.giver" clearable placeholder="请输入主送人" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -19,8 +19,8 @@
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -116,8 +116,8 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -16,8 +16,8 @@
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -14,8 +14,8 @@
<el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" /> <el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -14,8 +14,8 @@
<el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" /> <el-input v-model="formData.doc_desc" clearable placeholder="请输入文档简介" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -127,8 +127,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -25,8 +25,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%"> <el-dialog v-model="showDialog" title="选择项目" width="70%">

View File

@ -102,8 +102,8 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<createUserLable :formData="formData" flag></createUserLable> <createUserLable :formData="formData" flag></createUserLable>

View File

@ -41,8 +41,8 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
<createUserLable :formData="formData"></createUserLable> <createUserLable :formData="formData"></createUserLable>
<el-dialog v-model="showDialog1" title="选择单位" width="70%"> <el-dialog v-model="showDialog1" title="选择单位" width="70%">

View File

@ -66,8 +66,8 @@
<createUserLable :formData="formData" flag></createUserLable> <createUserLable :formData="formData" flag></createUserLable>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -40,8 +40,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<createUserLable :formData="formData" flag></createUserLable> <createUserLable :formData="formData" flag></createUserLable>

View File

@ -39,8 +39,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件" prop="annex"> <el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -34,8 +34,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件"> <el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four" <uploadAnnex :formData="formData"></uploadAnnex>
@delFile="delFileFn" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -195,8 +195,6 @@
</el-table> </el-table>
</div> </div>
</el-form> </el-form>
</popup> </popup>
</div> </div>
@ -231,6 +229,7 @@ const showDialog3 = ref(false)
const personnel = ref<any>() const personnel = ref<any>()
const handleAvatarSuccess_four = (response: any) => { const handleAvatarSuccess_four = (response: any) => {
formData.annex ||= []
// @ts-ignore // @ts-ignore
response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg); response.code != 0 ? formData.annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
}; };