add
This commit is contained in:
parent
4d40132a02
commit
270288c78e
@ -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();
|
||||||
|
@ -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">
|
||||||
|
44
src/components/uploadAnnex/index.vue
Normal file
44
src/components/uploadAnnex/index.vue
Normal 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>
|
@ -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'
|
||||||
|
@ -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>) => {
|
||||||
|
@ -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('')
|
||||||
|
@ -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('')
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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([])
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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>({
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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,
|
required: true,
|
||||||
message: '请输入项目名称',
|
message: "请输入项目名称",
|
||||||
trigger: ['blur']
|
trigger: ["blur"],
|
||||||
}],
|
},
|
||||||
contract_id: [{
|
],
|
||||||
|
contract_id: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入关联合同',
|
message: "请输入关联合同",
|
||||||
trigger: ['blur']
|
trigger: ["blur"],
|
||||||
}],
|
},
|
||||||
starting: [{
|
],
|
||||||
|
starting: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入计划开始日期',
|
message: "请输入计划开始日期",
|
||||||
trigger: ['blur']
|
trigger: ["blur"],
|
||||||
}],
|
},
|
||||||
endtime: [{
|
],
|
||||||
|
endtime: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入计划结束日期',
|
message: "请输入计划结束日期",
|
||||||
trigger: ['blur']
|
trigger: ["blur"],
|
||||||
}],
|
},
|
||||||
jhgq: [{
|
],
|
||||||
|
jhgq: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入计划工期(天)',
|
message: "请输入计划工期(天)",
|
||||||
trigger: ['blur']
|
trigger: ["blur"],
|
||||||
}],
|
},
|
||||||
principal: [{
|
],
|
||||||
|
principal: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入项目负责人',
|
message: "请输入项目负责人",
|
||||||
trigger: ['blur']
|
trigger: ["blur"],
|
||||||
}],
|
},
|
||||||
invest: [{
|
],
|
||||||
|
invest: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入项目总投资(万元)',
|
message: "请输入项目总投资(万元)",
|
||||||
trigger: ['blur']
|
trigger: ["blur"],
|
||||||
}],
|
},
|
||||||
aunit: [{
|
],
|
||||||
|
aunit: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入委托单位',
|
message: "请输入委托单位",
|
||||||
trigger: ['blur']
|
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>
|
||||||
|
@ -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%">
|
||||||
|
@ -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: {
|
||||||
|
@ -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)
|
||||||
|
@ -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>
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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({
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
@ -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">
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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%">
|
||||||
|
@ -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"
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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%">
|
||||||
|
@ -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%">
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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" />
|
||||||
|
@ -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>
|
||||||
|
@ -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="请输入操作人" />
|
||||||
|
@ -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%">
|
||||||
|
@ -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>
|
||||||
|
@ -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%">
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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%">
|
||||||
|
@ -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>
|
||||||
|
@ -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" />
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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>
|
||||||
|
@ -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%">
|
||||||
|
@ -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%">
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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%">
|
||||||
|
@ -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%">
|
||||||
|
@ -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>
|
||||||
|
@ -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%">
|
||||||
|
@ -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>
|
||||||
|
@ -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%">
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user