明树Git Lab
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
J
jt_front
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
jt_front
Commits
4594e1ef
Commit
4594e1ef
authored
Mar 10, 2026
by
zhanghan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.bridata.com:8090/root/jt_front
parents
317b6b17
1a4543d1
Pipeline
#108159
passed with stage
in 20 seconds
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
86 additions
and
43 deletions
+86
-43
MainLayout.vue
src/layouts/MainLayout.vue
+22
-17
addProject.vue
src/views/projectManage/addProject.vue
+32
-9
projectDecision.vue
src/views/projectManage/projectDecision.vue
+19
-13
projectSetUp.vue
src/views/projectManage/projectSetUp.vue
+12
-3
message.vue
src/views/systemManage/message.vue
+1
-1
No files found.
src/layouts/MainLayout.vue
View file @
4594e1ef
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
<el-icon
size=
"20"
>
<el-icon
size=
"20"
>
<ChatDotSquare
/>
<ChatDotSquare
/>
</el-icon>
</el-icon>
<div
class=
"count"
>
{{
messageCount
}}
</div>
<div
v-if=
"messageCount"
class=
"count"
>
{{
messageCount
}}
</div>
</div>
</div>
<div>
<div>
<el-dropdown>
<el-dropdown>
...
@@ -45,39 +45,40 @@
...
@@ -45,39 +45,40 @@
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
computed
,
ref
,
onMounted
,
getCurrentInstance
}
from
"vue"
;
import
{
computed
,
ref
,
onMounted
,
getCurrentInstance
,
watch
}
from
"vue"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
windowConfig
from
"@/window"
;
import
LeftMenu
from
"./leftMenu.vue"
;
import
LeftMenu
from
"./leftMenu.vue"
;
import
axios
from
"axios"
;
// watch中使用proxy会有warning
const
userStore
=
useUserStore
();
const
userStore
=
useUserStore
();
const
{
proxy
}
=
getCurrentInstance
();
const
proxyRef
=
ref
(
null
);
// 在 setup 中设置
const
instance
=
getCurrentInstance
();
if
(
instance
)
{
proxyRef
.
value
=
instance
.
proxy
;
}
let
userInfo
=
ref
(
let
userInfo
=
ref
(
sessionStorage
.
getItem
(
"userInfo"
)
sessionStorage
.
getItem
(
"userInfo"
)
?
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
))
?
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
))
:
[],
:
[],
);
);
const
router
=
useRouter
();
const
router
=
useRouter
();
const
route
=
useRoute
();
// 获取资源库数据
// 获取资源库数据
const
getResourceData
=
()
=>
{
const
getResourceData
=
()
=>
{
proxy
.
$post
({
axios
.
post
(
windowConfig
.
baseUrl
+
"/api/resource/listResourceAll"
,
{}).
then
((
res
)
=>
{
url
:
"/api/resource/listResourceAll"
,
sessionStorage
.
setItem
(
"resourceData"
,
JSON
.
stringify
(
res
.
data
));
data
:
{},
})
callback
:
(
data
)
=>
{
sessionStorage
.
setItem
(
"resourceData"
,
JSON
.
stringify
(
data
));
},
});
};
};
// 获取未读消息数量
// 获取未读消息数量
let
messageCount
=
ref
(
0
);
let
messageCount
=
ref
(
0
);
const
getMessageCount
=
()
=>
{
const
getMessageCount
=
()
=>
{
proxy
.
$post
({
axios
.
post
(
windowConfig
.
baseUrl
+
"/api/message/getMesCount"
,
{}).
then
((
res
)
=>
{
url
:
"/api/message/getMesCount"
,
messageCount
.
value
=
res
.
data
.
count
;
data
:
{},
})
callback
:
(
data
)
=>
{
messageCount
.
value
=
data
.
count
;
},
});
};
};
// 跳转消息列表页
// 跳转消息列表页
const
toMessagePage
=
()
=>
{
const
toMessagePage
=
()
=>
{
...
@@ -87,6 +88,10 @@ onMounted(() => {
...
@@ -87,6 +88,10 @@ onMounted(() => {
getResourceData
();
getResourceData
();
getMessageCount
();
getMessageCount
();
});
});
watch
(()
=>
route
.
path
,
()
=>
{
getMessageCount
();
})
// 处理退出登录
// 处理退出登录
const
handleLogout
=
()
=>
{
const
handleLogout
=
()
=>
{
// 清除登录状态
// 清除登录状态
...
...
src/views/projectManage/addProject.vue
View file @
4594e1ef
...
@@ -7,14 +7,14 @@
...
@@ -7,14 +7,14 @@
<div
class=
"header-right"
>
<div
class=
"header-right"
>
<el-button
type=
"default"
@
click=
"backClick"
>
返回
</el-button>
<el-button
type=
"default"
@
click=
"backClick"
>
返回
</el-button>
<template
v-if=
"!loading && !isPreview"
>
<template
v-if=
"!loading && !isPreview"
>
<el-button
type=
"primary"
v-if=
"
['1', '5', '7'].includes(formData.projectLzType) || !formData.projectLzType
"
@
click=
"saveClick('save')"
>
保存
</el-button>
<el-button
type=
"primary"
v-if=
"
!formData.projectLzType || ['1', '5', '7'].includes(formData.projectLzType.toString())
"
@
click=
"saveClick('save')"
>
保存
</el-button>
<el-button
type=
"primary"
v-if=
"formData.projectLzType == '1'"
@
click=
"saveClick('submit')"
>
发起立项填报
</el-button>
<el-button
type=
"primary"
v-if=
"formData.projectLzType == '1'"
@
click=
"saveClick('submit')"
>
发起立项填报
</el-button>
<el-button
type=
"primary"
v-if=
"jcFormData.projectLzType ==
=
'7'"
@
click=
"saveClick('submit')"
>
发起决策信息填报
</el-button>
<el-button
type=
"primary"
v-if=
"jcFormData.projectLzType == '7'"
@
click=
"saveClick('submit')"
>
发起决策信息填报
</el-button>
</
template
>
</
template
>
<
!-- <
el-button
<el-button
v-if="isPreview && "
v-if=
"isPreview &&
canAudit && (formData.projectLzType == '3' || jcFormData.projectLzType == '8') && formData.del !== 1
"
type=
"primary"
@
click=
"auditDialogVisible = true"
type=
"primary"
@
click=
"auditDialogVisible = true"
>审核</el-button>
-->
>
审核
</el-button>
</div>
</div>
</div>
</div>
<el-tabs
v-model=
"pageActiveName"
type=
"border-card"
>
<el-tabs
v-model=
"pageActiveName"
type=
"border-card"
>
...
@@ -879,7 +879,7 @@
...
@@ -879,7 +879,7 @@
</div>
</div>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"决策信息填报"
name=
"决策信息填报"
<el-tab-pane
label=
"决策信息填报"
name=
"决策信息填报"
v-if=
"formData.projectLzType ==
= '5' || formData.projectLzType =
== '7'"
v-if=
"formData.projectLzType ==
'5' || formData.projectLzType
== '7'"
:lazy=
"true"
:lazy=
"true"
>
>
<div
class=
"project-tab-content"
>
<div
class=
"project-tab-content"
>
...
@@ -2567,6 +2567,14 @@
...
@@ -2567,6 +2567,14 @@
const
userStore
=
useUserStore
();
const
userStore
=
useUserStore
();
let
token
=
ref
(
""
);
let
token
=
ref
(
""
);
token
.
value
=
userStore
.
authToken
||
sessionStorage
.
getItem
(
"authToken"
)
||
""
;
token
.
value
=
userStore
.
authToken
||
sessionStorage
.
getItem
(
"authToken"
)
||
""
;
// 是否是审核角色
const
userInfo
=
userStore
.
userInfo
||
(
sessionStorage
.
getItem
(
"userInfo"
)
&&
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)))
||
{};
let
canAudit
=
ref
(
false
);
userInfo
.
roles
.
map
(
item
=>
{
if
([
"xmlx_sp"
,
"xmjc_sp"
].
includes
(
item
.
key
))
{
canAudit
.
value
=
true
;
}
});
// tab相关
// tab相关
const
pageActiveName
=
ref
(
"立项填报"
);
const
pageActiveName
=
ref
(
"立项填报"
);
...
@@ -3431,6 +3439,9 @@
...
@@ -3431,6 +3439,9 @@
callback
:
(
res
)
=>
{
callback
:
(
res
)
=>
{
loading
.
value
=
false
;
loading
.
value
=
false
;
let
data
=
res
.
lixiang
||
{};
let
data
=
res
.
lixiang
||
{};
if
(
data
.
del
===
1
)
{
ElMessage
.
warning
(
"该条数据已被删除"
);
}
Object
.
assign
(
formData
,
data
);
Object
.
assign
(
formData
,
data
);
Object
.
assign
(
swlzbData
,
data
.
projectJsgms
);
Object
.
assign
(
swlzbData
,
data
.
projectJsgms
);
Object
.
assign
(
gdxxData
,
data
.
projectGdxxs
.
concat
([{}]));
Object
.
assign
(
gdxxData
,
data
.
projectGdxxs
.
concat
([{}]));
...
@@ -3537,7 +3548,7 @@
...
@@ -3537,7 +3548,7 @@
}
}
// 保存数据
// 保存数据
const
saveClick
=
(
type
)
=>
{
const
saveClick
=
(
type
)
=>
{
if
(
!
formData
.
projectLzType
||
formData
.
projectLzType
===
'1'
)
{
if
(
!
formData
.
projectLzType
||
formData
.
projectLzType
.
toString
()
===
'1'
)
{
let
url
=
formData
.
id
?
type
===
"submit"
?
"startLixiang"
:
"saveProjectPreLixiang"
:
"createProject"
;
let
url
=
formData
.
id
?
type
===
"submit"
?
"startLixiang"
:
"saveProjectPreLixiang"
:
"createProject"
;
let
gdxxNewArr
=
JSON
.
parse
(
JSON
.
stringify
(
gdxxData
));
let
gdxxNewArr
=
JSON
.
parse
(
JSON
.
stringify
(
gdxxData
));
gdxxNewArr
.
splice
(
-
1
);
gdxxNewArr
.
splice
(
-
1
);
...
@@ -3563,7 +3574,7 @@
...
@@ -3563,7 +3574,7 @@
router
.
push
(
"/projectDraft"
);
router
.
push
(
"/projectDraft"
);
}
}
})
})
}
else
if
(
jcFormData
.
projectLzType
===
"5"
||
jcFormData
.
projectLzType
===
"7"
)
{
}
else
if
(
jcFormData
.
projectLzType
.
toString
()
===
"5"
||
jcFormData
.
projectLzType
.
toString
()
===
"7"
)
{
let
url
=
type
===
"submit"
?
"startJuece"
:
"saveJuece"
;
let
url
=
type
===
"submit"
?
"startJuece"
:
"saveJuece"
;
let
gdxxNewArr
=
JSON
.
parse
(
JSON
.
stringify
(
jcGdxxData
));
let
gdxxNewArr
=
JSON
.
parse
(
JSON
.
stringify
(
jcGdxxData
));
gdxxNewArr
.
splice
(
-
1
);
gdxxNewArr
.
splice
(
-
1
);
...
@@ -3612,7 +3623,19 @@
...
@@ -3612,7 +3623,19 @@
};
};
const
submitAudit
=
()
=>
{
const
submitAudit
=
()
=>
{
auditForm
.
value
.
validate
(
valid
=>
{
auditForm
.
value
.
validate
(
valid
=>
{
if
(
valid
)
{}
if
(
valid
)
{
let
url
=
formData
.
projectLzType
.
toString
()
===
"3"
?
"approvalLixiang"
:
jcFormData
.
projectLzType
.
toString
()
===
"8"
?
"approvalJuece"
:
""
;
proxy
.
$post
({
url
:
"/api/project/"
+
url
,
data
:
{
id
:
formData
.
id
,
...
auditFormData
.
value
},
callback
:
(
data
)
=>
{
router
.
push
(
"/message"
);
}
})
}
});
});
};
};
</
script
>
</
script
>
...
...
src/views/projectManage/projectDecision.vue
View file @
4594e1ef
...
@@ -23,8 +23,8 @@
...
@@ -23,8 +23,8 @@
>
>
<template
#
operations=
"
{ row, index }">
<template
#
operations=
"
{ row, index }">
<el-button
link
type=
"primary"
size=
"small"
<el-button
link
type=
"primary"
size=
"small"
:loading=
"row.loading"
@
click=
"
getResul
t(row)"
:loading=
"row.loading"
@
click=
"
previewProjec
t(row)"
>
查询
</el-button>
>
{{
canAudit
&&
row
.
projectLzType
==
8
?
"审批"
:
"查看"
}}
</el-button>
</
template
>
</
template
>
</common-table>
</common-table>
</div>
</div>
...
@@ -36,10 +36,20 @@
...
@@ -36,10 +36,20 @@
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
const
router
=
useRouter
();
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
const
{
proxy
}
=
getCurrentInstance
();
// 是否是审核角色
const
userStore
=
useUserStore
();
const
userInfo
=
userStore
.
userInfo
||
(
sessionStorage
.
getItem
(
"userInfo"
)
&&
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)))
||
{};
let
canAudit
=
ref
(
false
);
userInfo
.
roles
.
map
(
item
=>
{
if
([
"xmlx_sp"
,
"xmjc_sp"
].
includes
(
item
.
key
))
{
canAudit
.
value
=
true
;
}
});
let
tableData
=
ref
([]);
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
let
tableColumns
=
ref
([
...
@@ -109,19 +119,15 @@
...
@@ -109,19 +119,15 @@
currentPage
.
value
=
page
;
currentPage
.
value
=
page
;
getProjectData
();
getProjectData
();
}
}
const
getResult
=
(
item
)
=>
{
const
previewProject
=
(
item
)
=>
{
item
.
loading
=
true
;
router
.
push
({
proxy
.
$post
({
name
:
"addProject"
,
url
:
"/api/project/queryJueceResult"
,
query
:
{
data
:
{
isPreview
:
true
,
id
:
item
.
id
projectId
:
item
.
id
},
callback
:
(
data
)
=>
{
item
.
loading
=
false
;
getProjectData
();
}
}
})
})
}
;
}
</
script
>
</
script
>
<
style
scoped
lang=
"less"
>
<
style
scoped
lang=
"less"
>
...
...
src/views/projectManage/projectSetUp.vue
View file @
4594e1ef
...
@@ -29,9 +29,8 @@
...
@@ -29,9 +29,8 @@
>
决策填报
</el-button>
>
决策填报
</el-button>
<!-- 立项审批中 -->
<!-- 立项审批中 -->
<el-button
link
type=
"primary"
size=
"small"
<el-button
link
type=
"primary"
size=
"small"
v-else
v-else
:loading=
"row.loading"
@
click=
"viewDecision(row)"
:loading=
"row.loading"
@
click=
"viewDecision(row)"
>
{{
canAudit
?
"审批"
:
"查看"
}}
</el-button>
>
查看
</el-button>
</
template
>
</
template
>
</common-table>
</common-table>
</div>
</div>
...
@@ -43,10 +42,20 @@
...
@@ -43,10 +42,20 @@
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
reactive
,
ref
,
onMounted
,
computed
,
getCurrentInstance
}
from
"vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
useUserStore
}
from
"@/stores/user.js"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
import
CommonTable
from
"@/components/common/commonTable.vue"
;
const
router
=
useRouter
();
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
();
const
{
proxy
}
=
getCurrentInstance
();
// 是否是审核角色
const
userStore
=
useUserStore
();
const
userInfo
=
userStore
.
userInfo
||
(
sessionStorage
.
getItem
(
"userInfo"
)
&&
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)))
||
{};
let
canAudit
=
ref
(
false
);
userInfo
.
roles
.
map
(
item
=>
{
if
([
"xmlx_sp"
,
"xmjc_sp"
].
includes
(
item
.
key
))
{
canAudit
.
value
=
true
;
}
});
let
tableData
=
ref
([]);
let
tableData
=
ref
([]);
let
tableColumns
=
ref
([
let
tableColumns
=
ref
([
...
...
src/views/systemManage/message.vue
View file @
4594e1ef
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
<
template
#
footer
>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<div
class=
"dialog-footer"
>
<el-button
@
click=
"closeDialog"
>
关闭
</el-button>
<el-button
@
click=
"closeDialog"
>
关闭
</el-button>
<
!--
<el-button
type=
"primary"
@
click=
"toProjectPage"
>
去处理
</el-button>
--
>
<
el-button
type=
"primary"
@
click=
"toProjectPage"
>
去处理
</el-button
>
</div>
</div>
</
template
>
</
template
>
</el-dialog>
</el-dialog>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment