add
This commit is contained in:
parent
2c7e66c9fb
commit
b720bab372
@ -1,32 +0,0 @@
|
|||||||
<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 annex" 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>
|
|
||||||
import { ref, defineProps, defineEmits } 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({
|
|
||||||
annex: Array
|
|
||||||
})
|
|
||||||
|
|
||||||
const emits = defineEmits(["handleAvatarSuccess", 'delFileFn']);
|
|
||||||
const handleAvatarSuccess = (res) => { emits("handleAvatarSuccess", res); }
|
|
||||||
const delFile = (index) => { emits("delFile", index); }
|
|
||||||
|
|
||||||
</script>
|
|
@ -1,65 +1,63 @@
|
|||||||
<template>
|
<template>
|
||||||
<div style="margin-bottom: 30px">
|
<div>
|
||||||
联系人
|
{{ config?.title || '' }}
|
||||||
<!-- <el-button @click="handleAdd" v-if="!formData.contacts.length">+</el-button> -->
|
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-bottom: 30px">
|
<div>
|
||||||
<el-table :data="formData.contacts">
|
<el-table :data="formData">
|
||||||
<el-table-column label="序号">
|
<el-table-column label="操作">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button @click="handleAdd">+</el-button>
|
<el-button @click="handleAdd">+</el-button>
|
||||||
<el-button @click="handleDelete(row)">-</el-button>
|
<el-button @click="handleDelete(row)">-</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="姓名" prop="name">
|
<el-table-column :label="item.label" v-for="(item, index) in config.tableConfig" :key="index"
|
||||||
|
:prop="item[value]">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.name" />
|
<el-input v-model="row[item.value]" />
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="职务" prop="duties">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.duties" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="办公电话" prop="telephone">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.telephone" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="手机号码" prop="mobile">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.mobile" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="电子邮箱" prop="email">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.email" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="传真" prop="fax">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.fax" />
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<template #empty>
|
||||||
|
<span class="cursor-pointer">暂无数据,点击添加 <el-button @click="handleAdd">+</el-button></span>
|
||||||
|
</template>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, defineProps, onMounted } from "vue"
|
import { defineProps } from "vue"
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|
||||||
formData: {
|
formData: {
|
||||||
type: Object,
|
type: Object,
|
||||||
require: true
|
require: true
|
||||||
|
},
|
||||||
|
config: {
|
||||||
|
type: Object,
|
||||||
|
require: true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 生成table的每一列的初始对象
|
||||||
|
const list = props.config.tableConfig.map(item => item.value)
|
||||||
|
const getInitialData = () => {
|
||||||
|
return list.reduce((acc, curr) => {
|
||||||
|
acc[curr] = '';
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const handleAdd = () => {
|
||||||
|
props.formData.push(getInitialData());
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const handleDelete = async (row: any) => {
|
||||||
|
if (row.id) {
|
||||||
|
await props.config.deleteApi({ id: row.id });
|
||||||
|
}
|
||||||
|
const index = props.formData.indexOf(row);
|
||||||
|
props.formData.splice(index, 1);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -39,6 +39,6 @@ const handleAvatarSuccess = (response: any) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除上传的文件
|
// 删除上传的文件
|
||||||
const delFile = (index: number) => { props.formData.annex.splice(index, 1) }
|
const delFile = (index: number) => { props.formData[props.value].splice(index, 1) }
|
||||||
|
|
||||||
</script>
|
</script>
|
@ -53,48 +53,43 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="投标文件" prop="bidding_file">
|
<el-form-item label="投标文件" prop="bidding_file">
|
||||||
<annexUpload :annex="formData.bidding_file" @handleAvatarSuccess="handleAvatarSuccess_four"
|
|
||||||
@delFile="delFileFn" />
|
<uploadAnnex :formData="formData" value="bidding_file"></uploadAnnex>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="招标控制价文件" prop="zbkzj_file" label-width="140px">
|
<el-form-item label="招标控制价文件" prop="zbkzj_file" label-width="140px">
|
||||||
<annexUpload :annex="formData.zbkzj_file" @handleAvatarSuccess="handleAvatarSuccess_four1"
|
<uploadAnnex :formData="formData" value="zbkzj_file"></uploadAnnex>
|
||||||
@delFile="delFileFn1" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="工程造价合同" prop="gczjht_file" label-width="120px">
|
<el-form-item label="工程造价合同" prop="gczjht_file" label-width="120px">
|
||||||
<annexUpload :annex="formData.gczjht_file" @handleAvatarSuccess="handleAvatarSuccess_four2"
|
<uploadAnnex :formData="formData" value="gczjht_file"></uploadAnnex>
|
||||||
@delFile="delFileFn2" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="项目变更、签证资料" prop="xmbgqzzl_file" label-width="170px">
|
<el-form-item label="项目变更、签证资料" prop="xmbgqzzl_file" label-width="170px">
|
||||||
<annexUpload :annex="formData.xmbgqzzl_file"
|
<uploadAnnex :formData="formData" value="xmbgqzzl_file"></uploadAnnex>
|
||||||
@handleAvatarSuccess="handleAvatarSuccess_four3" @delFile="delFileFn3" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="送审概算、预算、结算资料" prop="ssgsysjs_file" label-width="200px">
|
<el-form-item label="送审概算、预算、结算资料" prop="ssgsysjs_file" label-width="200px">
|
||||||
<annexUpload :annex="formData.ssgsysjs_file"
|
<uploadAnnex :formData="formData" value="ssgsysjs_file"></uploadAnnex>
|
||||||
@handleAvatarSuccess="handleAvatarSuccess_four4" @delFile="delFileFn4" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="往来函件" prop="wlhj_file">
|
<el-form-item label="往来函件" prop="wlhj_file">
|
||||||
<annexUpload :annex="formData.wlhj_file" @handleAvatarSuccess="handleAvatarSuccess_four5"
|
<uploadAnnex :formData="formData" value="wlhj_file"></uploadAnnex>
|
||||||
@delFile="delFileFn5" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="其他资料" prop="other_file">
|
<el-form-item label="其他资料" prop="other_file">
|
||||||
<annexUpload :annex="formData.other_file" @handleAvatarSuccess="handleAvatarSuccess_four6"
|
<uploadAnnex :formData="formData" value="other_file"></uploadAnnex>
|
||||||
@delFile="delFileFn6" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -162,67 +157,6 @@ const customEvent = (e) => {
|
|||||||
showDialog.value = false
|
showDialog.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleAvatarSuccess_four = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.bidding_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn = (index: number) => { formData.bidding_file.splice(index, 1) }
|
|
||||||
|
|
||||||
|
|
||||||
const handleAvatarSuccess_four1 = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.zbkzj_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn1 = (index: number) => { formData.zbkzj_file.splice(index, 1) }
|
|
||||||
|
|
||||||
const handleAvatarSuccess_four2 = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.gczjht_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn2 = (index: number) => { formData.gczjht_file.splice(index, 1) }
|
|
||||||
|
|
||||||
const handleAvatarSuccess_four3 = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.xmbgqzzl_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn3 = (index: number) => { formData.xmbgqzzl_file.splice(index, 1) }
|
|
||||||
|
|
||||||
const handleAvatarSuccess_four4 = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.ssgsysjs_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn4 = (index: number) => { formData.ssgsysjs_file.splice(index, 1) }
|
|
||||||
|
|
||||||
|
|
||||||
const handleAvatarSuccess_four5 = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.wlhj_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn5 = (index: number) => { formData.wlhj_file.splice(index, 1) }
|
|
||||||
|
|
||||||
const handleAvatarSuccess_four6 = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.other_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn6 = (index: number) => { formData.other_file.splice(index, 1) }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
|
@ -40,11 +40,9 @@
|
|||||||
</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.check_annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
<uploadAnnex :formData="formData" value="check_annex"></uploadAnnex>
|
||||||
@delFile="delFileFn" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -103,15 +101,6 @@ 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 handleAvatarSuccess_four = (response: any) => {
|
|
||||||
|
|
||||||
Array.isArray(formData.check_annex) ? "" : formData.check_annex = []
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.check_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn = (index: number) => { formData.check_annex.splice(index, 1) }
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
type="textarea" />
|
type="textarea" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="附件" prop="rectification_reply_annex">
|
<el-form-item label="附件" prop="rectification_reply_annex">
|
||||||
<annexUpload :annex="formData.rectification_reply_annex"
|
<uploadAnnex :formData="formData" value="rectification_reply_annex"></uploadAnnex>
|
||||||
@handleAvatarSuccess="handleAvatarSuccess_four" @delFile="delFileFn" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -42,14 +42,7 @@ const mode = ref('add')
|
|||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return '监理回复'
|
return '监理回复'
|
||||||
})
|
})
|
||||||
const handleAvatarSuccess_four = (response: any) => {
|
|
||||||
Array.isArray(formData.rectification_reply_annex) ? '' : formData.rectification_reply_annex = []
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.rectification_reply_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn = (index: number) => { formData.rectification_reply_annex.splice(index, 1) }
|
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
id: '',
|
id: '',
|
||||||
|
@ -44,55 +44,8 @@
|
|||||||
<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" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<formTable :formData="formData.contacts" :config="tableConfig"></formTable>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- <FormTable></FormTable> -->
|
|
||||||
<!-- <div style="margin-bottom: 30px">
|
|
||||||
联系人
|
|
||||||
<el-button @click="handleAdd" v-if="!formData.contacts.length">+</el-button>
|
|
||||||
</div>
|
|
||||||
<div style="margin-bottom: 30px">
|
|
||||||
<el-table :data="formData.contacts">
|
|
||||||
<el-table-column label="序号">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-button @click="handleAdd">+</el-button>
|
|
||||||
<el-button @click="handleDelete(row)">-</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="姓名" prop="name">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.name" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="职务" prop="duties">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.duties" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="办公电话" prop="telephone">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.telephone" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="手机号码" prop="mobile">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.mobile" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="电子邮箱" prop="email">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.email" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="传真" prop="fax">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-input v-model="row.fax" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
</div> -->
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -144,30 +97,46 @@ const formData = reactive({
|
|||||||
contacts: [],
|
contacts: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const tableConfig = reactive(
|
||||||
|
{
|
||||||
|
title: "联系人",
|
||||||
|
tableConfig: [
|
||||||
|
{
|
||||||
|
label: "姓名",
|
||||||
|
value: 'name'
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "职务",
|
||||||
|
value: 'duties'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "办公电话",
|
||||||
|
value: 'telephone'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "手机号码",
|
||||||
|
value: 'mobile'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "电子邮箱",
|
||||||
|
value: 'email'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "传真",
|
||||||
|
value: 'fax'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
deleteApi: apiSupervisionParticipatingUnitsContactsDelete,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
const customEvent = (e) => {
|
const customEvent = (e) => {
|
||||||
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 handleAdd = () => {
|
|
||||||
formData.contacts.push({
|
|
||||||
name: "",
|
|
||||||
duties: "",
|
|
||||||
telephone: "",
|
|
||||||
mobile: "",
|
|
||||||
email: "",
|
|
||||||
fax: "",
|
|
||||||
});
|
|
||||||
};
|
|
||||||
const handleDelete = async (row: any) => {
|
|
||||||
if (row.id) {
|
|
||||||
await apiSupervisionParticipatingUnitsContactsDelete({ id: row.id });
|
|
||||||
}
|
|
||||||
const index = formData.contacts.indexOf(row);
|
|
||||||
formData.contacts.splice(index, 1);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
project_id: [
|
project_id: [
|
||||||
|
@ -26,8 +26,7 @@
|
|||||||
type="textarea" />
|
type="textarea" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="附件" prop="rectification_annex">
|
<el-form-item label="附件" prop="rectification_annex">
|
||||||
<annexUpload :annex="formData.rectification_annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
<uploadAnnex :formData="formData" value="rectification_annex"></uploadAnnex>
|
||||||
@delFile="delFileFn" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
@ -37,9 +36,9 @@
|
|||||||
<script lang="ts" setup name="supervisionProblemEdit">
|
<script lang="ts" setup name="supervisionProblemEdit">
|
||||||
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 { apiSupervisionProblemAdd, apiSupervisionProblemEdit, apiSupervisionProblemDetail, apisupervision_problem } from '@/api/supervision_problem'
|
import { apiSupervisionProblemDetail, apisupervision_problem } from '@/api/supervision_problem'
|
||||||
import { timeFormat } from '@/utils/util'
|
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -66,14 +65,7 @@ const formData = reactive({
|
|||||||
"rectification_opinion": "aa",
|
"rectification_opinion": "aa",
|
||||||
"rectification_annex": []
|
"rectification_annex": []
|
||||||
})
|
})
|
||||||
const handleAvatarSuccess_four = (response: any) => {
|
|
||||||
Array.isArray(formData.rectification_annex) ? '' : formData.rectification_annex = []
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.rectification_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn = (index: number) => { formData.rectification_annex.splice(index, 1) }
|
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
|
@ -40,8 +40,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.check_annex" @handleAvatarSuccess="handleAvatarSuccess_four"
|
<uploadAnnex :formData="formData" value="check_annex"></uploadAnnex>
|
||||||
@delFile="delFileFn" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
@ -88,12 +87,9 @@
|
|||||||
<script lang="ts" setup name="supervisionDiaryEdit">
|
<script lang="ts" setup name="supervisionDiaryEdit">
|
||||||
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 { apiSupervisionDiaryAdd, apiSupervisionDiaryEdit, apiSupervisionDiaryDetail } from '@/api/supervision_diary'
|
|
||||||
|
|
||||||
import { apisupervision_witness_sampling_detail } from '@/api/supervision_witness_sampling'
|
import { apisupervision_witness_sampling_detail } from '@/api/supervision_witness_sampling'
|
||||||
|
|
||||||
import { timeFormat } from '@/utils/util'
|
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -104,15 +100,6 @@ 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 handleAvatarSuccess_four = (response: any) => {
|
|
||||||
|
|
||||||
Array.isArray(formData.check_annex) ? "" : formData.check_annex = []
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.check_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn = (index: number) => { formData.check_annex.splice(index, 1) }
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit"
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80%" @confirm="handleSubmit"
|
||||||
@close="handleClose">
|
@close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
<el-form ref="formRef" :model="formData" label-width="160px" :rules="formRules">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="标识" prop="dataid">
|
<el-form-item label="标识" prop="dataid">
|
||||||
@ -116,7 +116,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="建筑结构类型" prop="type" label-width="120px">
|
<el-form-item label="建筑结构类型" prop="type">
|
||||||
<el-select class="flex-1" v-model="formData.type" clearable placeholder="请选择建筑结构类型">
|
<el-select class="flex-1" v-model="formData.type" clearable placeholder="请选择建筑结构类型">
|
||||||
<el-option v-for="(item, index) in dictData.building_structure_type " :key="index"
|
<el-option v-for="(item, index) in dictData.building_structure_type " :key="index"
|
||||||
:label="item.name" :value="parseInt(item.value)" />
|
:label="item.name" :value="parseInt(item.value)" />
|
||||||
@ -169,7 +169,7 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="工程师核定价" prop="gcshd" label-width="120px">
|
<el-form-item label="工程师核定价" prop="gcshd">
|
||||||
<el-input v-model="formData.gcshd" clearable placeholder="请输入工程师核定价" type="number" />
|
<el-input v-model="formData.gcshd" clearable placeholder="请输入工程师核定价" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -196,7 +196,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="审核部核定价" prop="shbhd" label-width="120px">
|
<el-form-item label="审核部核定价" prop="shbhd">
|
||||||
<el-input v-model="formData.shbhd" clearable placeholder="请输入审核部核定价" type="number" />
|
<el-input v-model="formData.shbhd" clearable placeholder="请输入审核部核定价" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -225,27 +225,22 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="结果文件" prop="result_file">
|
<el-form-item label="结果文件" prop="result_file">
|
||||||
<annexUpload :annex="formData.result_file" @handleAvatarSuccess="handleAvatarSuccess_four"
|
<uploadAnnex :formData="formData" value="result_file"></uploadAnnex>
|
||||||
@delFile="delFileFn" />
|
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="项目负责人附件" prop="master_annex">
|
<el-form-item label="项目负责人附件" prop="master_annex">
|
||||||
<annexUpload :annex="formData.master_annex" @handleAvatarSuccess="handleAvatarSuccess"
|
<uploadAnnex :formData="formData" value="master_annex"></uploadAnnex>
|
||||||
@delFile="delFileFn1" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="部门负责人附件" prop="bm_annex">
|
<el-form-item label="部门负责人附件" prop="bm_annex">
|
||||||
<annexUpload :annex="formData.bm_annex" @handleAvatarSuccess="handleAvatarSuccess2"
|
<uploadAnnex :formData="formData" value="bm_annex"></uploadAnnex>
|
||||||
@delFile="delFileFn2" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="审核部附件" prop="shb_annex">
|
<el-form-item label="审核部附件" prop="shb_annex">
|
||||||
<annexUpload :annex="formData.shb_annex" @handleAvatarSuccess="handleAvatarSuccess3"
|
<uploadAnnex :formData="formData" value="shb_annex"></uploadAnnex>
|
||||||
@delFile="delFileFn3" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -257,19 +252,16 @@
|
|||||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
</personnelselector>
|
</personnelselector>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup name="taskHandlingThreeLevelReviewEdit">
|
<script lang="ts" setup name="taskHandlingThreeLevelReviewEdit">
|
||||||
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 { apiTaskHandlingThreeLevelReviewAdd, apiTaskHandlingThreeLevelReviewEdit, } from '@/api/task_handling_three_level_review'
|
import { apiTaskHandlingThreeLevelReviewAdd, apiTaskHandlingThreeLevelReviewEdit, } from '@/api/task_handling_three_level_review'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
import { cost_project } from "@/components/dialogTable/dialogTableConfig"
|
import { cost_project } from "@/components/dialogTable/dialogTableConfig"
|
||||||
import file from "@/components/material/file.vue";
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -335,40 +327,6 @@ const formData = reactive({
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleAvatarSuccess_four = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.result_file.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn = (index: number) => { formData.result_file.splice(index, 1) }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const handleAvatarSuccess = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.master_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn1 = (index: number) => { formData.master_annex.splice(index, 1) }
|
|
||||||
|
|
||||||
const handleAvatarSuccess2 = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.bm_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn2 = (index: number) => { formData.bm_annex.splice(index, 1) }
|
|
||||||
|
|
||||||
|
|
||||||
const handleAvatarSuccess3 = (response: any) => {
|
|
||||||
// @ts-ignore
|
|
||||||
response.code != 0 ? formData.shb_annex.push({ uri: response.data.uri, name: response.data.name }) : ElMessage.error(response.msg);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除上传的文件
|
|
||||||
const delFileFn3 = (index: number) => { formData.shb_annex.splice(index, 1) }
|
|
||||||
|
|
||||||
//确认
|
//确认
|
||||||
const submituser = (e: any) => {
|
const submituser = (e: any) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user