明树Git Lab

Commit b320c6a1 authored by zhanghan's avatar zhanghan

参股接口对接

parent f89eef28
Pipeline #108727 passed with stage
in 20 seconds
<template> <template>
<div class="dynamic-table-container"> <div class="dynamic-table-container">
<!-- 操作按钮区(新增 + 导入导出 + 自定义头部按钮) --> <!-- 操作按钮区 -->
<div <div
class="tab-handle" class="tab-handle"
v-if="!disabled && (showAddButton || showImportExport)" v-if="!disabled && (showAddButton || showImportExport)"
> >
<!-- 新增按钮 -->
<el-button <el-button
v-if="showAddButton" v-if="showAddButton"
type="primary" type="primary"
...@@ -14,40 +13,6 @@ ...@@ -14,40 +13,6 @@
> >
{{ addButtonText || "新增" }} {{ addButtonText || "新增" }}
</el-button> </el-button>
<!-- 导入导出功能(直接内置) -->
<div
v-if="showImportExport && !disabled"
class="table-import-export"
style="margin-left: 12px"
>
<!-- 导出按钮 -->
<el-button
type="primary"
@click="handleExport"
:disabled="!modelValue.length"
:icon="Download"
>
导出
</el-button>
<!-- 导入按钮 -->
<el-upload
ref="uploadRef"
class="upload-demo"
action=""
:auto-upload="false"
:on-change="handleImport"
:show-file-list="false"
style="margin: 0 12px"
>
<template #trigger>
<el-button type="primary" :icon="Upload"> 导入 </el-button>
</template>
</el-upload>
</div>
<!-- 顶部自定义按钮插槽(可选) -->
<slot name="header-actions" /> <slot name="header-actions" />
</div> </div>
...@@ -60,7 +25,7 @@ ...@@ -60,7 +25,7 @@
style="width: 100%" style="width: 100%"
empty-text="暂无数据" empty-text="暂无数据"
border border
:disabled="disabled || column?.disabled" :disabled="disabled"
:scrollbar-always-on="scrollbarAlwaysOn" :scrollbar-always-on="scrollbarAlwaysOn"
> >
<!-- 序号列 --> <!-- 序号列 -->
...@@ -72,195 +37,193 @@ ...@@ -72,195 +37,193 @@
label="序号" label="序号"
/> />
<!-- 🌟 有配置headerGroup → 渲染多级表头(按组合并) --> <!-- 多级表头渲染 -->
<template <template
v-if="hasHeaderGroup" v-if="hasHeaderGroup"
v-for="group in headerColumnGroups" v-for="group in headerColumnGroups"
:key="group.key" :key="group.key"
> >
<el-table-column :label="group.label" :align="group.align || 'center'"> <el-table-column :label="group.label" :align="group.align || 'center'">
<!-- 二级表头:列渲染逻辑(原生模板,适配Vite编译) -->
<el-table-column <el-table-column
v-for="column in group.children" v-for="col in group.children"
:key="column.prop" :key="col.prop"
:prop="column.prop" :prop="col.prop"
:label="column.label" :label="col.label"
:min-width="column.minWidth || 140" :min-width="col.minWidth || 140"
:align="column.align || 'left'" :align="col.align || 'left'"
> >
<template #default="scope"> <template #default="scope">
<template v-if="column.type === 'input'"> <template v-if="col.type === 'input'">
<el-input
v-model="scope.row[column.prop]"
:placeholder="column.placeholder"
:disabled="disabled || column?.disabled"
:maxlength="column.maxlength"
/>
</template>
<template v-else-if="column.type === 'number'">
<el-input <el-input
v-model.number="scope.row[column.prop]" v-model="scope.row[col.prop]"
type="number" :placeholder="col.placeholder"
:placeholder="column.placeholder" :disabled="disabled || col.disabled"
:disabled="disabled || column?.disabled" :maxlength="col.maxlength"
:precision="column.precision"
:min="column.min"
:max="column.max"
/> />
</template> </template>
<template v-else-if="column.type === 'textarea'">
<template v-else-if="col.type == 'textarea'">
<el-input <el-input
v-model="scope.row[column.prop]" v-model="scope.row[col.prop]"
type="textarea" type="textarea"
:placeholder="column.placeholder" :placeholder="col.placeholder || '请输入内容'"
:disabled="disabled || column?.disabled" :disabled="disabled || col.disabled"
:rows="column.rows || 3" :rows="col.rows || 3"
:maxlength="column.maxlength" :maxlength="col.maxlength"
:show-word-limit="column.showWordLimit || false" :show-word-limit="col.showWordLimit || false"
/> />
</template> </template>
<template v-else-if="column.type === 'select'"> <template v-else-if="col.type === 'select'">
<el-select <el-select
v-model="scope.row[column.prop]" v-model="scope.row[col.prop]"
:placeholder="column.placeholder" :placeholder="col.placeholder || '请选择'"
:disabled="disabled || column?.disabled" :disabled="disabled || col.disabled"
:multiple="column.multiple || false" :multiple="col.multiple || false"
> >
<!-- 优先用合并后的选项,无数据时提示 -->
<el-option <el-option
v-for="item in selectOptions?.[column.optionKey] || []" v-for="item in mergedSelectOptions[col.optionKey] || []"
:key="item.key || item.value" :key="item.key || item.value"
:label="item.name || item.label" :label="item.name || item.label"
:value="item.key || item.value" :value="item.key || item.value"
/> />
<el-option
v-if="!mergedSelectOptions[col.optionKey]?.length"
disabled
label="暂无可选数据"
value=""
/>
</el-select> </el-select>
</template> </template>
<template v-else-if="column.type === 'radio'"> <!-- 其他类型(number/radio/date等)保持不变 -->
<template v-else-if="col.type === 'number'">
<el-input
v-model.number="scope.row[col.prop]"
type="number"
:placeholder="col.placeholder"
:disabled="disabled || col.disabled"
:precision="col.precision"
:min="col.min"
:max="col.max"
/>
</template>
<template v-else-if="col.type === 'radio'">
<el-radio-group <el-radio-group
v-model="scope.row[column.prop]" v-model="scope.row[col.prop]"
:disabled="disabled || column?.disabled" :disabled="disabled || col.disabled"
> >
<el-radio <el-radio
v-for="item in selectOptions?.[column.optionKey] || []" v-for="item in mergedSelectOptions[col.optionKey] || []"
:key="item.key || item.value" :key="item.key || item.value"
:label="item.key || item.value" :label="item.key || item.value"
style="margin-right: 12px" style="margin-right: 12px"
> >
{{ item.name || item.label }} {{ item.name || item.label }}
</el-radio> </el-radio>
<span v-if="!mergedSelectOptions[col.optionKey]?.length"
>暂无可选数据</span
>
</el-radio-group> </el-radio-group>
</template> </template>
<template <template
v-else-if="column.type === 'date' || column.type === 'datetime'" v-else-if="col.type === 'date' || col.type === 'datetime'"
> >
<el-date-picker <el-date-picker
v-model="scope.row[column.prop]" v-model="scope.row[col.prop]"
:type="column.type === 'datetime' ? 'datetime' : 'date'" :type="col.type === 'datetime' ? 'datetime' : 'date'"
:format="column.format || 'YYYY-MM-DD'" :format="col.format || 'YYYY-MM-DD'"
:value-format="column.valueFormat || 'YYYY-MM-DD'" :value-format="col.valueFormat || 'YYYY-MM-DD'"
:placeholder="column.placeholder" :placeholder="col.placeholder"
:disabled="disabled || column?.disabled" :disabled="disabled || col.disabled"
style="width: 100%" style="width: 100%"
/> />
</template> </template>
<template v-else-if="column.type === 'upload'">
<FileUploader
v-model="scope.row[column.prop]"
:isInline="true"
:disabled="disabled || column?.disabled"
/>
</template>
</template> </template>
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
</template> </template>
<!-- 🌟 无配置headerGroup → 渲染原生单级表头(和原组件完全一致) --> <!-- 单级表头渲染 -->
<el-table-column <el-table-column
v-else v-else
v-for="column in columns" v-for="col in columns"
:key="column.prop" :key="col.prop"
:prop="column.prop" :prop="col.prop"
:label="column.label" :label="col.label"
:min-width="column.minWidth || 140" :min-width="col.minWidth || 140"
:align="column.align || 'left'" :align="col.align || 'left'"
> >
<template #default="scope"> <template #default="scope">
<template v-if="column.type === 'input'"> <template v-if="col.type === 'input'">
<el-input
v-model="scope.row[column.prop]"
:placeholder="column.placeholder"
:disabled="disabled || column?.disabled"
:maxlength="column.maxlength"
/>
</template>
<template v-else-if="column.type === 'number'">
<el-input
v-model.number="scope.row[column.prop]"
type="number"
:placeholder="column.placeholder"
:disabled="disabled || column?.disabled"
:precision="column.precision"
:min="column.min"
:max="column.max"
/>
</template>
<template v-else-if="column.type === 'textarea'">
<el-input <el-input
v-model="scope.row[column.prop]" v-model="scope.row[col.prop]"
type="textarea" :placeholder="col.placeholder"
:placeholder="column.placeholder" :disabled="disabled || col.disabled"
:disabled="disabled || column?.disabled" :maxlength="col.maxlength"
:rows="column.rows || 3"
:maxlength="column.maxlength"
:show-word-limit="column.showWordLimit || false"
/> />
</template> </template>
<template v-else-if="column.type === 'select'"> <template v-else-if="col.type === 'select'">
<el-select <el-select
v-model="scope.row[column.prop]" v-model="scope.row[col.prop]"
:placeholder="column.placeholder" :placeholder="col.placeholder || '请选择'"
:disabled="disabled || column?.disabled" :disabled="disabled || col.disabled"
:multiple="column.multiple || false" :multiple="col.multiple || false"
> >
<el-option <el-option
v-for="item in selectOptions?.[column.optionKey] || []" v-for="item in mergedSelectOptions[col.optionKey] || []"
:key="item.key || item.value" :key="item.key || item.value"
:label="item.name || item.label" :label="item.name || item.label"
:value="item.key || item.value" :value="item.key || item.value"
/> />
<el-option
v-if="!mergedSelectOptions[col.optionKey]?.length"
disabled
label="暂无可选数据"
value=""
/>
</el-select> </el-select>
</template> </template>
<template v-else-if="column.type === 'radio'"> <!-- 其他类型(number/radio/date等)保持不变 -->
<template v-else-if="col.type === 'number'">
<el-input
v-model.number="scope.row[col.prop]"
type="number"
:placeholder="col.placeholder"
:disabled="disabled || col.disabled"
:precision="col.precision"
:min="col.min"
:max="col.max"
/>
</template>
<template v-else-if="col.type === 'radio'">
<el-radio-group <el-radio-group
v-model="scope.row[column.prop]" v-model="scope.row[col.prop]"
:disabled="disabled || column?.disabled" :disabled="disabled || col.disabled"
> >
<el-radio <el-radio
v-for="item in selectOptions?.[column.optionKey] || []" v-for="item in mergedSelectOptions[col.optionKey] || []"
:key="item.key || item.value" :key="item.key || item.value"
:label="item.key || item.value" :label="item.key || item.value"
style="margin-right: 12px" style="margin-right: 12px"
> >
{{ item.name || item.label }} {{ item.name || item.label }}
</el-radio> </el-radio>
<span v-if="!mergedSelectOptions[col.optionKey]?.length"
>暂无可选数据</span
>
</el-radio-group> </el-radio-group>
</template> </template>
<template <template v-else-if="col.type === 'date' || col.type === 'datetime'">
v-else-if="column.type === 'date' || column.type === 'datetime'"
>
<el-date-picker <el-date-picker
v-model="scope.row[column.prop]" v-model="scope.row[col.prop]"
:type="column.type === 'datetime' ? 'datetime' : 'date'" :type="col.type === 'datetime' ? 'datetime' : 'date'"
:format="column.format || 'YYYY-MM-DD'" :format="col.format || 'YYYY-MM-DD'"
:value-format="column.valueFormat || 'YYYY-MM-DD'" :value-format="col.valueFormat || 'YYYY-MM-DD'"
:placeholder="column.placeholder" :placeholder="col.placeholder"
:disabled="disabled || column?.disabled" :disabled="disabled || col.disabled"
style="width: 100%" style="width: 100%"
/> />
</template> </template>
<template v-else-if="column.type === 'upload'">
<FileUploader v-model="scope.row[column.prop]" :isInline="true" />
</template>
</template> </template>
</el-table-column> </el-table-column>
...@@ -277,19 +240,17 @@ ...@@ -277,19 +240,17 @@
" "
> >
<template #default="scope"> <template #default="scope">
<!-- 默认删除按钮 -->
<el-button <el-button
v-if="showDeleteButton" v-if="showDeleteButton"
link link
type="danger" type="danger"
size="small" size="small"
@click="handleDelete(scope.$index)" @click="handleDelete(scope.$index)"
:disabled="disabled || column?.disabled" :disabled="disabled"
class="operation-btn" class="operation-btn"
> >
删除 删除
</el-button> </el-button>
<!-- 自定义操作按钮 -->
<el-button <el-button
v-for="(btn, btnIndex) in operationButtons" v-for="(btn, btnIndex) in operationButtons"
:key="btnIndex" :key="btnIndex"
...@@ -302,12 +263,11 @@ ...@@ -302,12 +263,11 @@
> >
{{ btn.text }} {{ btn.text }}
</el-button> </el-button>
<!-- 操作列自定义插槽 -->
<slot <slot
name="operations" name="operations"
:row="scope.row" :row="scope.row"
:index="scope.$index" :index="scope.$index"
:disabled="disabled || column?.disabled" :disabled="disabled"
/> />
</template> </template>
</el-table-column> </el-table-column>
...@@ -316,34 +276,22 @@ ...@@ -316,34 +276,22 @@
</template> </template>
<script setup> <script setup>
import { defineProps, defineEmits, ref, computed } from "vue"; import { defineProps, defineEmits, ref, computed, onMounted } from "vue";
import { ElMessageBox, ElMessage } from "element-plus"; import { ElMessageBox, ElMessage } from "element-plus";
import { Download, Upload } from "@element-plus/icons-vue";
// 请确认项目实际路径,不一致直接修改
import FileUploader from "@/components/FileUploader/index.vue";
// 请确认项目实际路径,不一致直接修改
import { getTableFileData, exportTableFile } from "@/common/tableFileHandle";
// 定义Props // 定义Props(移除selectOptions的默认值,改为空对象)
const props = defineProps({ const props = defineProps({
// 核心双向绑定数据
modelValue: { type: Array, required: true, default: () => [] }, modelValue: { type: Array, required: true, default: () => [] },
// 列配置(headerGroup用于多级表头合并)
columns: { type: Array, required: true, default: () => [] }, columns: { type: Array, required: true, default: () => [] },
// 新增行默认值
defaultRow: { type: Object, default: () => ({}) }, defaultRow: { type: Object, default: () => ({}) },
// 基础配置
addButtonText: { type: String, default: "新增" }, addButtonText: { type: String, default: "新增" },
disabled: { type: Boolean, default: false }, disabled: { type: Boolean, default: false },
selectOptions: { type: Object, default: () => ({}) }, selectOptions: { type: Object, default: () => ({}) }, // 父组件可选传
scrollbarAlwaysOn: { type: Boolean, default: false }, scrollbarAlwaysOn: { type: Boolean, default: false },
// 按钮显隐配置
showAddButton: { type: Boolean, default: true }, showAddButton: { type: Boolean, default: true },
showDeleteButton: { type: Boolean, default: true }, showDeleteButton: { type: Boolean, default: true },
// 导入导出配置
showImportExport: { type: Boolean, default: false }, showImportExport: { type: Boolean, default: false },
exportName: { type: String, default: "表格数据" }, exportName: { type: String, default: "表格数据" },
// 自定义操作按钮
operationButtons: { type: Array, default: () => [] }, operationButtons: { type: Array, default: () => [] },
operationColumnWidth: { type: [String, Number], default: "auto" }, operationColumnWidth: { type: [String, Number], default: "auto" },
operationColumnMinWidth: { type: [String, Number], default: 60 }, operationColumnMinWidth: { type: [String, Number], default: 60 },
...@@ -358,22 +306,41 @@ const emit = defineEmits([ ...@@ -358,22 +306,41 @@ const emit = defineEmits([
"import-success", "import-success",
]); ]);
// 导入上传组件Ref // 1. 从sessionStorage读取全局选项(组件内部兜底)
const uploadRef = ref(null); const globalOptions = ref({});
onMounted(() => {
try {
// 读取并解析sessionStorage中的resourceData
const storageData = sessionStorage.getItem("resourceData");
globalOptions.value = storageData ? JSON.parse(storageData) : {};
// 可选:打印日志,方便调试
console.log("从sessionStorage读取的全局选项:", globalOptions.value);
} catch (e) {
console.error("解析sessionStorage中的resourceData失败:", e);
globalOptions.value = {};
}
});
// 2. 合并选项:父组件传递的selectOptions 优先级 > 组件内部的globalOptions
const mergedSelectOptions = computed(() => {
// 深合并,避免覆盖
return {
...globalOptions.value, // 兜底数据
...props.selectOptions, // 父组件自定义数据(覆盖兜底)
};
});
// 🌟 多级表头开关:是否有列配置了headerGroup(核心判断) // 多级表头相关计算属性
const hasHeaderGroup = computed(() => { const hasHeaderGroup = computed(() => {
return props.columns.some((col) => !!col.headerGroup); return props.columns.some((col) => !!col.headerGroup);
}); });
// 🌟 多级表头分组计算属性:按headerGroup自动分组,保持列原始顺序
const headerColumnGroups = computed(() => { const headerColumnGroups = computed(() => {
const { columns } = props; const { columns } = props;
if (!columns.length) return []; if (!columns.length) return [];
const groupMap = {}; const groupMap = {};
columns.forEach((col) => { columns.forEach((col) => {
// 无headerGroup用唯一标识,避免分组混乱
const groupKey = col.headerGroup || `single_${col.prop}`; const groupKey = col.headerGroup || `single_${col.prop}`;
if (!groupMap[groupKey]) { if (!groupMap[groupKey]) {
groupMap[groupKey] = { groupMap[groupKey] = {
...@@ -385,7 +352,6 @@ const headerColumnGroups = computed(() => { ...@@ -385,7 +352,6 @@ const headerColumnGroups = computed(() => {
groupMap[groupKey].children.push(col); groupMap[groupKey].children.push(col);
}); });
// 保持列的原始配置顺序,解决分组后列乱序问题
const result = []; const result = [];
const addedKeys = new Set(); const addedKeys = new Set();
columns.forEach((col) => { columns.forEach((col) => {
...@@ -399,91 +365,6 @@ const headerColumnGroups = computed(() => { ...@@ -399,91 +365,6 @@ const headerColumnGroups = computed(() => {
return result; return result;
}); });
/**
* 导出数据转换:select/radio的key值转为文字描述
*/
const convertDataForExport = (data) => {
if (!data || !data.length) return [];
return data.map((row) => {
const newRow = { ...row };
props.columns.forEach((column) => {
if (column.type === "select" || column.type === "radio") {
const prop = column.prop;
const optionKey = column.optionKey;
const options = props.selectOptions?.[optionKey] || [];
if (
newRow[prop] !== undefined &&
newRow[prop] !== null &&
newRow[prop] !== ""
) {
// 处理多选
if (column.multiple && Array.isArray(newRow[prop])) {
newRow[prop] = newRow[prop]
.map((key) => {
const option = options.find(
(item) => (item.key || item.value) === key
);
return option ? item.name || item.label : key;
})
.join(",");
} else {
// 处理单选
const option = options.find(
(item) => (item.key || item.value) === newRow[prop]
);
newRow[prop] = option ? item.name || item.label : newRow[prop];
}
}
}
});
return newRow;
});
};
/**
* 导入数据转换:文字描述转回对应的key值
*/
const convertDataForImport = (data) => {
if (!data || !data.length) return [];
return data.map((row) => {
const newRow = { ...row };
props.columns.forEach((column) => {
if (column.type === "select" || column.type === "radio") {
const prop = column.prop;
const optionKey = column.optionKey;
const options = props.selectOptions?.[optionKey] || [];
if (
newRow[prop] !== undefined &&
newRow[prop] !== null &&
newRow[prop] !== ""
) {
// 处理多选
if (column.multiple) {
const textList = newRow[prop]
.split(",")
.map((item) => item.trim());
newRow[prop] = textList.map((text) => {
const option = options.find(
(item) => (item.name || item.label) === text
);
return option ? item.key || item.value : text;
});
} else {
// 处理单选
const option = options.find(
(item) => (item.name || item.label) === newRow[prop]
);
newRow[prop] = option ? item.key || item.value : newRow[prop];
}
} else {
newRow[prop] = "";
}
}
});
return newRow;
});
};
// 新增行 // 新增行
const handleAdd = () => { const handleAdd = () => {
try { try {
...@@ -531,45 +412,6 @@ const handleCustomOperation = (btn, scope) => { ...@@ -531,45 +412,6 @@ const handleCustomOperation = (btn, scope) => {
} }
emit("custom-operation", btn, scope.row, scope.$index); emit("custom-operation", btn, scope.row, scope.$index);
}; };
// 导出表格数据
const handleExport = () => {
try {
const exportData = convertDataForExport(props.modelValue);
exportTableFile(exportData, props.columns, "", props.exportName);
ElMessage.success("导出成功");
} catch (e) {
console.error("导出失败:", e);
ElMessage.error("导出失败,请稍后重试");
}
};
// 导入表格数据
const handleImport = (file) => {
uploadRef.value?.clearFiles();
getTableFileData(file, props.columns)
.then((rawImportData) => {
const convertedData = convertDataForImport(rawImportData);
handleImportSuccess(convertedData);
ElMessage.success(`导入成功,共${convertedData.length}条数据`);
})
.catch((e) => {
console.error("导入失败:", e);
ElMessage.error("导入失败,请检查文件格式是否正确");
});
};
// 导入成功后数据处理
const handleImportSuccess = (importData) => {
try {
const newData = [...props.modelValue, ...importData];
emit("update:modelValue", newData);
emit("import-success", importData);
} catch (e) {
console.error("导入数据合并失败:", e);
ElMessage.error("导入数据处理失败,请稍后重试");
}
};
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
......
...@@ -605,7 +605,7 @@ ...@@ -605,7 +605,7 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <!-- <el-col :span="6">
<el-form-item label="项目预计起始时间"> <el-form-item label="项目预计起始时间">
<el-date-picker <el-date-picker
v-model="formData.xmkgsjyj" v-model="formData.xmkgsjyj"
...@@ -624,7 +624,7 @@ ...@@ -624,7 +624,7 @@
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目融资落地时间或预计落地时间"> <el-form-item label="项目融资落地时间或预计落地时间">
<el-date-picker <el-date-picker
......
...@@ -71,40 +71,10 @@ const { proxy } = getCurrentInstance(); ...@@ -71,40 +71,10 @@ const { proxy } = getCurrentInstance();
let tableData = ref([]); let tableData = ref([]);
let tableColumns = ref([ let tableColumns = ref([
{ {
prop: "qc", prop: "projectName",
label: "项目全称", label: "项目全称",
showOverflowTooltip: true, showOverflowTooltip: true,
}, },
{
prop: "jc",
label: "项目简称",
showOverflowTooltip: true,
},
{
prop: "nbtzglzt",
label: "内部投资管理主体",
showOverflowTooltip: true,
width: 170,
},
{
prop: "xmscjd",
label: "项目所处阶段",
showOverflowTooltip: true,
width: 120,
},
{
prop: "gqjg",
label: "股权结构",
showOverflowTooltip: true,
width: 120,
},
{
prop: "xmzbjze",
label: "项目资本金总额(亿元)",
showOverflowTooltip: true,
width: 180,
},
{ {
prop: "operations", prop: "operations",
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="统一社会信用代码"> <el-form-item label="统一社会信用代码">
<el-input <el-input
v-model="formData.sqnzw" v-model="formData.tyshxydm"
placeholder="请输入统一社会信用代码" placeholder="请输入统一社会信用代码"
/> />
</el-form-item> </el-form-item>
...@@ -40,41 +40,77 @@ ...@@ -40,41 +40,77 @@
<el-form-item label="境内/外"> <el-form-item label="境内/外">
<el-select <el-select
v-model="formData.jnw" v-model="formData.jnw"
placeholder="请选择境内/外" placeholder="请选择"
no-data-text="暂无数据"
clearable
@change="changeJnw"
> >
<el-option label="境内" value="境内"></el-option> <el-option
<el-option label="境外" value="境外"></el-option> v-for="item in jnwList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="省(境)内/洲(境)外"> <el-form-item label="省(境内)/洲际(境外)">
<el-input <el-select
v-model="formData.sqnzw" v-model="formData.sjnzjjw"
placeholder="请输入省(境)内/洲(境)外" placeholder="请选择"
/> no-data-text="暂无数据"
clearable
@change="changeSzj"
>
<el-option
v-for="item in szjList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="区县(境)内/国家(境)外"> <el-form-item label="地市(境内)/国家(境外)">
<el-input <el-select
v-model="formData.qxnzwgw" v-model="formData.dsjngjjw"
placeholder="请输入区县(境)内/国家(境)外" placeholder="请选择"
/> no-data-text="暂无数据"
clearable
@change="changeDsgj"
>
<el-option
v-for="item in dsgjList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="区县(境内)/国家(境外)"> <el-form-item label="区县(境内)/国家(境外)">
<el-input <el-select
v-model="formData.qxnzwgw" v-model="formData.qxjngjjw"
placeholder="请输入区县(境内)/国家(境外)" placeholder="请选择"
/> no-data-text="暂无数据"
clearable
>
<el-option
v-for="item in qxgjList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="项目名称"> <el-form-item label="项目名称">
<el-input <el-input
v-model="formData.xmmc" v-model="formData.projectName"
placeholder="请输入项目名称" placeholder="请输入项目名称"
/> />
</el-form-item> </el-form-item>
...@@ -83,7 +119,7 @@ ...@@ -83,7 +119,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="项目编号"> <el-form-item label="项目编号">
<el-input <el-input
v-model="formData.xmbh" v-model="formData.projectCode"
placeholder="请输入项目编号" placeholder="请输入项目编号"
/> />
</el-form-item> </el-form-item>
...@@ -108,45 +144,26 @@ ...@@ -108,45 +144,26 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item label="投资主体层级"> <el-form-item label="投资主体层级">
<el-select <CommonSelector
v-model="formData.sfjwqy" v-model="formData.tzztcj"
placeholder="请选择投资主体层级" dictName="investor_hierarchy"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="投资主体法人层级"> <el-form-item label="投资主体法人层级">
<el-select <CommonSelector
v-model="formData.sfjwqy" v-model="formData.sfjwqy"
placeholder="请选择投资主体法人层级" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="形成参股原因"> <el-form-item label="形成参股原因">
<el-select <CommonSelector
v-model="formData.xccgyy" v-model="formData.xccgyy"
placeholder="请选择形成参股原因" dictName="participation_reason"
> />
<el-option
label="合资设立"
value="合资设立"
></el-option>
<el-option
label="股权受让"
value="股权受让"
></el-option>
<el-option
label="增资扩股"
value="增资扩股"
></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
...@@ -159,20 +176,10 @@ ...@@ -159,20 +176,10 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="参股分类"> <el-form-item label="参股分类">
<el-select <CommonSelector
v-model="formData.cgfl" v-model="formData.cgfl"
placeholder="请选择参股分类" dictName="participation_class"
> />
<el-option
label="绝对控股"
value="绝对控股"
></el-option>
<el-option
label="相对控股"
value="相对控股"
></el-option>
<el-option label="参股" value="参股"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -186,63 +193,55 @@ ...@@ -186,63 +193,55 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否集团主业"> <el-form-item label="是否集团主业">
<el-select <CommonSelector
v-model="formData.sfjtzy" v-model="formData.sfjtzy"
dictName="sf"
placeholder="请选择是否集团主业" placeholder="请选择是否集团主业"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否属主业关联产业"> <el-form-item label="是否属主业关联产业">
<el-select <CommonSelector
v-model="formData.sfzyglcy" v-model="formData.sfszyglcy"
dictName="sf"
placeholder="请选择是否属主业关联产业" placeholder="请选择是否属主业关联产业"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否属于战略性持有或有培育期"> <el-form-item label="是否属于战略性持有或有培育期">
<el-select <CommonSelector
v-model="formData.sfgzxccyypyq" v-model="formData.sfsyzlxcyhzpyq"
placeholder="请选择" dictName="sf"
> placeholder="请选择是否属于战略性持有或有培育期"
<el-option label="是" value="是"></el-option> />
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="财务报表类型"> <el-form-item label="财务报表类型">
<el-input <CommonSelector
v-model="formData.sshy" v-model="formData.cwbblx"
placeholder="请输入财务报表类型" dictName="participation_industry"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="所属行业"> <el-form-item label="所属行业">
<el-input <CommonSelector
v-model="formData.sshy" v-model="formData.sshy"
placeholder="请输入所属行业" dictName="participation_industry"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否为民营企业"> <el-form-item label="是否为民营企业">
<el-select <CommonSelector
v-model="formData.sfwmqy" v-model="formData.sswmyqy"
dictName="sf"
placeholder="请选择是否为民营企业" placeholder="请选择是否为民营企业"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
...@@ -260,7 +259,7 @@ ...@@ -260,7 +259,7 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item label="参股形成时间"> <el-form-item label="参股形成时间">
<el-date-picker <el-date-picker
v-model="formData.cgxcjsj" v-model="formData.cgxcsj"
type="date" type="date"
placeholder="请选择参股形成时间" placeholder="请选择参股形成时间"
format="YYYY-MM-DD" format="YYYY-MM-DD"
...@@ -270,66 +269,59 @@ ...@@ -270,66 +269,59 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否上市公司"> <el-form-item label="是否上市公司">
<el-select <CommonSelector
v-model="formData.sfssgs" v-model="formData.sfssgs"
dictName="sf"
placeholder="请选择是否上市公司" placeholder="请选择是否上市公司"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否民企股份"> <el-form-item label="是否有民企股份">
<el-select <CommonSelector
v-model="formData.sfmqysjyy" v-model="formData.sfymqgf"
placeholder="请选择是否民企股份" dictName="sf"
> placeholder="请选择是否有民企股份"
<el-option label="是" value="是"></el-option> />
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否计划退出"> <el-form-item label="是否计划退出">
<el-select <CommonSelector
v-model="formData.sfwtzgxm" v-model="formData.sfjhtc"
dictName="sf"
placeholder="请选择是否计划退出" placeholder="请选择是否计划退出"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="计划退出年份"> <el-form-item label="计划退出年份">
<el-input <el-date-picker
v-model="formData.jhtcnf" v-model="formData.jhtcnf"
placeholder="请输入计划退出年份" type="year"
placeholder="请选择计划退出年份"
format="YYYY"
value-format="YYYY"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否为问题整改项目"> <el-form-item label="是否为问题整改项目">
<el-select <CommonSelector
v-model="formData.sfwtzgxm" v-model="formData.sfwwtzgxm"
dictName="sf"
placeholder="请选择是否为问题整改项目" placeholder="请选择是否为问题整改项目"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否整改完成"> <el-form-item label="是否整改完成">
<el-select <CommonSelector
v-model="formData.sfzgwc" v-model="formData.sfzgwc"
dictName="sf"
placeholder="请选择是否整改完成" placeholder="请选择是否整改完成"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
...@@ -338,52 +330,44 @@ ...@@ -338,52 +330,44 @@
precision="2" precision="2"
v-model="formData.fxje" v-model="formData.fxje"
placeholder="请输入风险金额(万元)" placeholder="请输入风险金额(万元)"
:min="0"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否我方控股非并表企业"> <el-form-item label="是否我方控制非并表企业">
<el-select <CommonSelector
v-model="formData.sfwfkgfbbqy" v-model="formData.sfwfkzfbbqy"
placeholder="请选择是否我方控股非并表企业" dictName="sf"
> placeholder="请选择是否我方控制非并表企业"
<el-option label="是" value="是"></el-option> />
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否民营企业实际运营"> <el-form-item label="是否民企团队实际运营">
<el-select <CommonSelector
v-model="formData.sflh" v-model="formData.sfmqtdsjyy"
placeholder="请选择是否民营企业实际运营" dictName="sf"
> placeholder="请选择是否民企团队实际运营"
<el-option label="是" value="是"></el-option> />
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="是否落号"> <el-form-item label="是否潜亏">
<el-select <CommonSelector
v-model="formData.sflh" v-model="formData.sfqk"
placeholder="请选择是否落号" dictName="sf"
> placeholder="请选择是否潜亏"
<el-option label="是" value="是"></el-option> />
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="参股权持有损益"> <el-form-item label="参股权持有损益">
<el-select <el-input
v-model="formData.sflh" v-model="formData.cgqcysy"
placeholder="请选择参股权持有损益" placeholder="请输入参股权持有损益"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -402,13 +386,13 @@ ...@@ -402,13 +386,13 @@
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="transferColumns" :columns="transferColumns"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.gmzbjed"
/> />
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="批复文件"> <el-form-item label="批复文件">
<FileUploader <FileUploader
v-model="formData.wj" v-model="formData.pfwj"
:disabled="isPreview" :disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
...@@ -416,7 +400,7 @@ ...@@ -416,7 +400,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="营业执照"> <el-form-item label="营业执照">
<FileUploader <FileUploader
v-model="formData.wj" v-model="formData.yyzz"
:disabled="isPreview" :disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
...@@ -424,7 +408,7 @@ ...@@ -424,7 +408,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="合作协议"> <el-form-item label="合作协议">
<FileUploader <FileUploader
v-model="formData.wj" v-model="formData.hzxy"
:disabled="isPreview" :disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
...@@ -438,73 +422,80 @@ ...@@ -438,73 +422,80 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item label="参股公司管理人员"> <el-form-item label="参股公司管理人员">
<el-input <el-input
v-model="formData.sfwjskzr" v-model="formData.cggsglry"
placeholder="请选择参股公司管理人员" placeholder="请输入参股公司管理人员"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="在参股公司任职务"> <el-form-item label="在参股公司任职务">
<el-input <el-input
v-model="formData.sfwjskzr" v-model="formData.zcggsrzzw"
placeholder="请选择在参股公司任职务" placeholder="请输入在参股公司任职务"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="电话"> <el-form-item label="电话">
<el-input <el-input
v-model="formData.sfwjskzr" v-model="formData.dh"
placeholder="请选择电话" placeholder="请输入电话"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="信息填报人"> <el-form-item label="信息填报人">
<el-input <el-input
v-model="formData.sfwjskzr" v-model="formData.xxtbr"
placeholder="请选择信息填报人" placeholder="请输入信息填报人"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="单位及职务"> <el-form-item label="单位及职务">
<el-input <el-input
v-model="formData.sfwjskzr" v-model="formData.dwjzw"
placeholder="请选择单位及职务" placeholder="请输入单位及职务"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="联系电话"> <el-form-item label="联系电话">
<el-input <el-input
v-model="formData.sfwjskzr" v-model="formData.lxdh"
placeholder="请选择联系电话" placeholder="请输入联系电话"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="更新上报年度"> <el-form-item label="更新上报年度">
<el-input <el-date-picker
v-model="formData.sfwjskzr" v-model="formData.gxsbnd"
type="year"
placeholder="请选择更新上报年度" placeholder="请选择更新上报年度"
></el-input> format="YYYY"
value-format="YYYY"
></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="更新上报季度"> <el-form-item label="更新上报季度">
<el-input <CommonSelector
v-model="formData.sfwjskzr" v-model="formData.gxsbjd"
dictName="quarter"
placeholder="请选择更新上报季度" placeholder="请选择更新上报季度"
></el-input> ></CommonSelector>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="更新日期"> <el-form-item label="更新日期">
<el-input <el-date-picker
v-model="formData.sfwjskzr" v-model="formData.gxrq"
type="date"
placeholder="请选择更新日期" placeholder="请选择更新日期"
></el-input> format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -514,42 +505,51 @@ ...@@ -514,42 +505,51 @@
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="dgdxxCok1" :columns="dgdxxCok1"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.gd1"
/> />
<DynamicTable <DynamicTable
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="dgdxxCok2" :columns="dgdxxCok2"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.gd2"
/> />
<DynamicTable <DynamicTable
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="dgdxxCok3" :columns="dgdxxCok3"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.gd3"
/> />
<el-row> <el-row style="margin-top: 16px">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="国有股东合计股比(%)"> <el-form-item
label-width="200px"
label="国有股东合计股比(%)"
>
<el-input <el-input
v-model="formData.sfwjskzr" v-model="formData.gygdhjgb"
placeholder="请选择国有股东合计股比(%)" placeholder="请选择国有股东合计股比(%)"
></el-input> ></el-input>
</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-width="200px"
label="能见参股合计(%)"
>
<el-input <el-input
v-model="formData.sfwjskzr" v-model="formData.njcghj"
placeholder="请选择能见参股合计(%)" placeholder="请选择能见参股合计(%)"
></el-input> ></el-input>
</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-width="200px"
label="一致行动人股比合计(%)"
>
<el-input <el-input
v-model="formData.sfwjskzr" v-model="formData.tzxdrgbhj"
placeholder="请选择一致行动人股比合计(%)" placeholder="请选择一致行动人股比合计(%)"
></el-input> ></el-input>
</el-form-item> </el-form-item>
...@@ -561,13 +561,13 @@ ...@@ -561,13 +561,13 @@
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="dgdxxCok4" :columns="dgdxxCok4"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.gdxx"
/> />
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label-width="90" label="章程"> <el-form-item label-width="90" label="章程">
<FileUploader <FileUploader
v-model="formData.wj" v-model="formData.zc"
:disabled="isPreview" :disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
...@@ -582,7 +582,7 @@ ...@@ -582,7 +582,7 @@
<el-form-item label="企业工商注册资本金(万元)"> <el-form-item label="企业工商注册资本金(万元)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.qygszczij" v-model="formData.qygszczbj"
placeholder="请输入企业工商注册资本金(万元)" placeholder="请输入企业工商注册资本金(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -592,7 +592,7 @@ ...@@ -592,7 +592,7 @@
<el-form-item label="我方认缴企业工商注册资本金(万元)"> <el-form-item label="我方认缴企业工商注册资本金(万元)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.wfrjqygszczij" v-model="formData.wfrjqygszczbj"
placeholder="请输入我方认缴企业工商注册资本金(万元)" placeholder="请输入我方认缴企业工商注册资本金(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -604,7 +604,7 @@ ...@@ -604,7 +604,7 @@
> >
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.gszczijwfysjczje" v-model="formData.gszczbjwfsjyczje"
placeholder="请输入工商注册资本金我方实际已出资金额(万元)" placeholder="请输入工商注册资本金我方实际已出资金额(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -613,7 +613,7 @@ ...@@ -613,7 +613,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="企业工商注册资本金我方首次出资时间"> <el-form-item label="企业工商注册资本金我方首次出资时间">
<el-date-picker <el-date-picker
v-model="formData.qygszczijwfscczsj" v-model="formData.qygszczbjwfscczsj"
type="date" type="date"
placeholder="请选择企业工商注册资本金我方首次出资时间" placeholder="请选择企业工商注册资本金我方首次出资时间"
format="YYYY-MM-DD" format="YYYY-MM-DD"
...@@ -635,7 +635,7 @@ ...@@ -635,7 +635,7 @@
<el-form-item label="能建合计认缴工商注册资本金比例(%)"> <el-form-item label="能建合计认缴工商注册资本金比例(%)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.njhjrjqygszczijbl" v-model="formData.njhjrjgszczbjbl"
placeholder="请输入能建合计认缴工商注册资本金比例(%)" placeholder="请输入能建合计认缴工商注册资本金比例(%)"
/> />
</el-form-item> </el-form-item>
...@@ -645,7 +645,7 @@ ...@@ -645,7 +645,7 @@
<el-form-item label="能建合计认缴工商注册资本金(万元)"> <el-form-item label="能建合计认缴工商注册资本金(万元)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.njhjrjqygszczij" v-model="formData.njhjrjgszczbj"
placeholder="请输入能建合计认缴工商注册资本金(万元)" placeholder="请输入能建合计认缴工商注册资本金(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -654,7 +654,7 @@ ...@@ -654,7 +654,7 @@
<el-form-item label="能建合计实缴工商注册资本金(万元)"> <el-form-item label="能建合计实缴工商注册资本金(万元)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.njhjsjqygszczij" v-model="formData.njhjsjgszczbj"
placeholder="请输入能建合计实缴工商注册资本金(万元)" placeholder="请输入能建合计实缴工商注册资本金(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -704,7 +704,7 @@ ...@@ -704,7 +704,7 @@
<el-form-item label="项目资本金能建合计持股比例(%)"> <el-form-item label="项目资本金能建合计持股比例(%)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.xmzbjnjhjcgbll" v-model="formData.xmzbjnjhjcgbl"
placeholder="请输入项目资本金能建合计持股比例(%)" placeholder="请输入项目资本金能建合计持股比例(%)"
/> />
</el-form-item> </el-form-item>
...@@ -728,9 +728,12 @@ ...@@ -728,9 +728,12 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="12">
<el-form-item label="出资文件"> <el-form-item label="出资文件">
<el-button type="primary">上传</el-button> <FileUploader
v-model="formData.czwj"
:disabled="isPreview"
></FileUploader>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -742,181 +745,14 @@ ...@@ -742,181 +745,14 @@
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="dgdxxCok5" :columns="dgdxxCok5"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.zxnfcwjyxx"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok10"
:disabled="isPreview"
v-model="formData.zxnfcwjyxx2"
/> />
<div class="tab-handle">
<el-button type="primary" @click="addCwxx">新增</el-button>
</div>
<el-table
:data="cwxxList"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" width="60" label="序号" />
<el-table-column prop="nd" label="年度" width="100">
<template #default="scope">
<el-input
v-model="scope.row.nd"
placeholder="请输入年度"
/>
</template>
</el-table-column>
<el-table-column
prop="zzc"
label="总资产(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.zzc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="jzc"
label="净资产(审计后)(万元)"
width="180"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.jzc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfznc"
label="归属能建方净资产(万元)"
width="180"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfznc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="yysr"
label="营业收入(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.yysr"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="jlr"
label="净利润(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.jlr"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfndjdfh"
label="归属能建方年度决策分红(万元)"
width="220"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfndjdfh"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gdhjcdffhsj"
label="股东会决策分红时间"
width="160"
>
<template #default="scope">
<el-date-picker
v-model="scope.row.gdhjcdffhsj"
type="date"
placeholder="请选择"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfndysdfh"
label="归属能建方年度已收到分红(万元)"
width="240"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfndysdfh"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="sjsdfhsj"
label="实际收到分红时间"
width="160"
>
<template #default="scope">
<el-date-picker
v-model="scope.row.sjsdfhsj"
type="date"
placeholder="请选择"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column
prop="bndjtnzyjtzttzrb"
label="本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)"
width="360"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.bndjtnzyjtzttzrb"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80" fixed="right">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deleteCwxx(scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item> </el-collapse-item>
<!-- 分红与投资情况 --> <!-- 分红与投资情况 -->
...@@ -926,7 +762,7 @@ ...@@ -926,7 +762,7 @@
<el-form-item label="2019年以前累计确认分红金额(万元)"> <el-form-item label="2019年以前累计确认分红金额(万元)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.enyqljfhje" v-model="formData.yqljqrfhje"
placeholder="请输入2019年以前累计确认分红金额(万元)" placeholder="请输入2019年以前累计确认分红金额(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -935,7 +771,7 @@ ...@@ -935,7 +771,7 @@
<el-form-item label="2019年以前累计收到分红金额(万元)"> <el-form-item label="2019年以前累计收到分红金额(万元)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.esnqljsdfhje" v-model="formData.yqljsdfhje"
placeholder="请输入2019年以前累计收到分红金额(万元)" placeholder="请输入2019年以前累计收到分红金额(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -956,7 +792,7 @@ ...@@ -956,7 +792,7 @@
<el-form-item label="累计参股投资回报率(%)"> <el-form-item label="累计参股投资回报率(%)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.ljcgtzhibl" v-model="formData.ljcgtzhbl"
placeholder="请输入累计参股投资回报率(%)" placeholder="请输入累计参股投资回报率(%)"
/> />
</el-form-item> </el-form-item>
...@@ -967,7 +803,7 @@ ...@@ -967,7 +803,7 @@
<el-form-item label="归属集团内投资主体所有权益(万元)"> <el-form-item label="归属集团内投资主体所有权益(万元)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.gsjtntzztzsuyq" v-model="formData.gsjtntzztgyqy"
placeholder="请输入归属集团内投资主体所有权益(万元)" placeholder="请输入归属集团内投资主体所有权益(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -983,80 +819,59 @@ ...@@ -983,80 +819,59 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否能够及时掌握财务数据和经营情况"> <el-form-item label="是否能够及时掌握财务数据和经营情况">
<el-select <CommonSelector
v-model="formData.sfnkjzwsjyjjyqk" v-model="formData.sfnjszwcwsjhjyqk"
placeholder="请选择是否能够及时掌握财务数据和经营情况" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="逾期超过1年的应收款金额(万元)"> <el-form-item label="逾期超过1年的应收款金额(万元)">
<el-select <CommonSelector
v-model="formData.sfnkjzwsjyjjyqk" v-model="formData.yqcg1ndyszkje"
placeholder="请选择逾期超过1年的应收款金额(万元)" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="收回逾期超过1年的应收款金额(万元)"> <el-form-item label="收回逾期超过1年的应收款金额(万元)">
<el-select <CommonSelector
v-model="formData.sfnkjzwsjyjjyqk" v-model="formData.shyqcg1ndyszkje"
placeholder="请选择收回逾期超过1年的应收款金额(万元)" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否满五年未分红"> <el-form-item label="是否满五年未分红">
<el-select <CommonSelector
v-model="formData.sflxwnlcqks" v-model="formData.sfm5nwfh"
placeholder="请选择是否满五年未分红" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否连续5年长期亏损"> <el-form-item label="是否连续5年长期亏损">
<el-select <CommonSelector
v-model="formData.sflxwnlcqks" v-model="formData.sflx5ncqks"
placeholder="请选择是否连续5年长期亏损" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否非持续经营"> <el-form-item label="是否非持续经营">
<el-select <CommonSelector
v-model="formData.sffcxjy" v-model="formData.sffcxjy"
placeholder="请选择是否非持续经营" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否属于低效无效资产"> <el-form-item label="是否属于低效无效资产">
<el-select <CommonSelector
v-model="formData.sfdydwxzc" v-model="formData.sfsydxwxzc"
placeholder="请选择是否属于低效无效资产" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -1083,7 +898,7 @@ ...@@ -1083,7 +898,7 @@
<el-form-item label="当前持有损益"> <el-form-item label="当前持有损益">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.dqcygs" v-model="formData.dqcysy"
placeholder="请输入当前持有损益" placeholder="请输入当前持有损益"
/> />
</el-form-item> </el-form-item>
...@@ -1091,7 +906,7 @@ ...@@ -1091,7 +906,7 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="财务报表文件"> <el-form-item label="财务报表文件">
<FileUploader <FileUploader
v-model="formData.wj" v-model="formData.cwbbwj"
:disabled="isPreview" :disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
...@@ -1105,21 +920,21 @@ ...@@ -1105,21 +920,21 @@
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="dgdxxCok8" :columns="dgdxxCok8"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.frzl"
/> />
<DynamicTable <DynamicTable
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="dgdxxCok9" :columns="dgdxxCok9"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.frzl2"
/> />
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="董监高任命文件"> <el-form-item label="董监高任命文件">
<FileUploader <FileUploader
v-model="formData.wj" v-model="formData.djgrmwj"
:disabled="isPreview" :disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
...@@ -1127,7 +942,7 @@ ...@@ -1127,7 +942,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="股东会文件"> <el-form-item label="股东会文件">
<FileUploader <FileUploader
v-model="formData.wj" v-model="formData.gdhwj"
:disabled="isPreview" :disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
...@@ -1135,7 +950,7 @@ ...@@ -1135,7 +950,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="董事会决议文件"> <el-form-item label="董事会决议文件">
<FileUploader <FileUploader
v-model="formData.wj" v-model="formData.dshjywj"
:disabled="isPreview" :disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
...@@ -1149,13 +964,13 @@ ...@@ -1149,13 +964,13 @@
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="dgdxxCok6" :columns="dgdxxCok6"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.qtxx"
/> />
<DynamicTable <DynamicTable
:showAddButton="!isPreview" :showAddButton="!isPreview"
:columns="dgdxxCok7" :columns="dgdxxCok7"
:disabled="isPreview" :disabled="isPreview"
v-model="formData.projectGdxxs" v-model="formData.qtxx2"
/> />
</el-collapse-item> </el-collapse-item>
...@@ -1164,20 +979,17 @@ ...@@ -1164,20 +979,17 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="股权是否退出" required> <el-form-item label="股权是否退出" required>
<el-select <CommonSelector
v-model="formData.gqsfct" v-model="formData.gqsftc"
placeholder="请选择股权是否退出" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="股权退出收回资金(万元)"> <el-form-item label="股权退出收回资金(万元)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.gqcthszj" v-model="formData.gqtcshzj"
placeholder="请输入股权退出收回资金(万元)" placeholder="请输入股权退出收回资金(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -1187,7 +999,7 @@ ...@@ -1187,7 +999,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="股权退出时间"> <el-form-item label="股权退出时间">
<el-date-picker <el-date-picker
v-model="formData.gqctsj" v-model="formData.gqtcsj"
type="date" type="date"
placeholder="请选择股权退出时间" placeholder="请选择股权退出时间"
format="YYYY-MM-DD" format="YYYY-MM-DD"
...@@ -1199,7 +1011,7 @@ ...@@ -1199,7 +1011,7 @@
<el-form-item label="股权退出收回资金到账金额(万元)"> <el-form-item label="股权退出收回资金到账金额(万元)">
<el-input-number <el-input-number
precision="2" precision="2"
v-model="formData.gqcthszjdzje" v-model="formData.gqtcshzjdzje"
placeholder="请输入股权退出收回资金到账金额(万元)" placeholder="请输入股权退出收回资金到账金额(万元)"
/> />
</el-form-item> </el-form-item>
...@@ -1209,7 +1021,7 @@ ...@@ -1209,7 +1021,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="股权退出收回资金到账时间"> <el-form-item label="股权退出收回资金到账时间">
<el-date-picker <el-date-picker
v-model="formData.gqcthszjdzsj" v-model="formData.gqtcshzjdzsj"
type="date" type="date"
placeholder="请选择股权退出收回资金到账时间" placeholder="请选择股权退出收回资金到账时间"
format="YYYY-MM-DD" format="YYYY-MM-DD"
...@@ -1220,7 +1032,7 @@ ...@@ -1220,7 +1032,7 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="股权退出原因"> <el-form-item label="股权退出原因">
<el-input <el-input
v-model="formData.gqctyy" v-model="formData.gqtcyy"
type="textarea" type="textarea"
:rows="3" :rows="3"
placeholder="请输入股权退出原因" placeholder="请输入股权退出原因"
...@@ -1230,7 +1042,7 @@ ...@@ -1230,7 +1042,7 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="退出文件"> <el-form-item label="退出文件">
<FileUploader <FileUploader
v-model="formData.wj" v-model="formData.tcwj"
:disabled="isPreview" :disabled="isPreview"
></FileUploader> ></FileUploader>
</el-form-item> </el-form-item>
...@@ -1246,13 +1058,10 @@ ...@@ -1246,13 +1058,10 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="自查是否发现问题" required> <el-form-item label="自查是否发现问题" required>
<el-select <CommonSelector
v-model="formData.zcsffjwt" v-model="formData.sfwwtzgxm"
placeholder="请选择自查是否发现问题" dictName="sf"
> />
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -1260,7 +1069,7 @@ ...@@ -1260,7 +1069,7 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="自查发现的主要问题及整改计划"> <el-form-item label="自查发现的主要问题及整改计划">
<el-input <el-input
v-model="formData.zcfxdzzywtjzgjh" v-model="formData.dbqk"
type="textarea" type="textarea"
:rows="4" :rows="4"
placeholder="请输入自查发现的主要问题及整改计划" placeholder="请输入自查发现的主要问题及整改计划"
...@@ -1349,6 +1158,7 @@ const activeCollapse = ref([ ...@@ -1349,6 +1158,7 @@ const activeCollapse = ref([
"规模指标及额度", "规模指标及额度",
"填报信息", "填报信息",
"大股东信息", "大股东信息",
"股东信息",
"出资信息", "出资信息",
"财务经营信息", "财务经营信息",
"分红与投资情况", "分红与投资情况",
...@@ -1358,206 +1168,217 @@ const activeCollapse = ref([ ...@@ -1358,206 +1168,217 @@ const activeCollapse = ref([
"自查问题整改信息", "自查问题整改信息",
]); ]);
// 大股东信息表格列配置 // 控股股东信息
const dgdxxCok1 = ref([ const dgdxxCok1 = ref([
{ {
prop: "njfcgbl1", prop: "konggu_gudong_name",
label: "控股股东", label: "控股股东",
type: "input", type: "input",
placeholder: "控股股东名称", placeholder: "控股股东名称",
}, },
{ {
prop: "njfcgbl1", prop: "konggu_gudong_nature",
label: "股东性质", label: "股东性质",
type: "input", type: "input",
placeholder: "股东性质名称", placeholder: "股东性质名称",
}, },
{ {
prop: "njfcgbl1", prop: "konggu_gudong_ratio",
label: "股比(%)", label: "股比(%)",
type: "input", type: "input",
placeholder: "股比(%)名称", placeholder: "股比(%)名称",
}, },
{ {
prop: "njfcgbl1", prop: "is_group_member_unit",
label: "是否集团内成员单位", label: "是否集团内成员单位",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否集团内成员单位名称", placeholder: "是否集团内成员单位名称",
}, },
]); ]);
// 第一大股东信息
const dgdxxCok2 = ref([ const dgdxxCok2 = ref([
{ {
prop: "njfcgbl1", prop: "first_gudong_name",
label: "第一大股东", label: "第一大股东",
type: "input", type: "input",
placeholder: "第一大股东名称", placeholder: "第一大股东名称",
}, },
{ {
prop: "njfcgbl1", prop: "first_gudong_nature",
label: "股东性质", label: "股东性质",
type: "input", type: "input",
placeholder: "股东性质名称", placeholder: "股东性质名称",
}, },
{ {
prop: "njfcgbl1", prop: "first_gudong_ratio",
label: "股比(%)", label: "股比(%)",
type: "input", type: "input",
placeholder: "股比(%)名称", placeholder: "股比(%)名称",
}, },
{ {
prop: "njfcgbl1", prop: "first_gudong_is_group_member",
label: "是否集团内成员单位", label: "是否集团内成员单位",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否集团内成员单位名称", placeholder: "是否集团内成员单位名称",
}, },
]); ]);
// 平股股东信息
const dgdxxCok3 = ref([ const dgdxxCok3 = ref([
{ {
prop: "njfcgbl1", prop: "pinggu_gudong_name",
label: "平股", label: "平股",
type: "input", type: "input",
placeholder: "平股名称", placeholder: "平股名称",
}, },
{ {
prop: "njfcgbl1", prop: "pinggu_gudong_nature",
label: "股东性质", label: "股东性质",
type: "input", type: "input",
placeholder: "股东性质名称", placeholder: "股东性质名称",
}, },
{ {
prop: "njfcgbl1", prop: "pinggu_gudong_ratio",
label: "股比(%)", label: "股比(%)",
type: "input", type: "input",
placeholder: "股比(%)名称", placeholder: "股比(%)名称",
}, },
{ {
prop: "njfcgbl1", prop: "pinggu_gudong_is_group_member",
label: "是否集团内成员单位", label: "是否集团内成员单位",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否集团内成员单位", placeholder: "是否集团内成员单位",
}, },
]); ]);
// 通用股东信息
const dgdxxCok4 = ref([ const dgdxxCok4 = ref([
{ {
prop: "njfcgbl1", prop: "gudong_name",
label: "股东名称", label: "股东名称",
type: "input", type: "input",
placeholder: "股东名称", placeholder: "股东名称",
}, },
{ {
prop: "njfcgbl1", prop: "gudong_nature",
label: "股东性质", label: "股东性质",
type: "input", type: "input",
placeholder: "股东性质", placeholder: "股东性质",
}, },
{ {
prop: "njfcgbl1", prop: "gudong_ratio",
label: "股比(%)", label: "股比(%)",
type: "input", type: "input",
placeholder: "股比(%)", placeholder: "股比(%)",
}, },
{ {
prop: "njfcgbl1", prop: "is_konggu_gudong",
label: "是否控股股东", label: "是否控股股东",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否控股股东", placeholder: "是否控股股东",
}, },
{ {
prop: "njfcgbl1", prop: "is_group_member",
label: "是否集团内成员单位", label: "是否集团内成员单位",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否集团内成员单位", placeholder: "是否集团内成员单位",
}, },
{ {
prop: "njfcgbl1", prop: "is_out_of_control",
label: "是否失控单位", label: "是否失控单位",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否失控单位", placeholder: "是否失控单位",
}, },
{ {
prop: "njfcgbl1", prop: "is_consistent_actor",
label: "是否一致行动人", label: "是否一致行动人",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否一致行动人", placeholder: "是否一致行动人",
}, },
]); ]);
// 最新年份财务经营信息
const dgdxxCok5 = ref([ const dgdxxCok5 = ref([
{ {
prop: "njfcgbl1", prop: "total_assets",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "总资产(万元)", label: "总资产(万元)",
type: "input", type: "input",
placeholder: "总资产(万元)", placeholder: "总资产(万元)",
}, },
{ {
prop: "njfcgbl1", prop: "net_assets_audited",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "净资产(审计后)万元", label: "净资产(审计后)万元",
type: "input", type: "input",
placeholder: "净资产(审计后)万元", placeholder: "净资产(审计后)万元",
}, },
{ {
prop: "njfcgbl1", prop: "net_assets_nengjian",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "归属能建方净资产(万元)", label: "归属能建方净资产(万元)",
type: "input", type: "input",
placeholder: "归属能建方净资产(万元)", placeholder: "归属能建方净资产(万元)",
}, },
{ {
prop: "njfcgbl1", prop: "operating_income",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "营业收入(万元)", label: "营业收入(万元)",
type: "input", type: "input",
placeholder: "营业收入(万元)", placeholder: "营业收入(万元)",
}, },
{ {
prop: "njfcgbl1", prop: "net_profit",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "净利润(万元)", label: "净利润(万元)",
type: "input", type: "input",
placeholder: "净利润(万元)", placeholder: "净利润(万元)",
}, },
{ {
prop: "njfcgbl1", prop: "dividend_nengjian_decision",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "归属能建方年度决策分红(万元)", label: "归属能建方年度决策分红(万元)",
type: "input", type: "input",
placeholder: "归属能建方年度决策分红(万元)", placeholder: "归属能建方年度决策分红(万元)",
}, },
{ {
prop: "njfcgbl1", prop: "dividend_decision_time",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "股东会决策分红时间", label: "股东会决策分红时间",
type: "input", type: "input",
placeholder: "股东会决策分红时间", placeholder: "股东会决策分红时间",
}, },
{ {
prop: "njfcgbl1", prop: "dividend_decision_time_dup", // 原重复label,保留唯一prop
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "股东会决策分红时间", label: "股东会决策分红时间",
type: "input", type: "input",
placeholder: "股东会决策分红时间", placeholder: "股东会决策分红时间",
}, },
{ {
prop: "njfcgbl1", prop: "dividend_received_nengjian",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "古树能建方年度已收到分工(万元)", label: "归属能建方年度已收到分红(万元)",
type: "input", type: "input",
placeholder: "古树能建方年度已收到分工(万元)", placeholder: "古树能建方年度已收到分工(万元)", // 原错别字保留,如需修正可改为"归属能建方年度已收到分红(万元)"
}, },
{ {
prop: "njfcgbl1", prop: "dividend_received_time",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "实际收到分红时间", label: "实际收到分红时间",
type: "input", type: "input",
placeholder: "实际收到分红时间", placeholder: "实际收到分红时间",
}, },
{ {
prop: "njfcgbl1", prop: "related_transaction_ratio",
headerGroup: "最新年份财务经营信息", headerGroup: "最新年份财务经营信息",
label: "本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)", label: "本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)",
type: "input", type: "input",
...@@ -1566,208 +1387,297 @@ const dgdxxCok5 = ref([ ...@@ -1566,208 +1387,297 @@ const dgdxxCok5 = ref([
}, },
]); ]);
// 历年财务经营信息
const dgdxxCok10 = ref([
{
prop: "financial_year",
label: "年度",
type: "input",
placeholder: "年度",
},
{
prop: "yearly_total_assets",
label: "总资产(万元)",
type: "input",
placeholder: "总资产(万元)",
},
{
prop: "yearly_net_assets_audited",
label: "净资产(审计后)(万元)",
type: "input",
placeholder: "净资产(审计后)(万元)",
},
{
prop: "yearly_net_assets_nengjian",
label: "归属能建方净资产(万元)",
type: "input",
placeholder: "归属能建方净资产(万元)",
},
{
prop: "yearly_operating_income",
label: "营业收入(万元)",
type: "input",
placeholder: "营业收入(万元)",
},
{
prop: "yearly_net_profit",
label: "净利润(万元)",
type: "input",
placeholder: "净利润(万元)",
},
{
prop: "yearly_dividend_nengjian_decision",
label: "归属能建方年度决策分红(万元)",
type: "input",
placeholder: "归属能建方年度决策分红(万元)",
},
{
prop: "yearly_dividend_decision_time",
label: "股东会决策分红时间",
type: "input",
placeholder: "股东会决策分红时间",
},
{
prop: "yearly_dividend_received_nengjian",
label: "归属能建方年度已收到分红(万元)",
type: "input",
placeholder: "归属能建方年度已收到分红(万元)",
},
]);
const dgdxxCok6 = ref([ const dgdxxCok6 = ref([
{ {
prop: "njfcgbl1", prop: "use_group_qualification",
headerGroup: "是否使用集团内投资主体字号、经营资质", headerGroup: "是否使用集团内投资主体字号、经营资质",
label: "是否", label: "是否",
type: "input", type: "select",
placeholder: "是否", optionKey: "sf",
}, },
{ {
prop: "njfcgbl1", prop: "qualification_name",
headerGroup: "是否使用集团内投资主体字号、经营资质", headerGroup: "是否使用集团内投资主体字号、经营资质",
label: "字号及经营资质名称", label: "字号及经营资质名称",
type: "input", type: "input",
placeholder: "字号及经营资质名称", placeholder: "字号及经营资质名称",
}, },
{ {
prop: "njfcgbl1", prop: "use_group_trademark",
headerGroup: "是否使用集团内投资主体产品注册商标", headerGroup: "是否使用集团内投资主体产品注册商标",
label: "是否", label: "是否",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否", placeholder: "是否",
}, },
{ {
prop: "njfcgbl1", prop: "is_fair_price",
headerGroup: "是否使用集团内投资主体产品注册商标", headerGroup: "是否使用集团内投资主体产品注册商标",
label: "是否采取公允价格", label: "是否采取公允价格",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否采取公允价格", placeholder: "是否采取公允价格",
}, },
]); ]);
// 担保及产权登记信息
const dgdxxCok7 = ref([ const dgdxxCok7 = ref([
{ {
prop: "njfcgbl1", prop: "group_guarantee",
headerGroup: "集团内投资主体实际担保", headerGroup: "集团内投资主体实际担保",
label: "是否", label: "是否",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否", placeholder: "是否",
}, },
{ {
prop: "njfcgbl1", prop: "guarantee_amount",
headerGroup: "集团内投资主体实际担保", headerGroup: "集团内投资主体实际担保",
label: "担保金额(万元)", label: "担保金额(万元)",
type: "input", type: "input",
placeholder: "担保金额(万元)", placeholder: "担保金额(万元)",
}, },
{ {
prop: "njfcgbl1", prop: "super_ratio_guarantee",
headerGroup: "集团内投资主体实际担保", headerGroup: "集团内投资主体实际担保",
label: "其中:超级权比担保金额", label: "其中:超级权比担保金额",
type: "input", type: "input",
placeholder: "是否", placeholder: "是否", // 原placeholder可能有误,保留原样
}, },
{ {
prop: "njfcgbl1", prop: "state_owned_property_reg",
label: "是否办理国有产权登记",
headerGroup: " ", headerGroup: " ",
type: "input", label: "是否办理国有产权登记",
type: "select",
optionKey: "sf",
placeholder: "是否办理国有产权登记", placeholder: "是否办理国有产权登记",
}, },
]); ]);
// 人员选派及否决权信息
const dgdxxCok8 = ref([ const dgdxxCok8 = ref([
{ {
prop: "njfcgbl1", prop: "shareholder_rep_agreed",
headerGroup: " ", headerGroup: " ",
label: "章程约定派出股东代表人数", label: "章程约定派出股东代表人数",
type: "input", type: "input",
placeholder: "章程约定派出股东代表人数", placeholder: "章程约定派出股东代表人数",
}, },
{ {
prop: "njfcgbl1", prop: "shareholder_rep_actual",
headerGroup: " ", headerGroup: " ",
label: "实际派出股东代表人数", label: "实际派出股东代表人数",
type: "input", type: "input",
placeholder: "实际派出股东代表人数", placeholder: "实际派出股东代表人数",
}, },
{ {
prop: "njfcgbl1", prop: "director_selection_type",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况", headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "选派类型", label: "选派类型",
type: "input", type: "input",
placeholder: "选派类型", placeholder: "选派类型",
}, },
{ {
prop: "njfcgbl1", prop: "director_position_name",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况", headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "重要岗位名称", label: "重要岗位名称",
type: "input", type: "input",
placeholder: "重要岗位名称", placeholder: "重要岗位名称",
}, },
{ {
prop: "njfcgbl1", prop: "director_total_count",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况", headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "总共人数", label: "总共人数",
type: "input", type: "input",
placeholder: "总共人数", placeholder: "总共人数",
}, },
{ {
prop: "njfcgbl1", prop: "actual_director_selection_type",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况", headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "选派类型", label: "选派类型",
type: "input", type: "input",
placeholder: "选派类型", placeholder: "选派类型",
}, },
{ {
prop: "njfcgbl1", prop: "actual_director_position_name",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况", headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "重要岗位名称", label: "重要岗位名称",
type: "input", type: "input",
placeholder: "重要岗位名称", placeholder: "重要岗位名称",
}, },
{ {
prop: "njfcgbl1", prop: "actual_director_total_count",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况", headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "总共人数", label: "总共人数",
type: "input", type: "input",
placeholder: "总共人数", placeholder: "总共人数",
}, },
{ {
prop: "njfcgbl1", prop: "has_veto_right",
headerGroup: "是否有特定事项否决权", headerGroup: "是否有特定事项否决权",
label: "是否", label: "是否",
type: "input", type: "select",
optionKey: "sf",
placeholder: "是否", placeholder: "是否",
}, },
{ {
prop: "njfcgbl1", prop: "veto_right_content",
headerGroup: "是否有特定事项否决权", headerGroup: "是否有特定事项否决权",
label: "是否权内容", label: "是否权内容",
type: "input", type: "input",
placeholder: "是否权内容", placeholder: "是否权内容", // 原label可能有误,保留原样
}, },
]); ]);
// 整改及党组织信息
const dgdxxCok9 = ref([ const dgdxxCok9 = ref([
{ {
prop: "njfcgbl1", prop: "personnel_adjust_count",
label: "2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数", label: "2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数",
type: "input", type: "input",
placeholder: placeholder:
"2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数", "2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数",
}, },
{ {
prop: "njfcgbl1", prop: "part_time_regulate_count",
label: "2020年自查整改至今规范领导人员兼职人数", label: "2020年自查整改至今规范领导人员兼职人数",
type: "input", type: "input",
placeholder: "2020年自查整改至今规范领导人员兼职人数", placeholder: "2020年自查整改至今规范领导人员兼职人数",
}, },
{ {
prop: "njfcgbl1", prop: "articles_revise_count",
label: "2020年自查整改至今新增或修订参股企业公司章程条数", label: "2020年自查整改至今新增或修订参股企业公司章程条数",
type: "input", type: "input",
placeholder: "2020年自查整改至今新增或修订参股企业公司章程条数", placeholder: "2020年自查整改至今新增或修订参股企业公司章程条数",
}, },
{ {
prop: "njfcgbl1", prop: "has_party_organization",
label: "是否简历党的组织", label: "是否简历党的组织",
type: "input", type: "select",
placeholder: "是否简历党的组织", optionKey: "sf",
placeholder: "是否简历党的组织", // 原错别字保留,如需修正可改为"是否建立党的组织"
}, },
]); ]);
// 表单数据 // 表单数据
const formData = reactive({
projectGdxxs: [{}],
});
// 财务信息列表 // 地区级联选择数据
const cwxxList = ref([]); let jnwList = reactive([]); // 境内/外 // 级联
let szjList = ref([]); // 省(境内)/洲际(境外) // 级联
// 新增财务信息 let dsgjList = ref([]); // 地市(境内)/国家(境外) // 级联
const addCwxx = () => { let qxgjList = ref([]); // 区县(境内)/国家(境外) // 级联
cwxxList.value.push({
nd: "", // 境内/外改变事件
zzc: null, const changeJnw = (val) => {
jzc: null, if (val || val === 0) {
gsnjfznc: null, let selectData = jnwList.filter((item) => item.key == val);
yysr: null, szjList.value = (selectData[0] && selectData[0].children) || [];
jlr: null, } else {
gsnjfndjdfh: null, szjList.value = [];
gdhjcdffhsj: "", }
gsnjfndysdfh: null, dsgjList.value = [];
sjsdfhsj: "", qxgjList.value = [];
bndjtnzyjtzttzrb: null, delete formData.sjnzjjw;
}); delete formData.dsjngjjw;
delete formData.qxjngjjw;
}; };
// 删除财务信息 // 省/洲改变事件
const deleteCwxx = (index) => { const changeSzj = (val) => {
ElMessageBox.confirm("确认删除该项?", "提示", { if (val || val === 0) {
confirmButtonText: "确认", let selectData = szjList.value.filter((item) => item.key == val);
cancelButtonText: "取消", dsgjList.value = (selectData[0] && selectData[0].children) || [];
type: "warning", } else {
}).then(() => { dsgjList.value = [];
cwxxList.value.splice(index, 1); }
}); qxgjList.value = [];
delete formData.dsjngjjw;
delete formData.qxjngjjw;
}; };
// 地市/国家改变事件
const changeDsgj = (val) => {
if (val || val === 0) {
let selectData = dsgjList.value.filter((item) => item.key == val);
qxgjList.value = (selectData[0] && selectData[0].children) || [];
} else {
qxgjList.value = [];
}
delete formData.qxjngjjw;
};
const formData = reactive({
gmzbjed: [{}],
gd1: [{}],
gdxx: [{}],
gd2: [{}],
gd3: [{}],
frzl: [{}],
frzl2: [{}],
qtxx: [{}],
qtxx2: [{}],
zxnfcwjyxx: [{}],
zxnfcwjyxx2: [{}],
});
// 加载状态 // 加载状态
const loading = ref(false); const loading = ref(false);
// 是否预览模式 // 是否预览模式
...@@ -1815,8 +1725,23 @@ const getRcCgqyglDetail = () => { ...@@ -1815,8 +1725,23 @@ const getRcCgqyglDetail = () => {
Object.assign(formData, data); Object.assign(formData, data);
// 处理财务信息列表 // 处理财务信息列表
if (data.cwxxList) {
cwxxList.value = data.cwxxList; // 处理地区级联回显
if (data.jnw || data.jnw === 0) {
let selectData = jnwList.filter((item) => item.key == data.jnw);
szjList.value = (selectData[0] && selectData[0].children) || [];
}
if (data.sjnzjjw || data.sjnzjjw === 0) {
let selectData = szjList.value.filter(
(item) => item.key == data.sjnzjjw,
);
dsgjList.value = (selectData[0] && selectData[0].children) || [];
}
if (data.dsjngjjw || data.dsjngjjw === 0) {
let selectData = dsgjList.value.filter(
(item) => item.key == data.dsjngjjw,
);
qxgjList.value = (selectData[0] && selectData[0].children) || [];
} }
}, },
}); });
...@@ -1845,7 +1770,6 @@ const saveClick = () => { ...@@ -1845,7 +1770,6 @@ const saveClick = () => {
const submitData = { const submitData = {
...formData, ...formData,
projectId: formData.projectId + "", projectId: formData.projectId + "",
cwxxList: cwxxList.value,
}; };
proxy.$post({ proxy.$post({
...@@ -1861,6 +1785,14 @@ const saveClick = () => { ...@@ -1861,6 +1785,14 @@ const saveClick = () => {
// 页面初始化 // 页面初始化
onMounted(() => { onMounted(() => {
// 加载地区数据
const resourceData = JSON.parse(
sessionStorage.getItem("resourceData") || "{}",
);
if (resourceData && resourceData.dqlx) {
jnwList = resourceData.dqlx;
}
// 获取项目列表 // 获取项目列表
getProjectData(); getProjectData();
// 如果有ID则加载详情 // 如果有ID则加载详情
......
<template>
<div class="add-project-container">
<div class="add-project-content" v-loading="loading">
<routerBack />
<div class="tabs-content">
<div class="project-tab-content">
<div class="tab-content">
<el-form :model="formData" label-width="150" :disabled="isPreview">
<el-collapse v-model="activeCollapse">
<!-- 基本信息 -->
<el-collapse-item title="基本信息" name="基本信息">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="参股公司名称" required>
<el-select
v-model="formData.projectId"
placeholder="请选择参股公司名称"
no-data-text="暂无数据"
@change="changeProject"
>
<el-option
v-for="item in projectList"
:key="item.key"
:label="item.projectName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="统一社会信用代码">
<el-input
v-model="formData.sqnzw"
placeholder="请输入统一社会信用代码"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="境内/外">
<el-select
v-model="formData.jnw"
placeholder="请选择境内/外"
>
<el-option label="境内" value="境内"></el-option>
<el-option label="境外" value="境外"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="省(境)内/洲(境)外">
<el-input
v-model="formData.sqnzw"
placeholder="请输入省(境)内/洲(境)外"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="区县(境)内/国家(境)外">
<el-input
v-model="formData.qxnzwgw"
placeholder="请输入区县(境)内/国家(境)外"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="区县(境内)/国家(境外)">
<el-input
v-model="formData.qxnzwgw"
placeholder="请输入区县(境内)/国家(境外)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目名称">
<el-input
v-model="formData.xmmc"
placeholder="请输入项目名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目编号">
<el-input
v-model="formData.xmbh"
placeholder="请输入项目编号"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申报单位">
<el-input
v-model="formData.sbdw"
placeholder="请输入申报单位"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属二级单位">
<el-input
v-model="formData.ssejdw"
placeholder="请输入所属二级单位"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="投资主体层级">
<el-select
v-model="formData.sfjwqy"
placeholder="请选择投资主体层级"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="投资主体法人层级">
<el-select
v-model="formData.sfjwqy"
placeholder="请选择投资主体法人层级"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="形成参股原因">
<el-select
v-model="formData.xccgyy"
placeholder="请选择形成参股原因"
>
<el-option
label="合资设立"
value="合资设立"
></el-option>
<el-option
label="股权受让"
value="股权受让"
></el-option>
<el-option
label="增资扩股"
value="增资扩股"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="其他参股原因">
<el-input
v-model="formData.qtcgyy"
placeholder="请输入其他参股原因"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="参股分类">
<el-select
v-model="formData.cgfl"
placeholder="请选择参股分类"
>
<el-option
label="绝对控股"
value="绝对控股"
></el-option>
<el-option
label="相对控股"
value="相对控股"
></el-option>
<el-option label="参股" value="参股"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目状态">
<el-input
v-model="formData.xmzt"
placeholder="请输入项目状态"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否集团主业">
<el-select
v-model="formData.sfjtzy"
placeholder="请选择是否集团主业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否属主业关联产业">
<el-select
v-model="formData.sfzyglcy"
placeholder="请选择是否属主业关联产业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否属于战略性持有或有培育期">
<el-select
v-model="formData.sfgzxccyypyq"
placeholder="请选择"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="财务报表类型">
<el-input
v-model="formData.sshy"
placeholder="请输入财务报表类型"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属行业">
<el-input
v-model="formData.sshy"
placeholder="请输入所属行业"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否为民营企业">
<el-select
v-model="formData.sfwmqy"
placeholder="请选择是否为民营企业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="决策批复时间">
<el-date-picker
v-model="formData.jcpfsj"
type="date"
placeholder="请选择决策批复时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="参股形成时间">
<el-date-picker
v-model="formData.cgxcjsj"
type="date"
placeholder="请选择参股形成时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否上市公司">
<el-select
v-model="formData.sfssgs"
placeholder="请选择是否上市公司"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否民企股份">
<el-select
v-model="formData.sfmqysjyy"
placeholder="请选择是否民企股份"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否计划退出">
<el-select
v-model="formData.sfwtzgxm"
placeholder="请选择是否计划退出"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="计划退出年份">
<el-input
v-model="formData.jhtcnf"
placeholder="请输入计划退出年份"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否为问题整改项目">
<el-select
v-model="formData.sfwtzgxm"
placeholder="请选择是否为问题整改项目"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否整改完成">
<el-select
v-model="formData.sfzgwc"
placeholder="请选择是否整改完成"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="风险金额(万元)">
<el-input-number
precision="2"
v-model="formData.fxje"
placeholder="请输入风险金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否我方控股非并表企业">
<el-select
v-model="formData.sfwfkgfbbqy"
placeholder="请选择是否我方控股非并表企业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否民营企业实际运营">
<el-select
v-model="formData.sflh"
placeholder="请选择是否民营企业实际运营"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否落号">
<el-select
v-model="formData.sflh"
placeholder="请选择是否落号"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="参股权持有损益">
<el-select
v-model="formData.sflh"
placeholder="请选择参股权持有损益"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="主营业务">
<el-input
v-model="formData.zyyw"
type="textarea"
:rows="2"
placeholder="请输入主营业务"
/>
</el-form-item>
</el-col>
</el-row>
<DynamicTable
:showAddButton="!isPreview"
:columns="transferColumns"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="12">
<el-form-item label="批复文件">
<FileUploader
v-model="formData.wj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="营业执照">
<FileUploader
v-model="formData.wj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合作协议">
<FileUploader
v-model="formData.wj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 填报信息 -->
<el-collapse-item title="填报信息" name="填报信息">
<el-row>
<el-col :span="6">
<el-form-item label="参股公司管理人员">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择参股公司管理人员"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="在参股公司任职务">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择在参股公司任职务"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="电话">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择电话"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="信息填报人">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择信息填报人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="单位及职务">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择单位及职务"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择联系电话"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="更新上报年度">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择更新上报年度"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="更新上报季度">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择更新上报季度"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="更新日期">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择更新日期"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="大股东信息" name="大股东信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok1"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok2"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok3"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="8">
<el-form-item label="国有股东合计股比(%)">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择国有股东合计股比(%)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能见参股合计(%)">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择能见参股合计(%)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="一致行动人股比合计(%)">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择一致行动人股比合计(%)"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="股东信息" name="股东信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok4"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="24">
<el-form-item label-width="90" label="章程">
<FileUploader
v-model="formData.wj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 出资信息 -->
<el-collapse-item title="出资信息" name="出资信息">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="企业工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.qygszczij"
placeholder="请输入企业工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="我方认缴企业工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.wfrjqygszczij"
placeholder="请输入我方认缴企业工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="工商注册资本金我方实际已出资金额(万元)"
>
<el-input-number
precision="2"
v-model="formData.gszczijwfysjczje"
placeholder="请输入工商注册资本金我方实际已出资金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="企业工商注册资本金我方首次出资时间">
<el-date-picker
v-model="formData.qygszczijwfscczsj"
type="date"
placeholder="请选择企业工商注册资本金我方首次出资时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="我方参股比例(%)">
<el-input-number
precision="2"
v-model="formData.wfcgbl"
placeholder="请输入我方参股比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建合计认缴工商注册资本金比例(%)">
<el-input-number
precision="2"
v-model="formData.njhjrjqygszczijbl"
placeholder="请输入能建合计认缴工商注册资本金比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建合计认缴工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjrjqygszczij"
placeholder="请输入能建合计认缴工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建合计实缴工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjsjqygszczij"
placeholder="请输入能建合计实缴工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.xmzbj"
placeholder="请输入项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="我方认缴项目资本金比例(%)">
<el-input-number
precision="2"
v-model="formData.wfrjxmzbjbl"
placeholder="请输入我方认缴项目资本金比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="我方认缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.wfrjxmzbj"
placeholder="请输入我方认缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="我方实缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.wfsjxmzbj"
placeholder="请输入我方实缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目资本金能建合计持股比例(%)">
<el-input-number
precision="2"
v-model="formData.xmzbjnjhjcgbll"
placeholder="请输入项目资本金能建合计持股比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="能建合计认缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjrjxmzbj"
placeholder="请输入能建合计认缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="能建合计实缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjsjxmzbj"
placeholder="请输入能建合计实缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="出资文件">
<el-button type="primary">上传</el-button>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 财务经营信息 -->
<el-collapse-item title="财务经营信息" name="财务经营信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok5"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<div class="tab-handle">
<el-button type="primary" @click="addCwxx">新增</el-button>
</div>
<el-table
:data="cwxxList"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" width="60" label="序号" />
<el-table-column prop="nd" label="年度" width="100">
<template #default="scope">
<el-input
v-model="scope.row.nd"
placeholder="请输入年度"
/>
</template>
</el-table-column>
<el-table-column
prop="zzc"
label="总资产(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.zzc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="jzc"
label="净资产(审计后)(万元)"
width="180"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.jzc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfznc"
label="归属能建方净资产(万元)"
width="180"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfznc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="yysr"
label="营业收入(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.yysr"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="jlr"
label="净利润(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.jlr"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfndjdfh"
label="归属能建方年度决策分红(万元)"
width="220"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfndjdfh"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gdhjcdffhsj"
label="股东会决策分红时间"
width="160"
>
<template #default="scope">
<el-date-picker
v-model="scope.row.gdhjcdffhsj"
type="date"
placeholder="请选择"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfndysdfh"
label="归属能建方年度已收到分红(万元)"
width="240"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfndysdfh"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="sjsdfhsj"
label="实际收到分红时间"
width="160"
>
<template #default="scope">
<el-date-picker
v-model="scope.row.sjsdfhsj"
type="date"
placeholder="请选择"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column
prop="bndjtnzyjtzttzrb"
label="本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)"
width="360"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.bndjtnzyjtzttzrb"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80" fixed="right">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deleteCwxx(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="12">
<el-form-item label="2019年以前累计确认分红金额(万元)">
<el-input-number
precision="2"
v-model="formData.enyqljfhje"
placeholder="请输入2019年以前累计确认分红金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2019年以前累计收到分红金额(万元)">
<el-input-number
precision="2"
v-model="formData.esnqljsdfhje"
placeholder="请输入2019年以前累计收到分红金额(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="历年累计确认分红金额(万元)">
<el-input-number
precision="2"
v-model="formData.lnljsdfhje"
placeholder="请输入历年累计确认分红金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="累计参股投资回报率(%)">
<el-input-number
precision="2"
v-model="formData.ljcgtzhibl"
placeholder="请输入累计参股投资回报率(%)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="归属集团内投资主体所有权益(万元)">
<el-input-number
precision="2"
v-model="formData.gsjtntzztzsuyq"
placeholder="请输入归属集团内投资主体所有权益(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="总体参股投资保值增值率(%)">
<el-input-number
precision="2"
v-model="formData.ztcgtzbzzzl"
placeholder="请输入总体参股投资保值增值率(%)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否能够及时掌握财务数据和经营情况">
<el-select
v-model="formData.sfnkjzwsjyjjyqk"
placeholder="请选择是否能够及时掌握财务数据和经营情况"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="逾期超过1年的应收款金额(万元)">
<el-select
v-model="formData.sfnkjzwsjyjjyqk"
placeholder="请选择逾期超过1年的应收款金额(万元)"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收回逾期超过1年的应收款金额(万元)">
<el-select
v-model="formData.sfnkjzwsjyjjyqk"
placeholder="请选择收回逾期超过1年的应收款金额(万元)"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否满五年未分红">
<el-select
v-model="formData.sflxwnlcqks"
placeholder="请选择是否满五年未分红"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否连续5年长期亏损">
<el-select
v-model="formData.sflxwnlcqks"
placeholder="请选择是否连续5年长期亏损"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否非持续经营">
<el-select
v-model="formData.sffcxjy"
placeholder="请选择是否非持续经营"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否属于低效无效资产">
<el-select
v-model="formData.sfdydwxzc"
placeholder="请选择是否属于低效无效资产"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="拉动营收">
<el-input-number
precision="2"
v-model="formData.ldys"
placeholder="请输入拉动营收"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="拉动利润">
<el-input-number
precision="2"
v-model="formData.ldlr"
placeholder="请输入拉动利润"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="当前持有损益">
<el-input-number
precision="2"
v-model="formData.dqcygs"
placeholder="请输入当前持有损益"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="财务报表文件">
<FileUploader
v-model="formData.wj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 法人治理 -->
<el-collapse-item title="法人治理" name="法人治理">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok8"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok9"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="12">
<el-form-item label="董监高任命文件">
<FileUploader
v-model="formData.wj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="股东会文件">
<FileUploader
v-model="formData.wj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="董事会决议文件">
<FileUploader
v-model="formData.wj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 集团内投资主体相关信息 -->
<el-collapse-item title="其他信息" name="其他信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok6"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok7"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
</el-collapse-item>
<!-- 股权退出信息 -->
<el-collapse-item title="股权退出信息" name="股权退出信息">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="股权是否退出" required>
<el-select
v-model="formData.gqsfct"
placeholder="请选择股权是否退出"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="股权退出收回资金(万元)">
<el-input-number
precision="2"
v-model="formData.gqcthszj"
placeholder="请输入股权退出收回资金(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="股权退出时间">
<el-date-picker
v-model="formData.gqctsj"
type="date"
placeholder="请选择股权退出时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="股权退出收回资金到账金额(万元)">
<el-input-number
precision="2"
v-model="formData.gqcthszjdzje"
placeholder="请输入股权退出收回资金到账金额(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="股权退出收回资金到账时间">
<el-date-picker
v-model="formData.gqcthszjdzsj"
type="date"
placeholder="请选择股权退出收回资金到账时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="股权退出原因">
<el-input
v-model="formData.gqctyy"
type="textarea"
:rows="3"
placeholder="请输入股权退出原因"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="退出文件">
<FileUploader
v-model="formData.wj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 自查问题整改信息 -->
<el-collapse-item
title="自查问题整改信息"
name="自查问题整改信息"
>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="自查是否发现问题" required>
<el-select
v-model="formData.zcsffjwt"
placeholder="请选择自查是否发现问题"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="自查发现的主要问题及整改计划">
<el-input
v-model="formData.zcfxdzzywtjzgjh"
type="textarea"
:rows="4"
placeholder="请输入自查发现的主要问题及整改计划"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="备注">
<el-input
v-model="formData.bz"
type="textarea"
:rows="4"
placeholder="请输入备注"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</div>
<div class="add-project-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="default" @click="backClick">返回</el-button>
<template v-if="!loading && !isPreview">
<el-button type="primary" @click="saveClick">保存</el-button>
</template>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
import { useRouter, useRoute } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import routerBack from "@/components/common/routerBack.vue";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
import FileUploader from "@/components/FileUploader/index.vue";
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
// 规模指标及额度表格列配置
const transferColumns = ref([
{
prop: "njfcgbl1",
label: "十二大业务板块",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "十二大业务板块名称",
},
{
prop: "njfcgbl2",
label: "指标名称",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "指标名称",
},
{
prop: "njfcgbl3",
label: "数量",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "数量",
},
{
prop: "njfcgbl4",
label: "单位",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "单位",
},
]);
// 折叠面板默认展开项
const activeCollapse = ref([
"基本信息",
"规模指标及额度",
"填报信息",
"大股东信息",
"出资信息",
"财务经营信息",
"分红与投资情况",
"法人治理",
"其他信息",
"股权退出信息",
"自查问题整改信息",
]);
// 大股东信息表格列配置
const dgdxxCok1 = ref([
{
prop: "njfcgbl1",
label: "控股股东",
type: "input",
placeholder: "控股股东名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质名称",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)名称",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位名称",
},
]);
const dgdxxCok2 = ref([
{
prop: "njfcgbl1",
label: "第一大股东",
type: "input",
placeholder: "第一大股东名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质名称",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)名称",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位名称",
},
]);
const dgdxxCok3 = ref([
{
prop: "njfcgbl1",
label: "平股",
type: "input",
placeholder: "平股名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质名称",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)名称",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位",
},
]);
const dgdxxCok4 = ref([
{
prop: "njfcgbl1",
label: "股东名称",
type: "input",
placeholder: "股东名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)",
},
{
prop: "njfcgbl1",
label: "是否控股股东",
type: "input",
placeholder: "是否控股股东",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位",
},
{
prop: "njfcgbl1",
label: "是否失控单位",
type: "input",
placeholder: "是否失控单位",
},
{
prop: "njfcgbl1",
label: "是否一致行动人",
type: "input",
placeholder: "是否一致行动人",
},
]);
const dgdxxCok5 = ref([
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "总资产(万元)",
type: "input",
placeholder: "总资产(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "净资产(审计后)万元",
type: "input",
placeholder: "净资产(审计后)万元",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "归属能建方净资产(万元)",
type: "input",
placeholder: "归属能建方净资产(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "营业收入(万元)",
type: "input",
placeholder: "营业收入(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "净利润(万元)",
type: "input",
placeholder: "净利润(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "归属能建方年度决策分红(万元)",
type: "input",
placeholder: "归属能建方年度决策分红(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "股东会决策分红时间",
type: "input",
placeholder: "股东会决策分红时间",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "股东会决策分红时间",
type: "input",
placeholder: "股东会决策分红时间",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "古树能建方年度已收到分工(万元)",
type: "input",
placeholder: "古树能建方年度已收到分工(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "实际收到分红时间",
type: "input",
placeholder: "实际收到分红时间",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)",
type: "input",
placeholder:
"本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)",
},
]);
const dgdxxCok6 = ref([
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体字号、经营资质",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体字号、经营资质",
label: "字号及经营资质名称",
type: "input",
placeholder: "字号及经营资质名称",
},
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体产品注册商标",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体产品注册商标",
label: "是否采取公允价格",
type: "input",
placeholder: "是否采取公允价格",
},
]);
const dgdxxCok7 = ref([
{
prop: "njfcgbl1",
headerGroup: "集团内投资主体实际担保",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "集团内投资主体实际担保",
label: "担保金额(万元)",
type: "input",
placeholder: "担保金额(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "集团内投资主体实际担保",
label: "其中:超级权比担保金额",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
label: "是否办理国有产权登记",
headerGroup: " ",
type: "input",
placeholder: "是否办理国有产权登记",
},
]);
const dgdxxCok8 = ref([
{
prop: "njfcgbl1",
headerGroup: " ",
label: "章程约定派出股东代表人数",
type: "input",
placeholder: "章程约定派出股东代表人数",
},
{
prop: "njfcgbl1",
headerGroup: " ",
label: "实际派出股东代表人数",
type: "input",
placeholder: "实际派出股东代表人数",
},
{
prop: "njfcgbl1",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "选派类型",
type: "input",
placeholder: "选派类型",
},
{
prop: "njfcgbl1",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "重要岗位名称",
type: "input",
placeholder: "重要岗位名称",
},
{
prop: "njfcgbl1",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "总共人数",
type: "input",
placeholder: "总共人数",
},
{
prop: "njfcgbl1",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "选派类型",
type: "input",
placeholder: "选派类型",
},
{
prop: "njfcgbl1",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "重要岗位名称",
type: "input",
placeholder: "重要岗位名称",
},
{
prop: "njfcgbl1",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "总共人数",
type: "input",
placeholder: "总共人数",
},
{
prop: "njfcgbl1",
headerGroup: "是否有特定事项否决权",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "是否有特定事项否决权",
label: "是否权内容",
type: "input",
placeholder: "是否权内容",
},
]);
const dgdxxCok9 = ref([
{
prop: "njfcgbl1",
label: "2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数",
type: "input",
placeholder:
"2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数",
},
{
prop: "njfcgbl1",
label: "2020年自查整改至今规范领导人员兼职人数",
type: "input",
placeholder: "2020年自查整改至今规范领导人员兼职人数",
},
{
prop: "njfcgbl1",
label: "2020年自查整改至今新增或修订参股企业公司章程条数",
type: "input",
placeholder: "2020年自查整改至今新增或修订参股企业公司章程条数",
},
{
prop: "njfcgbl1",
label: "是否简历党的组织",
type: "input",
placeholder: "是否简历党的组织",
},
]);
// 表单数据
const formData = reactive({
projectGdxxs: [{}],
});
// 财务信息列表
const cwxxList = ref([]);
// 新增财务信息
const addCwxx = () => {
cwxxList.value.push({
nd: "",
zzc: null,
jzc: null,
gsnjfznc: null,
yysr: null,
jlr: null,
gsnjfndjdfh: null,
gdhjcdffhsj: "",
gsnjfndysdfh: null,
sjsdfhsj: "",
bndjtnzyjtzttzrb: null,
});
};
// 删除财务信息
const deleteCwxx = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
cwxxList.value.splice(index, 1);
});
};
// 加载状态
const loading = ref(false);
// 是否预览模式
const isPreview = ref(!!route.query.isPreview);
// 项目列表数据
const projectList = ref([]);
// 当前编辑的记录ID
const rcCgqyglId = ref(route.query.id || "");
// 获取项目列表
const getProjectData = (params = {}) => {
proxy.$post({
url: "/api/project/listProject",
data: {
page: 1,
pagesize: 1000,
attributes: [],
menuType: "xmjc",
...params,
},
callback: (data) => {
projectList.value = data.rows || [];
},
});
};
// 选择项目后同步项目名称
const changeProject = (val) => {
const selectItem = projectList.value.find((item) => item.id === val);
if (selectItem) {
formData.projectName = selectItem.projectName;
}
};
// 获取单条记录详情(编辑/预览)
const getRcCgqyglDetail = () => {
if (!rcCgqyglId.value) return;
loading.value = true;
proxy.$post({
url: "/api/project/getCgqygl",
data: { id: rcCgqyglId.value },
callback: (data) => {
loading.value = false;
Object.assign(formData, data);
// 处理财务信息列表
if (data.cwxxList) {
cwxxList.value = data.cwxxList;
}
},
});
};
// 返回按钮
const backClick = () => {
router.back(-1);
};
// 保存/提交表单
const saveClick = () => {
// 基础校验
if (!formData.projectId) {
ElMessage.warning("请选择项目信息");
return;
}
loading.value = true;
// 区分新增/编辑
const url = rcCgqyglId.value
? "/api/project/updateCgqygl"
: "/api/project/createCgqygl";
// 组装提交数据
const submitData = {
...formData,
projectId: formData.projectId + "",
cwxxList: cwxxList.value,
};
proxy.$post({
url: url,
data: submitData,
callback: (res) => {
loading.value = false;
ElMessage.success(rcCgqyglId.value ? "编辑成功" : "新增成功");
router.back(-1);
},
});
};
// 页面初始化
onMounted(() => {
// 获取项目列表
getProjectData();
// 如果有ID则加载详情
if (rcCgqyglId.value) {
getRcCgqyglDetail();
}
});
</script>
<style scoped lang="less">
.tab-handle {
margin-bottom: 10px;
}
</style>
<template>
<div class="add-project-container">
<div class="add-project-content" v-loading="loading">
<routerBack />
<div class="tabs-content">
<div class="project-tab-content">
<div class="tab-content">
<el-form :model="formData" label-width="150" :disabled="isPreview">
<el-collapse v-model="activeCollapse">
<!-- 基本信息 -->
<el-collapse-item title="基本信息" name="基本信息">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="参股公司名称" required>
<el-select
v-model="formData.projectId"
placeholder="请选择参股公司名称"
no-data-text="暂无数据"
@change="changeProject"
>
<el-option
v-for="item in projectList"
:key="item.key"
:label="item.projectName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="统一社会信用代码">
<el-input
v-model="formData.tyshxydm"
placeholder="请输入统一社会信用代码"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="境内/外">
<el-select
v-model="formData.jnw"
placeholder="请选择境内/外"
>
<el-option label="境内" value="境内"></el-option>
<el-option label="境外" value="境外"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="省(境内)/洲际(境外)">
<el-input
v-model="formData.sjnzjjw"
placeholder="请输入省(境内)/洲际(境外)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="地市(境内)/国家(境外)">
<el-input
v-model="formData.dsjngjjw"
placeholder="请输入地市(境内)/国家(境外)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="区县(境内)/国家(境外)">
<el-input
v-model="formData.qxjngjjw"
placeholder="请输入区县(境内)/国家(境外)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目名称">
<el-input
v-model="formData.xmmc"
placeholder="请输入项目名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目编号">
<el-input
v-model="formData.projectCode"
placeholder="请输入项目编号"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申报单位">
<el-input
v-model="formData.sbdw"
placeholder="请输入申报单位"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属二级单位">
<el-input
v-model="formData.ssejdw"
placeholder="请输入所属二级单位"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="投资主体层级">
<el-select
v-model="formData.sfjwqy"
placeholder="请选择投资主体层级"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="投资主体法人层级">
<el-select
v-model="formData.sfjwqy"
placeholder="请选择投资主体法人层级"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="形成参股原因">
<el-select
v-model="formData.xccgyy"
placeholder="请选择形成参股原因"
>
<el-option
label="合资设立"
value="合资设立"
></el-option>
<el-option
label="股权受让"
value="股权受让"
></el-option>
<el-option
label="增资扩股"
value="增资扩股"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="其他参股原因">
<el-input
v-model="formData.qtcgyy"
placeholder="请输入其他参股原因"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="参股分类">
<el-select
v-model="formData.cgfl"
placeholder="请选择参股分类"
>
<el-option
label="绝对控股"
value="绝对控股"
></el-option>
<el-option
label="相对控股"
value="相对控股"
></el-option>
<el-option label="参股" value="参股"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目状态">
<el-input
v-model="formData.xmzt"
placeholder="请输入项目状态"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否集团主业">
<el-select
v-model="formData.sfjtzy"
placeholder="请选择是否集团主业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否属主业关联产业">
<el-select
v-model="formData.sfzyglcy"
placeholder="请选择是否属主业关联产业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否属于战略性持有或有培育期">
<el-select
v-model="formData.sfsyzlxcyhzpyq"
placeholder="请选择"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="财务报表类型">
<el-input
v-model="formData.cwbblx"
placeholder="请输入财务报表类型"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属行业">
<el-input
v-model="formData.sshy"
placeholder="请输入所属行业"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否为民营企业">
<el-select
v-model="formData.sfwmqy"
placeholder="请选择是否为民营企业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="决策批复时间">
<el-date-picker
v-model="formData.jcpfsj"
type="date"
placeholder="请选择决策批复时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="参股形成时间">
<el-date-picker
v-model="formData.cgxcsj"
type="date"
placeholder="请选择参股形成时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否上市公司">
<el-select
v-model="formData.sfssgs"
placeholder="请选择是否上市公司"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否民企股份">
<el-select
v-model="formData.sfmqtdsjyy"
placeholder="请选择是否民企股份"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否计划退出">
<el-select
v-model="formData.sfjhtc"
placeholder="请选择是否计划退出"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="计划退出年份">
<el-input
v-model="formData.jhtcnf"
placeholder="请输入计划退出年份"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否为问题整改项目">
<el-select
v-model="formData.sfwtzgxm"
placeholder="请选择是否为问题整改项目"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否整改完成">
<el-select
v-model="formData.sfzgwc"
placeholder="请选择是否整改完成"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="风险金额(万元)">
<el-input-number
precision="2"
v-model="formData.fxje"
placeholder="请输入风险金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否我方控股非并表企业">
<el-select
v-model="formData.sfwfwkzfbbqy"
placeholder="请选择是否我方控股非并表企业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否民营企业实际运营">
<el-select
v-model="formData.sflh"
placeholder="请选择是否民营企业实际运营"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否落号">
<el-select
v-model="formData.sflh"
placeholder="请选择是否落号"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="参股权持有损益">
<el-select
v-model="formData.cgqcysy"
placeholder="请选择参股权持有损益"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="主营业务">
<el-input
v-model="formData.zyyw"
type="textarea"
:rows="2"
placeholder="请输入主营业务"
/>
</el-form-item>
</el-col>
</el-row>
<DynamicTable
:showAddButton="!isPreview"
:columns="transferColumns"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="12">
<el-form-item label="批复文件">
<FileUploader
v-model="formData.pfwj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="营业执照">
<FileUploader
v-model="formData.yyzz"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合作协议">
<FileUploader
v-model="formData.hzxy"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 填报信息 -->
<el-collapse-item title="填报信息" name="填报信息">
<el-row>
<el-col :span="6">
<el-form-item label="参股公司管理人员">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择参股公司管理人员"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="在参股公司任职务">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择在参股公司任职务"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="电话">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择电话"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="信息填报人">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择信息填报人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="单位及职务">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择单位及职务"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择联系电话"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="更新上报年度">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择更新上报年度"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="更新上报季度">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择更新上报季度"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="更新日期">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择更新日期"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="大股东信息" name="大股东信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok1"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok2"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok3"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="8">
<el-form-item label="国有股东合计股比(%)">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择国有股东合计股比(%)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能见参股合计(%)">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择能见参股合计(%)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="一致行动人股比合计(%)">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择一致行动人股比合计(%)"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="股东信息" name="股东信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok4"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="24">
<el-form-item label-width="90" label="章程">
<FileUploader
v-model="formData.zc"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 出资信息 -->
<el-collapse-item title="出资信息" name="出资信息">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="企业工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.qygszczbj"
placeholder="请输入企业工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="我方认缴企业工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.wfrjqygszczbj"
placeholder="请输入我方认缴企业工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="工商注册资本金我方实际已出资金额(万元)"
>
<el-input-number
precision="2"
v-model="formData.gszczbjwfsjyczje"
placeholder="请输入工商注册资本金我方实际已出资金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="企业工商注册资本金我方首次出资时间">
<el-date-picker
v-model="formData.qygszczbjwfscczsj"
type="date"
placeholder="请选择企业工商注册资本金我方首次出资时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="我方参股比例(%)">
<el-input-number
precision="2"
v-model="formData.wfcgbl"
placeholder="请输入我方参股比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建合计认缴工商注册资本金比例(%)">
<el-input-number
precision="2"
v-model="formData.njhjrjgszczbjbl"
placeholder="请输入能建合计认缴工商注册资本金比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建合计认缴工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjrjgszczbj"
placeholder="请输入能建合计认缴工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建合计实缴工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjsjgszczbj"
placeholder="请输入能建合计实缴工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.xmzbj"
placeholder="请输入项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="我方认缴项目资本金比例(%)">
<el-input-number
precision="2"
v-model="formData.wfrjxmzbjbl"
placeholder="请输入我方认缴项目资本金比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="我方认缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.wfrjxmzbj"
placeholder="请输入我方认缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="我方实缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.wfsjxmzbj"
placeholder="请输入我方实缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目资本金能建合计持股比例(%)">
<el-input-number
precision="2"
v-model="formData.xmzbjnjhjcgbl"
placeholder="请输入项目资本金能建合计持股比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="能建合计认缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjrjxmzbj"
placeholder="请输入能建合计认缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="能建合计实缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjsjxmzbj"
placeholder="请输入能建合计实缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="出资文件">
<el-button type="primary">上传</el-button>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 财务经营信息 -->
<el-collapse-item title="财务经营信息" name="财务经营信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok5"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<div class="tab-handle">
<el-button type="primary" @click="addCwxx">新增</el-button>
</div>
<el-table
:data="cwxxList"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" width="60" label="序号" />
<el-table-column prop="nd" label="年度" width="100">
<template #default="scope">
<el-input
v-model="scope.row.nd"
placeholder="请输入年度"
/>
</template>
</el-table-column>
<el-table-column
prop="zzc"
label="总资产(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.zzc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="jzc"
label="净资产(审计后)(万元)"
width="180"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.jzc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfznc"
label="归属能建方净资产(万元)"
width="180"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfznc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="yysr"
label="营业收入(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.yysr"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="jlr"
label="净利润(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.jlr"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfndjdfh"
label="归属能建方年度决策分红(万元)"
width="220"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfndjdfh"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gdhjcdffhsj"
label="股东会决策分红时间"
width="160"
>
<template #default="scope">
<el-date-picker
v-model="scope.row.gdhjcdffhsj"
type="date"
placeholder="请选择"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfndysdfh"
label="归属能建方年度已收到分红(万元)"
width="240"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfndysdfh"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="sjsdfhsj"
label="实际收到分红时间"
width="160"
>
<template #default="scope">
<el-date-picker
v-model="scope.row.sjsdfhsj"
type="date"
placeholder="请选择"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column
prop="bndjtnzyjtzttzrb"
label="本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)"
width="360"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.bndjtnzyjtzttzrb"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80" fixed="right">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deleteCwxx(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="12">
<el-form-item label="2019年以前累计确认分红金额(万元)">
<el-input-number
precision="2"
v-model="formData.yqljqrfhje"
placeholder="请输入2019年以前累计确认分红金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2019年以前累计收到分红金额(万元)">
<el-input-number
precision="2"
v-model="formData.yqljsdfhje"
placeholder="请输入2019年以前累计收到分红金额(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="历年累计确认分红金额(万元)">
<el-input-number
precision="2"
v-model="formData.lnljsdfhje"
placeholder="请输入历年累计确认分红金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="累计参股投资回报率(%)">
<el-input-number
precision="2"
v-model="formData.ljcgtzhibl"
placeholder="请输入累计参股投资回报率(%)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="归属集团内投资主体所有权益(万元)">
<el-input-number
precision="2"
v-model="formData.gsjtntzztgyqy"
placeholder="请输入归属集团内投资主体所有权益(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="总体参股投资保值增值率(%)">
<el-input-number
precision="2"
v-model="formData.ztcgtzbzzzl"
placeholder="请输入总体参股投资保值增值率(%)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否能够及时掌握财务数据和经营情况">
<el-select
v-model="formData.sfnjszwcwsjhjyqk"
placeholder="请选择是否能够及时掌握财务数据和经营情况"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="逾期超过1年的应收款金额(万元)">
<el-select
v-model="formData.sfnjszwcwsjhjyqk"
placeholder="请选择逾期超过1年的应收款金额(万元)"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收回逾期超过1年的应收款金额(万元)">
<el-select
v-model="formData.sfnjszwcwsjhjyqk"
placeholder="请选择收回逾期超过1年的应收款金额(万元)"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否满五年未分红">
<el-select
v-model="formData.sflx5ncqks"
placeholder="请选择是否满五年未分红"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否连续5年长期亏损">
<el-select
v-model="formData.sflx5ncqks"
placeholder="请选择是否连续5年长期亏损"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否非持续经营">
<el-select
v-model="formData.sffcxjy"
placeholder="请选择是否非持续经营"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否属于低效无效资产">
<el-select
v-model="formData.sfsydxwxzc"
placeholder="请选择是否属于低效无效资产"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="拉动营收">
<el-input-number
precision="2"
v-model="formData.ldys"
placeholder="请输入拉动营收"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="拉动利润">
<el-input-number
precision="2"
v-model="formData.ldlr"
placeholder="请输入拉动利润"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="当前持有损益">
<el-input-number
precision="2"
v-model="formData.dqcysy"
placeholder="请输入当前持有损益"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="财务报表文件">
<FileUploader
v-model="formData.cwbbwj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 法人治理 -->
<el-collapse-item title="法人治理" name="法人治理">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok8"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok9"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="12">
<el-form-item label="董监高任命文件">
<FileUploader
v-model="formData.frzl2"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="股东会文件">
<FileUploader
v-model="formData.frzl"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="董事会决议文件">
<FileUploader
v-model="formData.gdxx"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 集团内投资主体相关信息 -->
<el-collapse-item title="其他信息" name="其他信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok6"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok7"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
</el-collapse-item>
<!-- 股权退出信息 -->
<el-collapse-item title="股权退出信息" name="股权退出信息">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="股权是否退出" required>
<el-select
v-model="formData.gqsftc"
placeholder="请选择股权是否退出"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="股权退出收回资金(万元)">
<el-input-number
precision="2"
v-model="formData.gqtcshzj"
placeholder="请输入股权退出收回资金(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="股权退出时间">
<el-date-picker
v-model="formData.gqtcsj"
type="date"
placeholder="请选择股权退出时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="股权退出收回资金到账金额(万元)">
<el-input-number
precision="2"
v-model="formData.gqtcshzjdzje"
placeholder="请输入股权退出收回资金到账金额(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="股权退出收回资金到账时间">
<el-date-picker
v-model="formData.gqtcshzjdzsj"
type="date"
placeholder="请选择股权退出收回资金到账时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="股权退出原因">
<el-input
v-model="formData.gqtcyy"
type="textarea"
:rows="3"
placeholder="请输入股权退出原因"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="退出文件">
<FileUploader
v-model="formData.tcwj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 自查问题整改信息 -->
<el-collapse-item
title="自查问题整改信息"
name="自查问题整改信息"
>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="自查是否发现问题" required>
<el-select
v-model="formData.sfwwtzgxm"
placeholder="请选择自查是否发现问题"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="自查发现的主要问题及整改计划">
<el-input
v-model="formData.dbqk"
type="textarea"
:rows="4"
placeholder="请输入自查发现的主要问题及整改计划"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="备注">
<el-input
v-model="formData.bz"
type="textarea"
:rows="4"
placeholder="请输入备注"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</div>
<div class="add-project-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="default" @click="backClick">返回</el-button>
<template v-if="!loading && !isPreview">
<el-button type="primary" @click="saveClick">保存</el-button>
</template>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
import { useRouter, useRoute } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import routerBack from "@/components/common/routerBack.vue";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
import FileUploader from "@/components/FileUploader/index.vue";
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
// 规模指标及额度表格列配置
const transferColumns = ref([
{
prop: "njfcgbl1",
label: "十二大业务板块",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "十二大业务板块名称",
},
{
prop: "njfcgbl2",
label: "指标名称",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "指标名称",
},
{
prop: "njfcgbl3",
label: "数量",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "数量",
},
{
prop: "njfcgbl4",
label: "单位",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "单位",
},
]);
// 折叠面板默认展开项
const activeCollapse = ref([
"基本信息",
"规模指标及额度",
"填报信息",
"大股东信息",
"出资信息",
"财务经营信息",
"分红与投资情况",
"法人治理",
"其他信息",
"股权退出信息",
"自查问题整改信息",
]);
// 大股东信息表格列配置
const dgdxxCok1 = ref([
{
prop: "njfcgbl1",
label: "控股股东",
type: "input",
placeholder: "控股股东名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质名称",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)名称",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位名称",
},
]);
const dgdxxCok2 = ref([
{
prop: "njfcgbl1",
label: "第一大股东",
type: "input",
placeholder: "第一大股东名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质名称",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)名称",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位名称",
},
]);
const dgdxxCok3 = ref([
{
prop: "njfcgbl1",
label: "平股",
type: "input",
placeholder: "平股名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质名称",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)名称",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位",
},
]);
const dgdxxCok4 = ref([
{
prop: "njfcgbl1",
label: "股东名称",
type: "input",
placeholder: "股东名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)",
},
{
prop: "njfcgbl1",
label: "是否控股股东",
type: "input",
placeholder: "是否控股股东",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位",
},
{
prop: "njfcgbl1",
label: "是否失控单位",
type: "input",
placeholder: "是否失控单位",
},
{
prop: "njfcgbl1",
label: "是否一致行动人",
type: "input",
placeholder: "是否一致行动人",
},
]);
const dgdxxCok5 = ref([
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "总资产(万元)",
type: "input",
placeholder: "总资产(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "净资产(审计后)万元",
type: "input",
placeholder: "净资产(审计后)万元",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "归属能建方净资产(万元)",
type: "input",
placeholder: "归属能建方净资产(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "营业收入(万元)",
type: "input",
placeholder: "营业收入(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "净利润(万元)",
type: "input",
placeholder: "净利润(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "归属能建方年度决策分红(万元)",
type: "input",
placeholder: "归属能建方年度决策分红(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "股东会决策分红时间",
type: "input",
placeholder: "股东会决策分红时间",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "股东会决策分红时间",
type: "input",
placeholder: "股东会决策分红时间",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "古树能建方年度已收到分工(万元)",
type: "input",
placeholder: "古树能建方年度已收到分工(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "实际收到分红时间",
type: "input",
placeholder: "实际收到分红时间",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)",
type: "input",
placeholder:
"本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)",
},
]);
const dgdxxCok6 = ref([
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体字号、经营资质",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体字号、经营资质",
label: "字号及经营资质名称",
type: "input",
placeholder: "字号及经营资质名称",
},
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体产品注册商标",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体产品注册商标",
label: "是否采取公允价格",
type: "input",
placeholder: "是否采取公允价格",
},
]);
const dgdxxCok7 = ref([
{
prop: "njfcgbl1",
headerGroup: "集团内投资主体实际担保",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "集团内投资主体实际担保",
label: "担保金额(万元)",
type: "input",
placeholder: "担保金额(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "集团内投资主体实际担保",
label: "其中:超级权比担保金额",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
label: "是否办理国有产权登记",
headerGroup: " ",
type: "input",
placeholder: "是否办理国有产权登记",
},
]);
const dgdxxCok8 = ref([
{
prop: "njfcgbl1",
headerGroup: " ",
label: "章程约定派出股东代表人数",
type: "input",
placeholder: "章程约定派出股东代表人数",
},
{
prop: "njfcgbl1",
headerGroup: " ",
label: "实际派出股东代表人数",
type: "input",
placeholder: "实际派出股东代表人数",
},
{
prop: "njfcgbl1",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "选派类型",
type: "input",
placeholder: "选派类型",
},
{
prop: "njfcgbl1",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "重要岗位名称",
type: "input",
placeholder: "重要岗位名称",
},
{
prop: "njfcgbl1",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "总共人数",
type: "input",
placeholder: "总共人数",
},
{
prop: "njfcgbl1",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "选派类型",
type: "input",
placeholder: "选派类型",
},
{
prop: "njfcgbl1",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "重要岗位名称",
type: "input",
placeholder: "重要岗位名称",
},
{
prop: "njfcgbl1",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "总共人数",
type: "input",
placeholder: "总共人数",
},
{
prop: "njfcgbl1",
headerGroup: "是否有特定事项否决权",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "是否有特定事项否决权",
label: "是否权内容",
type: "input",
placeholder: "是否权内容",
},
]);
const dgdxxCok9 = ref([
{
prop: "njfcgbl1",
label: "2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数",
type: "input",
placeholder:
"2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数",
},
{
prop: "njfcgbl1",
label: "2020年自查整改至今规范领导人员兼职人数",
type: "input",
placeholder: "2020年自查整改至今规范领导人员兼职人数",
},
{
prop: "njfcgbl1",
label: "2020年自查整改至今新增或修订参股企业公司章程条数",
type: "input",
placeholder: "2020年自查整改至今新增或修订参股企业公司章程条数",
},
{
prop: "njfcgbl1",
label: "是否简历党的组织",
type: "input",
placeholder: "是否简历党的组织",
},
]);
// 表单数据
const formData = reactive({
projectGdxxs: [{}],
});
// 财务信息列表
const cwxxList = ref([]);
// 新增财务信息
const addCwxx = () => {
cwxxList.value.push({
nd: "",
zzc: null,
jzc: null,
gsnjfznc: null,
yysr: null,
jlr: null,
gsnjfndjdfh: null,
gdhjcdffhsj: "",
gsnjfndysdfh: null,
sjsdfhsj: "",
bndjtnzyjtzttzrb: null,
});
};
// 删除财务信息
const deleteCwxx = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
cwxxList.value.splice(index, 1);
});
};
// 加载状态
const loading = ref(false);
// 是否预览模式
const isPreview = ref(!!route.query.isPreview);
// 项目列表数据
const projectList = ref([]);
// 当前编辑的记录ID
const rcCgqyglId = ref(route.query.id || "");
// 获取项目列表
const getProjectData = (params = {}) => {
proxy.$post({
url: "/api/project/listProject",
data: {
page: 1,
pagesize: 1000,
attributes: [],
menuType: "xmjc",
...params,
},
callback: (data) => {
projectList.value = data.rows || [];
},
});
};
// 选择项目后同步项目名称
const changeProject = (val) => {
const selectItem = projectList.value.find((item) => item.id === val);
if (selectItem) {
formData.projectName = selectItem.projectName;
}
};
// 获取单条记录详情(编辑/预览)
const getRcCgqyglDetail = () => {
if (!rcCgqyglId.value) return;
loading.value = true;
proxy.$post({
url: "/api/project/getCgqygl",
data: { id: rcCgqyglId.value },
callback: (data) => {
loading.value = false;
Object.assign(formData, data);
// 处理财务信息列表
if (data.cwxxList) {
cwxxList.value = data.cwxxList;
}
},
});
};
// 返回按钮
const backClick = () => {
router.back(-1);
};
// 保存/提交表单
const saveClick = () => {
// 基础校验
if (!formData.projectId) {
ElMessage.warning("请选择项目信息");
return;
}
loading.value = true;
// 区分新增/编辑
const url = rcCgqyglId.value
? "/api/project/updateCgqygl"
: "/api/project/createCgqygl";
// 组装提交数据
const submitData = {
...formData,
projectId: formData.projectId + "",
cwxxList: cwxxList.value,
};
proxy.$post({
url: url,
data: submitData,
callback: (res) => {
loading.value = false;
ElMessage.success(rcCgqyglId.value ? "编辑成功" : "新增成功");
router.back(-1);
},
});
};
// 页面初始化
onMounted(() => {
// 获取项目列表
getProjectData();
// 如果有ID则加载详情
if (rcCgqyglId.value) {
getRcCgqyglDetail();
}
});
</script>
<style scoped lang="less">
.tab-handle {
margin-bottom: 10px;
}
</style>
<template>
<div class="add-project-container">
<div class="add-project-content" v-loading="loading">
<routerBack />
<div class="tabs-content">
<div class="project-tab-content">
<div class="tab-content">
<el-form :model="formData" label-width="150" :disabled="isPreview">
<el-collapse v-model="activeCollapse">
<!-- 基本信息 -->
<el-collapse-item title="基本信息" name="基本信息">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="参股公司名称" required>
<el-select
v-model="formData.projectId"
placeholder="请选择参股公司名称"
no-data-text="暂无数据"
@change="changeProject"
>
<el-option
v-for="item in projectList"
:key="item.key"
:label="item.projectName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="统一社会信用代码">
<el-input
v-model="formData.tyshxydm"
placeholder="请输入统一社会信用代码"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="境内/外">
<el-select
v-model="formData.jnw"
placeholder="请选择境内/外"
>
<el-option label="境内" value="境内"></el-option>
<el-option label="境外" value="境外"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="省(境内)/洲际(境外)">
<el-input
v-model="formData.sjnzjjw"
placeholder="请输入省(境内)/洲际(境外)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="地市(境内)/国家(境外)">
<el-input
v-model="formData.dsjngjjw"
placeholder="请输入地市(境内)/国家(境外)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="区县(境内)/国家(境外)">
<el-input
v-model="formData.qxjngjjw"
placeholder="请输入区县(境内)/国家(境外)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目名称">
<el-input
v-model="formData.xmmc"
placeholder="请输入项目名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目编号">
<el-input
v-model="formData.projectCode"
placeholder="请输入项目编号"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申报单位">
<el-input
v-model="formData.sbdw"
placeholder="请输入申报单位"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属二级单位">
<el-input
v-model="formData.ssejdw"
placeholder="请输入所属二级单位"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="投资主体层级">
<el-select
v-model="formData.sfjwqy"
placeholder="请选择投资主体层级"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="投资主体法人层级">
<el-select
v-model="formData.sfjwqy"
placeholder="请选择投资主体法人层级"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="形成参股原因">
<el-select
v-model="formData.xccgyy"
placeholder="请选择形成参股原因"
>
<el-option
label="合资设立"
value="合资设立"
></el-option>
<el-option
label="股权受让"
value="股权受让"
></el-option>
<el-option
label="增资扩股"
value="增资扩股"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="其他参股原因">
<el-input
v-model="formData.qtcgyy"
placeholder="请输入其他参股原因"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="参股分类">
<el-select
v-model="formData.cgfl"
placeholder="请选择参股分类"
>
<el-option
label="绝对控股"
value="绝对控股"
></el-option>
<el-option
label="相对控股"
value="相对控股"
></el-option>
<el-option label="参股" value="参股"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目状态">
<el-input
v-model="formData.xmzt"
placeholder="请输入项目状态"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否集团主业">
<el-select
v-model="formData.sfjtzy"
placeholder="请选择是否集团主业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否属主业关联产业">
<el-select
v-model="formData.sfzyglcy"
placeholder="请选择是否属主业关联产业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否属于战略性持有或有培育期">
<el-select
v-model="formData.sfsyzlxcyhzpyq"
placeholder="请选择"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="财务报表类型">
<el-input
v-model="formData.cwbblx"
placeholder="请输入财务报表类型"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属行业">
<el-input
v-model="formData.sshy"
placeholder="请输入所属行业"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否为民营企业">
<el-select
v-model="formData.sfwmqy"
placeholder="请选择是否为民营企业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="决策批复时间">
<el-date-picker
v-model="formData.jcpfsj"
type="date"
placeholder="请选择决策批复时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="参股形成时间">
<el-date-picker
v-model="formData.cgxcsj"
type="date"
placeholder="请选择参股形成时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否上市公司">
<el-select
v-model="formData.sfssgs"
placeholder="请选择是否上市公司"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否民企股份">
<el-select
v-model="formData.sfmqtdsjyy"
placeholder="请选择是否民企股份"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否计划退出">
<el-select
v-model="formData.sfjhtc"
placeholder="请选择是否计划退出"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="计划退出年份">
<el-input
v-model="formData.jhtcnf"
placeholder="请输入计划退出年份"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否为问题整改项目">
<el-select
v-model="formData.sfwtzgxm"
placeholder="请选择是否为问题整改项目"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否整改完成">
<el-select
v-model="formData.sfzgwc"
placeholder="请选择是否整改完成"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="风险金额(万元)">
<el-input-number
precision="2"
v-model="formData.fxje"
placeholder="请输入风险金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否我方控股非并表企业">
<el-select
v-model="formData.sfwfwkzfbbqy"
placeholder="请选择是否我方控股非并表企业"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否民营企业实际运营">
<el-select
v-model="formData.sflh"
placeholder="请选择是否民营企业实际运营"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否落号">
<el-select
v-model="formData.sflh"
placeholder="请选择是否落号"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="参股权持有损益">
<el-select
v-model="formData.cgqcysy"
placeholder="请选择参股权持有损益"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="主营业务">
<el-input
v-model="formData.zyyw"
type="textarea"
:rows="2"
placeholder="请输入主营业务"
/>
</el-form-item>
</el-col>
</el-row>
<DynamicTable
:showAddButton="!isPreview"
:columns="transferColumns"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="12">
<el-form-item label="批复文件">
<FileUploader
v-model="formData.pfwj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="营业执照">
<FileUploader
v-model="formData.yyzz"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合作协议">
<FileUploader
v-model="formData.hzxy"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 填报信息 -->
<el-collapse-item title="填报信息" name="填报信息">
<el-row>
<el-col :span="6">
<el-form-item label="参股公司管理人员">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择参股公司管理人员"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="在参股公司任职务">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择在参股公司任职务"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="电话">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择电话"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="信息填报人">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择信息填报人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="单位及职务">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择单位及职务"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择联系电话"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="更新上报年度">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择更新上报年度"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="更新上报季度">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择更新上报季度"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="更新日期">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择更新日期"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="大股东信息" name="大股东信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok1"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok2"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok3"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="8">
<el-form-item label="国有股东合计股比(%)">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择国有股东合计股比(%)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能见参股合计(%)">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择能见参股合计(%)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="一致行动人股比合计(%)">
<el-input
v-model="formData.sfwjskzr"
placeholder="请选择一致行动人股比合计(%)"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="股东信息" name="股东信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok4"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="24">
<el-form-item label-width="90" label="章程">
<FileUploader
v-model="formData.zc"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 出资信息 -->
<el-collapse-item title="出资信息" name="出资信息">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="企业工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.qygszczbj"
placeholder="请输入企业工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="我方认缴企业工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.wfrjqygszczbj"
placeholder="请输入我方认缴企业工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="工商注册资本金我方实际已出资金额(万元)"
>
<el-input-number
precision="2"
v-model="formData.gszczbjwfsjyczje"
placeholder="请输入工商注册资本金我方实际已出资金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="企业工商注册资本金我方首次出资时间">
<el-date-picker
v-model="formData.qygszczbjwfscczsj"
type="date"
placeholder="请选择企业工商注册资本金我方首次出资时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="我方参股比例(%)">
<el-input-number
precision="2"
v-model="formData.wfcgbl"
placeholder="请输入我方参股比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建合计认缴工商注册资本金比例(%)">
<el-input-number
precision="2"
v-model="formData.njhjrjgszczbjbl"
placeholder="请输入能建合计认缴工商注册资本金比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建合计认缴工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjrjgszczbj"
placeholder="请输入能建合计认缴工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建合计实缴工商注册资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjsjgszczbj"
placeholder="请输入能建合计实缴工商注册资本金(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.xmzbj"
placeholder="请输入项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="我方认缴项目资本金比例(%)">
<el-input-number
precision="2"
v-model="formData.wfrjxmzbjbl"
placeholder="请输入我方认缴项目资本金比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="我方认缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.wfrjxmzbj"
placeholder="请输入我方认缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="我方实缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.wfsjxmzbj"
placeholder="请输入我方实缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目资本金能建合计持股比例(%)">
<el-input-number
precision="2"
v-model="formData.xmzbjnjhjcgbl"
placeholder="请输入项目资本金能建合计持股比例(%)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="能建合计认缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjrjxmzbj"
placeholder="请输入能建合计认缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="能建合计实缴项目资本金(万元)">
<el-input-number
precision="2"
v-model="formData.njhjsjxmzbj"
placeholder="请输入能建合计实缴项目资本金(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="出资文件">
<el-button type="primary">上传</el-button>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 财务经营信息 -->
<el-collapse-item title="财务经营信息" name="财务经营信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok5"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<div class="tab-handle">
<el-button type="primary" @click="addCwxx">新增</el-button>
</div>
<el-table
:data="cwxxList"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" width="60" label="序号" />
<el-table-column prop="nd" label="年度" width="100">
<template #default="scope">
<el-input
v-model="scope.row.nd"
placeholder="请输入年度"
/>
</template>
</el-table-column>
<el-table-column
prop="zzc"
label="总资产(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.zzc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="jzc"
label="净资产(审计后)(万元)"
width="180"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.jzc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfznc"
label="归属能建方净资产(万元)"
width="180"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfznc"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="yysr"
label="营业收入(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.yysr"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="jlr"
label="净利润(万元)"
width="140"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.jlr"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfndjdfh"
label="归属能建方年度决策分红(万元)"
width="220"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfndjdfh"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="gdhjcdffhsj"
label="股东会决策分红时间"
width="160"
>
<template #default="scope">
<el-date-picker
v-model="scope.row.gdhjcdffhsj"
type="date"
placeholder="请选择"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column
prop="gsnjfndysdfh"
label="归属能建方年度已收到分红(万元)"
width="240"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.gsnjfndysdfh"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column
prop="sjsdfhsj"
label="实际收到分红时间"
width="160"
>
<template #default="scope">
<el-date-picker
v-model="scope.row.sjsdfhsj"
type="date"
placeholder="请选择"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</template>
</el-table-column>
<el-table-column
prop="bndjtnzyjtzttzrb"
label="本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)"
width="360"
>
<template #default="scope">
<el-input-number
precision="2"
v-model="scope.row.bndjtnzyjtzttzrb"
placeholder="请输入"
:controls="false"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80" fixed="right">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deleteCwxx(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="12">
<el-form-item label="2019年以前累计确认分红金额(万元)">
<el-input-number
precision="2"
v-model="formData.yqljqrfhje"
placeholder="请输入2019年以前累计确认分红金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2019年以前累计收到分红金额(万元)">
<el-input-number
precision="2"
v-model="formData.yqljsdfhje"
placeholder="请输入2019年以前累计收到分红金额(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="历年累计确认分红金额(万元)">
<el-input-number
precision="2"
v-model="formData.lnljsdfhje"
placeholder="请输入历年累计确认分红金额(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="累计参股投资回报率(%)">
<el-input-number
precision="2"
v-model="formData.ljcgtzhibl"
placeholder="请输入累计参股投资回报率(%)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="归属集团内投资主体所有权益(万元)">
<el-input-number
precision="2"
v-model="formData.gsjtntzztgyqy"
placeholder="请输入归属集团内投资主体所有权益(万元)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="总体参股投资保值增值率(%)">
<el-input-number
precision="2"
v-model="formData.ztcgtzbzzzl"
placeholder="请输入总体参股投资保值增值率(%)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否能够及时掌握财务数据和经营情况">
<el-select
v-model="formData.sfnjszwcwsjhjyqk"
placeholder="请选择是否能够及时掌握财务数据和经营情况"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="逾期超过1年的应收款金额(万元)">
<el-select
v-model="formData.sfnjszwcwsjhjyqk"
placeholder="请选择逾期超过1年的应收款金额(万元)"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收回逾期超过1年的应收款金额(万元)">
<el-select
v-model="formData.sfnjszwcwsjhjyqk"
placeholder="请选择收回逾期超过1年的应收款金额(万元)"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否满五年未分红">
<el-select
v-model="formData.sflx5ncqks"
placeholder="请选择是否满五年未分红"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否连续5年长期亏损">
<el-select
v-model="formData.sflx5ncqks"
placeholder="请选择是否连续5年长期亏损"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否非持续经营">
<el-select
v-model="formData.sffcxjy"
placeholder="请选择是否非持续经营"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否属于低效无效资产">
<el-select
v-model="formData.sfsydxwxzc"
placeholder="请选择是否属于低效无效资产"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="拉动营收">
<el-input-number
precision="2"
v-model="formData.ldys"
placeholder="请输入拉动营收"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="拉动利润">
<el-input-number
precision="2"
v-model="formData.ldlr"
placeholder="请输入拉动利润"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="当前持有损益">
<el-input-number
precision="2"
v-model="formData.dqcysy"
placeholder="请输入当前持有损益"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="财务报表文件">
<FileUploader
v-model="formData.cwbbwj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 法人治理 -->
<el-collapse-item title="法人治理" name="法人治理">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok8"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok9"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<el-row>
<el-col :span="12">
<el-form-item label="董监高任命文件">
<FileUploader
v-model="formData.frzl2"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="股东会文件">
<FileUploader
v-model="formData.frzl"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="董事会决议文件">
<FileUploader
v-model="formData.gdxx"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 集团内投资主体相关信息 -->
<el-collapse-item title="其他信息" name="其他信息">
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok6"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
<DynamicTable
:showAddButton="!isPreview"
:columns="dgdxxCok7"
:disabled="isPreview"
v-model="formData.projectGdxxs"
/>
</el-collapse-item>
<!-- 股权退出信息 -->
<el-collapse-item title="股权退出信息" name="股权退出信息">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="股权是否退出" required>
<el-select
v-model="formData.gqsftc"
placeholder="请选择股权是否退出"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="股权退出收回资金(万元)">
<el-input-number
precision="2"
v-model="formData.gqtcshzj"
placeholder="请输入股权退出收回资金(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="股权退出时间">
<el-date-picker
v-model="formData.gqtcsj"
type="date"
placeholder="请选择股权退出时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="股权退出收回资金到账金额(万元)">
<el-input-number
precision="2"
v-model="formData.gqtcshzjdzje"
placeholder="请输入股权退出收回资金到账金额(万元)"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="股权退出收回资金到账时间">
<el-date-picker
v-model="formData.gqtcshzjdzsj"
type="date"
placeholder="请选择股权退出收回资金到账时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="股权退出原因">
<el-input
v-model="formData.gqtcyy"
type="textarea"
:rows="3"
placeholder="请输入股权退出原因"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="退出文件">
<FileUploader
v-model="formData.tcwj"
:disabled="isPreview"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 自查问题整改信息 -->
<el-collapse-item
title="自查问题整改信息"
name="自查问题整改信息"
>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="自查是否发现问题" required>
<el-select
v-model="formData.sfwwtzgxm"
placeholder="请选择自查是否发现问题"
>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="自查发现的主要问题及整改计划">
<el-input
v-model="formData.dbqk"
type="textarea"
:rows="4"
placeholder="请输入自查发现的主要问题及整改计划"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="备注">
<el-input
v-model="formData.bz"
type="textarea"
:rows="4"
placeholder="请输入备注"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</div>
<div class="add-project-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="default" @click="backClick">返回</el-button>
<template v-if="!loading && !isPreview">
<el-button type="primary" @click="saveClick">保存</el-button>
</template>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
import { useRouter, useRoute } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import routerBack from "@/components/common/routerBack.vue";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
import FileUploader from "@/components/FileUploader/index.vue";
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
// 规模指标及额度表格列配置
const transferColumns = ref([
{
prop: "njfcgbl1",
label: "十二大业务板块",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "十二大业务板块名称",
},
{
prop: "njfcgbl2",
label: "指标名称",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "指标名称",
},
{
prop: "njfcgbl3",
label: "数量",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "数量",
},
{
prop: "njfcgbl4",
label: "单位",
type: "input",
headerGroup: "规模指标及额度",
placeholder: "单位",
},
]);
// 折叠面板默认展开项
const activeCollapse = ref([
"基本信息",
"规模指标及额度",
"填报信息",
"大股东信息",
"出资信息",
"财务经营信息",
"分红与投资情况",
"法人治理",
"其他信息",
"股权退出信息",
"自查问题整改信息",
]);
// 大股东信息表格列配置
const dgdxxCok1 = ref([
{
prop: "njfcgbl1",
label: "控股股东",
type: "input",
placeholder: "控股股东名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质名称",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)名称",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位名称",
},
]);
const dgdxxCok2 = ref([
{
prop: "njfcgbl1",
label: "第一大股东",
type: "input",
placeholder: "第一大股东名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质名称",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)名称",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位名称",
},
]);
const dgdxxCok3 = ref([
{
prop: "njfcgbl1",
label: "平股",
type: "input",
placeholder: "平股名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质名称",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)名称",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位",
},
]);
const dgdxxCok4 = ref([
{
prop: "njfcgbl1",
label: "股东名称",
type: "input",
placeholder: "股东名称",
},
{
prop: "njfcgbl1",
label: "股东性质",
type: "input",
placeholder: "股东性质",
},
{
prop: "njfcgbl1",
label: "股比(%)",
type: "input",
placeholder: "股比(%)",
},
{
prop: "njfcgbl1",
label: "是否控股股东",
type: "input",
placeholder: "是否控股股东",
},
{
prop: "njfcgbl1",
label: "是否集团内成员单位",
type: "input",
placeholder: "是否集团内成员单位",
},
{
prop: "njfcgbl1",
label: "是否失控单位",
type: "input",
placeholder: "是否失控单位",
},
{
prop: "njfcgbl1",
label: "是否一致行动人",
type: "input",
placeholder: "是否一致行动人",
},
]);
const dgdxxCok5 = ref([
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "总资产(万元)",
type: "input",
placeholder: "总资产(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "净资产(审计后)万元",
type: "input",
placeholder: "净资产(审计后)万元",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "归属能建方净资产(万元)",
type: "input",
placeholder: "归属能建方净资产(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "营业收入(万元)",
type: "input",
placeholder: "营业收入(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "净利润(万元)",
type: "input",
placeholder: "净利润(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "归属能建方年度决策分红(万元)",
type: "input",
placeholder: "归属能建方年度决策分红(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "股东会决策分红时间",
type: "input",
placeholder: "股东会决策分红时间",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "股东会决策分红时间",
type: "input",
placeholder: "股东会决策分红时间",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "古树能建方年度已收到分工(万元)",
type: "input",
placeholder: "古树能建方年度已收到分工(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "实际收到分红时间",
type: "input",
placeholder: "实际收到分红时间",
},
{
prop: "njfcgbl1",
headerGroup: "最新年份财务经营信息",
label: "本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)",
type: "input",
placeholder:
"本年度与集团内投资主体关联交易收入占该被投资企业营业收入比例(%)",
},
]);
const dgdxxCok6 = ref([
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体字号、经营资质",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体字号、经营资质",
label: "字号及经营资质名称",
type: "input",
placeholder: "字号及经营资质名称",
},
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体产品注册商标",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "是否使用集团内投资主体产品注册商标",
label: "是否采取公允价格",
type: "input",
placeholder: "是否采取公允价格",
},
]);
const dgdxxCok7 = ref([
{
prop: "njfcgbl1",
headerGroup: "集团内投资主体实际担保",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "集团内投资主体实际担保",
label: "担保金额(万元)",
type: "input",
placeholder: "担保金额(万元)",
},
{
prop: "njfcgbl1",
headerGroup: "集团内投资主体实际担保",
label: "其中:超级权比担保金额",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
label: "是否办理国有产权登记",
headerGroup: " ",
type: "input",
placeholder: "是否办理国有产权登记",
},
]);
const dgdxxCok8 = ref([
{
prop: "njfcgbl1",
headerGroup: " ",
label: "章程约定派出股东代表人数",
type: "input",
placeholder: "章程约定派出股东代表人数",
},
{
prop: "njfcgbl1",
headerGroup: " ",
label: "实际派出股东代表人数",
type: "input",
placeholder: "实际派出股东代表人数",
},
{
prop: "njfcgbl1",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "选派类型",
type: "input",
placeholder: "选派类型",
},
{
prop: "njfcgbl1",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "重要岗位名称",
type: "input",
placeholder: "重要岗位名称",
},
{
prop: "njfcgbl1",
headerGroup: "章程约定选派董事、监事或重要岗位人员情况",
label: "总共人数",
type: "input",
placeholder: "总共人数",
},
{
prop: "njfcgbl1",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "选派类型",
type: "input",
placeholder: "选派类型",
},
{
prop: "njfcgbl1",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "重要岗位名称",
type: "input",
placeholder: "重要岗位名称",
},
{
prop: "njfcgbl1",
headerGroup: "实际约定选派董事、监事或重要岗位人员情况",
label: "总共人数",
type: "input",
placeholder: "总共人数",
},
{
prop: "njfcgbl1",
headerGroup: "是否有特定事项否决权",
label: "是否",
type: "input",
placeholder: "是否",
},
{
prop: "njfcgbl1",
headerGroup: "是否有特定事项否决权",
label: "是否权内容",
type: "input",
placeholder: "是否权内容",
},
]);
const dgdxxCok9 = ref([
{
prop: "njfcgbl1",
label: "2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数",
type: "input",
placeholder:
"2020年自查整改至今新派出和调整参股企业董事监事及重要岗位人员人数",
},
{
prop: "njfcgbl1",
label: "2020年自查整改至今规范领导人员兼职人数",
type: "input",
placeholder: "2020年自查整改至今规范领导人员兼职人数",
},
{
prop: "njfcgbl1",
label: "2020年自查整改至今新增或修订参股企业公司章程条数",
type: "input",
placeholder: "2020年自查整改至今新增或修订参股企业公司章程条数",
},
{
prop: "njfcgbl1",
label: "是否简历党的组织",
type: "input",
placeholder: "是否简历党的组织",
},
]);
// 表单数据
const formData = reactive({
projectGdxxs: [{}],
});
// 财务信息列表
const cwxxList = ref([]);
// 新增财务信息
const addCwxx = () => {
cwxxList.value.push({
nd: "",
zzc: null,
jzc: null,
gsnjfznc: null,
yysr: null,
jlr: null,
gsnjfndjdfh: null,
gdhjcdffhsj: "",
gsnjfndysdfh: null,
sjsdfhsj: "",
bndjtnzyjtzttzrb: null,
});
};
// 删除财务信息
const deleteCwxx = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
cwxxList.value.splice(index, 1);
});
};
// 加载状态
const loading = ref(false);
// 是否预览模式
const isPreview = ref(!!route.query.isPreview);
// 项目列表数据
const projectList = ref([]);
// 当前编辑的记录ID
const rcCgqyglId = ref(route.query.id || "");
// 获取项目列表
const getProjectData = (params = {}) => {
proxy.$post({
url: "/api/project/listProject",
data: {
page: 1,
pagesize: 1000,
attributes: [],
menuType: "xmjc",
...params,
},
callback: (data) => {
projectList.value = data.rows || [];
},
});
};
// 选择项目后同步项目名称
const changeProject = (val) => {
const selectItem = projectList.value.find((item) => item.id === val);
if (selectItem) {
formData.projectName = selectItem.projectName;
}
};
// 获取单条记录详情(编辑/预览)
const getRcCgqyglDetail = () => {
if (!rcCgqyglId.value) return;
loading.value = true;
proxy.$post({
url: "/api/project/getCgqygl",
data: { id: rcCgqyglId.value },
callback: (data) => {
loading.value = false;
Object.assign(formData, data);
// 处理财务信息列表
if (data.cwxxList) {
cwxxList.value = data.cwxxList;
}
},
});
};
// 返回按钮
const backClick = () => {
router.back(-1);
};
// 保存/提交表单
const saveClick = () => {
// 基础校验
if (!formData.projectId) {
ElMessage.warning("请选择项目信息");
return;
}
loading.value = true;
// 区分新增/编辑
const url = rcCgqyglId.value
? "/api/project/updateCgqygl"
: "/api/project/createCgqygl";
// 组装提交数据
const submitData = {
...formData,
projectId: formData.projectId + "",
cwxxList: cwxxList.value,
};
proxy.$post({
url: url,
data: submitData,
callback: (res) => {
loading.value = false;
ElMessage.success(rcCgqyglId.value ? "编辑成功" : "新增成功");
router.back(-1);
},
});
};
// 页面初始化
onMounted(() => {
// 获取项目列表
getProjectData();
// 如果有ID则加载详情
if (rcCgqyglId.value) {
getRcCgqyglDetail();
}
});
</script>
<style scoped lang="less">
.tab-handle {
margin-bottom: 10px;
}
</style>
...@@ -4,936 +4,309 @@ ...@@ -4,936 +4,309 @@
<routerBack /> <routerBack />
<div class="tabs-content"> <div class="tabs-content">
<el-tabs v-model="pageActiveName" type="border-card"> <div class="project-tab-content">
<el-tab-pane label="全生命周期责任书" name="全生命周期责任书"> <div class="tab-content">
<div class="project-tab-content"> <el-form :model="formData" :label-width="180" :disabled="isPreview">
<div class="tab-content"> <el-collapse v-model="ndActiveCollapse">
<el-form <!-- 基本信息 -->
:model="formData" <el-collapse-item title="基本信息" name="基本信息">
:label-width="130" <el-row :gutter="20">
:disabled="isPreview" <el-col :span="12">
> <el-form-item label="项目名称">
<el-collapse v-model="activeCollapse"> <el-input v-model="formData.nd_xmxx_projectName" />
<el-collapse-item </el-form-item>
title="责任书基本信息" </el-col>
name="责任书基本信息" <el-col :span="12">
> <el-form-item label="决策主体">
<el-row :gutter="20"> <el-input v-model="formData.nd_xmxx_jczt" />
<el-col :span="12"> </el-form-item>
<el-form-item label="责任书类型"> </el-col>
<el-tree-select <el-col :span="12">
v-model="formData.zrslx" <el-form-item label="监管单位">
:data="zrslxList" <el-select
node-key="key" v-model="formData.nd_xmxx_jgdw"
:props="zrslxProps" placeholder="请选择"
placeholder="请选择" clearable
render-after-expand
@node-click="changeZrslx"
>
<template #label>
<span>{{ selectedFullPath }}</span>
</template>
</el-tree-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目信息" required>
<el-select
v-model="formData.projectId"
placeholder="请选择"
no-data-text="暂无数据"
@change="changeProject"
>
<el-option
v-for="item in projectList"
:key="item.id"
:label="item.projectName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="责任书文件">
<el-upload
: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 }">
<!-- 需要在查看表单disabled时保持允许下载 -->
<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-col>
<el-col :span="8">
<el-form-item label="项目名称">
<el-input v-model="formData.projectName" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="投资主体">
<el-input v-model="formData.tzzt" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目地点">
<el-input v-model="formData.xmdd" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目开工日期">
<el-date-picker
v-model="formData.xmkgrq"
type="date"
placeholder="请选择"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目实施期限">
<el-input-number
v-model="formData.xmssqx"
:min="0"
:max="99999999999.99999999"
controls-position="right"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目内容概述">
<el-input
v-model="formData.xmnrgs"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目经济指标概述">
<el-input
v-model="formData.xmjjzbgs"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title="责任书具体指标"
name="责任书具体指标"
>
<el-table
:data="zrsjtzbData"
style="width: 100%"
empty-text="暂无数据"
border
show-summary
:summary-method="getSummaries"
>
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="zbmc" label="指标名称" />
<el-table-column
prop="zbmbz"
label="指标目标值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.zbmbz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="khjzf"
label="考核基准分"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.khjzf"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="sfsy"
label="是否适用"
width="90"
>
<template #default="scope">
<el-switch
v-model="scope.row.sfsy"
inline-prompt
active-value="1"
active-text="是"
inactive-value="2"
inactive-text="否"
/>
</template>
</el-table-column>
<el-table-column prop="khsm" label="考核说明">
<template #default="scope">
<el-input
v-model="scope.row.khsm"
type="textarea"
/>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="批复意见落实情况"
name="批复意见落实情况"
>
<div class="tab-handle">
<el-button
type="primary"
size="small"
@click="addPfyjlsqk"
>新增</el-button
>
</div>
<el-table
:data="pfyjlsqkData"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" width="60" />
<el-table-column prop="lx" label="类型">
<template #default="scope">
<el-select
v-model="scope.row.lx"
placeholder="请选择"
no-data-text="暂无数据"
>
<el-option
v-for="item in pfyjlxList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="pfyj" label="批复意见">
<template #default="scope">
<el-input
v-model="scope.row.pfyj"
type="textarea"
/>
</template>
</el-table-column>
<el-table-column prop="jzf" label="基准分">
<template #default="scope">
<el-input-number
v-model="scope.row.jzf"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column prop="lsqk" label="落实情况">
<template #default="scope">
<el-select
v-model="scope.row.lsqk"
placeholder="请选择"
no-data-text="暂无数据"
>
<el-option
v-for="item in lsqkList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="lssj" label="落实时间">
<template #default="scope">
<el-date-picker
v-model="scope.row.lssj"
type="datetime"
placeholder="请选择"
value-format="YYYY-MM-DD HH:mm:ss"
/>
</template>
</el-table-column>
<el-table-column
prop="lsqkjtsm"
label="落实情况具体说明"
> >
<template #default="scope"> <el-option
<el-input v-for="item in jgdwList"
v-model="scope.row.lsqkjtsm" :key="item.key"
type="textarea" :label="item.name"
/> :value="item.key"
</template> />
</el-table-column> </el-select>
<el-table-column label="操作" width="60"> </el-form-item>
<template #default="scope"> </el-col>
<el-button <el-col :span="12">
link <el-form-item label="签订单位">
type="danger" <el-select
size="small" v-model="formData.nd_xmxx_qddw"
@click="deletePfyjlsqk(scope.$index)" placeholder="请选择"
>删除</el-button clearable
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="全生命周期管理策划" name="全生命周期管理策划">
<div class="project-tab-content">
<div class="tab-content">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="策划文件">
<el-upload
: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-option
<el-button v-for="item in qddwList"
type="default" :key="item.key"
@click="multiDeleteChwj" :label="item.name"
:disabled="!chwjSelectIds.length" :value="item.key"
>删除选中文件</el-button />
> </el-select>
</el-form-item> </el-form-item>
<el-form-item label=""> </el-col>
<el-table <el-col :span="12">
:data="chwjData" <el-form-item label="投资主体">
style="width: 100%" <el-input v-model="formData.nd_xmxx_tzzt" />
empty-text="暂无数据" </el-form-item>
border </el-col>
@selection-change="chwjSelectionChange" <el-col :span="12">
> <el-form-item label="项目地点">
<el-table-column type="selection" width="55" /> <el-input v-model="formData.nd_xmxx_xmdd" />
<el-table-column prop="originalname" label="文件名" /> </el-form-item>
<el-table-column prop="updatedAt" label="上传时间"> </el-col>
<template #default="{ row, index }"> <el-col :span="12">
<span>{{ <el-form-item label="建设期(月份)">
moment(row.updatedAt).format( <el-input-number
"YYYY-MM-DD HH:mm:SS", v-model="formData.nd_xmxx_jsq"
) :min="0"
}}</span> controls-position="right"
</template> />
</el-table-column> </el-form-item>
<el-table-column prop="size" label="大小"> </el-col>
<template #default="{ row }"> <el-col :span="12">
<span>{{ row.size }} MB</span> <el-form-item label="项目投产时间">
</template> <el-date-picker
</el-table-column> v-model="formData.nd_xmxx_xmccsj"
<el-table-column fixed="right" label="操作" width="100"> type="date"
<template #default="{ row, index }"> placeholder="请选择"
<!-- 需要在查看表单disabled时保持允许下载 --> value-format="YYYY-MM-DD"
<span />
class="always-click" </el-form-item>
@click="downloadFile(row)" </el-col>
>下载</span <el-col :span="12">
> <el-form-item label="运营期">
<el-button <el-input-number
link v-model="formData.nd_xmxx_yyq"
type="danger" :min="0"
size="small" controls-position="right"
@click="deleteChwj(index)" />
>删除</el-button <span style="margin-left: 5px"></span>
> </el-form-item>
</template> </el-col>
</el-table-column> <el-col :span="12">
</el-table> <el-form-item label="计划竣工时间">
</el-form-item> <el-date-picker
</el-col> v-model="formData.nd_xmxx_jhgcsj"
</el-row> type="date"
</div> placeholder="请选择"
</div> value-format="YYYY-MM-DD"
</el-tab-pane> />
<el-tab-pane label="年度经营管理责任书" name="年度经营管理责任书"> </el-form-item>
<div class="project-tab-content"> </el-col>
<div class="tab-content"> <el-col :span="12">
<el-form <el-form-item label="决策时间">
:model="formData" <el-date-picker
:label-width="180" v-model="formData.nd_xmxx_jcsj"
:disabled="isPreview" type="date"
> placeholder="请选择"
<el-collapse v-model="ndActiveCollapse"> value-format="YYYY-MM-DD"
<!-- 基本信息 --> />
<el-collapse-item title="基本信息" name="基本信息"> </el-form-item>
<el-row :gutter="20"> </el-col>
<el-col :span="12"> <el-col :span="24">
<el-form-item label="项目名称"> <el-form-item label="项目内容">
<el-input v-model="formData.nd_xmxx_projectName" /> <el-input
</el-form-item> v-model="formData.nd_xmxx_xmnr"
</el-col> type="textarea"
<el-col :span="12"> :autosize="{ minRows: 3, maxRows: 6 }"
<el-form-item label="决策主体"> />
<el-input v-model="formData.nd_xmxx_jczt" /> </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="监管单位"> <el-input
<el-select v-model="formData.nd_xmxx_xmzyfanr"
v-model="formData.nd_xmxx_jgdw" type="textarea"
placeholder="请选择" :autosize="{ minRows: 2, maxRows: 5 }"
clearable />
> </el-form-item>
<el-option </el-col>
v-for="item in jgdwList" <el-col :span="12">
:key="item.key" <el-form-item label="全投资财务内部收益率%(税前)">
:label="item.name" <el-input-number
:value="item.key" v-model="formData.nd_xmxx_qtzwsyln"
/> :min="0"
</el-select> :max="100"
</el-form-item> :precision="2"
</el-col> controls-position="right"
<el-col :span="12"> />
<el-form-item label="签订单位"> </el-form-item>
<el-select </el-col>
v-model="formData.nd_xmxx_qddw" <el-col :span="12">
placeholder="请选择" <el-form-item label="资本金财务内部收益率%(税后)">
clearable <el-input-number
> v-model="formData.nd_xmxx_zjbwsylh"
<el-option :min="0"
v-for="item in qddwList" :max="100"
:key="item.key" :precision="2"
:label="item.name" controls-position="right"
:value="item.key" />
/> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="12">
</el-col> <el-form-item label="签订日期">
<el-col :span="12"> <el-date-picker
<el-form-item label="投资主体"> v-model="formData.nd_xmxx_qdrq"
<el-input v-model="formData.nd_xmxx_tzzt" /> type="date"
</el-form-item> placeholder="请选择"
</el-col> value-format="YYYY-MM-DD"
<el-col :span="12"> />
<el-form-item label="项目地点"> </el-form-item>
<el-input v-model="formData.nd_xmxx_xmdd" /> </el-col>
</el-form-item> <el-col :span="12">
</el-col> <el-form-item label="填报人">
<el-col :span="12"> <el-input v-model="formData.nd_xmxx_tbr" />
<el-form-item label="建设期(月份)"> </el-form-item>
<el-input-number </el-col>
v-model="formData.nd_xmxx_jsq" </el-row>
:min="0" </el-collapse-item>
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目投产时间">
<el-date-picker
v-model="formData.nd_xmxx_xmccsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营期">
<el-input-number
v-model="formData.nd_xmxx_yyq"
:min="0"
controls-position="right"
/>
<span style="margin-left: 5px"></span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划竣工时间">
<el-date-picker
v-model="formData.nd_xmxx_jhgcsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="决策时间">
<el-date-picker
v-model="formData.nd_xmxx_jcsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="项目内容">
<el-input
v-model="formData.nd_xmxx_xmnr"
type="textarea"
:autosize="{ minRows: 3, maxRows: 6 }"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="项目主要方案内容">
<el-input
v-model="formData.nd_xmxx_xmzyfanr"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="全投资财务内部收益率%(税前)">
<el-input-number
v-model="formData.nd_xmxx_qtzwsyln"
:min="0"
:max="100"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="资本金财务内部收益率%(税后)">
<el-input-number
v-model="formData.nd_xmxx_zjbwsylh"
:min="0"
:max="100"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="签订日期">
<el-date-picker
v-model="formData.nd_xmxx_qdrq"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="填报人">
<el-input v-model="formData.nd_xmxx_tbr" />
</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="项目总投资(万元)">
<el-input-number <el-input-number
v-model="formData.xmztz" v-model="formData.xmztz"
:min="0" :min="0"
:precision="2" :precision="2"
controls-position="right" controls-position="right"
/> />
</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="建安费(万元)">
<el-input-number <el-input-number
v-model="formData.jaf" v-model="formData.jaf"
:min="0" :min="0"
:precision="2" :precision="2"
controls-position="right" controls-position="right"
/> />
</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="设备及工具购置费(万元)">
<el-input-number <el-input-number
v-model="formData.sbjgjgzf" v-model="formData.sbjgjgzf"
:min="0" :min="0"
:precision="2" :precision="2"
controls-position="right" controls-position="right"
/> />
</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="土地相关费用(万元)">
<el-input-number <el-input-number
v-model="formData.tdxgfy" v-model="formData.tdxgfy"
:min="0" :min="0"
:precision="2" :precision="2"
controls-position="right" controls-position="right"
/> />
</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="建设单位管理费(万元)">
<el-input-number <el-input-number
v-model="formData.jsdwglf" v-model="formData.jsdwglf"
:min="0" :min="0"
:precision="2" :precision="2"
controls-position="right" controls-position="right"
/> />
</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="其他建设项目管理费(万元)">
<el-input-number <el-input-number
v-model="formData.qtjsxmglf" v-model="formData.qtjsxmglf"
:min="0" :min="0"
:precision="2" :precision="2"
controls-position="right" controls-position="right"
/> />
</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="其他费用(万元)">
<el-input-number <el-input-number
v-model="formData.qtfy" v-model="formData.qtfy"
:min="0" :min="0"
:precision="2" :precision="2"
controls-position="right" controls-position="right"
/> />
</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="能建方建安费(万元)">
<el-input-number <el-input-number
v-model="formData.njfjaf" v-model="formData.njfjaf"
:min="0" :min="0"
:precision="2" :precision="2"
controls-position="right" controls-position="right"
/> />
</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="建设期利息(万元)">
<el-input-number <el-input-number
v-model="formData.jsqlx" v-model="formData.jsqlx"
:min="0" :min="0"
:precision="2" :precision="2"
controls-position="right" controls-position="right"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
<!-- 运营期目标责任书 --> <el-collapse-item
<el-collapse-item title="投融资与运营指标(万元)"
title="运营期目标责任书" name="投融资与运营指标(万元)"
name="运营期目标责任书" >
> <DynamicTable
<div class="collapse-title">投融资与运营指标(万元)</div> :columns="transferColumns1"
<div class="tab-handle" style="margin-bottom: 10px"> :disabled="isPreview"
<el-button v-model="formData.trzyyyzb"
type="primary" />
size="small" </el-collapse-item>
@click="addTrzRow"
>新增指标</el-button
>
</div>
<el-table
:data="trzData"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" label="序号" width="60" />
<el-table-column
prop="zbmc"
label="指标名称"
width="260"
>
<template #default="scope">
<el-input
v-model="scope.row.zbmc"
placeholder="请输入指标名称"
/>
</template>
</el-table-column>
<el-table-column
prop="sfkh"
label="是否考核"
width="100"
>
<template #default="scope">
<el-select
v-model="scope.row.sfkh"
placeholder="请选择"
>
<el-option label="是" value="1" />
<el-option label="否" value="2" />
</el-select>
</template>
</el-table-column>
<el-table-column
prop="zrmzb"
label="责任目标值"
width="140"
>
<template #default="scope">
<el-input-number
v-model="scope.row.zrmzb"
:min="0"
:precision="2"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="khjzf"
label="考核基准分"
width="120"
>
<template #default="scope">
<el-input-number
v-model="scope.row.khjzf"
:min="0"
:precision="2"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column prop="jfxz" label="计分细则">
<template #default="scope">
<el-input
v-model="scope.row.jfxz"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80" fixed="right">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deleteTrzRow(scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<!-- 其他对项目决策与实施有颠覆性影响的边界条件 --> <el-collapse-item
<el-collapse-item title="颠覆性影响的边界条件"
title="其他对项目决策与实施有颠覆性影响的边界条件" name="颠覆性影响的边界条件"
name="边界条件" >
> <DynamicTable
<div class="tab-handle" style="margin-bottom: 10px"> :columns="transferColumns2"
<el-button :disabled="isPreview"
type="primary" v-model="formData.qtdxmjcyssydfxyxdbj"
size="small" />
@click="addBjtjRow" </el-collapse-item>
>新增</el-button
>
</div>
<el-table
:data="bjtjData"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="zbmc" label="指标名称">
<template #default="scope">
<el-input
v-model="scope.row.zbmc"
placeholder="请输入指标名称"
/>
</template>
</el-table-column>
<el-table-column
prop="khjzf"
label="考核基准分"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.khjzf"
:min="0"
:precision="2"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column prop="jfxz" label="计分细则">
<template #default="scope">
<el-input
v-model="scope.row.jfxz"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80" fixed="right">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deleteBjtjRow(scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<!-- 项目实施过程中其他提高项目投资收益或带动公司市场开拓的情况 --> <el-collapse-item
<el-collapse-item title="市场开拓相关指标"
title="项目实施过程中其他提高项目投资收益或带动公司市场开拓的情况" name="市场开拓相关指标"
name="市场开拓" >
> <DynamicTable
<div class="tab-handle" style="margin-bottom: 10px"> :columns="transferColumns2"
<el-button :disabled="isPreview"
type="primary" v-model="formData.xmssgczqttgxmtzsylhddgsscktqk"
size="small" />
@click="addScktRow" </el-collapse-item>
>新增</el-button <!-- 签订信息 -->
> <el-collapse-item title="签订信息" name="签订信息">
</div> <el-row :gutter="20">
<el-table <el-col :span="12">
:data="scktData" <el-form-item label="签订状态">
style="width: 100%" <el-input v-model="formData.qdzt" />
empty-text="暂无数据"
border
>
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="zbmc" label="指标名称">
<template #default="scope">
<el-input
v-model="scope.row.zbmc"
placeholder="请输入指标名称"
/>
</template>
</el-table-column>
<el-table-column
prop="khjzf"
label="考核基准分"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.khjzf"
:min="0"
:precision="2"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column prop="jfxz" label="计分细则">
<template #default="scope">
<el-input
v-model="scope.row.jfxz"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80" fixed="right">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deleteScktRow(scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<!-- 签订信息 --> <!-- <el-select
<el-collapse-item title="签订信息" name="签订信息"> v-model="formData.qdzt"
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="签订状态">
<el-select
v-model="formData.nd_qdxx_qdzt"
placeholder="请选择" placeholder="请选择"
clearable clearable
> >
...@@ -943,105 +316,36 @@ ...@@ -943,105 +316,36 @@
:label="item.name" :label="item.name"
:value="item.key" :value="item.key"
/> />
</el-select> </el-select> -->
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否按时签订"> <el-form-item label="是否按时签订">
<el-radio-group v-model="formData.nd_qdxx_sfasqd"> <CommonSelector
<el-radio label="1"></el-radio> v-model="formData.sfasqd"
<el-radio label="2"></el-radio> :radio="true"
</el-radio-group> dictName="sf"
</el-form-item> ></CommonSelector>
</el-col> </el-form-item>
<el-col :span="12"> </el-col>
<el-form-item label="签订单位"> <el-col :span="12">
<el-input v-model="formData.nd_qdxx_qddw" /> <el-form-item label="签订单位">
</el-form-item> <el-input v-model="formData.qddw" />
</el-col> </el-form-item>
<el-col :span="24"> </el-col>
<el-form-item <el-col :span="24">
label="已盖章签字的运营阶段目标责任书附件" <el-form-item label="已盖章签字的运营阶段目标责任书附件">
> <FileUploader
<el-upload v-model="formData.ygzqzdyyjdmbzrsfj"
:action=" ></FileUploader>
windowConfig.baseUrl + '/api/file/upload' </el-form-item>
" </el-col>
:headers="{ Authorization: token }" </el-row>
:show-file-list="false" </el-collapse-item>
multiple </el-collapse>
:on-success="addQdfjFile" </el-form>
> </div>
<el-button type="default">上传</el-button> </div>
</el-upload>
<el-button
type="default"
@click="multiDeleteQdfj"
:disabled="!qdfjSelectIds.length"
>删除选中文件</el-button
>
</el-form-item>
<el-form-item label="">
<el-table
:data="qdfjData"
style="width: 100%"
empty-text="暂无数据"
border
@selection-change="qdfjSelectionChange"
>
<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="deleteQdfj(index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div> </div>
<div class="add-project-header"> <div class="add-project-header">
<div class="header-left"></div> <div class="header-left"></div>
...@@ -1065,6 +369,67 @@ const userStore = useUserStore(); ...@@ -1065,6 +369,67 @@ const userStore = useUserStore();
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
import FileUploader from "@/components/FileUploader/index.vue";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
const transferColumns1 = ref([
{
prop: "njfcgbl",
label: "指标名称",
type: "input",
placeholder: "请填写指标名称",
},
{
prop: "njfcgb2",
label: "是否考核",
type: "select",
optionKey: "sf",
},
{
prop: "njfcgb3",
label: "责任目标值",
type: "number",
placeholder: "请填写责任目标值",
},
{
prop: "njfcgb4",
label: "考核基准分",
type: "number",
placeholder: "请填写考核基准分",
},
{
prop: "njfcgb5",
label: "计分细责",
type: "input",
placeholder: "请填写计分细责",
},
]);
const transferColumns2 = ref([
{
prop: "njfcgbl",
label: "指标名称",
type: "input",
placeholder: "请填写指标名称",
},
{
prop: "njfcgb2",
label: "考核基准分",
type: "number",
placeholder: "请填写考核基准分",
},
{
prop: "njfcgb3",
label: "计分细责",
type: "input",
placeholder: "请填写计分细责",
},
]);
// 表单数据
const pageActiveName = ref("全生命周期责任书"); const pageActiveName = ref("全生命周期责任书");
let token = ref(""); let token = ref("");
token.value = userStore.authToken || sessionStorage.getItem("authToken") || ""; token.value = userStore.authToken || sessionStorage.getItem("authToken") || "";
...@@ -1077,11 +442,18 @@ const activeCollapse = reactive([ ...@@ -1077,11 +442,18 @@ const activeCollapse = reactive([
]); ]);
const ndActiveCollapse = reactive([ const ndActiveCollapse = reactive([
"基本信息", "基本信息",
"投融资与运营指标(万元)",
"市场开拓相关指标",
"颠覆性影响的边界条件",
"造价信息", "造价信息",
"运营期目标责任书",
"签订信息", "签订信息",
]); ]);
let formData = reactive({}); let formData = reactive({
qtdxmjcyssydfxyxdbj: [],
xmssgczqttgxmtzsylhddgsscktqk: [],
trzyyyzb: [],
});
let loading = ref(false); let loading = ref(false);
// 责任书类型 // 责任书类型
let zrslxList = reactive([]); let zrslxList = reactive([]);
...@@ -1101,7 +473,6 @@ watch( ...@@ -1101,7 +473,6 @@ watch(
); );
// 构建节点映射表 // 构建节点映射表
const nodeMap = new Map(); const nodeMap = new Map();
let buildNodeMap;
const getFullPathById = (id) => { const getFullPathById = (id) => {
const node = nodeMap.get(id); const node = nodeMap.get(id);
if (!node) return ""; if (!node) return "";
...@@ -1141,9 +512,6 @@ let pfyjlsqkData = ref([]); ...@@ -1141,9 +512,6 @@ let pfyjlsqkData = ref([]);
let jgdwList = reactive([]); let jgdwList = reactive([]);
let qddwList = reactive([]); let qddwList = reactive([]);
let qdztList = reactive([]); let qdztList = reactive([]);
let trzData = ref([]);
let bjtjData = ref([]);
let scktData = ref([]);
let qdfjData = ref([]); let qdfjData = ref([]);
let qdfjSelectIds = ref([]); let qdfjSelectIds = ref([]);
const addPfyjlsqk = () => { const addPfyjlsqk = () => {
...@@ -1183,12 +551,7 @@ const getStatementInfo = () => { ...@@ -1183,12 +551,7 @@ const getStatementInfo = () => {
}), }),
); );
Object.assign(chwjData.value, res.chwj); Object.assign(chwjData.value, res.chwj);
Object.assign(jyglzrsData.value, res.tzmbzrsNds);
Object.assign(pfyjlsqkData.value, res.tzmbzrsPfyjs); Object.assign(pfyjlsqkData.value, res.tzmbzrsPfyjs);
// 年度经营管理责任书数据
Object.assign(trzData.value, res.ndTrz || []);
Object.assign(bjtjData.value, res.ndBjtj || []);
Object.assign(scktData.value, res.ndSckt || []);
Object.assign(qdfjData.value, res.ndQdfj || []); Object.assign(qdfjData.value, res.ndQdfj || []);
}, },
}); });
...@@ -1205,7 +568,8 @@ onMounted(() => { ...@@ -1205,7 +568,8 @@ onMounted(() => {
qdztList = resourceData.qdzt || []; qdztList = resourceData.qdzt || [];
statementId && getStatementInfo(); statementId && getStatementInfo();
buildNodeMap = (nodes, parent = null) => { // 构建节点映射
const buildNodeMap = (nodes, parent = null) => {
nodes.forEach((node) => { nodes.forEach((node) => {
node.parent = parent; node.parent = parent;
nodeMap.set(node.key, node); nodeMap.set(node.key, node);
...@@ -1214,7 +578,6 @@ onMounted(() => { ...@@ -1214,7 +578,6 @@ onMounted(() => {
} }
}); });
}; };
// 初始化构建映射
buildNodeMap(zrslxList); buildNodeMap(zrslxList);
}); });
// 选择关联项目,同步相关字段信息 // 选择关联项目,同步相关字段信息
...@@ -1260,7 +623,20 @@ const multiDeleteZrs = () => { ...@@ -1260,7 +623,20 @@ const multiDeleteZrs = () => {
.catch(() => {}); .catch(() => {});
}; };
// 责任书具体指标 // 责任书具体指标
let zrsjtzbData = ref([]); let zrsjtzbData = ref([
{
xh: "1",
zbmc: "项目总投资(亿元)",
},
{
xh: "1.1",
zbmc: "建安费用(亿元)",
},
{
xh: "2",
zbmc: "项目带动工程收益(亿元)",
},
]);
let qsmzqZrs = [ let qsmzqZrs = [
{ {
xh: "1", xh: "1",
...@@ -1541,81 +917,7 @@ const multiDeleteChwj = () => { ...@@ -1541,81 +917,7 @@ const multiDeleteChwj = () => {
}) })
.catch(() => {}); .catch(() => {});
}; };
// 经营管理责任书
let jyglzrsData = ref([]);
const addJyglzrs = () => {
jyglzrsData.value.push({});
};
const deleteJyglzrs = (index) => {
jyglzrsData.value.splice(index, 1);
};
const addJyglzrsFile = (res, file, row) => {
row.jyglzrs = {};
Object.assign(row.jyglzrs, res.data);
};
const deleteRowFile = (row, index) => {
let { jyglzrs, ...data } = row;
jyglzrsData.value[index] = data;
};
// 投融资与运营指标
const addTrzRow = () => {
trzData.value.push({
zbmc: "",
sfkh: "1",
zrmzb: 0,
khjzf: 0,
jfxz: "",
});
};
const deleteTrzRow = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
trzData.value.splice(index, 1);
})
.catch(() => {});
};
// 边界条件
const addBjtjRow = () => {
bjtjData.value.push({
zbmc: "",
khjzf: 0,
jfxz: "",
});
};
const deleteBjtjRow = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
bjtjData.value.splice(index, 1);
})
.catch(() => {});
};
// 市场开拓
const addScktRow = () => {
scktData.value.push({
zbmc: "",
khjzf: 0,
jfxz: "",
});
};
const deleteScktRow = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
scktData.value.splice(index, 1);
})
.catch(() => {});
};
// 签订附件 // 签订附件
const addQdfjFile = (res, file) => { const addQdfjFile = (res, file) => {
qdfjData.value.push(res.data); qdfjData.value.push(res.data);
...@@ -1671,12 +973,7 @@ const saveClick = () => { ...@@ -1671,12 +973,7 @@ const saveClick = () => {
zrswj: zrsData.value, zrswj: zrsData.value,
tzmbzrsZbs: zrsjtzbData.value, tzmbzrsZbs: zrsjtzbData.value,
chwj: chwjData.value, chwj: chwjData.value,
tzmbzrsNds: jyglzrsData.value,
tzmbzrsPfyjs: pfyjlsqkData.value, tzmbzrsPfyjs: pfyjlsqkData.value,
// 年度经营管理责任书相关数据
ndTrz: trzData.value,
ndBjtj: bjtjData.value,
ndSckt: scktData.value,
ndQdfj: qdfjData.value, ndQdfj: qdfjData.value,
}, },
callback: (data) => { callback: (data) => {
......
<template>
<div class="add-project-container">
<div class="add-project-content" v-loading="loading">
<routerBack />
<div class="tabs-content">
<el-tabs v-model="pageActiveName" type="border-card">
<el-tab-pane label="全生命周期责任书" name="全生命周期责任书">
<div class="project-tab-content">
<div class="tab-content">
<el-form
:model="formData"
:label-width="130"
:disabled="isPreview"
>
<el-collapse v-model="activeCollapse">
<el-collapse-item
title="责任书基本信息"
name="责任书基本信息"
>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="责任书类型">
<el-tree-select
v-model="formData.zrslx"
:data="zrslxList"
node-key="key"
:props="zrslxProps"
placeholder="请选择"
render-after-expand
@node-click="changeZrslx"
>
<template #label>
<span>{{ selectedFullPath }}</span>
</template>
</el-tree-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目信息" required>
<el-select
v-model="formData.projectId"
placeholder="请选择"
no-data-text="暂无数据"
@change="changeProject"
>
<el-option
v-for="item in projectList"
:key="item.id"
:label="item.projectName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="责任书文件">
<el-upload
: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 }">
<!-- 需要在查看表单disabled时保持允许下载 -->
<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-col>
<el-col :span="8">
<el-form-item label="项目名称">
<el-input v-model="formData.projectName" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="投资主体">
<el-input v-model="formData.tzzt" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目地点">
<el-input v-model="formData.xmdd" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目开工日期">
<el-date-picker
v-model="formData.xmkgrq"
type="date"
placeholder="请选择"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目实施期限">
<el-input-number
v-model="formData.xmssqx"
:min="0"
:max="99999999999.99999999"
controls-position="right"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目内容概述">
<el-input
v-model="formData.xmnrgs"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目经济指标概述">
<el-input
v-model="formData.xmjjzbgs"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title="责任书具体指标"
name="责任书具体指标"
>
<el-table
:data="zrsjtzbData"
style="width: 100%"
empty-text="暂无数据"
border
show-summary
:summary-method="getSummaries"
>
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="zbmc" label="指标名称" />
<el-table-column
prop="zbmbz"
label="指标目标值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.zbmbz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="khjzf"
label="考核基准分"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.khjzf"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="sfsy"
label="是否适用"
width="90"
>
<template #default="scope">
<el-switch
v-model="scope.row.sfsy"
inline-prompt
active-value="1"
active-text="是"
inactive-value="2"
inactive-text="否"
/>
</template>
</el-table-column>
<el-table-column prop="khsm" label="考核说明">
<template #default="scope">
<el-input
v-model="scope.row.khsm"
type="textarea"
/>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="批复意见落实情况"
name="批复意见落实情况"
>
<div class="tab-handle">
<el-button
type="primary"
size="small"
@click="addPfyjlsqk"
>新增</el-button
>
</div>
<el-table
:data="pfyjlsqkData"
style="width: 100%"
empty-text="暂无数据"
border
>
<el-table-column type="index" width="60" />
<el-table-column prop="lx" label="类型">
<template #default="scope">
<el-select
v-model="scope.row.lx"
placeholder="请选择"
no-data-text="暂无数据"
>
<el-option
v-for="item in pfyjlxList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="pfyj" label="批复意见">
<template #default="scope">
<el-input
v-model="scope.row.pfyj"
type="textarea"
/>
</template>
</el-table-column>
<el-table-column prop="jzf" label="基准分">
<template #default="scope">
<el-input-number
v-model="scope.row.jzf"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column prop="lsqk" label="落实情况">
<template #default="scope">
<el-select
v-model="scope.row.lsqk"
placeholder="请选择"
no-data-text="暂无数据"
>
<el-option
v-for="item in lsqkList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="lssj" label="落实时间">
<template #default="scope">
<el-date-picker
v-model="scope.row.lssj"
type="datetime"
placeholder="请选择"
value-format="YYYY-MM-DD HH:mm:ss"
/>
</template>
</el-table-column>
<el-table-column
prop="lsqkjtsm"
label="落实情况具体说明"
>
<template #default="scope">
<el-input
v-model="scope.row.lsqkjtsm"
type="textarea"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="60">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deletePfyjlsqk(scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="全生命周期管理策划" name="全生命周期管理策划">
<div class="project-tab-content">
<div class="tab-content">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="策划文件">
<el-upload
: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-col>
</el-row>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="年度经营管理责任书" name="年度经营管理责任书">
<div class="project-tab-content">
<div class="tab-content">
<el-form
:model="formData"
:label-width="180"
:disabled="isPreview"
>
<el-collapse v-model="ndActiveCollapse">
<!-- 基本信息 -->
<el-collapse-item title="基本信息" name="基本信息">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="项目名称">
<el-input v-model="formData.nd_xmxx_projectName" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="决策主体">
<el-input v-model="formData.nd_xmxx_jczt" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="监管单位">
<el-select
v-model="formData.nd_xmxx_jgdw"
placeholder="请选择"
clearable
>
<el-option
v-for="item in jgdwList"
:key="item.key"
:label="item.name"
:value="item.key"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="签订单位">
<el-select
v-model="formData.nd_xmxx_qddw"
placeholder="请选择"
clearable
>
<el-option
v-for="item in qddwList"
:key="item.key"
:label="item.name"
:value="item.key"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="投资主体">
<el-input v-model="formData.nd_xmxx_tzzt" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目地点">
<el-input v-model="formData.nd_xmxx_xmdd" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设期(月份)">
<el-input-number
v-model="formData.nd_xmxx_jsq"
:min="0"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目投产时间">
<el-date-picker
v-model="formData.nd_xmxx_xmccsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营期">
<el-input-number
v-model="formData.nd_xmxx_yyq"
:min="0"
controls-position="right"
/>
<span style="margin-left: 5px"></span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划竣工时间">
<el-date-picker
v-model="formData.nd_xmxx_jhgcsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="决策时间">
<el-date-picker
v-model="formData.nd_xmxx_jcsj"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="项目内容">
<el-input
v-model="formData.nd_xmxx_xmnr"
type="textarea"
:autosize="{ minRows: 3, maxRows: 6 }"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="项目主要方案内容">
<el-input
v-model="formData.nd_xmxx_xmzyfanr"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="全投资财务内部收益率%(税前)">
<el-input-number
v-model="formData.nd_xmxx_qtzwsyln"
:min="0"
:max="100"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="资本金财务内部收益率%(税后)">
<el-input-number
v-model="formData.nd_xmxx_zjbwsylh"
:min="0"
:max="100"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="签订日期">
<el-date-picker
v-model="formData.nd_xmxx_qdrq"
type="date"
placeholder="请选择"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="填报人">
<el-input v-model="formData.nd_xmxx_tbr" />
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!-- 造价信息 -->
<el-collapse-item title="造价信息" name="造价信息">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="项目总投资(万元)">
<el-input-number
v-model="formData.xmztz"
:min="0"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建安费(万元)">
<el-input-number
v-model="formData.jaf"
:min="0"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="设备及工具购置费(万元)">
<el-input-number
v-model="formData.sbjgjgzf"
:min="0"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="土地相关费用(万元)">
<el-input-number
v-model="formData.tdxgfy"
:min="0"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建设单位管理费(万元)">
<el-input-number
v-model="formData.jsdwglf"
:min="0"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="其他建设项目管理费(万元)">
<el-input-number
v-model="formData.qtjsxmglf"
:min="0"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="其他费用(万元)">
<el-input-number
v-model="formData.qtfy"
:min="0"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="能建方建安费(万元)">
<el-input-number
v-model="formData.njfjaf"
:min="0"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建设期利息(万元)">
<el-input-number
v-model="formData.jsqlx"
:min="0"
:precision="2"
controls-position="right"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item
title="投融资与运营指标(万元)"
name="投融资与运营指标(万元)"
>
<DynamicTable
:columns="transferColumns1"
:disabled="isPreview"
v-model="formData.trzyyyzb"
/>
</el-collapse-item>
<el-collapse-item
title="颠覆性影响的边界条件"
name="颠覆性影响的边界条件"
>
<DynamicTable
:columns="transferColumns2"
:disabled="isPreview"
v-model="formData.qtdxmjcyssydfxyxdbj"
/>
</el-collapse-item>
<el-collapse-item
title="市场开拓相关指标"
name="市场开拓相关指标"
>
<DynamicTable
:columns="transferColumns2"
:disabled="isPreview"
v-model="formData.xmssgczqttgxmtzsylhddgsscktqk"
/>
</el-collapse-item>
<!-- 签订信息 -->
<el-collapse-item title="签订信息" name="签订信息">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="签订状态">
<el-input v-model="formData.qdzt" />
<!-- <el-select
v-model="formData.qdzt"
placeholder="请选择"
clearable
>
<el-option
v-for="item in qdztList"
:key="item.key"
:label="item.name"
:value="item.key"
/>
</el-select> -->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否按时签订">
<CommonSelector
v-model="formData.sfasqd"
:radio="true"
dictName="sf"
></CommonSelector>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="签订单位">
<el-input v-model="formData.qddw" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
label="已盖章签字的运营阶段目标责任书附件"
>
<FileUploader
v-model="formData.ygzqzdyyjdmbzrsfj"
></FileUploader>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="add-project-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="default" @click="backClick">返回</el-button>
<template v-if="!loading && !isPreview">
<el-button type="primary" @click="saveClick">保存</el-button>
</template>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { reactive, ref, onMounted, getCurrentInstance, h, watch } from "vue";
import { useRouter, useRoute } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import { useUserStore } from "@/stores/user.js";
const userStore = useUserStore();
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
import FileUploader from "@/components/FileUploader/index.vue";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
const transferColumns1 = ref([
{
prop: "njfcgbl",
label: "指标名称",
type: "input",
placeholder: "请填写指标名称",
},
{
prop: "njfcgb2",
label: "是否考核",
type: "select",
optionKey: "sf",
},
{
prop: "njfcgb3",
label: "责任目标值",
type: "number",
placeholder: "请填写责任目标值",
},
{
prop: "njfcgb4",
label: "考核基准分",
type: "number",
placeholder: "请填写考核基准分",
},
{
prop: "njfcgb5",
label: "计分细责",
type: "input",
placeholder: "请填写计分细责",
},
]);
const transferColumns2 = ref([
{
prop: "njfcgbl",
label: "指标名称",
type: "input",
placeholder: "请填写指标名称",
},
{
prop: "njfcgb2",
label: "考核基准分",
type: "number",
placeholder: "请填写考核基准分",
},
{
prop: "njfcgb3",
label: "计分细责",
type: "input",
placeholder: "请填写计分细责",
},
]);
// 表单数据
const pageActiveName = ref("全生命周期责任书");
let token = ref("");
token.value = userStore.authToken || sessionStorage.getItem("authToken") || "";
import routerBack from "@/components/common/routerBack.vue";
const activeCollapse = reactive([
"责任书基本信息",
"责任书具体指标",
"批复意见落实情况",
]);
const ndActiveCollapse = reactive([
"基本信息",
"投融资与运营指标(万元)",
"市场开拓相关指标",
"颠覆性影响的边界条件",
"造价信息",
"签订信息",
]);
let formData = reactive({
qtdxmjcyssydfxyxdbj: [],
xmssgczqttgxmtzsylhddgsscktqk: [],
trzyyyzb: [],
});
let loading = ref(false);
// 责任书类型
let zrslxList = reactive([]);
let zrslxProps = {
label: "name",
};
let selectedFullPath = ref(""); //已选项的全路径名称
watch(
() => formData.zrslx,
(newVal) => {
if (newVal) {
selectedFullPath.value = getFullPathById(newVal);
} else {
selectedFullPath.value = "";
}
},
);
// 构建节点映射表
const nodeMap = new Map();
const getFullPathById = (id) => {
const node = nodeMap.get(id);
if (!node) return "";
const path = [];
let current = node;
while (current) {
path.unshift(current.name);
current = current.parent;
}
return path.join(" / ");
};
// 项目列表
let projectList = ref([]);
const getProjectData = (params = {}) => {
proxy.$post({
url: "/api/project/listProject",
data: {
page: 1,
pagesize: 1000,
attributes: [],
menuType: "xmjc",
...params,
},
callback: (data) => {
projectList.value = data.rows;
},
});
};
// 批复意见落实情况
let pfyjlxList = reactive([]);
let lsqkList = reactive([]);
let pfyjlsqkData = ref([]);
// 年度经营管理责任书相关数据
let jgdwList = reactive([]);
let qddwList = reactive([]);
let qdztList = reactive([]);
let qdfjData = ref([]);
let qdfjSelectIds = ref([]);
const addPfyjlsqk = () => {
pfyjlsqkData.value.push({});
};
const deletePfyjlsqk = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
pfyjlsqkData.value.splice(index, 1);
});
};
let isPreview = !!route.query.isPreview;
let statementId = route.query.statementId;
// 查看编辑详情
const getStatementInfo = () => {
loading.value = true;
proxy.$post({
url: "/api/project/getTzmbzrsInfo",
data: {
id: statementId,
},
callback: (res) => {
loading.value = false;
Object.assign(formData, res);
Object.assign(zrsData.value, res.zrswj);
Object.assign(
zrsjtzbData.value,
res.tzmbzrsZbs.map((item) => {
return {
...item,
sfsy: item.sfsy && item.sfsy.toString(),
};
}),
);
Object.assign(chwjData.value, res.chwj);
Object.assign(pfyjlsqkData.value, res.tzmbzrsPfyjs);
Object.assign(qdfjData.value, res.ndQdfj || []);
},
});
};
onMounted(() => {
getProjectData();
let resourceData = JSON.parse(sessionStorage.getItem("resourceData"));
zrslxList = resourceData.level;
pfyjlxList = resourceData.ssjd;
lsqkList = resourceData.lszxqk;
// 年度经营管理责任书相关字典
jgdwList = resourceData.jgdw || [];
qddwList = resourceData.qddw || [];
qdztList = resourceData.qdzt || [];
statementId && getStatementInfo();
// 构建节点映射
const buildNodeMap = (nodes, parent = null) => {
nodes.forEach((node) => {
node.parent = parent;
nodeMap.set(node.key, node);
if (node.children && node.children.length > 0) {
buildNodeMap(node.children, node);
}
});
};
buildNodeMap(zrslxList);
});
// 选择关联项目,同步相关字段信息
const changeProject = (val) => {
let selectData = projectList.value.filter((item) => item.id === val)[0];
if (selectData) {
formData.projectName = selectData.projectName;
formData.tzzt = selectData.tzzt;
}
};
// 责任书文件
let zrsData = ref([]);
const addZrsFile = (res, file) => {
zrsData.value.push(res.data);
};
const deleteZrs = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
zrsData.value.splice(index, 1);
})
.catch(() => {});
};
let zrsSelectIds = ref([]);
const zrsSelectionChange = (datas) => {
zrsSelectIds.value = datas.map((item) => item.id);
};
const multiDeleteZrs = () => {
ElMessageBox.confirm("确认删除选中数据?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
zrsData.value = zrsData.value.filter(
(item) => !zrsSelectIds.value.includes(item.id),
);
})
.catch(() => {});
};
// 责任书具体指标
let zrsjtzbData = ref([
{
xh: "1",
zbmc: "项目总投资(亿元)",
},
{
xh: "1.1",
zbmc: "建安费用(亿元)",
},
{
xh: "2",
zbmc: "项目带动工程收益(亿元)",
},
]);
let qsmzqZrs = [
{
xh: "1",
zbmc: "项目总投资(亿元)",
},
{
xh: "1.1",
zbmc: "建安费用(亿元)",
},
{
xh: "2",
zbmc: "项目带动工程收益(亿元)",
},
{
xh: "2.1",
zbmc: "工程收益率(%)",
},
{
xh: "3",
zbmc: "政府补助资金到位(亿元)",
},
{
xh: "4",
zbmc: "我方资本金投入(亿元)",
},
{
xh: "5",
zbmc: "我方负责引入的股权融资(亿元)",
},
{
xh: "6",
zbmc: "项目融资额(亿元)",
},
{
xh: "6.1",
zbmc: "融资利率(%)",
},
{
xh: "7",
zbmc: "项目实现营业收入累计(亿元)",
},
{
xh: "8",
zbmc: "项目经营净现金流累计(亿元)",
},
{
xh: "9",
zbmc: "项目全投资财务内部收益率(税前)(%)",
},
{
xh: "10",
zbmc: "项目资本金财务内部收益率(%)",
},
{
xh: "11",
zbmc: "项目竣工投产时间(年月)",
},
];
let jsqZrs = [
{
xh: "1",
zbmc: "项目总投资 (亿元)",
},
{
xh: "1.1",
zbmc: "建安费用(亿元)",
},
{
xh: "2",
zbmc: "项目带动工程收益 (亿元)",
},
{
xh: "2.1",
zbmc: "工程收益率(%)",
},
{
xh: "3",
zbmc: "建设期政府补助资金(亿元)",
},
{
xh: "4",
zbmc: "我方资本金投入(亿元)",
},
{
xh: "5",
zbmc: "我方负责引入的股权融资(亿元)",
},
{
xh: "5.1",
zbmc: "股权融资成本(%)",
},
{
xh: "6",
zbmc: "项目建设期融资额(亿元)",
},
{
xh: "6.1",
zbmc: "融资利率(%)",
},
{
xh: "7",
zbmc: "项目全投资财务内部收益率(税前)(%)",
},
{
xh: "8",
zbmc: "项目资本金财务内部收益率(%)",
},
{
xh: "9",
zbmc: "项目竣工投产时间(年月)",
},
];
let yyqZrs = [
{
xh: "1",
zbmc: "运营期政府补助资金到位(亿元)",
},
{
xh: "2",
zbmc: "项目运营期融资额(亿元)",
},
{
xh: "2.1",
zbmc: "融资利率(%)",
},
{
xh: "3",
zbmc: "项目实现营业收入累计(亿元)",
},
{
xh: "3.1",
zbmc: "利润总额累计(亿元)",
},
{
xh: "4",
zbmc: "项目经营净现金流累计(亿元)",
},
{
xh: "5",
zbmc: "项目全投资财务内部收益率(税前)(%)",
},
{
xh: "6",
zbmc: "项目资本金财务内部收益率(%)",
},
];
let ndZrs = [
{
xh: "1",
zbmc: "本年度完成投资(亿元)",
},
{
xh: "1.1",
zbmc: "建安费用(亿元)",
},
{
xh: "1.2",
zbmc: "项目征地拆迁费(亿元)",
},
{
xh: "2",
zbmc: "本年度工程收益(亿元)",
},
{
xh: "2.1",
zbmc: "工程收益率(%)",
},
{
xh: "3",
zbmc: "本年度政府补助资金(亿元)",
},
{
xh: "4",
zbmc: "本年度我方资本金投入(亿元)",
},
{
xh: "5",
zbmc: "本年度我方负责引入的股权融资(亿元)",
},
{
xh: "5.1",
zbmc: "股权融资成本(%)",
},
{
xh: "6",
zbmc: "本年度项目融资额(亿元)",
},
{
xh: "6.1",
zbmc: "融资利率(%)",
},
{
xh: "7",
zbmc: "本年度投资项目实现营业收入(亿元)",
},
{
xh: "8",
zbmc: "本年度项目经营净现金流(亿元)",
},
{
xh: "9",
zbmc: "项目全投资财务内部收益率(税前)(%)",
},
{
xh: "10",
zbmc: "项目资本金财务内部收益率(%)",
},
];
// 选择责任书类型,同步切换责任书具体指标数据
const changeZrslx = (data) => {
if (!data.children || !data.children.length) {
// 点击到最内层子节点
if (data.name.indexOf("年度") != -1) {
zrsjtzbData.value = ndZrs;
} else if (data.name.indexOf("建设") != -1) {
zrsjtzbData.value = jsqZrs;
} else if (data.name.indexOf("运营") != -1) {
zrsjtzbData.value = yyqZrs;
} else {
zrsjtzbData.value = qsmzqZrs;
}
}
};
const getSummaries = (param) => {
const { columns, data } = param;
let sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[0] = h("div", "合计");
return;
}
const values = data.map((item) => Number(item[column.property]));
if (["khjzf"].includes(column.property)) {
sums[index] = `${values.reduce((prev, curr) => {
const value = Number(curr);
if (!Number.isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0)}`;
} else {
sums[index] = "";
}
});
return sums;
};
// 策划文件
let chwjData = ref([]);
const addChwjFile = (res, file) => {
chwjData.value.push(res.data);
};
const deleteChwj = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
chwjData.value.splice(index, 1);
})
.catch(() => {});
};
let chwjSelectIds = ref([]);
const chwjSelectionChange = (datas) => {
chwjSelectIds.value = datas.map((item) => item.id);
};
const multiDeleteChwj = () => {
ElMessageBox.confirm("确认删除选中数据?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
chwjData.value = chwjData.value.filter(
(item) => !chwjSelectIds.value.includes(item.id),
);
})
.catch(() => {});
};
// 签订附件
const addQdfjFile = (res, file) => {
qdfjData.value.push(res.data);
};
const deleteQdfj = (index) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
qdfjData.value.splice(index, 1);
})
.catch(() => {});
};
const qdfjSelectionChange = (datas) => {
qdfjSelectIds.value = datas.map((item) => item.id);
};
const multiDeleteQdfj = () => {
ElMessageBox.confirm("确认删除选中数据?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
qdfjData.value = qdfjData.value.filter(
(item) => !qdfjSelectIds.value.includes(item.id),
);
})
.catch(() => {});
};
// 下载已上传文件
const downloadFile = (data) => {
let a = document.createElement("a");
a.href = `${proxy.windowConfig.baseUrl}/api/file/download/${data.id}`;
a.download = data.originalname;
document.body.appendChild(a);
a.click();
a.remove();
};
const backClick = () => {
router.back(-1);
};
const saveClick = () => {
if (formData.projectId) {
let url = formData.id ? "updateTzmbzrs" : "createTzmbzrs";
proxy.$post({
url: "/api/project/" + url,
data: {
...formData,
zrswj: zrsData.value,
tzmbzrsZbs: zrsjtzbData.value,
chwj: chwjData.value,
tzmbzrsPfyjs: pfyjlsqkData.value,
ndQdfj: qdfjData.value,
},
callback: (data) => {
router.back(-1);
},
});
} else {
ElMessage.warning("请选择项目信息");
}
};
</script>
<style lang="less">
.add-project-header {
margin-bottom: 10px;
}
.collapse-title {
font-size: 14px;
font-weight: bold;
color: #303133;
margin-bottom: 10px;
padding-left: 10px;
border-left: 3px solid #409eff;
}
.always-click {
color: #409eff;
cursor: pointer;
margin-right: 10px;
&:hover {
text-decoration: underline;
}
}
.tab-handle {
margin-bottom: 10px;
display: flex;
justify-content: flex-end;
}
</style>
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