明树Git Lab

Commit 4dac1ac3 authored by yangyajing's avatar yangyajing

投资目标责任书数据对接,资源库管理调整

parent 0b12acf2
Pipeline #106049 passed with stage
in 16 seconds
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
"element-plus": "^2.11.8", "element-plus": "^2.11.8",
"less-loader": "^12.3.0", "less-loader": "^12.3.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"moment": "^2.30.1",
"pinia": "^3.0.4", "pinia": "^3.0.4",
"vue": "^3.5.24", "vue": "^3.5.24",
"vue-router": "^4.6.3", "vue-router": "^4.6.3",
...@@ -1525,6 +1526,15 @@ ...@@ -1525,6 +1526,15 @@
"version": "3.0.1", "version": "3.0.1",
"license": "MIT" "license": "MIT"
}, },
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.11", "version": "3.3.11",
"funding": [ "funding": [
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
"element-plus": "^2.11.8", "element-plus": "^2.11.8",
"less-loader": "^12.3.0", "less-loader": "^12.3.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"moment": "^2.30.1",
"pinia": "^3.0.4", "pinia": "^3.0.4",
"vue": "^3.5.24", "vue": "^3.5.24",
"vue-router": "^4.6.3", "vue-router": "^4.6.3",
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
v-model="dialogVisible" v-model="dialogVisible"
width="50%" width="50%"
:before-close="handleClose" :before-close="handleClose"
:close-on-click-modal="false" :close-on-press-escape="false"
> >
<commonTable <commonTable
:data="tableData" :data="tableData"
......
...@@ -11,12 +11,14 @@ import "./assets/fonts/font.less"; // 字体样式 ...@@ -11,12 +11,14 @@ import "./assets/fonts/font.less"; // 字体样式
import "../public/iconFont/iconfont.css"; // 图标字体样式 import "../public/iconFont/iconfont.css"; // 图标字体样式
import { $get, $post } from "@/data/https.js"; import { $get, $post } from "@/data/https.js";
import windowConfig from "@/window"; import windowConfig from "@/window";
import moment from "moment";
const pinia = createPinia() const pinia = createPinia()
const app = createApp(App) const app = createApp(App)
app.config.globalProperties.$get = $get; app.config.globalProperties.$get = $get;
app.config.globalProperties.$post = $post; app.config.globalProperties.$post = $post;
app.config.globalProperties.windowConfig = windowConfig; app.config.globalProperties.windowConfig = windowConfig;
app.config.globalProperties.moment = moment;
for (const [key, component] of Object.entries(ElIcons)) { for (const [key, component] of Object.entries(ElIcons)) {
app.component(key, component) app.component(key, component)
} }
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
.header-left{ .header-left{
flex: 1; flex: 1;
width: 0; width: 0;
.el-input{ .el-input, .el-select{
width: 220px; width: 220px;
} }
} }
...@@ -216,8 +216,8 @@ ...@@ -216,8 +216,8 @@
overflow: auto; overflow: auto;
position: relative; position: relative;
.el-tree { .el-tree {
max-height: 700px; // max-height: 700px;
overflow-y: auto; // overflow-y: auto;
// 只有当内容超过700px时才显示滚动条 // 只有当内容超过700px时才显示滚动条
&:not(:hover) { &:not(:hover) {
scrollbar-width: none; scrollbar-width: none;
...@@ -256,5 +256,9 @@ ...@@ -256,5 +256,9 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.node-key{
font-size: 12px;
color: #969696;
}
} }
} }
\ No newline at end of file
...@@ -194,6 +194,7 @@ ...@@ -194,6 +194,7 @@
v-model="dialogVisible" v-model="dialogVisible"
width="80%" width="80%"
:before-close="handleClose" :before-close="handleClose"
:close-on-click-modal="false" :close-on-press-escape="false"
> >
<div class="dialog-content"> <div class="dialog-content">
<div class="table-wrap"> <div class="table-wrap">
......
<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>
</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();
</script>
<style lang="less">
@import "@/styles/manage.less";
.add-project-header{
margin-bottom: 10px;
}
</style>
\ No newline at end of file
This diff is collapsed.
<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="addControl">新增</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="previewControl(row)">查看</el-button>
<el-button link type="primary" size="small" @click="editControl(row)">编辑</el-button>
</template>
</common-table>
</div>
</div>
</div>
</template>
<script setup>
import { ref, onMounted, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
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: "projectCode",
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 getControlData = () => {
loading.value = true;
proxy.$post({
url: "/api/project/getTzmbzrsList",
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;
getControlData();
}
const handleCurrentPageChange = (page) => {
currentPage.value = page;
getControlData();
}
const addControl = () => {
router.push("/addControl");
};
const editControl = (item) => {
router.push({
name: "addControl",
query: {
projectId: item.id
}
});
};
const previewControl = (item) => {
router.push({
name: "addControl",
query: {
isPreview: true,
projectId: item.id
}
})
}
onMounted(() => {
getControlData();
})
</script>
<style scoped lang="less">
@import "@/styles/manage.less";
</style>
\ No newline at end of file
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<template #operations="{ row, index }"> <template #operations="{ row, index }">
<el-button link type="primary" size="small" @click="previewStatement(row)">查看</el-button> <el-button link type="primary" size="small" @click="previewStatement(row)">查看</el-button>
<el-button link type="primary" size="small" @click="editStatement(row)">编辑</el-button> <el-button link type="primary" size="small" @click="editStatement(row)">编辑</el-button>
<el-button link type="danger" size="small" @click="deleteStatement(row)">删除</el-button>
</template> </template>
</common-table> </common-table>
</div> </div>
...@@ -36,6 +37,7 @@ ...@@ -36,6 +37,7 @@
<script setup> <script setup>
import { ref, onMounted, getCurrentInstance } from "vue"; import { ref, onMounted, getCurrentInstance } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue"; import CommonTable from "@/components/common/commonTable.vue";
const router = useRouter(); const router = useRouter();
...@@ -49,10 +51,27 @@ ...@@ -49,10 +51,27 @@
showOverflowTooltip: true showOverflowTooltip: true
}, },
{ {
prop: "projectCode", prop: "tzzt",
label: "项目编号", label: "投资主体",
showOverflowTooltip: true showOverflowTooltip: true
}, },
{
prop: "xmdd",
label: "项目地点",
showOverflowTooltip: true
},
{
prop: "xmkgrq",
label: "项目开工日期",
showOverflowTooltip: true,
width: 170
},
{
prop: "xmssqx",
label: "项目实施期限",
showOverflowTooltip: true,
width: 120
},
{ {
prop: "operations", prop: "operations",
label: "操作", label: "操作",
...@@ -99,7 +118,7 @@ ...@@ -99,7 +118,7 @@
router.push({ router.push({
name: "addStatement", name: "addStatement",
query: { query: {
projectId: item.id statementId: item.id
} }
}); });
}; };
...@@ -108,9 +127,27 @@ ...@@ -108,9 +127,27 @@
name: "addStatement", name: "addStatement",
query: { query: {
isPreview: true, isPreview: true,
projectId: item.id statementId: item.id
}
})
}
const deleteStatement = (item) => {
ElMessageBox.confirm("确认删除该项?", "提示",{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
proxy.$post({
url: "/api/project/deleteTzmbzrs",
data: {
id: item.id
},
callback: (data) => {
ElMessage.success("删除成功");
getStatementData();
} }
}) })
}).catch(() => {})
} }
onMounted(() => { onMounted(() => {
getStatementData(); getStatementData();
......
This diff is collapsed.
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
<el-dialog v-model="filedsModalShow" <el-dialog v-model="filedsModalShow"
modal-class="fields-modal" modal-class="fields-modal"
title="筛选查询" width="50%" top="10vh" title="筛选查询" width="50%" top="10vh"
:close-on-click-modal="false" :close-on-press-escape="false"
> >
<el-table :data="tableFields" style="width: 100%; height: 500px;" empty-text="暂无数据" border <el-table :data="tableFields" style="width: 100%; height: 500px;" empty-text="暂无数据" border
@selection-change="handleFieldsSelectChange" @selection-change="handleFieldsSelectChange"
......
...@@ -78,6 +78,7 @@ ...@@ -78,6 +78,7 @@
:title="dialogTitle" :title="dialogTitle"
width="400px" width="400px"
@close="cancelDepartForm" @close="cancelDepartForm"
:close-on-click-modal="false" :close-on-press-escape="false"
> >
<el-form :model="departFormData" ref="departForm" :rules="departRules" label-width="100"> <el-form :model="departFormData" ref="departForm" :rules="departRules" label-width="100">
<el-form-item label="项目名称" prop="name"> <el-form-item label="项目名称" prop="name">
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
:title="dialogTitle" :title="dialogTitle"
width="500px" width="500px"
@close="cancelMenuForm" @close="cancelMenuForm"
:close-on-click-modal="false" :close-on-press-escape="false"
> >
<el-form :model="menuFormData" ref="menuForm" :rules="menuRules" label-width="100"> <el-form :model="menuFormData" ref="menuForm" :rules="menuRules" label-width="100">
<el-form-item label="项目名称" prop="name"> <el-form-item label="项目名称" prop="name">
......
...@@ -6,6 +6,12 @@ ...@@ -6,6 +6,12 @@
<el-form-item label="关键字查询"> <el-form-item label="关键字查询">
<el-input v-model="searchForm.name" clearable @keydown.enter="handleSearch" /> <el-input v-model="searchForm.name" clearable @keydown.enter="handleSearch" />
</el-form-item> </el-form-item>
<el-form-item label="数据类型查询">
<el-select v-model="searchForm.type">
<el-option label="平级数据" value="1"></el-option>
<el-option label="树形数据" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleSearch">查询</el-button> <el-button type="primary" @click="handleSearch">查询</el-button>
</el-form-item> </el-form-item>
...@@ -48,6 +54,7 @@ ...@@ -48,6 +54,7 @@
:title="dialogTitle" :title="dialogTitle"
width="600px" width="600px"
@close="cancelResourceForm" @close="cancelResourceForm"
:close-on-click-modal="false" :close-on-press-escape="false"
> >
<el-form :model="resourceFormData" ref="resourceForm" :rules="resourceRules" label-width="100"> <el-form :model="resourceFormData" ref="resourceForm" :rules="resourceRules" label-width="100">
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
...@@ -57,7 +64,9 @@ ...@@ -57,7 +64,9 @@
<el-input v-model="resourceFormData.key" placeholder="请输入唯一标识" /> <el-input v-model="resourceFormData.key" placeholder="请输入唯一标识" />
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="type"> <el-form-item label="类型" prop="type">
<el-select v-model="resourceFormData.type" placeholder="请选择数据类型"> <el-select v-model="resourceFormData.type" placeholder="请选择数据类型"
:disabled="!!resourceFormData.id"
>
<el-option label="平级数据" value="1"></el-option> <el-option label="平级数据" value="1"></el-option>
<el-option label="树形数据" value="2"></el-option> <el-option label="树形数据" value="2"></el-option>
</el-select> </el-select>
...@@ -69,12 +78,15 @@ ...@@ -69,12 +78,15 @@
ref="treeRef" ref="treeRef"
:data="treeData" :data="treeData"
node-key="key" node-key="key"
default-expand-all
:props="{label: 'name'}" :props="{label: 'name'}"
render-after-expand
> >
<template #default="{ node, data }"> <template #default="{ node, data }">
<div class="custom-tree-node"> <div class="custom-tree-node">
<span class="node-name">{{ node.label }}</span> <span class="node-name">
{{ node.label }}
<span class="node-key">{{ data.key }}</span>
</span>
<el-dropdown> <el-dropdown>
<span class="el-dropdown-link"> <span class="el-dropdown-link">
<i class="iconfont icon-gengduo"></i> <i class="iconfont icon-gengduo"></i>
...@@ -114,13 +126,14 @@ ...@@ -114,13 +126,14 @@
:title="listDialogTitle" :title="listDialogTitle"
width="600px" width="600px"
@close="cancelListForm" @close="cancelListForm"
:close-on-click-modal="false" :close-on-press-escape="false"
> >
<el-form :model="listFormData" ref="listForm" :rules="listRules" label-width="100"> <el-form :model="listFormData" ref="listForm" :rules="listRules" label-width="100">
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="listFormData.name" placeholder="请输入资源库名称" /> <el-input v-model="listFormData.name" placeholder="请输入资源库名称" />
</el-form-item> </el-form-item>
<el-form-item label="唯一标识" prop="key"> <el-form-item label="唯一标识" prop="key">
<el-input v-model="listFormData.key" placeholder="请输入唯一标识" /> <el-input v-model="listFormData.key" placeholder="请输入唯一标识"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
...@@ -153,6 +166,12 @@ ...@@ -153,6 +166,12 @@
minWidth: 100, minWidth: 100,
showOverflowTooltip: true, showOverflowTooltip: true,
}, },
{
prop: "key",
label: "唯一标识",
minWidth: 100,
showOverflowTooltip: true,
},
{ {
prop: "operations", prop: "operations",
label: "操作", label: "操作",
...@@ -312,7 +331,10 @@ ...@@ -312,7 +331,10 @@
id: row.id id: row.id
}, },
callback: (data) => { callback: (data) => {
resourceFormData.value = { ...data }; resourceFormData.value = {
...data,
type: data.type.toString()
};
treeData.value = data.resourceInfos || []; treeData.value = data.resourceInfos || [];
dialogVisible.value = true; dialogVisible.value = true;
} }
......
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
:title="dialogTitle" :title="dialogTitle"
width="400px" width="400px"
@close="cancelRoleForm" @close="cancelRoleForm"
:close-on-click-modal="false" :close-on-press-escape="false"
> >
<el-form :model="roleFormData" ref="roleForm" :rules="roleRules" label-width="100"> <el-form :model="roleFormData" ref="roleForm" :rules="roleRules" label-width="100">
<el-form-item label="角色名称" prop="name"> <el-form-item label="角色名称" prop="name">
...@@ -100,7 +101,7 @@ ...@@ -100,7 +101,7 @@
</template> </template>
</commonForm> --> </commonForm> -->
</el-dialog> </el-dialog>
<!-- <el-dialog v-model="menuVisible" title="菜单配置"> <!-- <el-dialog v-model="menuVisible" title="菜单配置" :close-on-click-modal="false" :close-on-press-escape="false"d>
<el-tree <el-tree
:data="treeData" :data="treeData"
show-checkbox show-checkbox
......
...@@ -67,6 +67,7 @@ ...@@ -67,6 +67,7 @@
:title="dialogTitle" :title="dialogTitle"
width="600px" width="600px"
@close="cancelUserForm" @close="cancelUserForm"
:close-on-click-modal="false" :close-on-press-escape="false"
> >
<el-form :model="userFormData" ref="userForm" :rules="userRules" label-width="100"> <el-form :model="userFormData" ref="userForm" :rules="userRules" label-width="100">
<el-form-item label="用户姓名" prop="name"> <el-form-item label="用户姓名" prop="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