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
src
components
annexUpload
upload
uploadAnnex
views
acceptance_bill
apply_with_seal
build_process_settings copy
build_process_settings
consult_accept
consult_contract
consult_control
consult_cost
consult_decision
consult_declare
consult_demand
consult_design
consult_procure
consult_project
consult_receive
consult_scene_execute
consult_scene_org
consult_scene_prepare
cost_approved_projects
cost_projects
custom_contacts
custom_follow
custom_service
customer_demand
customer_demand_solution
jianli_project_progress_report
manage_accept_doc
manage_engineering_changes
manage_info_report
manage_monthly_progress_report
manage_project
manage_send_doc
project
project_cost_adjustment
project_cost_budget
project_equipment_budget
project_expense_reimbursement
project_expense_reimbursement_invoice_detail
project_follow_up
project_labor_budget
project_loan_apply
project_progress_payment
project_rectification
project_salary_payment
project_survey_signature
refundbidDeposit
supervision_accept
supervision_commencement_report
supervision_company_check
supervision_construction_management_personnel
supervision_construction_planning
supervision_contract_disclosure
supervision_dangerous_engineering_case
supervision_design_disclosure
supervision_diary
supervision_entity_parallel_testing
supervision_first_meeting
supervision_inspection
supervision_large_equipment
supervision_large_mechanical_equipment
supervision_material_parallel_testing
supervision_meeting_minutes
supervision_notice
supervision_participating_units_qualifications
supervision_planning
supervision_project
supervision_project_acceptance_report
supervision_project_case_review
supervision_project_info_report
supervision_project_milestones
supervision_project_monthly_report
supervision_project_owner_evaluation
supervision_rules
supervision_rules_disclosure
supervision_safety_management_personnel
supervision_safety_warning_sign
supervision_side_station
supervision_special_operation_personnel
supervision_test_blocks_specimens
supervision_witness_sampling
supervision_work_contact
task_allocation

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

@ -1,30 +1,12 @@
<template>
<div class="upload">
<el-upload
ref="uploadRefs"
:action="action"
: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"
>
<el-upload ref="uploadRefs" :action="action" :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>
</el-upload>
<el-dialog
v-if="showProgress && fileList.length"
v-model="visible"
title="上传进度"
:close-on-click-modal="false"
width="500px"
:modal="false"
@close="handleClose"
>
<el-dialog v-if="showProgress && fileList.length" v-model="visible" title="上传进度" :close-on-click-modal="false"
width="500px" :modal="false" @close="handleClose">
<div class="file-list p-4">
<template v-for="(item, index) in fileList" :key="index">
<div class="mb-5">

@ -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>

@ -204,7 +204,9 @@ import bankaccountDialog from '@/components/bankaccount/index.vue'
import salescontractDialog from '@/components/salescontract/index.vue'
import { acceptancebillAdd, acceptancebillEdit, acceptancebillDetail } from '@/api/acceptance'
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 { deptAll } from '@/api/org/department'
import { getAll } from '@/api/org/organization'

@ -169,8 +169,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="附件" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
@ -272,17 +271,7 @@ const submituser = (e: 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>) => {

@ -1,7 +1,8 @@
<template>
<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">
@ -50,9 +51,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="图例说明">
<!-- <material-picker v-model="formData.annex" :limit="100" /> -->
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col>
<el-col :span="24">
@ -61,17 +60,10 @@
<el-input v-model="formData.quality_control_points" clearable placeholder="请输入质量控制点" />
</el-form-item>
</el-col>
</el-row>
<el-dialog v-model="showDialog" title="选择客户" width="70%">
<customDialog @customEvent="customEvent"></customDialog>
</el-dialog>
</el-form>
</popup>
@ -84,15 +76,8 @@ import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { buildprocesssettingsAdd, buildprocesssettingsEdit, buildprocesssettingsDetail } from '@/api/build/build_process_settings'
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 subentry_engineering = ref('')
const subentry_engineering_code = ref('')

@ -1,7 +1,8 @@
<template>
<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">
@ -50,9 +51,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="图例说明">
<!-- <material-picker v-model="formData.annex" :limit="100" /> -->
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col>
<el-col :span="24">
@ -61,11 +60,7 @@
<el-input v-model="formData.quality_control_points" clearable placeholder="请输入质量控制点" />
</el-form-item>
</el-col>
</el-row>
<el-dialog v-model="showDialog" title="选择客户" width="70%">
<customDialog @customEvent="customEvent"></customDialog>
</el-dialog>
@ -84,15 +79,8 @@ import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { buildprocesssettingsAdd, buildprocesssettingsEdit, buildprocesssettingsDetail } from '@/api/build/build_process_settings'
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 subentry_engineering = ref('')
const subentry_engineering_code = ref('')

@ -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>
<div class="edit-popup">
<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-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<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) => {
formData.project_id = e.id
formData.project_name = e.project_name

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<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) => {
formData.project_id = e.id
formData.project_name = e.project_name

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -78,15 +77,6 @@ const formData = reactive({
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) => {
formData.project_id = e.id
formData.project_name = e.project_name

@ -171,8 +171,7 @@ defineExpose({
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<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) => {
formData.project_id = e.id
formData.project_name = e.project_name

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -76,13 +75,6 @@ const formData = reactive({
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) => {
formData.project_id = e.id

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<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) => {
formData.project_id = e.id
formData.project_name = e.project_name
showDialog.value = false
}
//
const SubdirectoryList = ref([])

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<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) => {
formData.project_id = e.id
formData.project_name = e.project_name

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -42,7 +41,6 @@
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { apiConsultDesignAdd, apiConsultDesignEdit, } from '@/api/consult_design'
import type { PropType } from 'vue'
import { consult_project } from "@/components/dialogTable/dialogTableConfig"
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) => {
formData.project_id = e.id
formData.project_name = e.project_name

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -78,15 +77,6 @@ const formData = reactive({
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) => {
formData.project_id = e.id
formData.project_name = e.project_name

@ -184,8 +184,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col>
<el-col :span="8">
@ -271,14 +270,6 @@ const formData = reactive({
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>({

@ -171,8 +171,7 @@ defineExpose({
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<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) => {
formData.project_id = e.id

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<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) => {
formData.project_id = e.id

@ -27,8 +27,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<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) => {
formData.project_id = e.id
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 })
SubdirectoryList.value = res.lists
}

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

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

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

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

@ -1,6 +1,7 @@
<template>
<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-item label="主题" prop="name">
<el-input v-model="formData.name" clearable placeholder="请输入主题" />
@ -30,8 +31,7 @@
<el-input v-model="formData.description" clearable placeholder="请输入行动描述" />
</el-form-item>
<el-form-item label="附件/现场照片" prop="annex">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
<el-form-item label="位置" prop="coordinate">
<el-input v-model="formData.coordinate" clearable placeholder="请输入位置" />
@ -58,17 +58,7 @@ import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue'
import { usePaging } from '@/hooks/usePaging'
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({
dictData: {

@ -97,8 +97,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
@ -134,27 +134,21 @@ import { apiCustomServiceAdd, apiCustomServiceDetail } from '@/api/custom_servic
import personnelselector from '@/components/personnelselector/index.vue'
import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue'
import useUserStore from "@/stores/modules/user";
import configs from "@/config"
const list1 = reactive([])
const list2 = reactive([])
import { deptAll } from '@/api/org/department'
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 annexUpload from "@/components/annexUpload/index.vue"
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) }
// <annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
// @delFile="delFileFn" />
const list = reactive([])
const showDialog = ref(false)

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

@ -46,8 +46,8 @@
<el-input v-model="formData.customer_feedback" clearable placeholder="请输入客户反馈" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -81,6 +81,7 @@ import type { PropType } from 'vue'
//
import annexUpload from "@/components/annexUpload/index.vue"
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);
};

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

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

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

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

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

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

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

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

@ -1,13 +1,16 @@
<template>
<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">
<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-option v-for="(item, index) in list2" :key="index" :label="item.name" :value="item.id" />
</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-select>
</div>
@ -133,7 +136,8 @@
</el-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
@ -224,8 +228,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
@ -248,6 +252,7 @@ import type { PropType } from 'vue'
//
import annexUpload from "@/components/annexUpload/index.vue"
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);
};

@ -71,6 +71,7 @@ const showDialog = ref(false)
//
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);
};

@ -216,6 +216,7 @@ 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);
};

@ -136,6 +136,7 @@ const mode = ref('add')
//
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);
};

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

@ -115,6 +115,7 @@ let tax_amount = computed(() => {
})
//
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);
};

@ -93,8 +93,8 @@
</el-col>
<el-col :span="24">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
@ -116,6 +116,7 @@ import { useDictData } from '@/hooks/useDictOptions'
//
import annexUpload from "@/components/annexUpload/index.vue"
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);
};

@ -181,6 +181,8 @@ if (props.project) customEvent(props.project);
//
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);
};

@ -140,6 +140,7 @@ 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);
};

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

@ -45,8 +45,7 @@
<el-input v-model="formData.remark" clearable placeholder="请输入" />
</el-form-item>
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
<dialogTable :config="cost_project" @customEvent="customEvent">
@ -80,14 +79,7 @@ const mode = ref('add')
const showDialog = ref(false)
const showDialog3 = ref(false)
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(() => {
return mode.value == 'edit' ? '编辑项目整改' : '新增项目整改'
@ -141,7 +133,6 @@ const userclick = async (key) => {
//
const submituser = (e: any) => {
formData[tableKey.value] = e.name
// formData.project_change_visa_content[tableIndex.value][tableKey.value + '_id'] = e.id
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 () => {
await formRef.value?.validate()
@ -195,6 +178,5 @@ const handleClose = () => {
defineExpose({
open,
setFormData,
getDetail
})
</script>

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

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

@ -68,8 +68,8 @@
<el-col :span="24">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
<!-- <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"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -34,8 +34,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="附件">
<annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
@delFile="delFileFn" />
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
@ -195,8 +195,6 @@
</el-table>
</div>
</el-form>
</popup>
</div>
@ -231,6 +229,7 @@ const showDialog3 = ref(false)
const personnel = ref<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);
};