明树Git Lab

Commit 4dac1ac3 authored by yangyajing's avatar yangyajing

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

parent 0b12acf2
Pipeline #106049 passed with stage
in 16 seconds
......@@ -20,6 +20,7 @@
"element-plus": "^2.11.8",
"less-loader": "^12.3.0",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"pinia": "^3.0.4",
"vue": "^3.5.24",
"vue-router": "^4.6.3",
......@@ -1525,6 +1526,15 @@
"version": "3.0.1",
"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": {
"version": "3.3.11",
"funding": [
......
......@@ -15,6 +15,7 @@
v-model="dialogVisible"
width="50%"
:before-close="handleClose"
:close-on-click-modal="false" :close-on-press-escape="false"
>
<commonTable
:data="tableData"
......
......@@ -11,12 +11,14 @@ import "./assets/fonts/font.less"; // 字体样式
import "../public/iconFont/iconfont.css"; // 图标字体样式
import { $get, $post } from "@/data/https.js";
import windowConfig from "@/window";
import moment from "moment";
const pinia = createPinia()
const app = createApp(App)
app.config.globalProperties.$get = $get;
app.config.globalProperties.$post = $post;
app.config.globalProperties.windowConfig = windowConfig;
app.config.globalProperties.moment = moment;
for (const [key, component] of Object.entries(ElIcons)) {
app.component(key, component)
}
......
......@@ -18,7 +18,7 @@
.header-left{
flex: 1;
width: 0;
.el-input{
.el-input, .el-select{
width: 220px;
}
}
......@@ -216,8 +216,8 @@
overflow: auto;
position: relative;
.el-tree {
max-height: 700px;
overflow-y: auto;
// max-height: 700px;
// overflow-y: auto;
// 只有当内容超过700px时才显示滚动条
&:not(:hover) {
scrollbar-width: none;
......@@ -256,5 +256,9 @@
overflow: hidden;
text-overflow: ellipsis;
}
.node-key{
font-size: 12px;
color: #969696;
}
}
}
\ No newline at end of file
......@@ -194,6 +194,7 @@
v-model="dialogVisible"
width="80%"
:before-close="handleClose"
:close-on-click-modal="false" :close-on-press-escape="false"
>
<div class="dialog-content">
<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 @@
<template #operations="{ row, index }">
<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="danger" size="small" @click="deleteStatement(row)">删除</el-button>
</template>
</common-table>
</div>
......@@ -36,6 +37,7 @@
<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();
......@@ -49,10 +51,27 @@
showOverflowTooltip: true
},
{
prop: "projectCode",
label: "项目编号",
prop: "tzzt",
label: "投资主体",
showOverflowTooltip: true
},
{
prop: "xmdd",
label: "项目地点",
showOverflowTooltip: true
},
{
prop: "xmkgrq",
label: "项目开工日期",
showOverflowTooltip: true,
width: 170
},
{
prop: "xmssqx",
label: "项目实施期限",
showOverflowTooltip: true,
width: 120
},
{
prop: "operations",
label: "操作",
......@@ -99,7 +118,7 @@
router.push({
name: "addStatement",
query: {
projectId: item.id
statementId: item.id
}
});
};
......@@ -108,9 +127,27 @@
name: "addStatement",
query: {
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(() => {
getStatementData();
......
This diff is collapsed.
......@@ -31,6 +31,7 @@
<el-dialog v-model="filedsModalShow"
modal-class="fields-modal"
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
@selection-change="handleFieldsSelectChange"
......
......@@ -78,6 +78,7 @@
:title="dialogTitle"
width="400px"
@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-item label="项目名称" prop="name">
......
......@@ -32,6 +32,7 @@
:title="dialogTitle"
width="500px"
@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-item label="项目名称" prop="name">
......
......@@ -6,6 +6,12 @@
<el-form-item label="关键字查询">
<el-input v-model="searchForm.name" clearable @keydown.enter="handleSearch" />
</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-button type="primary" @click="handleSearch">查询</el-button>
</el-form-item>
......@@ -48,6 +54,7 @@
:title="dialogTitle"
width="600px"
@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-item label="名称" prop="name">
......@@ -57,7 +64,9 @@
<el-input v-model="resourceFormData.key" placeholder="请输入唯一标识" />
</el-form-item>
<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="2"></el-option>
</el-select>
......@@ -69,12 +78,15 @@
ref="treeRef"
:data="treeData"
node-key="key"
default-expand-all
:props="{label: 'name'}"
render-after-expand
>
<template #default="{ node, data }">
<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>
<span class="el-dropdown-link">
<i class="iconfont icon-gengduo"></i>
......@@ -114,13 +126,14 @@
:title="listDialogTitle"
width="600px"
@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-item label="名称" prop="name">
<el-input v-model="listFormData.name" placeholder="请输入资源库名称" />
</el-form-item>
<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>
<template #footer>
......@@ -153,6 +166,12 @@
minWidth: 100,
showOverflowTooltip: true,
},
{
prop: "key",
label: "唯一标识",
minWidth: 100,
showOverflowTooltip: true,
},
{
prop: "operations",
label: "操作",
......@@ -312,7 +331,10 @@
id: row.id
},
callback: (data) => {
resourceFormData.value = { ...data };
resourceFormData.value = {
...data,
type: data.type.toString()
};
treeData.value = data.resourceInfos || [];
dialogVisible.value = true;
}
......
......@@ -52,6 +52,7 @@
:title="dialogTitle"
width="400px"
@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-item label="角色名称" prop="name">
......@@ -100,7 +101,7 @@
</template>
</commonForm> -->
</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
:data="treeData"
show-checkbox
......
......@@ -67,6 +67,7 @@
:title="dialogTitle"
width="600px"
@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-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