明树Git Lab

Commit 65fe1aeb authored by zhanghan's avatar zhanghan
parents 5030a59b 1502b2cb
Pipeline #106379 passed with stage
in 17 seconds
......@@ -103,7 +103,19 @@ const routes = [
title: "新增投资控制",
component: () => import("@/views/investingManage/addControl.vue"),
},
],
{
path: "/majorRisk",
name: "majorRisk",
title: "重大风险防控",
component: () => import("@/views/investingManage/majorRisk.vue")
},
{
path: "/addRisk",
name: "addRisk",
title: "新增重大风险",
component: () => import("@/views/investingManage/addRisk.vue")
}
]
},
{
path: "/templateManage",
......
This diff is collapsed.
<template>
<div class="add-project-container">
<div class="add-project-content" v-loading="loading">
<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 class="tabs-content">
<div class="project-tab-content">
<div class="tab-content">
<el-form :model="formData" :label-width="120" :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="暂无数据">
<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="12">
<el-form-item label="项目名称">
<el-input v-model="formData.projectName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="直属企业">
<el-input v-model="formData.zsqy"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目公司全称">
<el-input v-model="formData.xmgsqc"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="境内/外">
<el-select v-model="formData.jnw" placeholder="请选择" no-data-text="暂无数据"
@change="changeJnw"
>
<el-option v-for="item in jnwList" :key="item.key"
:label="item.value" :value="item.key"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="省(境内)/洲际(境外)" :label-width="180">
<el-select v-model="formData.sjnzjjw" placeholder="请选择" no-data-text="暂无数据"
@change="changeSzj"
>
<el-option v-for="item in szjList" :key="item.key"
:label="item.value" :value="item.key"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="地市(境内)/国家(境外)" :label-width="190">
<el-select v-model="formData.dsjngjjw" placeholder="请选择" no-data-text="暂无数据">
<el-option v-for="item in dsgjList" :key="item.key"
:label="item.value" :value="item.key"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { reactive, ref, onMounted, getCurrentInstance, h } 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();
let token = ref("");
token.value = userStore.authToken || sessionStorage.getItem("authToken") || "";
const activeCollapse = reactive([
"基本信息"
]);
let formData = reactive({});
let loading = ref(false);
let isPreview = !!route.query.isPreview;
let riskId = route.query.riskId;
const getRiskInfo = () => {
loading.value = true;
proxy.$post({
url: "/api/project/getTzkzInfo",
data: {
id: riskId
},
callback: (res) => {
loading.value = false;
Object.assign(formData, res);
}
});
};
// 项目列表
let projectList = ref([]);
const getProjectData = () => {
proxy.$post({
url: "/api/project/listProject",
data: {
page: 1,
pagesize: 1000,
attributes: [],
menuType: "xmjc"
},
callback: (data) => {
projectList.value = data.rows;
}
})
};
let jnwList = reactive([]); // 境内/外 // 级联
let szjList = ref([]); // 省(境内)/洲际(境外) // 级联
let dsgjList = ref([]); // 地市(境内)/国家(境外) // 级联
onMounted(() => {
getProjectData();
let resourceData = JSON.parse(sessionStorage.getItem("resourceData"));
jnwList = resourceData.dqlx;
if (riskId) {
getRiskInfo();
}
});
const changeJnw = (val) => {
if (val || val === 0) {
let selectData = jnwList.filter(item => item.key == val);
szjList.value = selectData[0] && selectData[0].children || [];
dsgjList.value = [];
qxgjList.value = [];
delete formData.sjnzjjw;
delete formData.dsjngjjw;
}
};
const changeSzj = (val) => {
if (val || val === 0) {
let selectData = szjList.value.filter(item => item.key == val);
dsgjList.value = selectData[0] && selectData[0].children || [];
qxgjList.value = [];
delete formData.dsjngjjw;
}
}
const backClick = () => {
router.back(-1)
}
const saveClick = () => {
if (!formData.projectId) {
return ElMessage.warning("请选择项目信息");
}
let url = formData.id ? "updateZdfx" : "createZdfx";
proxy.$post({
url: "/api/project/" + url,
data: {
...formData
},
callback: (data) => {
router.back(-1)
}
});
}
</script>
\ No newline at end of file
<template>
<div class="manage-container">
<div class="manage-wrap">
<div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="addRisk">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
<common-table
:autoHeight="true"
:maxRows="10"
:data="tableData"
:columns="tableColumns"
:total="total"
:current-page="currentPage"
:page-size="pageSize"
:index="true"
:indexLabel="'序号'"
title=""
:border="true"
@size-change="handleSizeChange"
@current-page-change="handleCurrentPageChange"
>
<template #operations="{ row, index }">
<el-button link type="primary" size="small" @click="previewRisk(row)">查看</el-button>
<el-button link type="primary" size="small" @click="editRisk(row)">编辑</el-button>
<el-button link type="danger" size="small" @click="deleteRisk(row)">删除</el-button>
</template>
</common-table>
</div>
</div>
</div>
</template>
<script setup>
import { ref, onMounted, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
const router = useRouter();
const { proxy } = getCurrentInstance();
let tableData = ref([]);
let tableColumns = ref([
{
prop: "projectName",
label: "项目名称",
showOverflowTooltip: true
},
{
prop: "zsqy",
label: "直属企业",
showOverflowTooltip: true
},
{
prop: "operations",
label: "操作",
width: 170,
slot: "operations",
fixed: "right",
align: "center"
}
]);
let loading = ref(false);
let total = ref(0);
let currentPage = ref(1);
let pageSize = ref(10);
// 获取列表数据
const getRiskData = () => {
loading.value = true;
proxy.$post({
url: "/api/project/getZdfxList",
data: {
page: currentPage.value,
pagesize: pageSize.value
},
callback: (data) => {
tableData.value = data.rows;
total.value = data.count;
loading.value = false;
}
})
};
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
currentPage.value = 1;
getRiskData();
}
const handleCurrentPageChange = (page) => {
currentPage.value = page;
getRiskData();
}
const addRisk = () => {
router.push("/addRisk");
};
const editRisk = (item) => {
router.push({
name: "addRisk",
query: {
controlId: item.id
}
});
};
const previewRisk = (item) => {
router.push({
name: "addRisk",
query: {
isPreview: true,
riskId: item.id
}
})
}
const deleteRisk = (item) => {
ElMessageBox.confirm("确认删除该项?", "提示",{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
proxy.$post({
url: "/api/project/deleteZdfx",
data: {
id: item.id
},
callback: (data) => {
ElMessage.success("删除成功");
getRiskData();
}
})
}).catch(() => {})
}
onMounted(() => {
getRiskData();
})
</script>
<style lang="less" scoped>
@import "@/styles/manage.less";
</style>
\ No newline at end of file
......@@ -34,7 +34,7 @@
</div>
</template>
<script setup>
import { ref, onMounted, getCurrentInstance } from "vue";
import { ref, reactive, onMounted, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
......@@ -43,6 +43,7 @@
const { proxy } = getCurrentInstance();
let tableData = ref([]);
let jcdwList = reactive([]);
let tableColumns = ref([
{
prop: "projectName",
......@@ -52,7 +53,11 @@
{
prop: "jcdw",
label: "决策单位",
showOverflowTooltip: true
showOverflowTooltip: true,
formatter: (row) => {
let data = jcdwList.filter(item => item.key === row.jcdw)[0]
return row.jcdw && data ? data.name : row.jcdw;
}
},
{
prop: "operations",
......@@ -133,6 +138,8 @@
}
onMounted(() => {
getControlData();
let resourceData = JSON.parse(sessionStorage.getItem("resourceData"));
jcdwList = resourceData.jcdw;
})
</script>
<style scoped lang="less">
......
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