明树Git Lab

Commit fdd5c7c6 authored by zhanghan's avatar zhanghan

封装全局的js文件方便下次修改

parent c247fd5e
Pipeline #109906 passed with stage
in 20 seconds
import { ref } from "vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
/**
* 详情页通用逻辑:加载缓存项目信息 + 控制项目选择禁用状态
* @returns {{ projectDisabled: import('vue').Ref<boolean>, cachedInfo: object|null }}
*/
export function useProjectDetail() {
const store = useProjectInfoStore();
const projectDisabled = ref(false);
const cachedInfo = store.loadProjectInfo();
if (cachedInfo) {
projectDisabled.value = true;
}
return { projectDisabled, cachedInfo };
}
import { computed, onMounted } from "vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
/**
* 列表页通用逻辑:项目信息缓存清理/筛选 + 新增按钮权限
* @param {string|number} projectLzType - 项目流转类型(来自 defineProps)
* @param {Function} getDataFn - 获取列表数据的函数,接收 params 对象
* @returns {{ showAddBtn: import('vue').ComputedRef<boolean> }}
*/
export function useProjectList(projectLzType, getDataFn) {
const store = useProjectInfoStore();
const showAddBtn = computed(() => !projectLzType || projectLzType == 9);
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
store.clearProjectInfo();
getDataFn();
} else {
getDataFn({
projectId: store.getProjectInfo.projectId,
});
}
});
return { showAddBtn };
}
......@@ -8,7 +8,7 @@
<el-button
type="primary"
@click="evaluateAdd"
v-if="!projectLzType || projectLzType == 9"
v-if="showAddBtn"
>新增</el-button
>
</div>
......@@ -59,12 +59,12 @@
</template>
<script setup>
import { ref, onMounted, getCurrentInstance } from "vue";
import { ref, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -139,6 +139,7 @@ const getProjectData = (params = {}) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -189,14 +190,6 @@ const deleteStatement = (item) => {
})
.catch(() => {});
};
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
</script>
<style scoped lang="less"></style>
......@@ -177,7 +177,7 @@ import FileUploader from "../../components/FileUploader/index.vue";
// 引入增强后的DynamicTable组件
import DynamicTable from "../../components/FormDynamicTable/index.vue";
import routerBack from "@/components/common/routerBack.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
// 初始化全局变量
const router = useRouter();
const route = useRoute();
......@@ -291,7 +291,7 @@ const formData = reactive({
// 加载状态
const loading = ref(false);
const projectDisabled = ref(false);
const { projectDisabled, cachedInfo } = useProjectDetail();
// 是否预览模式
const isPreview = ref(!!route.query.isPreview);
// 项目列表数据
......@@ -392,11 +392,9 @@ let options = ref();
// 页面初始化
onMounted(() => {
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
try {
options.value = JSON.parse(sessionStorage.getItem("resourceData")) || {};
......
......@@ -5,7 +5,7 @@
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="investmentCecoveryAdd" v-if="!projectLzType || projectLzType == 9"
<el-button type="primary" @click="investmentCecoveryAdd" v-if="showAddBtn"
>新增</el-button
>
</div>
......@@ -56,12 +56,12 @@
</template>
<script setup>
import { ref, onMounted, getCurrentInstance } from "vue";
import { ref, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -179,6 +179,7 @@ const getProjectData = (params = {}) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -229,16 +230,6 @@ const deleteStatement = (item) => {
})
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
</script>
<style scoped lang="less"></style>
......@@ -541,7 +541,7 @@ import FinancialTable from "@/components/FinancialTable.vue";
import InvestmentRecoveryTable from "@/components/InvestmentRecoveryTable.vue";
import routerBack from "@/components/common/routerBack.vue";
import CollapseNavigation from "@/components/CollapseNavigation/index.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
const transferColumns = ref([
{
prop: "njfcgbl",
......@@ -1301,7 +1301,7 @@ const changeProject = (val) => {
};
// 加载状态
const loading = ref(false);
const projectDisabled = ref(false);
const { projectDisabled, cachedInfo } = useProjectDetail();
// 是否预览模式
const isPreview = ref(!!route.query.isPreview);
// 项目列表数据
......@@ -1387,11 +1387,9 @@ const saveClick = () => {
onMounted(() => {
// 获取项目列表
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
options.value = JSON.parse(sessionStorage.getItem("resourceData"));
// 如果有ID则加载详情
......
......@@ -5,7 +5,7 @@
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="runningPeriodAdd" v-if="!projectLzType || projectLzType == 9">新增</el-button>
<el-button type="primary" @click="runningPeriodAdd" v-if="showAddBtn">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
......@@ -54,12 +54,12 @@
</template>
<script setup>
import { ref, onMounted, getCurrentInstance } from "vue";
import { ref, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -109,6 +109,7 @@ const getProjectData = (params = {}) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -159,16 +160,6 @@ const deleteStatement = (item) => {
})
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
</script>
<style scoped lang="less"></style>
......@@ -86,7 +86,7 @@ import { useRouter, useRoute } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import DynamicTable from "@/components/FormDynamicTable/index.vue"; // 引入通用组件
import routerBack from "@/components/common/routerBack.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
// 初始化全局变量
const router = useRouter();
const route = useRoute();
......@@ -198,7 +198,7 @@ const formData = reactive({
// 加载状态
const loading = ref(false);
const projectDisabled = ref(false);
const { projectDisabled, cachedInfo } = useProjectDetail();
// 是否预览模式
const isPreview = ref(!!route.query.isPreview);
// 项目列表数据
......@@ -299,11 +299,9 @@ let options = ref();
onMounted(() => {
// 获取项目列表
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
options.value = JSON.parse(sessionStorage.getItem("resourceData"));
......
......@@ -6,7 +6,7 @@
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="turnoverAdd" v-if="!projectLzType || projectLzType == 9">新增</el-button>
<el-button type="primary" @click="turnoverAdd" v-if="showAddBtn">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
......@@ -55,12 +55,12 @@
</template>
<script setup>
import { ref, onMounted, getCurrentInstance } from "vue";
import { ref, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -143,6 +143,7 @@ const getProjectData = (params = {}) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -193,16 +194,6 @@ const deleteStatement = (item) => {
})
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
</script>
<style scoped lang="less"></style>
......@@ -97,7 +97,7 @@ import { useRouter, useRoute } from "vue-router";
import { ElMessage } from "element-plus";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
import routerBack from "@/components/common/routerBack.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
// 路由与全局实例
const router = useRouter();
const route = useRoute();
......@@ -138,7 +138,7 @@ const formData = reactive({
// 状态管理
const loading = ref(false);
const projectDisabled = ref(false);
const { projectDisabled, cachedInfo } = useProjectDetail();
const isPreview = ref(!!route.query.isPreview);
const projectList = ref([]);
const rcCgqyglId = ref(route.query.id || "");
......@@ -249,11 +249,9 @@ const saveClick = () => {
// 页面初始化
onMounted(() => {
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
options.value = JSON.parse(sessionStorage.getItem("resourceData"));
if (rcCgqyglId.value) getJsqtzjcDetail();
......
......@@ -1018,12 +1018,14 @@ import FileUploader from "@/components/FileUploader/index.vue";
import routerBack from "@/components/common/routerBack.vue";
import CollapseNavigation from "@/components/CollapseNavigation/index.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
import { useUserStore } from "@/stores/user.js";
const userStore = useUserStore();
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
const { projectDisabled, cachedInfo } = useProjectDetail();
let token = ref("");
token.value = userStore.authToken || sessionStorage.getItem("authToken") || "";
......@@ -1091,7 +1093,6 @@ const handleNavClick = (item) => {
};
let formData = reactive({});
let loading = ref(false);
const projectDisabled = ref(false);
// 项目列表
let projectList = ref([]);
......@@ -1197,11 +1198,9 @@ let lyList = reactive([]); // 安全质量环保-来源列表
onMounted(() => {
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
let resourceData = JSON.parse(sessionStorage.getItem("resourceData"));
ssjdList = resourceData.ssjd;
......
......@@ -405,15 +405,16 @@ const userStore = useUserStore();
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
const { projectDisabled, cachedInfo } = useProjectDetail();
let token = ref("");
token.value = userStore.authToken || sessionStorage.getItem("authToken") || "";
import routerBack from "@/components/common/routerBack.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
const activeCollapse = reactive(["基本信息", "已发现或暴露的风险"]);
let formData = reactive({});
let loading = ref(false);
const projectDisabled = ref(false);
let isPreview = !!route.query.isPreview;
let riskId = route.query.riskId;
const getRiskInfo = () => {
......@@ -468,11 +469,9 @@ let tzbkProps = {
let xmlxList = ref([]); //项目类型
onMounted(() => {
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
let resourceData = JSON.parse(sessionStorage.getItem("resourceData"));
jnwList = resourceData.dqlx;
......
......@@ -740,10 +740,13 @@ 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";
import { useProjectDetail } from "@/composables/useProjectDetail";
const userStore = useUserStore();
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
const { projectDisabled, cachedInfo } = useProjectDetail();
import FileUploader from "@/components/FileUploader/index.vue";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
const transferColumns1 = ref([
......@@ -809,7 +812,6 @@ const pageActiveName = ref("投资目标责任书");
let token = ref("");
token.value = userStore.authToken || sessionStorage.getItem("authToken") || "";
import routerBack from "@/components/common/routerBack.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
const activeCollapse = reactive([
"责任书基本信息",
......@@ -901,7 +903,6 @@ const deletePfyjlsqk = (index) => {
};
let isPreview = !!route.query.isPreview;
const projectDisabled = ref(false);
let statementId = route.query.statementId;
// 查看编辑详情
const getStatementInfo = () => {
......@@ -932,11 +933,9 @@ const getStatementInfo = () => {
};
onMounted(() => {
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
let resourceData = JSON.parse(sessionStorage.getItem("resourceData"));
zrslxList = resourceData.level;
......
......@@ -5,7 +5,7 @@
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="bigIssuesAdd" v-if="!projectLzType || projectLzType == 9">新增</el-button>
<el-button type="primary" @click="bigIssuesAdd" v-if="showAddBtn">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
......@@ -59,7 +59,7 @@ import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -145,6 +145,7 @@ const getProjectData = (params = {}) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -195,16 +196,6 @@ const deleteStatement = (item) => {
})
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
</script>
<style scoped lang="less"></style>
......@@ -239,12 +239,14 @@ import { useRouter, useRoute } from "vue-router";
import { ElMessage } from "element-plus";
import FileUploader from "../../components/FileUploader/index.vue";
import routerBack from "@/components/common/routerBack.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
// 初始化全局变量
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
const { projectDisabled, cachedInfo } = useProjectDetail();
const customColumnsJs = [
{
prop: "js",
......@@ -279,7 +281,6 @@ const formData = reactive({
// 加载状态
const loading = ref(false);
const projectDisabled = ref(false);
// 是否预览模式
const isPreview = ref(!!route.query.isPreview);
// 项目列表数据
......@@ -380,11 +381,9 @@ const saveClick = () => {
onMounted(() => {
// 获取项目列表
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
if (rcCgqyglId.value) {
getJsqtzjcDetail();
......
......@@ -5,7 +5,7 @@
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="constructionAdd" v-if="!projectLzType || projectLzType == 9">新增</el-button>
<el-button type="primary" @click="constructionAdd" v-if="showAddBtn">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
......@@ -59,7 +59,7 @@ import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -110,6 +110,7 @@ const getProjectData = (params = {}) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -160,16 +161,6 @@ const deleteStatement = (item) => {
})
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
</script>
<style scoped lang="less"></style>
......@@ -317,13 +317,15 @@ import { useRouter, useRoute } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import FileUploader from "../../components/FileUploader/index.vue";
import routerBack from "@/components/common/routerBack.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
// 初始化全局变量
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
const { projectDisabled, cachedInfo } = useProjectDetail();
// 折叠面板默认展开项
const activeCollapse = ref(["基本信息", "投资(成本)分析会资料", "专项检查"]);
......@@ -338,7 +340,6 @@ const formData = reactive({
// 加载状态
const loading = ref(false);
const projectDisabled = ref(false);
// 是否预览模式
const isPreview = ref(!!route.query.isPreview);
// 项目列表数据
......@@ -485,11 +486,9 @@ let options = ref();
onMounted(() => {
// 获取项目列表
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
options.value = JSON.parse(sessionStorage.getItem("resourceData"));
......
......@@ -6,7 +6,7 @@
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="constructionTimeAdd"
v-if="!projectLzType || projectLzType == 9"
v-if="showAddBtn"
>新增</el-button
>
</div>
......@@ -62,7 +62,7 @@ import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -118,6 +118,7 @@ const getProjectData = (params = {}) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -168,16 +169,6 @@ const deleteStatement = (item) => {
})
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
</script>
<style scoped lang="less"></style>
......@@ -541,7 +541,7 @@ import FinancialTable from "@/components/FinancialTable.vue";
import InvestmentRecoveryTable from "@/components/InvestmentRecoveryTable.vue";
import routerBack from "@/components/common/routerBack.vue";
import CollapseNavigation from "@/components/CollapseNavigation/index.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
// 接收父组件传递的 isPreview prop
const props = defineProps({
......@@ -600,6 +600,8 @@ const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
const { projectDisabled, cachedInfo } = useProjectDetail();
// ========== 导航配置(由 v-collapse-nav 指令自动生成) ==========
const navigationItems = ref([]);
......@@ -1303,7 +1305,6 @@ const changeProject = (val) => {
};
// 加载状态
const loading = ref(false);
const projectDisabled = ref(false);
// 是否预览模式 - 优先使用父组件传递的 prop,否则从路由参数读取
const isPreview = computed(() => {
// 如果父组件显式传递了 isPreview prop,使用 prop 的值
......@@ -1396,11 +1397,9 @@ const saveClick = () => {
onMounted(() => {
// 获取项目列表
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
options.value = JSON.parse(sessionStorage.getItem("resourceData"));
// 如果有ID则加载详情
......
......@@ -79,7 +79,7 @@ import { useRouter } from "vue-router";
import { useUserStore } from "@/stores/user.js";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -177,16 +177,7 @@ const getProjectData = (params = {}) => {
},
});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......
......@@ -3230,10 +3230,12 @@ import DynamicTable from "@/components/FormDynamicTable/index.vue";
import _ from "lodash";
import Decimal from "decimal.js";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
const { projectDisabled, cachedInfo } = useProjectDetail();
const userStore = useUserStore();
let token = ref("");
token.value = userStore.authToken || sessionStorage.getItem("authToken") || "";
......@@ -3310,7 +3312,6 @@ const jcpfcollapse = reactive([
let formData = reactive({});
let jcFormData = reactive({});
let loading = ref(false);
const projectDisabled = ref(false);
// 单选框点击事件
const radioClick = (value, key) => {
if (formData[key] !== value) {
......@@ -4699,11 +4700,9 @@ const getProjectInfo = () => {
let resourceData = null;
onMounted(() => {
projectId && getProjectInfo();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
resourceData = JSON.parse(sessionStorage.getItem("resourceData"));
zyList = resourceData.zyfzy;
......
......@@ -5,7 +5,7 @@
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="addRisk" v-if="!projectLzType || projectLzType == 9">新增</el-button>
<el-button type="primary" @click="addRisk" v-if="showAddBtn">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
......@@ -51,7 +51,7 @@ import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -105,6 +105,7 @@ const getProjectData = (params) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -155,15 +156,5 @@ const deleteRisk = (item) => {
})
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
</script>
<style lang="less" scoped></style>
......@@ -5,7 +5,7 @@
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="annualAdd" v-if="!projectLzType || projectLzType == 9">新增</el-button>
<el-button type="primary" @click="annualAdd" v-if="showAddBtn">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
......@@ -59,7 +59,7 @@ import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -136,6 +136,7 @@ const getProjectData = (params = {}) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -186,16 +187,6 @@ const deleteStatement = (item) => {
})
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
</script>
<style scoped lang="less"></style>
......@@ -800,7 +800,7 @@ import { ElMessage } from "element-plus";
import DynamicTable from "@/components/FormDynamicTable/index.vue";
import FileUploader from "@/components/FileUploader/index.vue";
import routerBack from "@/components/common/routerBack.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectDetail } from "@/composables/useProjectDetail";
const transferColumns = ref([
{
prop: "njfcgbl",
......@@ -871,6 +871,8 @@ const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
const { projectDisabled, cachedInfo } = useProjectDetail();
// ========== 基础配置 ==========
const activeCollapse = ref([
"基本信息",
......@@ -884,7 +886,6 @@ const activeCollapse = ref([
"财务评价指标",
]);
const loading = ref(false);
const projectDisabled = ref(false);
const isPreview = ref(!!route.query.isPreview);
const projectList = ref([]);
const rcCgqyglId = ref(route.query.id || "");
......@@ -1206,11 +1207,9 @@ const backClick = () => router.back(-1);
onMounted(() => {
getProjectData();
const cachedInfo = useProjectInfoStore().loadProjectInfo();
if (cachedInfo) {
formData.projectName = cachedInfo.projectName || "";
formData.projectId = cachedInfo.projectId || "";
projectDisabled.value = true;
}
// 非预览状态下自动弹出类型选择弹窗
......
......@@ -5,7 +5,7 @@
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="addControl" v-if="!projectLzType || projectLzType == 9">新增</el-button>
<el-button type="primary" @click="addControl" v-if="showAddBtn">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
......@@ -58,7 +58,7 @@ import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -119,6 +119,7 @@ const getProjectData = (params) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -170,14 +171,6 @@ const deleteControl = (item) => {
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
let resourceData = JSON.parse(sessionStorage.getItem("resourceData"));
jcdwList = resourceData.jcdw;
});
......
......@@ -5,7 +5,7 @@
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="addStatement" v-if="!projectLzType || projectLzType == 9">新增</el-button>
<el-button type="primary" @click="addStatement" v-if="showAddBtn">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
......@@ -59,7 +59,7 @@ import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
import SearchForm from "@/components/common/SearchForm.vue";
import { useProjectInfoStore } from "@/stores/projectInfo";
import { useProjectList } from "@/composables/useProjectList";
const { projectLzType } = defineProps({
projectLzType: [String, Number],
......@@ -131,6 +131,7 @@ const getProjectData = (params) => {
},
});
};
const { showAddBtn } = useProjectList(projectLzType, getProjectData);
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
......@@ -181,16 +182,6 @@ const deleteStatement = (item) => {
})
.catch(() => {});
};
onMounted(() => {
if (!window.location.href.includes("xmdakDetaill")) {
useProjectInfoStore().clearProjectInfo();
getProjectData();
} else {
getProjectData({
projectId: useProjectInfoStore().getProjectInfo.projectId,
});
}
});
</script>
<style scoped lang="less"></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