Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
liangzhen
/
framework-tools-web
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 87c2c2ff
authored
Mar 28, 2024
by
史敦盼
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'sdp-v1'
2 parents
ac386d7f
9498082b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
395 additions
and
57 deletions
src/components/SearchForm.vue
src/directive/index.js
src/views/conceptualReview/Examine.vue
src/views/projectInfoManage/ProjectDetail.vue
src/views/projectInfoManage/index.vue
src/views/reviewArchiPoliticeCheck/tab1.vue
src/views/reviewArchiPoliticeCheck/tab2.vue
src/views/reviewArchiPoliticeCheck/tab3.vue
src/views/reviewArchiPoliticeCheck/tab4.vue
src/views/reviewArchiPoliticeCheck/tab5.vue
src/views/reviewArchiPoliticeCheck/tab6.vue
src/views/reviewSituation/tab1.vue
src/views/reviewSituation/tab4.vue
src/views/reviewSituation/tab5.vue
src/views/systemInfoManage/index.vue
src/components/SearchForm.vue
View file @
87c2c2f
...
...
@@ -4,7 +4,7 @@
* @Autor: pan
* @Date: 2024-03-12 14:55:59
* @LastEditors: pan
* @LastEditTime: 2024-03-
18 09:56:15
* @LastEditTime: 2024-03-
28 17:01:26
-->
<!-- /**
* 搜索栏公共组件
...
...
@@ -47,6 +47,7 @@
class=
"btn-search"
icon=
"el-icon-search"
@
click=
"onSearch"
v-preventReClick
>
查询
</el-button
>
<el-button
...
...
src/directive/index.js
View file @
87c2c2f
export
default
function
initDirective
(
vue
)
{
/** 节流 */
vue
.
directive
(
'throttle'
,
{
inserted
:
function
(
el
,
binding
)
{
let
stop
=
false
;
el
.
addEventListener
(
binding
.
arg
,
(
e
)
=>
{
if
(
stop
)
return
;
binding
.
value
(
e
)
stop
=
true
;
setTimeout
(()
=>
{
stop
=
false
},
500
)
})
}
})
/** 防抖 */
vue
.
directive
(
'debounce'
,
{
inserted
:
function
(
el
,
binding
)
{
let
stopTime
;
el
.
addEventListener
(
binding
.
arg
,
(
e
)
=>
{
clearTimeout
(
stopTime
);
stopTime
=
setTimeout
(
binding
.
value
,
1000
,
e
)
})
}
})
/** 节流 */
vue
.
directive
(
'throttle'
,
{
inserted
:
function
(
el
,
binding
)
{
let
stop
=
false
el
.
addEventListener
(
binding
.
arg
,
(
e
)
=>
{
if
(
stop
)
return
binding
.
value
(
e
)
stop
=
true
setTimeout
(()
=>
{
stop
=
false
},
500
)
})
},
})
/** 防抖 */
vue
.
directive
(
'debounce'
,
{
inserted
:
function
(
el
,
binding
)
{
let
stopTime
el
.
addEventListener
(
binding
.
arg
,
(
e
)
=>
{
clearTimeout
(
stopTime
)
stopTime
=
setTimeout
(
binding
.
value
,
1000
,
e
)
})
},
})
vue
.
directive
(
'no-backslash'
,
{
// bind 钩子函数会在指令绑定到元素时调用
bind
(
el
,
binding
,
vnode
)
{
// 绑定 @input 监听方法
el
.
addEventListener
(
'input'
,
function
(
event
)
{
// 获取输入的值
const
value
=
event
.
target
.
value
;
vue
.
directive
(
'no-backslash'
,
{
// bind 钩子函数会在指令绑定到元素时调用
bind
(
el
,
binding
,
vnode
)
{
// 绑定 @input 监听方法
el
.
addEventListener
(
'input'
,
function
(
event
)
{
// 获取输入的值
const
value
=
event
.
target
.
value
// 使用正则表达式检测特殊字(根据需要匹配相应限制字符)
const
regex
=
/
(?:
'
)
|
(?:
--
)
|
(\/\*(?:
.|
[\n\r])
*
?\*\/)
|
(\b(
select|update|and|or|delete|insert|truncate|char|into|substr|ascii|declare|exec|count|master|into|drop|execute
)\b)
/i
;
// 如果输入值包含特殊字符,则替换为空格
if
(
regex
.
test
(
value
))
{
// 使用 replace 方法替换特殊字为空格
const
newValue
=
value
.
replace
(
regex
,
' '
);
// 将新值设置回输入框
event
.
target
.
value
=
newValue
;
// 触发 @input 事件,使其更新组件中的数据
vnode
.
componentInstance
.
$emit
(
'input'
,
newValue
);
}
});
},
});
}
// 使用正则表达式检测特殊字(根据需要匹配相应限制字符)
const
regex
=
/
(?:
'
)
|
(?:
--
)
|
(\/\*(?:
.|
[\n\r])
*
?\*\/)
|
(\b(
select|update|and|or|delete|insert|truncate|char|into|substr|ascii|declare|exec|count|master|into|drop|execute
)\b)
/i
// 如果输入值包含特殊字符,则替换为空格
if
(
regex
.
test
(
value
))
{
// 使用 replace 方法替换特殊字为空格
const
newValue
=
value
.
replace
(
regex
,
' '
)
// 将新值设置回输入框
event
.
target
.
value
=
newValue
// 触发 @input 事件,使其更新组件中的数据
vnode
.
componentInstance
.
$emit
(
'input'
,
newValue
)
}
})
},
})
vue
.
directive
(
'preventReClick'
,
{
inserted
:
function
(
el
,
binding
)
{
el
.
addEventListener
(
'click'
,
()
=>
{
if
(
!
el
.
disabled
)
{
el
.
disabled
=
true
setTimeout
(()
=>
{
el
.
disabled
=
false
},
binding
.
value
||
1500
)
}
})
},
})
}
src/views/conceptualReview/Examine.vue
View file @
87c2c2f
...
...
@@ -7,7 +7,7 @@
* @Autor: pan
* @Date: 2024-03-21 20:58:31
* @LastEditors: pan
* @LastEditTime: 2024-03-2
7 19:49:01
* @LastEditTime: 2024-03-2
8 17:36:40
-->
<
template
>
<div
class=
"flex-column m-10 w-100 conceptualExamine"
>
...
...
@@ -254,7 +254,7 @@ export default {
this
.
leftContentType
===
'onlyoffice'
||
this
.
rightContentType
===
'onlyoffice'
)
{
//
this.fnQueryPrjNeedFile()
this
.
fnQueryPrjNeedFile
()
}
},
computed
:
{
...
...
src/views/projectInfoManage/ProjectDetail.vue
0 → 100644
View file @
87c2c2f
<!--
* @Description: 项目信息详情
* @Version: 2.0
* @Autor: pan
* @Date: 2024-03-28 16:08:56
* @LastEditors: pan
* @LastEditTime: 2024-03-28 17:31:20
-->
<
template
>
<div>
<el-dialog
:title=
"getTitle"
:visible
.
sync=
"showDialog"
:close-on-click-modal=
"false"
width=
"90%"
@
close=
"handleClose()"
@
open=
"handleOpen()"
>
<div>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
>
<el-tab-pane
label=
"基本信息"
name=
"1"
>
<div
class=
"base-info-item m-t-20"
>
<div
class=
"base-info-item-title"
>
系统基本信息
</div>
<div
class=
"base-info-item-content"
>
<el-row
class=
"m-t-20"
>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
单位
</div>
<div
class=
"value"
>
总部
</div>
</el-col>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
部门
</div>
<div
class=
"value"
>
发展策划部
</div>
</el-col>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
关联系统名称
</div>
<div
class=
"value"
>
电力营销-2023年网上国网(网上国网V1.0)
</div>
</el-col>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
建设类型
</div>
<div
class=
"value"
>
统建
</div>
</el-col>
</el-row>
<el-row
class=
"m-t-20"
>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
项目名称
</div>
<div
class=
"value"
>
Sora大模型系统
</div>
</el-col>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
是否续建
</div>
<div
class=
"value"
>
是
</div>
</el-col>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
前期项目
</div>
<div
class=
"value"
>
电力营销-2023年网上国网(网上国网V1.0)
</div>
</el-col>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
承建单位
</div>
<div
class=
"value"
>
国网数字科技有限公司
</div>
</el-col>
</el-row>
<el-row
class=
"m-t-20"
>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
项目经理
</div>
<div
class=
"value"
>
李雷
</div>
</el-col>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
创建人
</div>
<div
class=
"value"
>
李雷
</div>
</el-col>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
创建时间
</div>
<div
class=
"value"
>
2024-03-28
</div>
</el-col>
<el-col
:span=
"6"
class=
"flex"
>
<div
class=
"label"
>
修改人
</div>
<div
class=
"value"
>
李雷
</div>
</el-col>
</el-row>
<el-row
class=
"m-t-20"
>
<el-col
:span=
"24"
class=
"flex"
>
<div
class=
"label"
>
修改时间
</div>
<div
class=
"value"
>
2024-03-28
</div>
</el-col>
</el-row>
<el-row
class=
"m-t-20"
>
<el-col
:span=
"24"
class=
"flex"
>
<div
class=
"label"
>
修改时间
</div>
<div
class=
"value"
>
<el-table
height=
"300"
:data=
"tableData"
stripe
border
>
<el-table-column
type=
"index"
label=
"序号"
width=
"80"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"资料类型"
width=
"300"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name2"
width=
"500"
label=
"资料名称"
align=
"center"
></el-table-column>
</el-table>
</div>
</el-col>
</el-row>
</div>
</div>
<div
class=
"base-info-item m-t-20"
>
<div
class=
"base-info-item-title"
>
系统架构管控要求
</div>
<div
class=
"base-info-item-content"
>
<el-row
class=
"m-t-20"
>
<el-col
:span=
"8"
class=
"flex"
>
<div
class=
"label"
style=
"width: 160px"
>
评审情况(概要设计)
</div>
<div
class=
"value"
>
完成
</div>
</el-col>
<el-col
:span=
"8"
class=
"flex"
>
<div
class=
"label"
>
概设架构遵从检查
</div>
<div
class=
"value"
>
完成
</div>
</el-col>
<el-col
:span=
"8"
class=
"flex"
>
<div
class=
"label"
>
概设架构政策审查
</div>
<div
class=
"value"
>
完成
</div>
</el-col>
</el-row>
</div>
</div>
<div
class=
"base-info-item m-t-20"
>
<div
class=
"base-info-item-title"
>
概要设计评审情况
</div>
<div
class=
"base-info-item-content"
>
<el-row
class=
"m-t-20"
>
<el-col
:span=
"8"
class=
"flex"
>
<div
class=
"label"
>
批次名称
</div>
<div
class=
"value"
>
2023第一批次概设评审
</div>
</el-col>
<el-col
:span=
"8"
class=
"flex"
>
<div
class=
"label"
>
需求名称
</div>
<div
class=
"value"
>
2023第一批次概设评审需求
</div>
</el-col>
<el-col
:span=
"8"
class=
"flex"
>
<div
class=
"label"
>
关联组织机构
</div>
<div
class=
"value"
>
经研院-项目管理部
</div>
</el-col>
</el-row>
</div>
</div>
</el-tab-pane>
<el-tab-pane
label=
"架构资产"
name=
"2"
>
架构资产
</el-tab-pane>
<el-tab-pane
label=
"架构视图"
name=
"3"
>
架构视图
</el-tab-pane>
</el-tabs>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleClose()"
size=
"mini"
>
关 闭
</el-button>
</span></el-dialog
>
</div>
</
template
>
<
script
>
export
default
{
props
:
{
visible
:
{
type
:
Boolean
,
default
:
false
,
},
rowData
:
{
type
:
Object
,
default
:
()
=>
{},
},
},
data
()
{
return
{
activeName
:
'1'
,
tableData
:
[],
}
},
components
:
{},
computed
:
{
showDialog
:
{
get
()
{
return
this
.
visible
},
set
(
value
)
{
this
.
$emit
(
'update:visible'
,
value
)
},
},
getTitle
()
{
return
`项目名称:
${
this
.
rowData
.
prjName
}
`
},
},
mounted
()
{},
methods
:
{
handleClose
()
{
this
.
showDialog
=
false
},
handleOpen
()
{},
handleClick
()
{},
},
}
</
script
>
<
style
scoped
lang=
"scss"
>
@import
'@/styles/elementui.scss'
;
@import
'@/styles/common.scss'
;
.base-info-item
{
&-title
{
font-size
:
16px
;
color
:
#1ec695
;
position
:
relative
;
text-align
:
left
;
padding-left
:
20px
;
&::before
{
content
:
''
;
position
:
absolute
;
left
:
0
;
top
:
2px
;
width
:
6px
;
border-radius
:
4px
;
height
:
20px
;
background-color
:
#1ec695
;
}
}
&
-content
{
//
padding
:
0
50px
;
.label
{
font-weight
:
bold
;
margin-right
:
30px
;
width
:
120px
;
text-align
:
right
;
}
}
}
</
style
>
src/views/projectInfoManage/index.vue
View file @
87c2c2f
This diff is collapsed.
Click to expand it.
src/views/reviewArchiPoliticeCheck/tab1.vue
View file @
87c2c2f
...
...
@@ -137,6 +137,7 @@ export default {
},
created
()
{
this
.
getDetail
()
this
.
fnQueryPrjNeedFile
()
},
methods
:
{
// 获取下拉文档内容
...
...
src/views/reviewArchiPoliticeCheck/tab2.vue
View file @
87c2c2f
...
...
@@ -136,6 +136,7 @@ export default {
},
created
()
{
this
.
getDetail
()
this
.
fnQueryPrjNeedFile
()
},
methods
:
{
// 获取下拉文档内容
...
...
src/views/reviewArchiPoliticeCheck/tab3.vue
View file @
87c2c2f
...
...
@@ -128,6 +128,7 @@ export default {
},
created
()
{
this
.
getDetail
()
this
.
fnQueryPrjNeedFile
()
},
methods
:
{
// 获取下拉文档内容
...
...
src/views/reviewArchiPoliticeCheck/tab4.vue
View file @
87c2c2f
...
...
@@ -128,6 +128,7 @@ export default {
},
created
()
{
this
.
getDetail
()
this
.
fnQueryPrjNeedFile
()
},
methods
:
{
// 获取下拉文档内容
...
...
src/views/reviewArchiPoliticeCheck/tab5.vue
View file @
87c2c2f
...
...
@@ -127,6 +127,7 @@ export default {
},
created
()
{
this
.
getDetail
()
this
.
fnQueryPrjNeedFile
()
},
methods
:
{
// 获取下拉文档内容
...
...
src/views/reviewArchiPoliticeCheck/tab6.vue
View file @
87c2c2f
...
...
@@ -137,6 +137,7 @@ export default {
},
created
()
{
this
.
getDetail
()
this
.
fnQueryPrjNeedFile
()
},
methods
:
{
// 获取下拉文档内容
...
...
src/views/reviewSituation/tab1.vue
View file @
87c2c2f
...
...
@@ -3,8 +3,18 @@
<div
class=
"content flex"
>
<div
class=
"left_container m-r-10 flex-column"
>
<div
class=
"left_container_title"
>
<i
class=
"el-icon-caret-right icon"
></i>
<span>
评审标准
</span>
<div
class=
"flex"
>
<i
class=
"el-icon-caret-right icon"
></i>
<span>
评审标准
</span>
</div>
<el-select
class=
"select-title"
v-model=
"leftSelect"
>
<el-option
v-for=
"(item, idx) in leftSelectData"
:label=
"item.fileName"
:value=
"item.fileId"
:key=
"idx"
></el-option>
</el-select>
</div>
<div
class=
"left_container_content w-100 h-100 flex-1"
>
<vab-only-office
...
...
@@ -20,9 +30,9 @@
<i
class=
"el-icon-caret-right icon"
></i>
<span>
评审内容
</span>
</div>
<el-select
class=
"select-title"
v-model=
"select"
>
<
!--
<
el-select
class=
"select-title"
v-model=
"select"
>
<el-option
label=
"概要设计说明书.doc"
value=
"1"
></el-option>
</el-select>
</el-select>
-->
</div>
<div
class=
"right_container_content w-100 h-100 flex-1"
>
<vab-only-office
...
...
@@ -68,7 +78,11 @@
<
script
>
import
vabOnlyOffice
from
'@/components/onlyOffice/index.vue'
import
{
savePrelDesInspecte
,
detailPrelDesInspecte
}
from
'@/api/index.js'
import
{
savePrelDesInspecte
,
detailPrelDesInspecte
,
queryPrjNeedFile
,
}
from
'@/api/index.js'
import
{
documentServerUrl
,
documentServerUrl2
}
from
'@/config'
import
{
EADC_SHARED_ABILITY
}
from
'@/config/micromodule'
export
default
{
...
...
@@ -130,13 +144,32 @@ export default {
callbackUrl
:
`
${
documentServerUrl
}${
EADC_SHARED_ABILITY
}
/callback?fileId=302`
,
},
},
leftSelectData
:
[],
}
},
created
()
{
this
.
row
=
JSON
.
parse
(
this
.
$route
.
query
.
row
)
this
.
getDetail
()
this
.
fnQueryPrjNeedFile
()
},
methods
:
{
// 获取下拉文档内容
fnQueryPrjNeedFile
()
{
const
params
=
{
busiFileNameList
:
[
'可行性研究报告'
,
'需求规格说明书'
],
busiId
:
this
.
row
.
prjId
,
busiIdType
:
1
,
}
queryPrjNeedFile
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
this
.
leftSelectData
=
res
.
data
if
(
this
.
leftSelectData
.
length
)
{
this
.
config
.
document
.
url
=
`
${
documentServerUrl
}${
EADC_SHARED_ABILITY
}
/downloadFile/
${
this
.
leftSelectData
[
0
].
fileId
}
`
this
.
config
.
editorConfig
.
url
=
`
${
documentServerUrl
}${
EADC_SHARED_ABILITY
}
/callback?fileId=
${
this
.
leftSelectData
[
0
].
fileId
}
`
}
}
})
},
getDetail
()
{
const
params
=
{
reviewEnum
:
'CONFORMANCE_REVIEW'
,
...
...
src/views/reviewSituation/tab4.vue
View file @
87c2c2f
...
...
@@ -58,7 +58,11 @@
<
script
>
import
vabOnlyOffice
from
'@/components/onlyOffice/index.vue'
import
{
savePrelDesInspecte
,
detailPrelDesInspecte
}
from
'@/api/index.js'
import
{
savePrelDesInspecte
,
detailPrelDesInspecte
,
queryPrjNeedFile
,
}
from
'@/api/index.js'
import
{
documentServerUrl
,
documentServerUrl2
}
from
'@/config'
import
{
EADC_SHARED_ABILITY
}
from
'@/config/micromodule'
export
default
{
...
...
@@ -110,13 +114,32 @@ export default {
callbackUrl
:
`
${
documentServerUrl
}${
EADC_SHARED_ABILITY
}
/callback?fileId=302`
,
},
},
leftSelectData
:
[],
}
},
created
()
{
this
.
row
=
JSON
.
parse
(
this
.
$route
.
query
.
row
)
this
.
getDetail
()
this
.
fnQueryPrjNeedFile
()
},
methods
:
{
// 获取下拉文档内容
fnQueryPrjNeedFile
()
{
const
params
=
{
busiFileNameList
:
[
'可行性研究报告'
,
'需求规格说明书'
],
busiId
:
this
.
row
.
prjId
,
busiIdType
:
1
,
}
queryPrjNeedFile
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
this
.
leftSelectData
=
res
.
data
if
(
this
.
leftSelectData
.
length
)
{
this
.
config
.
document
.
url
=
`
${
documentServerUrl
}${
EADC_SHARED_ABILITY
}
/downloadFile/
${
this
.
leftSelectData
[
0
].
fileId
}
`
this
.
config
.
editorConfig
.
url
=
`
${
documentServerUrl
}${
EADC_SHARED_ABILITY
}
/callback?fileId=
${
this
.
leftSelectData
[
0
].
fileId
}
`
}
}
})
},
getDetail
()
{
const
params
=
{
reviewEnum
:
'FUNCTIONAL_DEPTH_REVIEW'
,
...
...
src/views/reviewSituation/tab5.vue
View file @
87c2c2f
...
...
@@ -58,6 +58,7 @@ import {
savePrelDesInspecte
,
detailPrelDesInspecte
,
qViewPrelDesInspecte
,
queryPrjNeedFile
,
}
from
'@/api/index.js'
import
{
documentServerUrl
,
documentServerUrl2
}
from
'@/config'
import
{
EADC_SHARED_ABILITY
}
from
'@/config/micromodule'
...
...
@@ -111,17 +112,36 @@ export default {
},
},
rightImgs
:
[],
leftSelectData
:
[],
}
},
created
()
{
this
.
row
=
JSON
.
parse
(
this
.
$route
.
query
.
row
)
this
.
getDetail
()
this
.
getRightQview
()
this
.
fnQueryPrjNeedFile
()
},
methods
:
{
// 获取下拉文档内容
fnQueryPrjNeedFile
()
{
const
params
=
{
busiFileNameList
:
[
'可行性研究报告'
,
'需求规格说明书'
],
busiId
:
this
.
row
.
prjId
,
busiIdType
:
1
,
}
queryPrjNeedFile
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
this
.
leftSelectData
=
res
.
data
if
(
this
.
leftSelectData
.
length
)
{
this
.
config
.
document
.
url
=
`
${
documentServerUrl
}${
EADC_SHARED_ABILITY
}
/downloadFile/
${
this
.
leftSelectData
[
0
].
fileId
}
`
this
.
config
.
editorConfig
.
url
=
`
${
documentServerUrl
}${
EADC_SHARED_ABILITY
}
/callback?fileId=
${
this
.
leftSelectData
[
0
].
fileId
}
`
}
}
})
},
getRightQview
()
{
const
params
=
{
archiBelongId
:
1
,
archiBelongId
:
3
,
archiStage
:
3
,
reviewEnum
:
'DATA_DEPTH_REVIEW'
,
prjId
:
this
.
row
.
prjId
,
...
...
src/views/systemInfoManage/index.vue
View file @
87c2c2f
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
Attach a file
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 post a comment