明树Git Lab

Commit bf028b85 authored by zhanghan's avatar zhanghan

进度条处理

parent ee354647
Pipeline #111015 passed with stage
in 19 seconds
...@@ -3,16 +3,32 @@ ...@@ -3,16 +3,32 @@
<!-- 上传按钮区域 --> <!-- 上传按钮区域 -->
<div class="uploadFlex"> <div class="uploadFlex">
<el-upload <el-upload
:timeout="300000"
:action="uploadUrl" :action="uploadUrl"
:headers="headers" :headers="headers"
:show-file-list="false" :show-file-list="false"
multiple multiple
:disabled="disabled" :disabled="disabled || uploading"
:on-success="handleUploadSuccess" :on-success="handleUploadSuccess"
:on-error="handleUploadError"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-progress="handleProgress"
> >
<el-button type="default" :disabled="disabled">上传</el-button> <el-button type="default" :disabled="disabled || uploading">
<span v-if="uploading">上传中...</span>
<span v-else>上传</span>
</el-button>
</el-upload> </el-upload>
<!-- 进度条 -->
<div v-if="showProgress" class="progress-container">
<el-progress
:percentage="uploadPercentage"
stroke-width="6"
size="small"
/>
</div>
<el-button <el-button
v-if="!isInline" v-if="!isInline"
type="default" type="default"
...@@ -24,6 +40,7 @@ ...@@ -24,6 +40,7 @@
</el-button> </el-button>
<slot name="actions"></slot> <slot name="actions"></slot>
</div> </div>
<!-- 文件列表表格 --> <!-- 文件列表表格 -->
<el-table <el-table
v-if="!isInline" v-if="!isInline"
...@@ -311,6 +328,11 @@ const emit = defineEmits([ ...@@ -311,6 +328,11 @@ const emit = defineEmits([
const selectedIds = ref([]); const selectedIds = ref([]);
const popoverVisible = ref(false); const popoverVisible = ref(false);
// ========== 上传进度 & loading 状态 ==========
const uploading = ref(false); // 上传中
const uploadPercentage = ref(0); // 进度百分比
const showProgress = ref(false); // 是否显示进度条
// 核心:安全处理文件列表,将非数组值转为空数组 // 核心:安全处理文件列表,将非数组值转为空数组
const safeFileList = computed({ const safeFileList = computed({
get() { get() {
...@@ -326,19 +348,42 @@ const formatDate = (date) => { ...@@ -326,19 +348,42 @@ const formatDate = (date) => {
return date ? moment(date).format("YYYY-MM-DD HH:mm:SS") : ""; return date ? moment(date).format("YYYY-MM-DD HH:mm:SS") : "";
}; };
// 上传前
const beforeUpload = (file) => {
uploading.value = true;
uploadPercentage.value = 0;
showProgress.value = true;
return true;
};
// 上传进度
const handleProgress = (event, file, fileList) => {
uploadPercentage.value = Math.floor(event.percent);
};
// 文件上传成功处理 // 文件上传成功处理
const handleUploadSuccess = (res) => { const handleUploadSuccess = (res) => {
if (res && res.data) { if (res && res.data) {
safeFileList.value = [...safeFileList.value, res.data]; safeFileList.value = [...safeFileList.value, res.data];
console.log("上传成功:", res.data);
ElMessage.success("文件上传成功"); ElMessage.success("文件上传成功");
popoverVisible.value = false; popoverVisible.value = false;
} }
finishUpload();
}; };
const beforeUpload = (file) => { // 上传失败
// 可添加文件类型、大小等校验逻辑 const handleUploadError = () => {
return true; ElMessage.error("文件上传失败");
finishUpload();
};
// 结束上传
const finishUpload = () => {
uploading.value = false;
uploadPercentage.value = 100;
setTimeout(() => {
showProgress.value = false;
}, 500);
}; };
// 选择文件变化 // 选择文件变化
...@@ -438,7 +483,9 @@ watch( ...@@ -438,7 +483,9 @@ watch(
} }
.uploadFlex { .uploadFlex {
display: flex; display: flex;
align-items: center;
margin-bottom: 16px; margin-bottom: 16px;
gap: 12px;
} }
.inline { .inline {
display: flex; display: flex;
...@@ -450,6 +497,12 @@ watch( ...@@ -450,6 +497,12 @@ watch(
} }
} }
// 进度条容器
.progress-container {
flex: 1;
max-width: 200px;
}
.inline-file-wrapper { .inline-file-wrapper {
flex: 1; flex: 1;
margin-left: 10px; margin-left: 10px;
......
...@@ -64,7 +64,10 @@ ...@@ -64,7 +64,10 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="项目名称"> <el-form-item label="项目名称">
<el-input v-model="formData.projectName" :disabled="projectDisabled" /> <el-input
v-model="formData.projectName"
:disabled="projectDisabled"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -583,66 +586,7 @@ ...@@ -583,66 +586,7 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="策划文件"> <el-form-item label="策划文件">
<el-upload <FileUploader v-model="chwjData" />
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:disabled="isPreview"
:on-success="addChwjFile"
>
<el-button :disabled="isPreview" type="default"
>上传</el-button
>
</el-upload>
<el-button
type="default"
@click="multiDeleteChwj"
:disabled="!chwjSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-form-item label=" ">
<el-table
:data="chwjData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="chwjSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间">
<template #default="{ row }">
<span>{{
moment(row.updatedAt).format(
"YYYY-MM-DD HH:mm:SS"
)
}}</span>
</template>
</el-table-column>
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, index }">
<span
class="always-click"
@click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteChwj(index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -659,64 +603,7 @@ ...@@ -659,64 +603,7 @@
> >
<el-col :span="24"> <el-col :span="24">
<el-form-item label="责任书文件"> <el-form-item label="责任书文件">
<el-upload <FileUploader v-model="zrsData" />
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addZrsFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteZrs"
:disabled="!zrsSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-form-item label="">
<el-table
:data="zrsData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="zrsSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间">
<template #default="{ row, index }">
<span>{{
moment(row.updatedAt).format(
"YYYY-MM-DD HH:mm:SS"
)
}}</span>
</template>
</el-table-column>
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, index }">
<span
class="always-click"
@click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteZrs(index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
...@@ -849,7 +736,7 @@ watch( ...@@ -849,7 +736,7 @@ watch(
} else { } else {
selectedFullPath.value = ""; selectedFullPath.value = "";
} }
} },
); );
// 构建节点映射表 // 构建节点映射表
const nodeMap = new Map(); const nodeMap = new Map();
...@@ -928,7 +815,7 @@ const getStatementInfo = () => { ...@@ -928,7 +815,7 @@ const getStatementInfo = () => {
...item, ...item,
sfsy: item.sfsy && item.sfsy.toString(), sfsy: item.sfsy && item.sfsy.toString(),
}; };
}) }),
); );
Object.assign(chwjData.value, res.chwj); Object.assign(chwjData.value, res.chwj);
Object.assign(pfyjlsqkData.value, res.tzmbzrsPfyjs); Object.assign(pfyjlsqkData.value, res.tzmbzrsPfyjs);
...@@ -1001,7 +888,7 @@ const multiDeleteZrs = () => { ...@@ -1001,7 +888,7 @@ const multiDeleteZrs = () => {
}) })
.then(() => { .then(() => {
zrsData.value = zrsData.value.filter( zrsData.value = zrsData.value.filter(
(item) => !zrsSelectIds.value.includes(item.id) (item) => !zrsSelectIds.value.includes(item.id),
); );
}) })
.catch(() => {}); .catch(() => {});
...@@ -1584,7 +1471,7 @@ const multiDeleteChwj = () => { ...@@ -1584,7 +1471,7 @@ const multiDeleteChwj = () => {
}) })
.then(() => { .then(() => {
chwjData.value = chwjData.value.filter( chwjData.value = chwjData.value.filter(
(item) => !chwjSelectIds.value.includes(item.id) (item) => !chwjSelectIds.value.includes(item.id),
); );
}) })
.catch(() => {}); .catch(() => {});
...@@ -1616,7 +1503,7 @@ const multiDeleteQdfj = () => { ...@@ -1616,7 +1503,7 @@ const multiDeleteQdfj = () => {
}) })
.then(() => { .then(() => {
qdfjData.value = qdfjData.value.filter( qdfjData.value = qdfjData.value.filter(
(item) => !qdfjSelectIds.value.includes(item.id) (item) => !qdfjSelectIds.value.includes(item.id),
); );
}) })
.catch(() => {}); .catch(() => {});
...@@ -1690,7 +1577,11 @@ const exportStatement = () => { ...@@ -1690,7 +1577,11 @@ const exportStatement = () => {
{ prop: "zbmc", label: "指标名称" }, { prop: "zbmc", label: "指标名称" },
{ prop: "zbmbz", label: "指标目标值" }, { prop: "zbmbz", label: "指标目标值" },
{ prop: "khjzf", label: "考核基准分" }, { prop: "khjzf", label: "考核基准分" },
{ prop: "sfsy", label: "是否适用", formatter: (v) => v === "1" ? "是" : "否" }, {
prop: "sfsy",
label: "是否适用",
formatter: (v) => (v === "1" ? "是" : "否"),
},
{ prop: "khsm", label: "考核说明" }, { prop: "khsm", label: "考核说明" },
], ],
colWidths: [35, 15, 12, 10, 30], colWidths: [35, 15, 12, 10, 30],
...@@ -1700,10 +1591,20 @@ const exportStatement = () => { ...@@ -1700,10 +1591,20 @@ const exportStatement = () => {
type: "table", type: "table",
data: pfyjlsqkData.value, data: pfyjlsqkData.value,
columns: [ columns: [
{ prop: "lx", label: "类型", formatter: (v) => pfyjlxList.find((l) => l.key === v)?.name || v || "" }, {
prop: "lx",
label: "类型",
formatter: (v) =>
pfyjlxList.find((l) => l.key === v)?.name || v || "",
},
{ prop: "pfyj", label: "批复意见" }, { prop: "pfyj", label: "批复意见" },
{ prop: "jzf", label: "基准分" }, { prop: "jzf", label: "基准分" },
{ prop: "lsqk", label: "落实情况", formatter: (v) => lsqkList.find((l) => l.key === v)?.name || v || "" }, {
prop: "lsqk",
label: "落实情况",
formatter: (v) =>
lsqkList.find((l) => l.key === v)?.name || v || "",
},
{ prop: "lssj", label: "落实时间" }, { prop: "lssj", label: "落实时间" },
{ prop: "lsqkjtsm", label: "落实情况具体说明" }, { prop: "lsqkjtsm", label: "落实情况具体说明" },
], ],
......
...@@ -1259,289 +1259,29 @@ ...@@ -1259,289 +1259,29 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-form-item label="里程碑计划审批表" :label-width="130"> <el-form-item label="里程碑计划审批表" :label-width="130">
<el-upload <FileUploader v-model="lcbspData" />
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addLcbspFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteLcbsp"
:disabled="!lcbspSelectIds.length"
>删除选中文件</el-button
>
</el-form-item> </el-form-item>
<el-table
:data="lcbspData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="lcbspSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间" />
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, $index }">
<span class="always-click" @click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteLcbsp($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="投评决策资料" name="投评决策资料"> <el-collapse-item title="投评决策资料" name="投评决策资料">
<el-form-item label="可研材料"> <el-form-item label="可研材料">
<el-upload <FileUploader v-model="kyclData" />
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addKyclFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteKycl"
:disabled="!kyclSelectIds.length"
>删除选中文件</el-button
>
</el-form-item> </el-form-item>
<el-table
:data="kyclData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="kyclSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间" />
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, $index }">
<span class="always-click" @click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteKycl($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<el-form-item label="经济指标初步测算资料"> <el-form-item label="经济指标初步测算资料">
<el-upload <FileUploader v-model="jjzbcsData" />
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addJjzbcsFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteJjzbcs"
:disabled="!jjzbcsSelectIds.length"
>删除选中文件</el-button
>
</el-form-item> </el-form-item>
<el-table
:data="jjzbcsData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="jjzbcsSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间" />
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, $index }">
<span class="always-click" @click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteJjzbcs($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<el-form-item label="补充相关支撑材料"> <el-form-item label="补充相关支撑材料">
<el-upload <FileUploader v-model="tpbczcclData" />
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addTpbczcclFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteTpbczccl"
:disabled="!tpbczcclSelectIds.length"
>删除选中文件</el-button
>
</el-form-item> </el-form-item>
<el-table
:data="tpbczcclData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="tpbczcclSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间" />
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, $index }">
<span class="always-click" @click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteTpbczccl($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<el-form-item label="其他相关支撑材料"> <el-form-item label="其他相关支撑材料">
<el-upload <FileUploader v-model="tpzcclData" />
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addTpzcclFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteTpzccl"
:disabled="!tpzcclSelectIds.length"
>删除选中文件</el-button
>
</el-form-item> </el-form-item>
<el-table
:data="tpzcclData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="tpzcclSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间" />
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, $index }">
<span class="always-click" @click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteTpzccl($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<el-form-item label="上会议案"> <el-form-item label="上会议案">
<el-upload <FileUploader v-model="shyaData" />
:action="windowConfig.baseUrl + '/api/file/upload'"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addShyaFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteShya"
:disabled="!shyaSelectIds.length"
>删除选中文件</el-button
>
</el-form-item> </el-form-item>
<el-table
:data="shyaData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="shyaSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="originalname" label="文件名" />
<el-table-column prop="updatedAt" label="上传时间" />
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, $index }">
<span class="always-click" @click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteShya($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
</el-form> </el-form>
...@@ -1552,6 +1292,7 @@ ...@@ -1552,6 +1292,7 @@
<script setup> <script setup>
import { inject } from "vue"; import { inject } from "vue";
import CommonSelector from "@/components/CommonSelector.vue"; import CommonSelector from "@/components/CommonSelector.vue";
import FileUploader from "@/components/FileUploader/index.vue";
const { const {
jcFormData, jcFormData,
......
<template> <template>
<div class="tab-content"> <div class="tab-content">
<div class="tab-content"> <div class="tab-content">
<el-form <el-form
:model="formData" :model="formData"
:label-width="150" :label-width="150"
:disabled=" :disabled="
isPreview || isPreview ||
(Number(formData.projectLzType) <= 5 && (Number(formData.projectLzType) <= 5 &&
Number(formData.projectLzType) != 1) Number(formData.projectLzType) != 1)
" "
> >
<el-collapse v-model="activeCollapse"> <el-collapse v-model="activeCollapse">
<el-collapse-item <el-collapse-item
title="项目投资总额(全口径)" title="项目投资总额(全口径)"
name="项目投资总额(全口径)" name="项目投资总额(全口径)"
> >
<el-table <el-table
:data="tzzeqkjData" :data="tzzeqkjData"
style="width: 100%" style="width: 100%"
empty-text="暂无数据" empty-text="暂无数据"
default-expand-all default-expand-all
row-key="xh" row-key="xh"
border border
> >
<el-table-column prop="xh" label="序号" /> <el-table-column prop="xh" label="序号" />
<el-table-column prop="zb" label="指标" /> <el-table-column prop="zb" label="指标" />
<el-table-column prop="dw" label="" width="70" /> <el-table-column prop="dw" label="" width="70" />
<el-table-column prop="rmbjj" label="人民币计价"> <el-table-column prop="rmbjj" label="人民币计价">
<template #default="scope"> <template #default="scope">
<el-input <el-input
v-model="scope.row.rmbjj" v-model="scope.row.rmbjj"
:min="0" :min="0"
:max="99999999999.99999999" :max="99999999999.99999999"
controls-position="right" controls-position="right"
/> />
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-collapse-item> </el-collapse-item>
<el-collapse-item <el-collapse-item title="财务评价指标" name="财务评价指标">
title="财务评价指标" <el-table
name="财务评价指标" :data="cwpjzbData"
> style="width: 100%"
<el-table empty-text="暂无数据"
:data="cwpjzbData" border
style="width: 100%" >
empty-text="暂无数据" <el-table-column prop="name" label="指标" />
border <el-table-column prop="unit" label="" width="70" />
> <el-table-column prop="tzpgjdpfz" label="投资评估阶段批复值">
<el-table-column prop="name" label="指标" /> <template #default="scope">
<el-table-column prop="unit" label="" width="70" /> <el-input
<el-table-column v-model="scope.row.num"
prop="tzpgjdpfz" :min="0"
label="投资评估阶段批复值" :max="99999999999.99999999"
> controls-position="right"
<template #default="scope"> />
<el-input </template>
v-model="scope.row.num" </el-table-column>
:min="0" </el-table>
:max="99999999999.99999999" </el-collapse-item>
controls-position="right" <el-collapse-item title="核心边界条件" name="核心边界条件">
/> <div class="tab-handle">
</template> <el-button type="primary" size="small" @click="addHxbjtj"
</el-table-column> >新增</el-button
</el-table> >
</el-collapse-item> </div>
<el-collapse-item <el-table
title="核心边界条件" :data="hxbjtjData"
name="核心边界条件" style="width: 100%"
> empty-text="暂无数据"
<div class="tab-handle"> border
<el-button >
type="primary" <el-table-column type="index" width="50" />
size="small" <el-table-column prop="type" label="业务类型" width="130">
@click="addHxbjtj" <template #default="scope">
>新增</el-button <CommonSelector
> v-model="scope.row.type"
</div> dictName="hxbjtjywlx"
<el-table />
:data="hxbjtjData" </template>
style="width: 100%" </el-table-column>
empty-text="暂无数据" <el-table-column label="单位工程造价">
border <el-table-column prop="dwgczjSz" label="数值" width="180">
> <template #default="scope">
<el-table-column type="index" width="50" /> <el-input
<el-table-column v-model="scope.row.dwgczjSz"
prop="type" :min="0"
label="业务类型" :max="99999999999.99999999"
width="130" controls-position="right"
> />
<template #default="scope"> </template>
<CommonSelector </el-table-column>
v-model="scope.row.type" <el-table-column prop="dwgczjDw" label="单位" width="130">
dictName="hxbjtjywlx" <template #default="scope">
/> <CommonSelector
</template> v-model="scope.row.dwgczjDw"
</el-table-column> dictName="gczjdw"
<el-table-column label="单位工程造价"> />
<el-table-column </template>
prop="dwgczjSz" </el-table-column>
label="数值" </el-table-column>
width="180" <el-table-column label="销售/服务能力">
> <el-table-column prop="xsfwnlSz" label="数值" width="180">
<template #default="scope"> <template #default="scope">
<el-input <el-input
v-model="scope.row.dwgczjSz" v-model="scope.row.xsfwnlSz"
:min="0" :min="0"
:max="99999999999.99999999" :max="99999999999.99999999"
controls-position="right" controls-position="right"
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="xsfwnlDw" label="单位" width="60" />
prop="dwgczjDw" </el-table-column>
label="单位" <el-table-column label="年均负荷率">
width="130" <el-table-column prop="njfhlSz" label="数值" width="180">
> <template #default="scope">
<template #default="scope"> <el-input
<CommonSelector v-model="scope.row.njfhlSz"
v-model="scope.row.dwgczjDw" :min="0"
dictName="gczjdw" :max="99999.99"
/> controls-position="right"
</template> />
</el-table-column> </template>
</el-table-column> </el-table-column>
<el-table-column label="销售/服务能力"> <el-table-column prop="njfhlDw" label="单位" width="60" />
<el-table-column </el-table-column>
prop="xsfwnlSz" <el-table-column label="单位生产/服务总成本">
label="数值" <el-table-column prop="dwscfwzcbSz" label="数值" width="180">
width="180" <template #default="scope">
> <el-input
<template #default="scope"> v-model="scope.row.dwscfwzcbSz"
<el-input :min="0"
v-model="scope.row.xsfwnlSz" :max="99999999999.99999999"
:min="0" controls-position="right"
:max="99999999999.99999999" />
controls-position="right" </template>
/> </el-table-column>
</template> <el-table-column prop="dwscfwzcbDw" label="单位" width="60" />
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="单位售价(含税)">
prop="xsfwnlDw" <el-table-column prop="dwsjSz" label="数值" width="180">
label="单位" <template #default="scope">
width="60" <el-input
/> v-model="scope.row.dwsjSz"
</el-table-column> :min="0"
<el-table-column label="年均负荷率"> :max="99999999999.99999999"
<el-table-column controls-position="right"
prop="njfhlSz" />
label="数值" </template>
width="180" </el-table-column>
> <el-table-column prop="dwsjDw" label="单位" width="90">
<template #default="scope"> <template #default="scope">
<el-input <el-input v-model="scope.row.dwsjDw" />
v-model="scope.row.njfhlSz" </template>
:min="0" </el-table-column>
:max="99999.99" </el-table-column>
controls-position="right" <el-table-column label="盈亏平衡点">
/> <el-table-column prop="ykphdlx" label="类型" width="130">
</template> <template #default="scope">
</el-table-column> <CommonSelector
<el-table-column v-model="scope.row.ykphdlx"
prop="njfhlDw" dictName="ykphdlx"
label="单位" />
width="60" </template>
/> </el-table-column>
</el-table-column> <el-table-column prop="ykphdsz" label="数值" width="180">
<el-table-column label="单位生产/服务总成本"> <template #default="scope">
<el-table-column <el-input
prop="dwscfwzcbSz" v-model="scope.row.ykphdsz"
label="数值" :min="0"
width="180" :max="99999999999.99999999"
> controls-position="right"
<template #default="scope"> />
<el-input </template>
v-model="scope.row.dwscfwzcbSz" </el-table-column>
:min="0" <el-table-column prop="ykphddw" label="单位" width="60" />
:max="99999999999.99999999" </el-table-column>
controls-position="right" <el-table-column
/> prop="bcsm"
</template> label="核心边界条件补充说明"
</el-table-column> width="180"
<el-table-column >
prop="dwscfwzcbDw" <template #default="scope">
label="单位" <el-input v-model="scope.row.bcsm" type="textarea" />
width="60" </template>
/> </el-table-column>
</el-table-column> <el-table-column label="操作" width="60" fixed="right">
<el-table-column label="单位售价(含税)"> <template #default="scope">
<el-table-column <el-button
prop="dwsjSz" link
label="数值" type="danger"
width="180" size="small"
> @click="deleteHxbjtj(scope.$index)"
<template #default="scope"> >删除</el-button
<el-input >
v-model="scope.row.dwsjSz" </template>
:min="0" </el-table-column>
:max="99999999999.99999999" </el-table>
controls-position="right" </el-collapse-item>
/> <el-collapse-item title="项目立项信息" name="项目立项信息">
</template> <el-row :gutter="20">
</el-table-column> <el-col :span="24">
<el-table-column <el-form-item label="其他会议审议情况">
prop="dwsjDw" <el-input v-model="formData.qthysyqk" type="textarea" />
label="单位" </el-form-item>
width="90" </el-col>
> <el-col :span="8">
<template #default="scope"> <el-form-item label="立项最终审批意见">
<el-input v-model="scope.row.dwsjDw" /> <CommonSelector v-model="formData.lxzzpfyj" dictName="spyj" />
</template> </el-form-item>
</el-table-column> </el-col>
</el-table-column> <el-col :span="8">
<el-table-column label="盈亏平衡点"> <el-form-item label="项目立项批复时间">
<el-table-column <el-date-picker
prop="ykphdlx" v-model="formData.lxxmpfsj"
label="类型" type="date"
width="130" placeholder="请选择"
> />
<template #default="scope"> </el-form-item>
<CommonSelector </el-col>
v-model="scope.row.ykphdlx" <el-col :span="8">
dictName="ykphdlx" <el-form-item label="立项项目批复文号">
/> <el-input v-model="formData.lxxmpfwh" />
</template> </el-form-item>
</el-table-column> </el-col>
<el-table-column <el-col :span="24">
prop="ykphdsz" <el-form-item label="未通过主要原因与要求">
label="数值" <el-input v-model="formData.wtgzyyyyyq" type="textarea" />
width="180" </el-form-item>
> </el-col>
<template #default="scope"> <el-col :span="24">
<el-input <el-form-item label="立项批复文件" :label-width="100">
v-model="scope.row.ykphdsz" <FileUploader v-model="lxpfwjData" />
:min="0" </el-form-item>
:max="99999999999.99999999" </el-col>
controls-position="right" </el-row>
/> </el-collapse-item>
</template> <el-collapse-item title="审批意见" name="审批意见">
</el-table-column> <FormDynamicTable
<el-table-column :modelValue="spyjTableData"
prop="ykphddw" @update:modelValue="updateSpyjTable"
label="单位" :columns="spyjColumns"
width="60" />
/> <el-form-item label="相关上会材料" :label-width="100">
</el-table-column> <FileUploader v-model="shclData" />
<el-table-column </el-form-item>
prop="bcsm" </el-collapse-item>
label="核心边界条件补充说明" </el-collapse>
width="180" </el-form>
> </div>
<template #default="scope">
<el-input
v-model="scope.row.bcsm"
type="textarea"
/>
</template>
</el-table-column>
<el-table-column
label="操作"
width="60"
fixed="right"
>
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deleteHxbjtj(scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="项目立项信息"
name="项目立项信息"
>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="其他会议审议情况">
<el-input
v-model="formData.qthysyqk"
type="textarea"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="立项最终审批意见">
<CommonSelector
v-model="formData.lxzzpfyj"
dictName="spyj"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目立项批复时间">
<el-date-picker
v-model="formData.lxxmpfsj"
type="date"
placeholder="请选择"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="立项项目批复文号">
<el-input v-model="formData.lxxmpfwh" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="未通过主要原因与要求">
<el-input
v-model="formData.wtgzyyyyyq"
type="textarea"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
label="立项批复文件"
:label-width="100"
>
<el-upload
:action="
windowConfig.baseUrl + '/api/file/upload'
"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addLxpfFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteLxpf"
:disabled="!lxpfSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-table
:data="lxpfwjData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="lxpfSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column
prop="originalname"
label="文件名"
/>
<el-table-column
prop="updatedAt"
label="上传时间"
/>
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="100"
>
<template #default="{ row, $index }">
<span
class="always-click"
@click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteLxpf($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="审批意见" name="审批意见">
<FormDynamicTable
:modelValue="spyjTableData"
@update:modelValue="updateSpyjTable"
:columns="spyjColumns"
/>
<el-form-item label="相关上会材料" :label-width="100">
<el-upload
:action="
windowConfig.baseUrl + '/api/file/upload'
"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addShclFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteShcl"
:disabled="!shclSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-table
:data="shclData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="shclSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column
prop="originalname"
label="文件名"
/>
<el-table-column
prop="updatedAt"
label="上传时间"
/>
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="100"
>
<template #default="{ row, $index }">
<span
class="always-click"
@click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteShcl($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div> </div>
</template> </template>
...@@ -463,22 +257,45 @@ ...@@ -463,22 +257,45 @@
import { inject } from "vue"; import { inject } from "vue";
import CommonSelector from "@/components/CommonSelector.vue"; import CommonSelector from "@/components/CommonSelector.vue";
import FormDynamicTable from "@/components/FormDynamicTable/index.vue"; import FormDynamicTable from "@/components/FormDynamicTable/index.vue";
import FileUploader from "@/components/FileUploader/index.vue";
const { const {
formData, isPreview, activeCollapse, formData,
tzzeqkjData, cwpjzbData, hxbjtjData, isPreview,
lxpfwjData, lxpfSelectIds, activeCollapse,
spyjTableData, shclData, shclSelectIds, tzzeqkjData,
downloadFile, ElMessageBox, cwpjzbData,
addHxbjtj, deleteHxbjtj, hxbjtjData,
addLxpfFile, deleteLxpf, lxpfSelectionChange, multiDeleteLxpf, lxpfwjData,
addShclFile, deleteShcl, shclSelectionChange, multiDeleteShcl, lxpfSelectIds,
windowConfig, token, spyjTableData,
shclData,
shclSelectIds,
downloadFile,
ElMessageBox,
addHxbjtj,
deleteHxbjtj,
addLxpfFile,
deleteLxpf,
lxpfSelectionChange,
multiDeleteLxpf,
addShclFile,
deleteShcl,
shclSelectionChange,
multiDeleteShcl,
windowConfig,
token,
} = inject("lxShared"); } = inject("lxShared");
// 审批意见表格列配置 // 审批意见表格列配置
const spyjColumns = [ const spyjColumns = [
{ prop: "lx", label: "类型", type: "select", optionKey: "yjlx", minWidth: 130 }, {
prop: "lx",
label: "类型",
type: "select",
optionKey: "yjlx",
minWidth: 130,
},
{ prop: "pfyj", label: "批复意见", type: "textarea" }, { prop: "pfyj", label: "批复意见", type: "textarea" },
{ prop: "pfyjsj", label: "批复意见时间", type: "date" }, { prop: "pfyjsj", label: "批复意见时间", type: "date" },
]; ];
......
<template> <template>
<div class="tab-content"> <div class="tab-content">
<div class="tab-content"> <div class="tab-content">
<el-form <el-form
:model="formData" :model="formData"
label-width="200px" label-width="200px"
:disabled=" :disabled="
isPreview || isPreview ||
(Number(formData.projectLzType) <= 5 && (Number(formData.projectLzType) <= 5 &&
Number(formData.projectLzType) != 1) Number(formData.projectLzType) != 1)
" "
> >
<el-collapse v-model="activeCollapse"> <el-collapse v-model="activeCollapse">
<el-collapse-item <el-collapse-item title="项目基本信息" name="项目基本信息">
title="项目基本信息" <el-row :gutter="20">
name="项目基本信息" <el-col :span="12">
> <el-form-item label="项目名称">
<el-row :gutter="20"> <el-input v-model="formData.projectName" />
<el-col :span="12"> </el-form-item>
<el-form-item label="项目名称"> </el-col>
<el-input v-model="formData.projectName" /> <el-col :span="12">
</el-form-item> <el-form-item label="项目编号">
</el-col> <el-input v-model="formData.projectCode" />
<el-col :span="12"> </el-form-item>
<el-form-item label="项目编号"> </el-col>
<el-input v-model="formData.projectCode" /> <el-col :span="12">
</el-form-item> <el-form-item label="项目外文名称">
</el-col> <el-input v-model="formData.projectForeignName" />
<el-col :span="12"> </el-form-item>
<el-form-item label="项目外文名称"> </el-col>
<el-input <el-col :span="8">
v-model="formData.projectForeignName" <el-form-item label="是否再决策">
/> <CommonSelector
</el-form-item> :radio="true"
</el-col> v-model="formData.sfzjc"
<el-col :span="8"> dictName="sf"
<el-form-item label="是否再决策"> />
<CommonSelector </el-form-item>
:radio="true" </el-col>
v-model="formData.sfzjc" <el-col :span="12">
dictName="sf" <el-form-item label="投资主体">
/> <el-input v-model="formData.tzzt" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="投资主体"> <el-form-item label="是否能建联合体项目">
<el-input v-model="formData.tzzt" /> <CommonSelector
</el-form-item> :radio="true"
</el-col> v-model="formData.sfnjlhtxm"
<el-col :span="8"> dictName="sf"
<el-form-item label="是否能建联合体项目"> />
<CommonSelector </el-form-item>
:radio="true" </el-col>
v-model="formData.sfnjlhtxm"
dictName="sf"
/>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主业/非主业"> <el-form-item label="主业/非主业">
<CommonSelector <CommonSelector v-model="formData.zyfzy" dictName="zyfzy" />
v-model="formData.zyfzy" </el-form-item>
dictName="zyfzy" </el-col>
/> <el-col :span="12">
</el-form-item> <el-form-item label="直属企业">
</el-col> <el-input v-model="formData.zsqy" />
<el-col :span="12"> </el-form-item>
<el-form-item label="直属企业"> </el-col>
<el-input v-model="formData.zsqy" /> <el-col :span="12">
</el-form-item> <el-form-item label="是否能建重大或重要投资">
</el-col> <CommonSelector
<el-col :span="12"> :radio="true"
<el-form-item label="是否能建重大或重要投资"> v-model="formData.sfnjzdhzytz"
<CommonSelector dictName="sf"
:radio="true" />
v-model="formData.sfnjzdhzytz" </el-form-item>
dictName="sf" </el-col>
/> <el-col :span="12">
</el-form-item> <el-form-item label="是否自主决策">
</el-col> <CommonSelector
<el-col :span="12"> :radio="true"
<el-form-item label="是否自主决策"> v-model="formData.sfzzjc"
<CommonSelector dictName="sf"
:radio="true" />
v-model="formData.sfzzjc" </el-form-item>
dictName="sf" </el-col>
/> <el-col :span="12">
</el-form-item> <el-form-item label="项目阶段">
</el-col> <CommonSelector v-model="formData.xmjd" dictName="xmjd" />
<el-col :span="12"> </el-form-item>
<el-form-item label="项目阶段"> </el-col>
<CommonSelector <el-col :span="12">
v-model="formData.xmjd" <el-form-item label="财务报表类型">
dictName="xmjd" <CommonSelector v-model="formData.cwbblx" dictName="cwbblx" />
/> </el-form-item>
</el-form-item> </el-col>
</el-col> <el-col :span="24">
<el-col :span="12"> <el-form-item label="政府审批(核准、备案)级别">
<el-form-item label="财务报表类型"> <CommonSelector
<CommonSelector v-model="formData.zfsphzbajb"
v-model="formData.cwbblx" dictName="spjb"
dictName="cwbblx" />
/> </el-form-item>
</el-form-item> </el-col>
</el-col> <el-col :span="12">
<el-col :span="24"> <el-form-item label="是否履行标前预审程序">
<el-form-item label="政府审批(核准、备案)级别"> <CommonSelector
<CommonSelector :radio="true"
v-model="formData.zfsphzbajb" v-model="formData.sflxbqyscx"
dictName="spjb" dictName="sf"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> </el-row>
<el-form-item label="是否履行标前预审程序"> </el-collapse-item>
<CommonSelector
:radio="true"
v-model="formData.sflxbqyscx"
dictName="sf"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="项目所在地" name="项目所在地"> <el-collapse-item title="项目所在地" name="项目所在地">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="境内/外"> <el-form-item label="境内/外">
<CommonSelector <CommonSelector
v-model="formData.jnw" v-model="formData.jnw"
dictName="dqlx" dictName="dqlx"
@change="changeJnw" @change="changeJnw"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="省(境内)/洲际(境外)"> <el-form-item label="省(境内)/洲际(境外)">
<CommonSelector <CommonSelector
v-model="formData.sjnzjjw" v-model="formData.sjnzjjw"
:options="szjList" :options="szjList"
@change="changeSzj" @change="changeSzj"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="地市(境内)/国家(境外)"> <el-form-item label="地市(境内)/国家(境外)">
<CommonSelector <CommonSelector
v-model="formData.dsjngjjw" v-model="formData.dsjngjjw"
:options="dsgjList" :options="dsgjList"
@change="changeDsgj" @change="changeDsgj"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="区县(境内)/国家(境外)"> <el-form-item label="区县(境内)/国家(境外)">
<CommonSelector <CommonSelector
v-model="formData.qxjngjjw" v-model="formData.qxjngjjw"
:options="qxgjList" :options="qxgjList"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目区域"> <el-form-item label="项目区域">
<CommonSelector <CommonSelector v-model="formData.xmqy" dictName="xmqy" />
v-model="formData.xmqy" </el-form-item>
dictName="xmqy" </el-col>
/> <el-col :span="8">
</el-form-item> <el-form-item label="是否一带一路沿线国家">
</el-col> <CommonSelector
<el-col :span="8"> :radio="true"
<el-form-item label="是否一带一路沿线国家"> v-model="formData.sfydylyxgj"
<CommonSelector dictName="sf"
:radio="true" />
v-model="formData.sfydylyxgj" </el-form-item>
dictName="sf" </el-col>
/> </el-row>
</el-form-item> </el-collapse-item>
</el-col> <el-collapse-item title="计量币种" name="计量币种">
</el-row> <el-row :gutter="20">
</el-collapse-item> <el-col :span="8">
<el-collapse-item title="计量币种" name="计量币种"> <el-form-item label="币种">
<el-row :gutter="20"> <CommonSelector
<el-col :span="8"> v-model="formData.bizhong"
<el-form-item label="币种"> dictName="bizhong"
<CommonSelector />
v-model="formData.bizhong" </el-form-item>
dictName="bizhong" </el-col>
/> <el-col :span="8">
</el-form-item> <el-form-item label="汇率">
</el-col> <!-- 999.99 [20,4]-->
<el-col :span="8"> <el-input
<el-form-item label="汇率"> v-model="formData.huilv"
<!-- 999.99 [20,4]--> :min="0"
<el-input :max="99999999999.99999999"
v-model="formData.huilv" controls-position="right"
:min="0" />
:max="99999999999.99999999" </el-form-item>
controls-position="right" </el-col>
/> </el-row>
</el-form-item> </el-collapse-item>
</el-col> <el-collapse-item title="实施时间" name="实施时间">
</el-row> <el-row :gutter="20">
</el-collapse-item> <el-col :span="8">
<el-collapse-item title="实施时间" name="实施时间"> <el-form-item label="项目建设期">
<el-row :gutter="20"> <el-input-number
<el-col :span="8"> v-model="formData.xmjsqy"
<el-form-item label="项目建设期"> :min="0"
<el-input-number :max="99999999999.99999999"
v-model="formData.xmjsqy" controls-position="right"
:min="0" >
:max="99999999999.99999999" <template #suffix>
controls-position="right" <span></span>
> </template>
<template #suffix> </el-input-number>
<span></span> </el-form-item>
</template> </el-col>
</el-input-number> <el-col :span="8">
</el-form-item> <el-form-item label="运营年限">
</el-col> <el-input-number
<el-col :span="8"> v-model="formData.yynxn"
<el-form-item label="运营年限"> :min="0"
<el-input-number :max="99999999999.99999999"
v-model="formData.yynxn" controls-position="right"
:min="0" >
:max="99999999999.99999999" <template #suffix>
controls-position="right" <span></span>
> </template>
<template #suffix> </el-input-number>
<span></span> </el-form-item>
</template> </el-col>
</el-input-number> <el-col :span="8">
</el-form-item> <el-form-item label="项目合作期">
</el-col> <el-input-number
<el-col :span="8"> v-model="formData.xmhzqn"
<el-form-item label="项目合作期"> :min="0"
<el-input-number :max="99999999999.99999999"
v-model="formData.xmhzqn" controls-position="right"
:min="0" >
:max="99999999999.99999999" <template #suffix>
controls-position="right" <span></span>
> </template>
<template #suffix> </el-input-number>
<span></span> </el-form-item>
</template> </el-col>
</el-input-number> <el-col :span="8">
</el-form-item> <el-form-item label="项目开工时间(预计)">
</el-col> <el-date-picker
<el-col :span="8"> v-model="formData.xmkgsjyj"
<el-form-item label="项目开工时间(预计)"> type="date"
<el-date-picker placeholder="请选择"
v-model="formData.xmkgsjyj" />
type="date" </el-form-item>
placeholder="请选择" </el-col>
/> <el-col :span="8">
</el-form-item> <el-form-item label="项目交工时间(预计)">
</el-col> <el-date-picker
<el-col :span="8"> v-model="formData.xmjgsjyj"
<el-form-item label="项目交工时间(预计)"> type="date"
<el-date-picker placeholder="请选择"
v-model="formData.xmjgsjyj" />
type="date" </el-form-item>
placeholder="请选择" </el-col>
/> </el-row>
</el-form-item> </el-collapse-item>
</el-col> <el-collapse-item title="投资分类" name="投资分类">
</el-row> <el-row :gutter="20">
</el-collapse-item> <el-col :span="8">
<el-collapse-item title="投资分类" name="投资分类"> <div class="col-title">投资属性分类</div>
<el-row :gutter="20"> <el-form-item label="一级分类">
<el-col :span="8"> <CommonSelector
<div class="col-title">投资属性分类</div> v-model="formData.tzsxyjfl"
<el-form-item label="一级分类"> dictName="tzsx"
<CommonSelector @change="changeTzsxyjfl"
v-model="formData.tzsxyjfl" />
dictName="tzsx" </el-form-item>
@change="changeTzsxyjfl" <el-form-item label="二级分类">
/> <CommonSelector
</el-form-item> v-model="formData.tzsxejfl"
<el-form-item label="二级分类"> :options="tzsxejflList"
<CommonSelector />
v-model="formData.tzsxejfl" </el-form-item>
:options="tzsxejflList" <el-form-item label="投资板块">
/> <CommonSelector
</el-form-item> v-model="formData.tzbk"
<el-form-item label="投资板块"> dictName="tzbk"
<CommonSelector @change="changeTzsxtzbk"
v-model="formData.tzbk" />
dictName="tzbk" </el-form-item>
@change="changeTzsxtzbk" <el-form-item label="细分板块">
/> <CommonSelector
</el-form-item> v-model="formData.subsector"
<el-form-item label="细分板块"> :options="tzsxxfbkList"
<CommonSelector />
v-model="formData.subsector" </el-form-item>
:options="tzsxxfbkList" </el-col>
/> <el-col :span="8">
</el-form-item> <div class="col-title">投资目的分类</div>
</el-col> <el-form-item label="一级分类">
<el-col :span="8"> <CommonSelector
<div class="col-title">投资目的分类</div> v-model="formData.tzmdyjfl"
<el-form-item label="一级分类"> dictName="tzmd"
<CommonSelector @change="changeTzmdyjfl"
v-model="formData.tzmdyjfl" />
dictName="tzmd" </el-form-item>
@change="changeTzmdyjfl" <el-form-item label="二级分类">
/> <CommonSelector
</el-form-item> v-model="formData.tzmdejfl"
<el-form-item label="二级分类"> :options="tzmdejflList"
<CommonSelector />
v-model="formData.tzmdejfl" </el-form-item>
:options="tzmdejflList" <el-form-item label="四新分类">
/> <CommonSelector v-model="formData.sxfl" dictName="sxfl" />
</el-form-item> </el-form-item>
<el-form-item label="四新分类"> </el-col>
<CommonSelector <el-col :span="12">
v-model="formData.sxfl" <el-row :gutter="20">
dictName="sxfl" <el-col :span="12">
/> <div class="col-title">投资指南分类</div>
</el-form-item> <el-form-item label="一级分类">
</el-col> <CommonSelector
<el-col :span="12"> v-model="formData.tzznyjfl"
<el-row :gutter="20"> dictName="tzzn"
<el-col :span="12"> @change="changeTzznyjfl"
<div class="col-title">投资指南分类</div> />
<el-form-item label="一级分类"> </el-form-item>
<CommonSelector <el-form-item label="二级分类">
v-model="formData.tzznyjfl" <CommonSelector
dictName="tzzn" v-model="formData.tzznejfl"
@change="changeTzznyjfl" :options="tzznejflList"
/> />
</el-form-item> </el-form-item>
<el-form-item label="二级分类"> <el-form-item
<CommonSelector label="投资指南分类概述"
v-model="formData.tzznejfl" v-if="formData.tzznyjfl !== 233"
:options="tzznejflList" >
/> <el-input
</el-form-item> v-model="formData.tzznflgs"
<el-form-item type="textarea"
label="投资指南分类概述" :autosize="{ minRows: 2, maxRows: 5 }"
v-if="formData.tzznyjfl !== 233" />
> </el-form-item>
<el-input </el-col>
v-model="formData.tzznflgs" <el-col :span="12">
type="textarea" <div class="col-title"></div>
:autosize="{ minRows: 2, maxRows: 5 }" <el-form-item label="国民经济行业">
/> <el-tree-select
</el-form-item> v-model="formData.gmjjhy"
</el-col> :data="gmjjhyList"
<el-col :span="12"> node-key="id"
<div class="col-title"></div> :props="gmjjhyProps"
<el-form-item label="国民经济行业"> placeholder="请选择"
<el-tree-select render-after-expand
v-model="formData.gmjjhy" clearable
:data="gmjjhyList" />
node-key="id" </el-form-item>
:props="gmjjhyProps" </el-col>
placeholder="请选择" </el-row>
render-after-expand </el-col>
clearable </el-row>
/> </el-collapse-item>
</el-form-item> <el-collapse-item
</el-col> title="特别关注、特别监管类等信息"
</el-row> name="特别关注、特别监管类等信息"
</el-col> >
</el-row> <el-row :gutter="20">
</el-collapse-item> <el-col :span="8">
<el-collapse-item <el-form-item
title="特别关注、特别监管类等信息" label-width="300px"
name="特别关注、特别监管类等信息" label="是否需报国家发展改革委和商务部核准"
> >
<el-row :gutter="20"> <CommonSelector
<el-col :span="8"> :radio="true"
<el-form-item v-model="formData.sfxbgjfzggwhswbhz"
label-width="300px" dictName="sf"
label="是否需报国家发展改革委和商务部核准" />
> </el-form-item>
<CommonSelector </el-col>
:radio="true" <el-col :span="8">
v-model="formData.sfxbgjfzggwhswbhz" <el-form-item label-width="300px" label="是否国家领导见签">
dictName="sf" <CommonSelector
/> :radio="true"
</el-form-item> v-model="formData.sfgjldjq"
</el-col> dictName="sf"
<el-col :span="8"> />
<el-form-item </el-form-item>
label-width="300px" </el-col>
label="是否国家领导见签" <el-col :span="8">
> <el-form-item label-width="300px" label="是否境内特别监管类">
<CommonSelector <CommonSelector
:radio="true" :radio="true"
v-model="formData.sfgjldjq" v-model="formData.sfjntbjgl"
dictName="sf" dictName="sf"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> </el-row>
<el-form-item </el-collapse-item>
label-width="300px" <el-collapse-item
label="是否境内特别监管类" title="建设规模(实物量指标)"
> name="建设规模(实物量指标)"
<CommonSelector >
:radio="true" <div class="tab-handle">
v-model="formData.sfjntbjgl" <el-button type="primary" size="small" @click="addSwlzb"
dictName="sf" >新增</el-button
/> >
</el-form-item> </div>
</el-col> <el-table
</el-row> :data="swlzbData"
</el-collapse-item> style="width: 100%"
<el-collapse-item empty-text="暂无数据"
title="建设规模(实物量指标)" border
name="建设规模(实物量指标)" >
> <el-table-column type="index" width="50" />
<div class="tab-handle"> <el-table-column prop="name" label="指标名称">
<el-button <template #default="scope">
type="primary" <el-input v-model="scope.row.name" />
size="small" </template>
@click="addSwlzb" </el-table-column>
>新增</el-button <el-table-column prop="num" label="数量" width="180">
> <template #default="scope">
</div> <el-input
<el-table v-model="scope.row.num"
:data="swlzbData" :min="0"
style="width: 100%" :max="99999999999.99999999"
empty-text="暂无数据" controls-position="right"
border />
> </template>
<el-table-column type="index" width="50" /> </el-table-column>
<el-table-column prop="name" label="指标名称"> <el-table-column prop="unit" label="单位">
<template #default="scope"> <template #default="scope">
<el-input v-model="scope.row.name" /> <el-input v-model="scope.row.unit" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="bcsm" label="补充说明">
prop="num" <template #default="scope">
label="数量" <el-input v-model="scope.row.bcsm" type="textarea" />
width="180" </template>
> </el-table-column>
<template #default="scope"> <el-table-column label="操作" width="60">
<el-input <template #default="scope">
v-model="scope.row.num" <el-button
:min="0" link
:max="99999999999.99999999" type="danger"
controls-position="right" size="small"
/> @click="deleteSwlzb(scope.$index)"
</template> >删除</el-button
</el-table-column> >
<el-table-column prop="unit" label="单位"> </template>
<template #default="scope"> </el-table-column>
<el-input v-model="scope.row.unit" /> </el-table>
</template> </el-collapse-item>
</el-table-column> <el-collapse-item title="股东信息" name="股东信息">
<el-table-column prop="bcsm" label="补充说明"> <div class="tab-handle">
<template #default="scope"> <el-button type="primary" size="small" @click="addGdxx"
<el-input >新增</el-button
v-model="scope.row.bcsm" >
type="textarea" </div>
/> <el-table
</template> :data="gdxxData"
</el-table-column> style="width: 100%"
<el-table-column label="操作" width="60"> empty-text="暂无数据"
<template #default="scope"> border
<el-button >
link <el-table-column
type="danger" type="index"
size="small" width="50"
@click="deleteSwlzb(scope.$index)" :index="gdxxIndexMethod"
>删除</el-button />
> <el-table-column prop="gdlx" label="股东类型" width="130">
</template> <template #default="scope">
</el-table-column> <CommonSelector
</el-table> v-if="scope.$index < gdxxData.length - 1"
</el-collapse-item> v-model="scope.row.gdlx"
<el-collapse-item title="股东信息" name="股东信息"> dictName="gdlx"
<div class="tab-handle"> @change="changeGdxxSums"
<el-button />
type="primary" <div v-else class="sums-column">
size="small" <div class="" v-for="(value, key) in gdxxSums" :key="key">
@click="addGdxx" {{ value.name }}
>新增</el-button </div>
> <div>合计</div>
</div> </div>
<el-table </template>
:data="gdxxData" </el-table-column>
style="width: 100%" <el-table-column prop="gdmc" label="股东名称">
empty-text="暂无数据" <template #default="scope">
border <el-input
> v-if="scope.$index < gdxxData.length - 1"
<el-table-column v-model="scope.row.gdmc"
type="index" />
width="50" <div v-else></div>
:index="gdxxIndexMethod" </template>
/> </el-table-column>
<el-table-column <el-table-column prop="cgbl" label="持股比例(%)" width="180">
prop="gdlx" <template #default="scope">
label="股东类型" <el-input
width="130" v-if="scope.$index < gdxxData.length - 1"
> v-model="scope.row.cgbl"
<template #default="scope"> :min="0"
<CommonSelector :max="99999.99"
v-if="scope.$index < gdxxData.length - 1" controls-position="right"
v-model="scope.row.gdlx" @blur="changeGdxxSums"
dictName="gdlx" />
@change="changeGdxxSums" <div v-else class="sums-column">
/> <div class="" v-for="(value, key) in gdxxSums" :key="key">
<div v-else class="sums-column"> {{ value.cgbl }}%
<div </div>
class="" <div>{{ getObjSums(gdxxSums, "cgbl") }}%</div>
v-for="(value, key) in gdxxSums" </div>
:key="key" </template>
> </el-table-column>
{{ value.name }} <el-table-column prop="cze" label="出资额(万元)" width="180">
</div> <template #default="scope">
<div>合计</div> <el-input
</div> v-if="scope.$index < gdxxData.length - 1"
</template> v-model="scope.row.cze"
</el-table-column> :min="0"
<el-table-column prop="gdmc" label="股东名称"> :max="99999999999.99999999"
<template #default="scope"> controls-position="right"
<el-input @blur="changeGdxxSums"
v-if="scope.$index < gdxxData.length - 1" />
v-model="scope.row.gdmc" <div v-else class="sums-column">
/> <div class="" v-for="(value, key) in gdxxSums" :key="key">
<div v-else></div> {{ value.cze }}万元
</template> </div>
</el-table-column> <div>{{ getObjSums(gdxxSums, "cze") }}万元</div>
<el-table-column </div>
prop="cgbl" </template>
label="持股比例(%)" </el-table-column>
width="180" <el-table-column
> prop="yjzczb"
<template #default="scope"> label="应缴注册资本(万元)"
<el-input width="180"
v-if="scope.$index < gdxxData.length - 1" >
v-model="scope.row.cgbl" <template #default="scope">
:min="0" <el-input
:max="99999.99" v-if="scope.$index < gdxxData.length - 1"
controls-position="right" v-model="scope.row.yjzczb"
@blur="changeGdxxSums" :min="0"
/> :max="99999999999.99999999"
<div v-else class="sums-column"> controls-position="right"
<div @blur="changeGdxxSums"
class="" />
v-for="(value, key) in gdxxSums" <div v-else class="sums-column">
:key="key" <div class="" v-for="(value, key) in gdxxSums" :key="key">
> {{ value.yjzczb }}万元
{{ value.cgbl }}% </div>
</div> <div>{{ getObjSums(gdxxSums, "yjzczb") }}万元</div>
<div>{{ getObjSums(gdxxSums, "cgbl") }}%</div> </div>
</div> </template>
</template> </el-table-column>
</el-table-column> <el-table-column
<el-table-column prop="ycxmzbj"
prop="cze" label="应出项目资本金(万元)"
label="出资额(万元)" width="180"
width="180" >
> <template #default="scope">
<template #default="scope"> <el-input
<el-input v-if="scope.$index < gdxxData.length - 1"
v-if="scope.$index < gdxxData.length - 1" v-model="scope.row.ycxmzbj"
v-model="scope.row.cze" :min="0"
:min="0" :max="99999999999.99999999"
:max="99999999999.99999999" controls-position="right"
controls-position="right" @blur="changeGdxxSums"
@blur="changeGdxxSums" />
/> <div v-else class="sums-column">
<div v-else class="sums-column"> <div class="" v-for="(value, key) in gdxxSums" :key="key">
<div {{ value.ycxmzbj }}万元
class="" </div>
v-for="(value, key) in gdxxSums" <div>{{ getObjSums(gdxxSums, "ycxmzbj") }}万元</div>
:key="key"
>
{{ value.cze }}万元
</div>
<div>
{{ getObjSums(gdxxSums, "cze") }}万元
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="yjzczb"
label="应缴注册资本(万元)"
width="180"
>
<template #default="scope">
<el-input
v-if="scope.$index < gdxxData.length - 1"
v-model="scope.row.yjzczb"
:min="0"
:max="99999999999.99999999"
controls-position="right"
@blur="changeGdxxSums"
/>
<div v-else class="sums-column">
<div
class=""
v-for="(value, key) in gdxxSums"
:key="key"
>
{{ value.yjzczb }}万元
</div>
<div>
{{ getObjSums(gdxxSums, "yjzczb") }}万元
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="ycxmzbj"
label="应出项目资本金(万元)"
width="180"
>
<template #default="scope">
<el-input
v-if="scope.$index < gdxxData.length - 1"
v-model="scope.row.ycxmzbj"
:min="0"
:max="99999999999.99999999"
controls-position="right"
@blur="changeGdxxSums"
/>
<div v-else class="sums-column">
<div
class=""
v-for="(value, key) in gdxxSums"
:key="key"
>
{{ value.ycxmzbj }}万元
</div>
<div>
{{ getObjSums(gdxxSums, "ycxmzbj") }}万元
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="hzfqk" label="合作方情况">
<template #default="scope">
<el-input
v-if="scope.$index < gdxxData.length - 1"
v-model="scope.row.hzfqk"
/>
<div v-else></div>
</template>
</el-table-column>
<el-table-column prop="bz" label="备注">
<template #default="scope">
<el-input
v-if="scope.$index < gdxxData.length - 1"
v-model="scope.row.bz"
/>
<div v-else></div>
</template>
</el-table-column>
<el-table-column label="操作" width="60">
<template #default="scope">
<el-button
v-if="scope.$index < gdxxData.length - 1"
link
type="danger"
size="small"
@click="deleteGdxx(scope.$index)"
>删除</el-button
>
<div v-else></div>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="项目必要性及可行性"
name="项目必要性及可行性"
>
<el-form-item label="建设内容及规模">
<el-input
v-model="formData.jsnrjgm"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
<el-form-item label="项目必要性">
<el-input
v-model="formData.xmbyx"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
<el-form-item label="项目可行性">
<el-input
v-model="formData.xmkxx"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
<!-- <el-form-item label="其他说明">
<el-input v-model="formData.qtsm" type="textarea" />
</el-form-item> -->
</el-collapse-item>
<el-collapse-item title="立项资料" name="立项资料">
<el-form-item label="相关支撑材料" :label-width="100">
<el-upload
:action="
windowConfig.baseUrl + '/api/file/upload'
"
:headers="{ Authorization: token }"
:show-file-list="false"
multiple
:on-success="addZcclFile"
>
<el-button type="default">上传</el-button>
</el-upload>
<el-button
type="default"
@click="multiDeleteZccl"
:disabled="!zcclSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-table
:data="zcclData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="zcclSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column
prop="originalname"
label="文件名"
/>
<el-table-column
prop="updatedAt"
label="上传时间"
/>
<el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="100"
>
<template #default="{ row, $index }">
<!-- 需要在查看表单disabled时保持允许下载 -->
<span
class="always-click"
@click="downloadFile(row)"
>下载</span
>
<el-button
link
type="danger"
size="small"
@click="deleteZccl($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-form>
</div> </div>
</template>
</el-table-column>
<el-table-column prop="hzfqk" label="合作方情况">
<template #default="scope">
<el-input
v-if="scope.$index < gdxxData.length - 1"
v-model="scope.row.hzfqk"
/>
<div v-else></div>
</template>
</el-table-column>
<el-table-column prop="bz" label="备注">
<template #default="scope">
<el-input
v-if="scope.$index < gdxxData.length - 1"
v-model="scope.row.bz"
/>
<div v-else></div>
</template>
</el-table-column>
<el-table-column label="操作" width="60">
<template #default="scope">
<el-button
v-if="scope.$index < gdxxData.length - 1"
link
type="danger"
size="small"
@click="deleteGdxx(scope.$index)"
>删除</el-button
>
<div v-else></div>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="项目必要性及可行性"
name="项目必要性及可行性"
>
<el-form-item label="建设内容及规模">
<el-input
v-model="formData.jsnrjgm"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
<el-form-item label="项目必要性">
<el-input
v-model="formData.xmbyx"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
<el-form-item label="项目可行性">
<el-input
v-model="formData.xmkxx"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-collapse-item>
<el-collapse-item title="立项资料" name="立项资料">
<el-form-item label="相关支撑材料" :label-width="100">
<FileUploader v-model="zcclData" />
</el-form-item>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { inject } from "vue"; import { inject } from "vue";
import CommonSelector from "@/components/CommonSelector.vue"; import CommonSelector from "@/components/CommonSelector.vue";
import FileUploader from "@/components/FileUploader/index.vue";
const { const {
formData, isPreview, activeCollapse, formData,
swlzbData, gdxxData, gdxxSums, isPreview,
zcclData, zcclSelectIds, activeCollapse,
downloadFile, ElMessageBox, swlzbData,
changeJnw, changeSzj, changeDsgj, gdxxData,
changeTzsxyjfl, changeTzsxtzbk, changeTzmdyjfl, changeTzznyjfl, gdxxSums,
addSwlzb, deleteSwlzb, addGdxx, deleteGdxx, changeGdxxSums, getObjSums, gdxxIndexMethod, zcclData,
addZcclFile, deleteZccl, zcclSelectionChange, multiDeleteZccl, zcclSelectIds,
szjList, dsgjList, qxgjList, downloadFile,
tzsxejflList, tzsxxfbkList, ElMessageBox,
tzmdejflList, tzznejflList, changeJnw,
gmjjhyList, gmjjhyProps, changeSzj,
windowConfig, token, changeDsgj,
changeTzsxyjfl,
changeTzsxtzbk,
changeTzmdyjfl,
changeTzznyjfl,
addSwlzb,
deleteSwlzb,
addGdxx,
deleteGdxx,
changeGdxxSums,
getObjSums,
gdxxIndexMethod,
addZcclFile,
deleteZccl,
zcclSelectionChange,
multiDeleteZccl,
szjList,
dsgjList,
qxgjList,
tzsxejflList,
tzsxxfbkList,
tzmdejflList,
tzznejflList,
gmjjhyList,
gmjjhyProps,
windowConfig,
token,
uploadDialogVisible,
} = inject("lxShared"); } = inject("lxShared");
</script> </script>
...@@ -50,9 +50,9 @@ export function useJueceData(jcFormData, gdlxListRef) { ...@@ -50,9 +50,9 @@ export function useJueceData(jcFormData, gdlxListRef) {
obj[item.gdlx].lrfpbl = new Decimal( obj[item.gdlx].lrfpbl = new Decimal(
Number(obj[item.gdlx].lrfpbl || 0), Number(obj[item.gdlx].lrfpbl || 0),
).plus(new Decimal(Number(item.lrfpbl || 0))); ).plus(new Decimal(Number(item.lrfpbl || 0)));
obj[item.gdlx].cze = new Decimal( obj[item.gdlx].cze = new Decimal(Number(obj[item.gdlx].cze || 0)).plus(
Number(obj[item.gdlx].cze || 0), new Decimal(Number(item.cze || 0)),
).plus(new Decimal(Number(item.cze || 0))); );
obj[item.gdlx].yjzczb = new Decimal( obj[item.gdlx].yjzczb = new Decimal(
Number(obj[item.gdlx].yjzczb || 0), Number(obj[item.gdlx].yjzczb || 0),
).plus(new Decimal(Number(item.yjzczb || 0))); ).plus(new Decimal(Number(item.yjzczb || 0)));
...@@ -539,25 +539,86 @@ export function useJueceData(jcFormData, gdlxListRef) { ...@@ -539,25 +539,86 @@ export function useJueceData(jcFormData, gdlxListRef) {
return { return {
jcRadioClick, jcRadioClick,
jcSwlzbData, addJcSwlzb, deleteJcSwlzb, jcSwlzbData,
jcGdxxData, addJcGdxx, deleteJcGdxx, jcgdxxSums, changeJcGdxxSums, jcgdxxIndexMethod, addJcSwlzb,
dbzqData, addDbzq, deleteDbzq, deleteJcSwlzb,
fxglData, addFxgl, deleteFxgl, jcGdxxData,
lcbjdData, addLcbjd, deleteLcbjd, addJcGdxx,
lcbspData, addLcbspFile, deleteLcbsp, lcbspSelectIds, lcbspSelectionChange, multiDeleteLcbsp, deleteJcGdxx,
kyclData, addKyclFile, deleteKycl, kyclSelectIds, kyclSelectionChange, multiDeleteKycl, jcgdxxSums,
jjzbcsData, addJjzbcsFile, deleteJjzbcs, jjzbcsSelectIds, jjzbcsSelectionChange, multiDeleteJjzbcs, changeJcGdxxSums,
tpbczcclData, addTpbczcclFile, deleteTpbczccl, tpbczcclSelectIds, tpbczcclSelectionChange, multiDeleteTpbczccl, jcgdxxIndexMethod,
tpzcclData, addTpzcclFile, deleteTpzccl, tpzcclSelectIds, tpzcclSelectionChange, multiDeleteTpzccl, dbzqData,
shyaData, addShyaFile, deleteShya, shyaSelectIds, shyaSelectionChange, multiDeleteShya, addDbzq,
deleteDbzq,
fxglData,
addFxgl,
deleteFxgl,
lcbjdData,
addLcbjd,
deleteLcbjd,
lcbspData,
addLcbspFile,
deleteLcbsp,
lcbspSelectIds,
lcbspSelectionChange,
multiDeleteLcbsp,
kyclData,
addKyclFile,
deleteKycl,
kyclSelectIds,
kyclSelectionChange,
multiDeleteKycl,
jjzbcsData,
addJjzbcsFile,
deleteJjzbcs,
jjzbcsSelectIds,
jjzbcsSelectionChange,
multiDeleteJjzbcs,
tpbczcclData,
addTpbczcclFile,
deleteTpbczccl,
tpbczcclSelectIds,
tpbczcclSelectionChange,
multiDeleteTpbczccl,
tpzcclData,
addTpzcclFile,
deleteTpzccl,
tpzcclSelectIds,
tpzcclSelectionChange,
multiDeleteTpzccl,
shyaData,
addShyaFile,
deleteShya,
shyaSelectIds,
shyaSelectionChange,
multiDeleteShya,
jcTzzeqkjData, jcTzzeqkjData,
jcCwpjzbData, jcCwpjzbData,
jcHxbjtjData, addJchxbjtj, deleteJchxbjtj, jcHxbjtjData,
jcztshqkData, addJcztshqk, deleteJcztshqk, addJcztshqkFile, deleteJcztshqkFile, addJchxbjtj,
tzztshqkData, addTzztshqk, deleteTzztshqk, addTzztshqkFile, deleteTzztshqkFile, deleteJchxbjtj,
jcspyjData, addJcspyj, deleteJcspyj, addJcspyjFile, deleteRowFile, jcztshqkData,
addJcztshqk,
deleteJcztshqk,
addJcztshqkFile,
deleteJcztshqkFile,
tzztshqkData,
addTzztshqk,
deleteTzztshqk,
addTzztshqkFile,
deleteTzztshqkFile,
jcspyjData,
addJcspyj,
deleteJcspyj,
addJcspyjFile,
deleteRowFile,
bhqkData, bhqkData,
jxjlData, addJxjl, deleteJxjl, jxjlData,
jlrData, addJlr, deleteJlr, addJxjl,
deleteJxjl,
jlrData,
addJlr,
deleteJlr,
}; };
} }
...@@ -12,6 +12,7 @@ export function useLixiangData(formData, gdlxListRef) { ...@@ -12,6 +12,7 @@ export function useLixiangData(formData, gdlxListRef) {
delete formData[key]; delete formData[key];
} }
}; };
let uploadDialogVisible = ref(false);
// 建设规模(实物量指标) // 建设规模(实物量指标)
let swlzbData = reactive([]); let swlzbData = reactive([]);
...@@ -41,7 +42,8 @@ export function useLixiangData(formData, gdlxListRef) { ...@@ -41,7 +42,8 @@ export function useLixiangData(formData, gdlxListRef) {
if (item.gdlx) { if (item.gdlx) {
if (!obj[item.gdlx]) { if (!obj[item.gdlx]) {
obj[item.gdlx] = { obj[item.gdlx] = {
name: gdlxListRef.filter((gdlx) => gdlx.key == item.gdlx)[0].value, name: gdlxListRef.filter((gdlx) => gdlx.key == item.gdlx)[0]
.value,
}; };
} }
obj[item.gdlx].cgbl = new Decimal( obj[item.gdlx].cgbl = new Decimal(
...@@ -73,6 +75,7 @@ export function useLixiangData(formData, gdlxListRef) { ...@@ -73,6 +75,7 @@ export function useLixiangData(formData, gdlxListRef) {
// 支撑材料 // 支撑材料
let zcclData = ref([]); let zcclData = ref([]);
const addZcclFile = (res, file) => { const addZcclFile = (res, file) => {
uploadDialogVisible.value = false;
zcclData.value.push(res.data); zcclData.value.push(res.data);
}; };
const deleteZccl = (index) => { const deleteZccl = (index) => {
...@@ -273,14 +276,42 @@ export function useLixiangData(formData, gdlxListRef) { ...@@ -273,14 +276,42 @@ export function useLixiangData(formData, gdlxListRef) {
return { return {
radioClick, radioClick,
swlzbData, addSwlzb, deleteSwlzb, swlzbData,
gdxxData, addGdxx, deleteGdxx, gdxxSums, changeGdxxSums, gdxxIndexMethod, getObjSums, addSwlzb,
zcclData, addZcclFile, deleteZccl, zcclSelectIds, zcclSelectionChange, multiDeleteZccl, deleteSwlzb,
gdxxData,
addGdxx,
deleteGdxx,
gdxxSums,
changeGdxxSums,
gdxxIndexMethod,
getObjSums,
zcclData,
addZcclFile,
deleteZccl,
zcclSelectIds,
zcclSelectionChange,
multiDeleteZccl,
tzzeqkjData, tzzeqkjData,
cwpjzbData, cwpjzbData,
hxbjtjData, addHxbjtj, deleteHxbjtj, hxbjtjData,
lxpfwjData, addLxpfFile, deleteLxpf, lxpfSelectIds, lxpfSelectionChange, multiDeleteLxpf, addHxbjtj,
spyjTableData, addSpyj, deleteSpyj, deleteHxbjtj,
shclData, addShclFile, deleteShcl, shclSelectIds, shclSelectionChange, multiDeleteShcl, lxpfwjData,
addLxpfFile,
deleteLxpf,
lxpfSelectIds,
lxpfSelectionChange,
multiDeleteLxpf,
spyjTableData,
addSpyj,
deleteSpyj,
shclData,
addShclFile,
deleteShcl,
shclSelectIds,
shclSelectionChange,
multiDeleteShcl,
uploadDialogVisible,
}; };
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment