明树Git Lab

Commit c1d8e4a4 authored by zhanghan's avatar zhanghan

增加单位

parent d7b10ba8
Pipeline #109397 passed with stage
in 21 seconds
...@@ -102,6 +102,21 @@ ...@@ -102,6 +102,21 @@
</el-select> </el-select>
</template> </template>
<!-- Autocomplete 类型(联想输入框) -->
<template v-else-if="col.type === 'autocomplete'">
<el-autocomplete
v-model="scope.row[col.prop]"
:placeholder="col.placeholder || '请输入或选择'"
:disabled="disabled || col.disabled"
:fetch-suggestions="(queryString, callback) => handleQuerySearch(queryString, callback, col.optionKey)"
:trigger-on-focus="col.triggerOnFocus !== false"
:debounce="col.debounce || 300"
clearable
style="width: 100%"
size="small"
/>
</template>
<!-- Number 类型 --> <!-- Number 类型 -->
<template v-else-if="col.type === 'number'"> <template v-else-if="col.type === 'number'">
<el-input <el-input
...@@ -224,6 +239,21 @@ ...@@ -224,6 +239,21 @@
</el-select> </el-select>
</template> </template>
<!-- Autocomplete 类型(联想输入框) -->
<template v-else-if="col.type === 'autocomplete'">
<el-autocomplete
v-model="scope.row[col.prop]"
:placeholder="col.placeholder || '请输入或选择'"
:disabled="disabled || col.disabled"
:fetch-suggestions="(queryString, callback) => handleQuerySearch(queryString, callback, col.optionKey)"
:trigger-on-focus="col.triggerOnFocus !== false"
:debounce="col.debounce || 300"
clearable
style="width: 100%"
size="small"
/>
</template>
<!-- Number 类型 --> <!-- Number 类型 -->
<template v-else-if="col.type === 'number'"> <template v-else-if="col.type === 'number'">
<el-input <el-input
...@@ -443,6 +473,36 @@ const headerColumnGroups = computed(() => { ...@@ -443,6 +473,36 @@ const headerColumnGroups = computed(() => {
return result; return result;
}); });
// 联想搜索处理方法
const handleQuerySearch = (queryString, callback, optionKey) => {
try {
const options = mergedSelectOptions.value[optionKey] || [];
if (!queryString) {
// 无输入时返回所有选项
callback(options.map(item => ({ value: item.name || item.label, key: item.key || item.value })));
return;
}
// 过滤匹配的选项
const results = queryString
? options
.filter(item => {
const name = (item.name || item.label || "").toLowerCase();
const query = queryString.toLowerCase();
return name.includes(query);
})
.map(item => ({ value: item.name || item.label, key: item.key || item.value }))
: [];
// 如果有匹配结果,返回建议列表
// 如果没有匹配结果,返回空数组(允许用户输入自定义内容)
callback(results);
} catch (e) {
console.error("联想搜索失败:", e);
callback([]);
}
};
// 新增行(适配默认行数据,初始化upload字段为数组) // 新增行(适配默认行数据,初始化upload字段为数组)
const handleAdd = () => { const handleAdd = () => {
try { try {
......
<template> <template>
<div> <div>
<div class="add-project-back"> <div class="add-project-back">
<div class="back" @click="() => router.back()"> <div class="back" @click="handleBack">
<el-icon class="backIcon"><ArrowLeft /></el-icon> <el-icon class="backIcon"><ArrowLeft /></el-icon>
<span class="backText">返回</span> <span class="backText">返回</span>
</div> </div>
<span class="backName">{{ route.meta.title }}</span> <span class="backName">{{ route.meta.title }}</span>
<div class="back-actions" v-if="showSave">
<el-button
type="primary"
:loading="loading"
:disabled="loading || disabled"
@click="handleSave"
>
{{ saveText }}
</el-button>
</div>
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
const props = defineProps({
// 是否显示保存按钮
showSave: {
type: Boolean,
default: false,
},
// 保存按钮文本
saveText: {
type: String,
default: "保存",
},
// 是否禁用保存按钮
disabled: {
type: Boolean,
default: false,
},
// 是否显示loading状态
loading: {
type: Boolean,
default: false,
},
});
const emit = defineEmits(['save', 'back']);
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const handleBack = () => {
emit('back');
router.back();
};
const handleSave = () => {
emit('save');
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.add-project-back { .add-project-back {
...@@ -38,6 +83,13 @@ const router = useRouter(); ...@@ -38,6 +83,13 @@ const router = useRouter();
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
color: rgba(51, 51, 51, 1); color: rgba(51, 51, 51, 1);
flex: 1;
}
.back-actions {
margin-left: auto;
display: flex;
gap: 10px;
} }
} }
</style> </style>
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content-wrapper"> <div class="project-tab-content-wrapper">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content-wrapper"> <div class="project-tab-content-wrapper">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content-wrapper"> <div class="project-tab-content-wrapper">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<el-tabs v-model="pageActiveName" type="border-card"> <el-tabs v-model="pageActiveName" type="border-card">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content-wrapper"> <div class="project-tab-content-wrapper">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack></routerBack> <routerBack
:show-save="
!loading &&
!isPreview &&
(!formData.projectLzType ||
['1', '5', '7', '9'].includes(formData.projectLzType.toString()))
"
:loading="loading"
@save="() => saveClick('save')"
></routerBack>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<el-tabs v-model="jcTabActiveName"> <el-tabs v-model="jcTabActiveName">
...@@ -2638,234 +2647,19 @@ ...@@ -2638,234 +2647,19 @@
</el-table> </el-table>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="核心边界条件" name="核心边界条件"> <el-collapse-item title="核心边界条件" name="核心边界条件">
<div class="tab-handle"> <DynamicTable
<el-button v-model="jcHxbjtjData"
type="primary" :columns="boundaryColumns"
size="small" :default-row="boundaryDefaultRow"
@click="addJchxbjtj" :select-options="boundarySelectOptions"
>新增</el-button :show-add-button="true"
> :show-delete-button="true"
</div> :show-import-export="true"
<el-table :scrollbar-always-on="true"
:data="jcHxbjtjData" :disabled="isPreview"
style="width: 100%" />
empty-text="暂无数据"
border
>
<el-table-column type="index" width="50" />
<el-table-column
prop="type"
label="业务类型"
width="130"
>
<template #default="scope">
<el-select
v-model="scope.row.type"
placeholder="请选择"
no-data-text="暂无数据"
clearable
>
<el-option
v-for="item in hxbjtjlxlxList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="单位工程造价">
<el-table-column
prop="dwgczjSz"
label="数值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.dwgczjSz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="dwgczjDw"
label="单位"
width="130"
>
<template #default="scope">
<el-select
v-model="scope.row.dwgczjDw"
placeholder="请选择"
no-data-text="暂无数据"
clearable
>
<el-option
v-for="item in hxbjtjzjdwList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="销售/服务能力">
<el-table-column
prop="xsfwnlSz"
label="数值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.xsfwnlSz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="xsfwnlDw"
label="单位"
width="60"
/>
</el-table-column>
<el-table-column label="年均负荷率">
<el-table-column
prop="njfhlSz"
label="数值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.njfhlSz"
:min="0"
:max="99999.99"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="njfhlDw"
label="单位"
width="60"
/>
</el-table-column>
<el-table-column label="单位生产/服务总成本">
<el-table-column
prop="dwscfwzcbSz"
label="数值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.dwscfwzcbSz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="dwscfwzcbDw"
label="单位"
width="60"
/>
</el-table-column>
<el-table-column label="单位售价(含税)">
<el-table-column
prop="dwsjSz"
label="数值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.dwsjSz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="dwsjDw"
label="单位"
width="90"
>
<template #default="scope">
<el-input v-model="scope.row.dwsjDw" />
</template>
</el-table-column>
</el-table-column>
<el-table-column label="盈亏平衡点">
<el-table-column
prop="ykphdlx"
label="类型"
width="130"
>
<template #default="scope">
<el-select
v-model="scope.row.ykphdlx"
placeholder="请选择"
no-data-text="暂无数据"
clearable
>
<el-option
v-for="item in hxbjtjykphdlxList"
:key="item.key"
:label="item.name"
:value="item.key"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="ykphdsz"
label="数值"
width="180"
>
<template #default="scope">
<el-input-number
v-model="scope.row.ykphdsz"
:min="0"
:max="99999999999.99999999"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column
prop="ykphddw"
label="单位"
width="60"
/>
</el-table-column>
<el-table-column
prop="bcsm"
label="核心边界条件补充说明"
width="180"
>
<template #default="scope">
<el-input
v-model="scope.row.bcsm"
type="textarea"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="60" fixed="right">
<template #default="scope">
<el-button
link
type="danger"
size="small"
@click="deleteJchxbjtj(scope.$index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-collapse-item> </el-collapse-item>
<el-collapse-item <el-collapse-item
title="决策主体审核情况" title="决策主体审核情况"
name="决策主体审核情况" name="决策主体审核情况"
...@@ -3445,6 +3239,7 @@ import { ElMessage, ElMessageBox } from "element-plus"; ...@@ -3445,6 +3239,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
import { useUserStore } from "@/stores/user.js"; import { useUserStore } from "@/stores/user.js";
import routerBack from "@/components/common/routerBack.vue"; import routerBack from "@/components/common/routerBack.vue";
import CollapseNavigation from "@/components/CollapseNavigation/index.vue"; import CollapseNavigation from "@/components/CollapseNavigation/index.vue";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
import _ from "lodash"; import _ from "lodash";
import Decimal from "decimal.js"; import Decimal from "decimal.js";
...@@ -4261,19 +4056,63 @@ let jcCwpjzbData = reactive([ ...@@ -4261,19 +4056,63 @@ let jcCwpjzbData = reactive([
}, },
]); ]);
// ========== 核心边界条件表格配置 ==========
// 列配置(保持原有数据结构,使用autocomplete)
const boundaryColumns = ref([
{
prop: "type",
label: "边界条件名称",
type: "autocomplete",
placeholder: "请选择边界条件名称",
optionKey: "bjtjmc",
minWidth: 130,
},
{
prop: "dwgczjSz",
label: "数值",
type: "number",
placeholder: "请输入数值",
minWidth: 140,
},
{
prop: "dwgczjDw",
label: "单位",
type: "input",
placeholder: "请输入或选择单位",
optionKey: "hxbjtjzjdw",
minWidth: 130,
},
]);
// 核心边界条件默认行数据(保持原有字段)
const boundaryDefaultRow = ref({
type: "",
dwgczjSz: null,
dwgczjDw: "",
xsfwnlSz: null,
xsfwnlDw: "万元",
njfhlSz: null,
njfhlDw: "%",
dwscfwzcbSz: null,
dwscfwzcbDw: "万元",
dwsjSz: null,
dwsjDw: "",
ykphdlx: "",
ykphdsz: null,
ykphddw: "%",
bcsm: "",
});
// 下拉选择框选项配置(使用computed确保引用正确)
const boundarySelectOptions = computed(() => ({
hxbjtjlxlx: hxbjtjlxlxList,
hxbjtjzjdw: hxbjtjzjdwList,
hxbjtjykphdlx: hxbjtjykphdlxList,
}));
// 核心边界条件 // 核心边界条件
let jcHxbjtjData = reactive([]); let jcHxbjtjData = ref([]);
const addJchxbjtj = () => {
jcHxbjtjData.push({
njfhlDw: "%",
ykphddw: "%",
xsfwnlDw: "万元",
dwscfwzcbDw: "万元",
});
};
const deleteJchxbjtj = (index) => {
jcHxbjtjData.splice(index, 1);
};
// 决策主体审核情况 // 决策主体审核情况
let jcztshqkData = reactive([]); let jcztshqkData = reactive([]);
const addJcztshqk = () => { const addJcztshqk = () => {
...@@ -4766,7 +4605,7 @@ const changeJcTzznyjfl = (val) => { ...@@ -4766,7 +4605,7 @@ const changeJcTzznyjfl = (val) => {
let hylxList = reactive([]); // 会议类型 let hylxList = reactive([]); // 会议类型
let jcspyjlx = reactive([]); // 决策审批意见类型 let jcspyjlx = reactive([]); // 决策审批意见类型
let isPreview = !!route.query.isPreview; const isPreview = ref(!!route.query.isPreview);
let projectId = route.query.projectId; let projectId = route.query.projectId;
const getProjectInfo = () => { const getProjectInfo = () => {
loading.value = true; loading.value = true;
...@@ -4788,7 +4627,6 @@ const getProjectInfo = () => { ...@@ -4788,7 +4627,6 @@ const getProjectInfo = () => {
Object.assign(zcclData.value, data.lxzl); Object.assign(zcclData.value, data.lxzl);
Object.assign(tzzeqkjData, data.projectXmtzzes); Object.assign(tzzeqkjData, data.projectXmtzzes);
Object.assign(cwpjzbData, data.projectCwpjzbs); Object.assign(cwpjzbData, data.projectCwpjzbs);
Object.assign(hxbjtjData, data.projectBjtjs);
Object.assign(lxpfwjData.value, data.lxpfwj); Object.assign(lxpfwjData.value, data.lxpfwj);
Object.assign(spyjTableData, data.projectSpyjs); Object.assign(spyjTableData, data.projectSpyjs);
Object.assign(shclData.value, data.xgshcl); Object.assign(shclData.value, data.xgshcl);
...@@ -4832,9 +4670,9 @@ const getProjectInfo = () => { ...@@ -4832,9 +4670,9 @@ const getProjectInfo = () => {
Object.assign(tpzcclData.value, jcData.qtxgzccl); Object.assign(tpzcclData.value, jcData.qtxgzccl);
Object.assign(tpbczcclData.value, jcData.bcxgzccl); Object.assign(tpbczcclData.value, jcData.bcxgzccl);
Object.assign(shyaData.value, jcData.shya); Object.assign(shyaData.value, jcData.shya);
Object.assign(jcHxbjtjData.value, jcData.projectBjtjs);
Object.assign(jcTzzeqkjData, jcData.projectXmtzzes); Object.assign(jcTzzeqkjData, jcData.projectXmtzzes);
Object.assign(jcCwpjzbData, jcData.projectCwpjzbs); Object.assign(jcCwpjzbData, jcData.projectCwpjzbs);
Object.assign(jcHxbjtjData, jcData.projectBjtjs);
Object.assign(jcztshqkData, jcData.projectJczts); Object.assign(jcztshqkData, jcData.projectJczts);
Object.assign(tzztshqkData, jcData.projectTzzts); Object.assign(tzztshqkData, jcData.projectTzzts);
Object.assign(jcspyjData, jcData.projectSpyjs); Object.assign(jcspyjData, jcData.projectSpyjs);
...@@ -5063,6 +4901,7 @@ const getLrbData = () => { ...@@ -5063,6 +4901,7 @@ const getLrbData = () => {
} }
}; };
// 保存数据 // 保存数据
const saveClick = (type) => { const saveClick = (type) => {
if (!formData.projectLzType || formData.projectLzType.toString() === "1") { if (!formData.projectLzType || formData.projectLzType.toString() === "1") {
let url = formData.id let url = formData.id
...@@ -5079,7 +4918,6 @@ const saveClick = (type) => { ...@@ -5079,7 +4918,6 @@ const saveClick = (type) => {
lxzl: zcclData.value, lxzl: zcclData.value,
projectXmtzzes: tzzeqkjData, projectXmtzzes: tzzeqkjData,
projectCwpjzbs: cwpjzbData, projectCwpjzbs: cwpjzbData,
projectBjtjs: hxbjtjData,
lxpfwj: lxpfwjData.value, lxpfwj: lxpfwjData.value,
projectSpyjs: spyjTableData, projectSpyjs: spyjTableData,
xgshcl: shclData.value, xgshcl: shclData.value,
...@@ -5116,7 +4954,7 @@ const saveClick = (type) => { ...@@ -5116,7 +4954,7 @@ const saveClick = (type) => {
shya: shyaData.value, shya: shyaData.value,
projectXmtzzes: jcTzzeqkjData, projectXmtzzes: jcTzzeqkjData,
projectCwpjzbs: jcCwpjzbData, projectCwpjzbs: jcCwpjzbData,
projectBjtjs: jcHxbjtjData, projectBjtjs: jcHxbjtjData.value,
projectJczts: jcztshqkData, projectJczts: jcztshqkData,
projectTzzts: tzztshqkData, projectTzzts: tzztshqkData,
projectSpyjs: jcspyjData, projectSpyjs: jcspyjData,
...@@ -5172,7 +5010,7 @@ const saveClick = (type) => { ...@@ -5172,7 +5010,7 @@ const saveClick = (type) => {
shya: shyaData.value, shya: shyaData.value,
projectXmtzzes: jcTzzeqkjData, projectXmtzzes: jcTzzeqkjData,
projectCwpjzbs: jcCwpjzbData, projectCwpjzbs: jcCwpjzbData,
projectBjtjs: jcHxbjtjData, projectBjtjs: jcHxbjtjData.value,
projectJczts: jcztshqkData, projectJczts: jcztshqkData,
projectTzzts: tzztshqkData, projectTzzts: tzztshqkData,
projectSpyjs: jcspyjData, projectSpyjs: jcspyjData,
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack /> <routerBack
:show-save="!loading && !isPreview"
:loading="loading"
@save="saveClick"
/>
<div class="tabs-content"> <div class="tabs-content">
<div class="project-tab-content"> <div class="project-tab-content">
<div class="tab-content"> <div class="tab-content">
......
<template> <template>
<div class="add-project-container"> <div class="add-project-container">
<div class="add-project-content" v-loading="loading"> <div class="add-project-content" v-loading="loading">
<routerBack></routerBack> <routerBack
:show-save="!loading && !isPreview && (!formData.projectLzType || ['1', '5', '7'].includes(formData.projectLzType.toString()))"
:loading="loading"
@save="() => saveClick('save')"
></routerBack>
<div class="tabs-content"> <div class="tabs-content">
<el-tabs v-model="pageActiveName" type="border-card"> <el-tabs v-model="pageActiveName" type="border-card">
<el-tab-pane label="立项填报" name="立项填报"> <el-tab-pane label="立项填报" name="立项填报">
......
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