Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
9
912project
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
CRS
912project
Commits
112d4c3d
提交
112d4c3d
authored
4月 15, 2020
作者:
CRS
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'crs' 到 'master'
new 查看合并请求
!125
上级
8c91bdbd
66210c48
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
186 行增加
和
171 行删除
+186
-171
otherPdf.vue
src/components/otherPdf/otherPdf.vue
+173
-166
reportAssess.vue
src/components/reportAssess/reportAssess.vue
+2
-1
htmlToPdf.js
src/tools/htmlToPdf.js
+11
-4
没有找到文件。
src/components/otherPdf/otherPdf.vue
浏览文件 @
112d4c3d
...
...
@@ -7,7 +7,7 @@
<p
class=
"title"
>
{{
systemName
}}
</p>
<p
class=
"title"
>
{{
reportName
}}
</p>
<div>
<table
border=
"1"
cellspacing=
"0"
style=
"width: 100%"
>
<table
border=
"1"
cellspacing=
"0"
style=
"width: 100%
;margin-top: 90px;
"
>
<tr>
<td
style=
"width: 12px; text-align: center;padding: 0;"
>
序号
</td>
<td
style=
"width: 80px; text-align: center;padding: 0;"
>
概要信息
</td>
...
...
@@ -42,48 +42,48 @@
<div
class=
"page"
>
<p
class=
"list"
>
目录
</p>
<div
class=
"listContent"
>
<p
class=
"child"
>
目录..................................................
..I
</p>
<p
class=
"child"
>
1. 评估报告声明.......................................
..3
</p>
<p
class=
"child"
>
1.1. 报告组成......................................
..3
</p>
<p
class=
"child"
>
1.2. 报告作用......................................
..4
</p>
<p
class=
"child"
>
1.3. 其他注意事项..................................
..4
</p>
<p
class=
"child"
>
2.
评估标准和方法.......................................6
</p>
<p
class=
"child"
>
2.1.
参照标准........................................6
</p>
<p
class=
"child"
>
2.1.1.
“912工程”相关政策法规....................6
</p>
<p
class=
"child"
>
2.1.2.
“912工程”相关国家标准与规范..............6
</p>
<p
class=
"child"
>
2.
1.3. “L77软件工程”国家分类标准................6
</p>
<p
class=
"child"
>
2.
1.4. 其他编制依据...............................6
</p>
<p
class=
"child"
>
2.2.
评估流程与方法.................................11
</p>
<p
class=
"child"
>
2.2.
1. 基本评估流程...............................11
</p>
<p
class=
"child"
>
2.
2.2. 结合国家标准L77类目下的度量说明............12
</p>
<p
class=
"child"
>
2.
2.3. 递归的精度与误差说明.......................17
</p>
<p
class=
"child"
>
3. 原应用系统评估......................................19
</p>
<p
class=
"child"
>
3.1. 原应用系统概要.................................19
</p>
<p
class=
"child"
>
3.
1.1. 基本信息...................................19
</p>
<p
class=
"child"
>
3.1.
2. 原系统代码规模.............................
{{
pageList
[
0
]
}}
</p>
<p
class=
"child"
>
3.
2. 关键技术依赖...................................
{{
pageList
[
0
]
}}
</p>
<p
class=
"child"
>
3.
2.1. 可优化的项.................................
{{
pageList
[
1
]
}}
</p>
<p
class=
"child"
>
3.
2.2. 必须替换的项...............................
{{
pageList
[
2
]
}}
</p>
<p
class=
"child"
>
3.
2.3. 需要验证修改的项...........................
{{
pageList
[
3
]
}}
</p>
<p
class=
"child"
>
目录..................................................
<span>
I
</span>
</p>
<p
class=
"child"
>
1. 评估报告声明.......................................
<span>
3
</span>
</p>
<p
class=
"child"
>
1.1. 报告组成......................................
<span>
3
</span>
</p>
<p
class=
"child"
>
1.2. 报告作用......................................
<span>
4
</span>
</p>
<p
class=
"child"
>
1.3. 其他注意事项..................................
<span>
4
</span>
</p>
<p
class=
"child"
>
2.
原应用系统评估....................................
<span>
6
</span>
</p>
<p
class=
"child"
>
2.1.
原应用系统概要...............................
<span>
6
</span>
</p>
<p
class=
"child"
>
2.1.1.
基本信息.................................
<span>
6
</span>
</p>
<p
class=
"child"
>
2.1.2.
原系统代码规模...........................
<span>
{{
pageList
[
0
]
}}
</span>
</p>
<p
class=
"child"
>
2.
2. 关键技术依赖.................................
<span>
{{
pageList
[
0
]
}}
</span>
</p>
<p
class=
"child"
>
2.
2.1. 可优化的项...............................
<span>
{{
pageList
[
1
]
}}
</span>
</p>
<p
class=
"child"
>
2.2.
2. 必须替换的项.............................
<span>
{{
pageList
[
2
]
}}
</span>
</p>
<p
class=
"child"
>
2.2.
3. 需要验证修改的项.........................
<span>
{{
pageList
[
3
]
}}
</span>
</p>
<p
class=
"child"
>
2.
3. 难度系数和综合系数修正.......................
<span>
{{
pageList
[
4
]
}}
</span>
</p>
<p
class=
"child"
>
2.
4. 人工月估算...................................
<span>
{{
pageList
[
4
]
}}
</span>
</p>
<p
class=
"child"
>
2.5. 额外申请.....................................
<span>
{{
pageList
[
4
]
}}
</span>
</p>
<p
class=
"child"
>
2.6. 预算建议.....................................
<span>
{{
pageList
[
5
]
}}
</span>
</p>
<p
class=
"child"
>
3.
评估标准和方法....................................
<span>
{{
pageList
[
6
]
}}
</span>
</p>
<p
class=
"child"
>
3.1.
参照标准......................................
<span>
{{
pageList
[
6
]
}}
</span>
</p>
<p
class=
"child"
>
3.
1.1. “912工程”相关政策法规..................
<span>
{{
pageList
[
6
]
}}
</span>
</p>
<p
class=
"child"
>
3.
1.2. “912工程”相关国家标准与规范............
<span>
{{
pageList
[
7
]
}}
</span>
</p>
<p
class=
"child"
>
3.
1.3. “L77软件工程”国家分类标准..............
<span>
{{
pageList
[
9
]
}}
</span>
</p>
<p
class=
"child"
>
3.
1.4. 其他编制依据.............................
<span>
{{
pageList
[
10
]
}}
</span>
</p>
</div>
<p
class=
"pageIndex"
>
1
</p>
</div>
<div
class=
"page"
>
<div
class=
"listContent"
>
<p
class=
"child"
>
3.
3. 难度系数和综合系数修正.........................
{{
pageList
[
4
]
}}
</p>
<p
class=
"child"
>
3.
4. 人工月估算.....................................
{{
pageList
[
4
]
}}
</p>
<p
class=
"child"
>
3.
5. 额外申请.......................................
{{
pageList
[
4
]
}}
</p>
<p
class=
"child"
>
3.
6. 预算建议.......................................
{{
pageList
[
5
]
}}
</p>
<p
class=
"child"
>
4. 评估建议..........................................
..
{{
pageList
[
6
]
}}
</p>
<p
class=
"child"
>
4.1. 适配/改造路线选择............................
..
{{
pageList
[
6
]
}}
</p>
<p
class=
"child"
>
4.2. 关键工作与方法...............................
..
{{
pageList
[
6
]
}}
</p>
<p
class=
"child"
>
4.2.1. 开发框架解决方法.........................
..
{{
pageList
[
6
]
}}
</p>
<p
class=
"child"
>
4.2.2. 浏览器的适配兼容性改造解决方法...........
..
{{
pageList
[
7
]
}}
</p>
<p
class=
"child"
>
4.2.3. 浏览器功能组件的替换和适配解决方法.......
..
{{
pageList
[
7
]
}}
</p>
<p
class=
"child"
>
4.2.4. B/S结构下的重构..........................
..
{{
pageList
[
8
]
}}
</p>
<p
class=
"child"
>
4.2.5. C/S结构下的重构..........................
..
{{
pageList
[
8
]
}}
</p>
<p
class=
"child"
>
4.2.6. 部署和迁移策略...........................
..
{{
pageList
[
8
]
}}
</p>
<p
class=
"child"
>
5. 附件.............................................
..
{{
pageList
[
11
]
}}
</p>
<p
class=
"child"
>
3.
2. 评估流程与方法...............................
<span>
{{
pageList
[
11
]
}}
</span>
</p>
<p
class=
"child"
>
3.
2.1. 基本评估流程.............................
<span>
{{
pageList
[
11
]
}}
</span>
</p>
<p
class=
"child"
>
3.
2.2. 结合国家标准L77类目下的度量说明..........
<span>
{{
pageList
[
12
]
}}
</span>
</p>
<p
class=
"child"
>
3.
2.3. 递归的精度与误差说明.....................
<span>
{{
pageList
[
17
]
}}
</span>
</p>
<p
class=
"child"
>
4. 评估建议..........................................
<span>
{{
pageList
[
19
]
}}
</span>
</p>
<p
class=
"child"
>
4.1. 适配/改造路线选择............................
<span>
{{
pageList
[
19
]
}}
</span>
</p>
<p
class=
"child"
>
4.2. 关键工作与方法...............................
<span>
{{
pageList
[
19
]
}}
</span>
</p>
<p
class=
"child"
>
4.2.1. 开发框架解决方法.........................
<span>
{{
pageList
[
19
]
}}
</span>
</p>
<p
class=
"child"
>
4.2.2. 浏览器的适配兼容性改造解决方法...........
<span>
{{
pageList
[
20
]
}}
</span>
</p>
<p
class=
"child"
>
4.2.3. 浏览器功能组件的替换和适配解决方法.......
<span>
{{
pageList
[
20
]
}}
</span>
</p>
<p
class=
"child"
>
4.2.4. B/S结构下的重构..........................
<span>
{{
pageList
[
21
]
}}
</span>
</p>
<p
class=
"child"
>
4.2.5. C/S结构下的重构..........................
<span>
{{
pageList
[
21
]
}}
</span>
</p>
<p
class=
"child"
>
4.2.6. 部署和迁移策略...........................
<span>
{{
pageList
[
21
]
}}
</span>
</p>
<p
class=
"child"
>
5. 附件.............................................
<span>
{{
pageList
[
24
]
}}
</span>
</p>
</div>
<p
class=
"pageIndex"
>
2
</p>
</div>
...
...
@@ -104,104 +104,13 @@
<p
class=
"contentList"
v-for=
"item of reportOther2"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
5
</p>
</div>
<!-- 2-->
<div
class=
"page"
>
<p
class=
"title1"
>
2.
评估标准和方法
</p>
<p
class=
"title2"
>
2.1.
参照标准
</p>
<p
class=
"title3"
>
2.1.1.
“912工程”相关政策法规
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px; text-indent:0em;"
v-for=
"item of regulations"
>
{{
item
}}
</p>
<p
class=
"title1"
>
2.
原应用系统评估
</p>
<p
class=
"title2"
>
2.1.
原应用系统概要
</p>
<p
class=
"title3"
>
2.1.1.
基本信息
</p>
<p
class=
"pageIndex"
>
6
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of regulations"
>
{{
item
}}
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of supplement"
>
{{
item
}}
</p>
<p
class=
"title3"
>
2.1.2.
“912工程”相关国家标准与规范
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of nationalNorms"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
7
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of nationalNorms2"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
8
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of nationalNorms3"
>
{{
item
}}
</p>
<p
class=
"title3"
>
2.1.3.
“L77软件工程”国家分类标准
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of classificationCriteria"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
9
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of classificationCriteria2"
>
{{
item
}}
</p>
<p
class=
"title3"
>
2.1.4.
其他编制依据
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of otherEstablishments"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
10
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of otherEstablishments2"
>
{{
item
}}
</p>
<p
class=
"title2"
>
2.2.
评估流程与方法
</p>
<p
class=
"title3"
>
2.2.1.
基本评估流程
</p>
<p>
<img
src=
"./img/1.png"
style=
"width: 100%"
>
</p>
<p
class=
"contentList"
v-for=
"item of evaluationProcess"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
11
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
v-for=
"item of evaluationProcess2"
>
{{
item
}}
</p>
<p
class=
"title3"
>
2.2.2.
结合国家标准L77类目下的度量说明
</p>
<p
class=
"contentList"
v-for=
"item of metricDescription"
>
{{
item
}}
</p>
<p
class=
"title4"
>
2.2.2.1.
规模测算
</p>
<p
class=
"contentList"
v-for=
"item of scaleConversion"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
12
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
>
笼统的算法如下式计算:
</p>
<p
class=
"contentList"
style=
"text-align:center;"
>
S = US*CF
</p>
<p
class=
"contentList"
v-for=
"item of scaleConversion2"
>
{{
item
}}
</p>
<p
class=
"title4"
>
2.2.2.2.
工作量测算
</p>
<p
class=
"contentList"
>
根据GB/T 36964-2018的流程,规模测算完成的结果,将指导和约束工作量测算和成本测算。
</p>
<p>
<img
src=
"./img/2.png"
style=
"width: 100%"
>
</p>
<p
class=
"contentList"
>
工作量测算在自动化评估中采用GB/T36964-2018的方程法、类比法、类推法3种方法。包含对未知技术依赖的不确定工作量和测试
</p>
<p
class=
"pageIndex"
>
13
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"text-indent:0em;"
>
修改的不可预见工作量。
</p>
<p
class=
"contentList"
v-for=
"item of workloadCalculation"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
14
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
v-for=
"item of workloadCalculation2"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
15
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
v-for=
"item of workloadCalculation3"
>
{{
item
}}
</p>
<p
class=
"title4"
>
2.2.2.3.
人工月单价测算
</p>
<p
class=
"contentList"
v-for=
"item of unitPriceCalculation"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
16
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"text-indent:0em;"
>
1.5万元/人工月,允许委托单位输入时补充额外金额申请。
</p>
<p
class=
"title3"
>
2.2.3.
递归的精度与误差说明
</p>
<p
class=
"contentList"
v-for=
"item of recursivePrecision"
>
{{
item
}}
</p>
<p
class=
"title4"
>
2.2.3.1.
整体类比法
</p>
<p
class=
"contentList"
v-for=
"item of overallAnalogy"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
17
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"text-indent:0em;"
>
码或文件。功能非相关的和功能不启用的部分,交由委托单位现场确认。确认后删除或保留。如发现完整性严重缺失,委托单位重新提交。
</p>
<p
class=
"contentList"
>
而后二次导入,进行自动化评估。该方法将最大程度筛查和杜绝各种原因造成的调研数据错误、代码文件无关参杂的情况。也是确保评估误差可控的前提。
</p>
<p
class=
"title4"
>
2.2.3.1.
开发时间固定百分比法
</p>
<p
class=
"contentList"
v-for=
"item of fixedDevelopment"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
18
</p>
</div>
<!-- 3-->
<div
class=
"page"
>
<p
class=
"contentList"
style=
"text-indent:0em;"
>
推算的预算建议,将作为宁波市安可办的审核依据和预算约束。
</p>
<p
class=
"title1"
>
3.
原应用系统评估
</p>
<p
class=
"title2"
>
3.1.
原应用系统概要
</p>
<p
class=
"title3"
>
3.1.1.
基本信息
</p>
<p
class=
"pageIndex"
>
19
</p>
</div>
<div
v-for=
"(item,itemIndex) of messageList"
>
<div
class=
"pageOther"
v-for=
"(arr,index) of item.val"
>
<p
class=
"contentList"
style=
"text-indent:0em;"
v-if=
"index ===0"
>
{{
item
.
name
}}
:
</p>
...
...
@@ -215,7 +124,7 @@
</table>
</div>
<p
class=
"pageIndex"
v-for=
"item of messagePage"
>
<span
v-if=
"item.itemIndex === itemIndex && item.arrIndex === index"
>
{{
19
+
item
.
page
}}
</span>
<span
v-if=
"item.itemIndex === itemIndex && item.arrIndex === index"
>
{{
6
+
item
.
page
}}
</span>
</p>
</div>
</div>
...
...
@@ -276,13 +185,13 @@
</tr>
</table>
<p
class=
"pageIndex"
v-for=
"item of optimizedPage"
>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index"
>
{{
20
+
item
.
page
+
page1
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index"
>
{{
7
+
item
.
page
+
page1
}}
</span>
</p>
</div>
</div>
</div>
<div
class=
"page"
v-if=
"optimized.length === 0"
>
<p
class=
"title3"
>
3
.2.1.
可优化的项
</p>
<p
class=
"title3"
>
2
.2.1.
可优化的项
</p>
<p>
暂无
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
1
]
}}
</p>
</div>
...
...
@@ -313,14 +222,14 @@
</tr>
</table>
<p
class=
"pageIndex"
v-for=
"item of replacedPage"
>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length !== 0"
>
{{
20
+
item
.
page
+
page1
+
page2
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length === 0"
>
{{
20
+
item
.
page
+
page1
+
1
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length !== 0"
>
{{
7
+
item
.
page
+
page1
+
page2
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length === 0"
>
{{
7
+
item
.
page
+
page1
+
1
}}
</span>
</p>
</div>
</div>
</div>
<div
class=
"page"
v-if=
"replaced.length === 0"
>
<p
class=
"title3"
>
3
.2.2.
必须替换的项
</p>
<p
class=
"title3"
>
2
.2.2.
必须替换的项
</p>
<p>
暂无
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
2
]
}}
</p>
</div>
...
...
@@ -351,21 +260,21 @@
</tr>
</table>
<p
class=
"pageIndex"
v-for=
"item of verificationPage"
>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length !== 0 && replaced.length !== 0"
>
{{
20
+
item
.
page
+
page1
+
page2
+
page3
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length === 0 && replaced.length !== 0"
>
{{
20
+
item
.
page
+
page1
+
1
+
page3
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length !== 0 && replaced.length === 0"
>
{{
20
+
item
.
page
+
page1
+
1
+
page2
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length === 0 && replaced.length === 0"
>
{{
20
+
item
.
page
+
page1
+
2
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length !== 0 && replaced.length !== 0"
>
{{
7
+
item
.
page
+
page1
+
page2
+
page3
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length === 0 && replaced.length !== 0"
>
{{
7
+
item
.
page
+
page1
+
1
+
page3
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length !== 0 && replaced.length === 0"
>
{{
7
+
item
.
page
+
page1
+
1
+
page2
}}
</span>
<span
v-if=
"item.itemIndex === itemInd && item.arrIndex === index && optimized.length === 0 && replaced.length === 0"
>
{{
7
+
item
.
page
+
page1
+
2
}}
</span>
</p>
</div>
</div>
</div>
<div
class=
"page"
v-if=
"verification.length === 0"
>
<p
class=
"title3"
>
3
.2.3.
需要验证修改的项
</p>
<p
class=
"title3"
>
2
.2.3.
需要验证修改的项
</p>
<p>
暂无
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
3
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"title2"
>
3
.3.
难度系数和综合系数修正
</p>
<p
class=
"title2"
>
2
.3.
难度系数和综合系数修正
</p>
<div>
<table
border=
"1"
cellspacing=
"0"
style=
"margin-top: 10px;width: 100%"
>
<tr>
...
...
@@ -393,7 +302,7 @@
</tr>
</table>
</div>
<p
class=
"title2"
>
3
.4.
人工月估算
</p>
<p
class=
"title2"
>
2
.4.
人工月估算
</p>
<div>
<table
border=
"1"
cellspacing=
"0"
style=
"margin-top: 10px;width: 100%"
>
<tr>
...
...
@@ -424,7 +333,7 @@
</tr>
</table>
</div>
<p
class=
"title2"
>
3
.5.
额外申请
</p>
<p
class=
"title2"
>
2
.5.
额外申请
</p>
<div>
<table
border=
"1"
cellspacing=
"0"
style=
"margin-top: 10px;width: 100%;"
>
<tr>
...
...
@@ -440,7 +349,7 @@
<p
class=
"pageIndex"
>
{{
pageList
[
4
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"title2"
>
3
.6.
预算建议
</p>
<p
class=
"title2"
>
2
.6.
预算建议
</p>
<p
class=
"contentList"
>
由于不同地区、不同行业甚至不同功能项的软件开发人工月单价存在浮动,请在表格内调节该参数。调整后预算费用:
{{
newCost
.
cost
.
now
}}
万元,
难度系数:
<span
v-if=
"degreeOfDifficulty"
>
{{
degreeOfDifficulty
}}
</span>
...
...
@@ -450,7 +359,7 @@
<tr>
<td></td>
<td>
默认值
</td>
<td>
操作
</td>
<td>
人工审核
</td>
<td>
调整后
</td>
</tr>
<tr>
...
...
@@ -481,6 +390,97 @@
</div>
<p
class=
"pageIndex"
>
{{
pageList
[
5
]
}}
</p>
</div>
<!-- 3-->
<div
class=
"page"
>
<p
class=
"title1"
>
3.
评估标准和方法
</p>
<p
class=
"title2"
>
3.1.
参照标准
</p>
<p
class=
"title3"
>
3.1.1.
“912工程”相关政策法规
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px; text-indent:0em;"
v-for=
"item of regulations"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
6
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of regulations"
>
{{
item
}}
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of supplement"
>
{{
item
}}
</p>
<p
class=
"title3"
>
2.1.2.
“912工程”相关国家标准与规范
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of nationalNorms"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
7
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of nationalNorms2"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
8
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of nationalNorms3"
>
{{
item
}}
</p>
<p
class=
"title3"
>
3.1.3.
“L77软件工程”国家分类标准
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of classificationCriteria"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
9
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of classificationCriteria2"
>
{{
item
}}
</p>
<p
class=
"title3"
>
3.1.4.
其他编制依据
</p>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of otherEstablishments"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
10
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"letter-spacing:1px;text-indent:0em;"
v-for=
"item of otherEstablishments2"
>
{{
item
}}
</p>
<p
class=
"title2"
>
3.2.
评估流程与方法
</p>
<p
class=
"title3"
>
3.2.1.
基本评估流程
</p>
<p>
<img
src=
"./img/1.png"
style=
"width: 100%"
>
</p>
<p
class=
"contentList"
v-for=
"item of evaluationProcess"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
11
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
v-for=
"item of evaluationProcess2"
>
{{
item
}}
</p>
<p
class=
"title3"
>
3.2.2.
结合国家标准L77类目下的度量说明
</p>
<p
class=
"contentList"
v-for=
"item of metricDescription"
>
{{
item
}}
</p>
<p
class=
"title4"
>
3.2.2.1.
规模测算
</p>
<p
class=
"contentList"
v-for=
"item of scaleConversion"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
12
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
>
笼统的算法如下式计算:
</p>
<p
class=
"contentList"
style=
"text-align:center;"
>
S = US*CF
</p>
<p
class=
"contentList"
v-for=
"item of scaleConversion2"
>
{{
item
}}
</p>
<p
class=
"title4"
>
3.2.2.2.
工作量测算
</p>
<p
class=
"contentList"
>
根据GB/T 36964-2018的流程,规模测算完成的结果,将指导和约束工作量测算和成本测算。
</p>
<p>
<img
src=
"./img/2.png"
style=
"width: 100%"
>
</p>
<p
class=
"contentList"
>
工作量测算在自动化评估中采用GB/T36964-2018的方程法、类比法、类推法3种方法。包含对未知技术依赖的不确定工作量和测试
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
13
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"text-indent:0em;"
>
修改的不可预见工作量。
</p>
<p
class=
"contentList"
v-for=
"item of workloadCalculation"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
14
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
v-for=
"item of workloadCalculation2"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
15
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
v-for=
"item of workloadCalculation3"
>
{{
item
}}
</p>
<p
class=
"title4"
>
3.2.2.3.
人工月单价测算
</p>
<p
class=
"contentList"
v-for=
"item of unitPriceCalculation"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
16
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"text-indent:0em;"
>
1.5万元/人工月,允许委托单位输入时补充额外金额申请。
</p>
<p
class=
"title3"
>
3.2.3.
递归的精度与误差说明
</p>
<p
class=
"contentList"
v-for=
"item of recursivePrecision"
>
{{
item
}}
</p>
<p
class=
"title4"
>
3.2.3.1.
整体类比法
</p>
<p
class=
"contentList"
v-for=
"item of overallAnalogy"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
17
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"text-indent:0em;"
>
码或文件。功能非相关的和功能不启用的部分,交由委托单位现场确认。确认后删除或保留。如发现完整性严重缺失,委托单位重新提交。
</p>
<p
class=
"contentList"
>
而后二次导入,进行自动化评估。该方法将最大程度筛查和杜绝各种原因造成的调研数据错误、代码文件无关参杂的情况。也是确保评估误差可控的前提。
</p>
<p
class=
"title4"
>
3.2.3.1.
开发时间固定百分比法
</p>
<p
class=
"contentList"
v-for=
"item of fixedDevelopment"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
18
]
}}
</p>
</div>
<!-- 4-->
<div
class=
"page"
>
<p
class=
"title1"
>
4.
评估建议
</p>
...
...
@@ -490,7 +490,7 @@
<p
class=
"title3"
>
4.2.1.
开发框架解决方法
</p>
<p
class=
"contentList"
>
J2EE和类似跨平台的开发框架,可通过适配和代码改造,完全移植到国产化环境下。
</p>
<p
class=
"contentList"
>
基于.NET体系下使用VB、Delphi、VC、C++、C#等语言,完全依
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
6
]
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
19
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
style=
"text-indent:0em;"
>
赖Window组件和库的应用系统,需要换框架重构。
</p>
...
...
@@ -498,7 +498,7 @@
<p
class=
"contentList"
v-for=
"item of adaptationCompatible"
>
{{
item
}}
</p>
<p
class=
"title3"
>
4.2.3.
浏览器功能组件的替换和适配解决方法
</p>
<p
class=
"contentList"
v-for=
"item of replacementAndAdaptation"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
7
]
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
20
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"title3"
>
4.2.4.
B/S结构下的重构
</p>
...
...
@@ -508,7 +508,7 @@
<p
class=
"contentList"
>
如改造后允许以B/S结构部署,则改造工作量和不可预见问题将大为减少。
</p>
<p
class=
"title3"
>
4.2.6.
部署和迁移策略
</p>
<p
class=
"contentList"
v-for=
"item of deploymentAndMigration"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
8
]
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
21
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
v-for=
"item of deploymentAndMigration2"
style=
"text-indent:0em;"
>
{{
item
}}
</p>
...
...
@@ -516,20 +516,19 @@
<img
src=
"./img/3.png"
style=
"width: 50%"
>
</p>
<p
class=
"contentList"
v-for=
"item of deploymentAndMigration3"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
9
]
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
22
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"contentList"
v-for=
"item of deploymentAndMigration4"
style=
"text-indent:0em;"
>
{{
item
}}
</p>
<p
class=
"contentList"
>
最后要监测解决冲突,及时对异常数据进行处理。由于数据库双向可写,需监控监测冲突,并做好对应的日志记录。当出现异常数据,例如要求插入的数据,数据库中已经存在;或者更新数据,发现数据记录并不存在,需根据预定义的规则进行相应的处理。
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
10
]
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
23
]
}}
</p>
</div>
<div
class=
"page"
>
<p
class=
"title1"
>
5.
附件
</p>
<p
class=
"contentList"
v-for=
"item of annex"
style=
"text-indent:0em;"
>
{{
item
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
11
]
}}
</p>
<p
class=
"pageIndex"
>
{{
pageList
[
24
]
}}
</p>
</div>
</div>
</div>
</div>
</
template
>
...
...
@@ -747,7 +746,7 @@ export default {
'评估工具会自动使用该方法。首先,扫描代码并分析开发工作量测算出理论值A1。不可预见量、难度系数、综合系数叠加运算出理论值A2,A2的加权系数为0.6。再按照使用GB/T36964-2018提供的方程法估算出对比值B1,然后使用GB/T36964-2018提供的类比法和类推法来推算并限制对比值B1,形成对比值B2。B2的加权系数为0.4。'
,
'如A2/B2在±10%内,取A2值;反之取A2、B2的加权平均值。'
,
'这种方法的精确度取决于输入调研表数据和代码文件的完整性,其结果误差在本次评估中被限定在+10%以内,对预算影响被限定在+4.5%以内。'
,
'综上,误差控制和误差范围可接受。本评估报告计算的工作量和'
'综上,误差控制和误差范围可接受。本评估报告计算的工作量和
推算的预算建议,将作为宁波市安可办的审核依据和预算约束。
'
],
routeSelection
:[
'B/S应用系统的浏览器前端部分,主要面临编译结果在不同内核下标准兼容的问题,在安可操作系统上主要针对火狐浏览器(52版本)、360安全浏览器上的兼容性适配,主要工作集中在前端代码的筛查和轻度改造。'
,
...
...
@@ -827,7 +826,7 @@ export default {
},
other
:{
normal
:
0
,
operating
:
'
同意
'
,
operating
:
'
/
'
,
now
:
0
},
cost
:{
...
...
@@ -860,23 +859,24 @@ export default {
methods
:{
// 获取页码
getPage
()
{
for
(
let
i
=
1
;
i
<=
12
;
i
++
)
{
for
(
let
i
=
1
;
i
<=
25
;
i
++
)
{
if
(
i
===
1
||
i
===
2
)
{
this
.
pageList
.
push
(
i
+
this
.
page1
+
19
)
this
.
pageList
.
push
(
i
+
this
.
page1
+
6
)
}
else
if
(
i
===
3
)
{
this
.
pageList
.
push
(
i
+
this
.
page1
+
19
+
this
.
page2
)
this
.
pageList
.
push
(
i
+
this
.
page1
+
6
+
this
.
page2
)
}
else
if
(
i
===
4
)
{
if
(
this
.
page2
!==
0
&&
this
.
page3
!==
0
)
{
this
.
pageList
.
push
(
i
+
this
.
page1
+
19
+
this
.
page2
+
this
.
page3
-
2
)
this
.
pageList
.
push
(
i
+
this
.
page1
+
6
+
this
.
page2
+
this
.
page3
-
2
)
}
else
if
(
this
.
page2
!==
0
||
this
.
page3
!==
0
)
{
this
.
pageList
.
push
(
i
+
this
.
page1
+
19
+
this
.
page2
+
this
.
page3
-
1
)
this
.
pageList
.
push
(
i
+
this
.
page1
+
6
+
this
.
page2
+
this
.
page3
-
1
)
}
else
if
(
this
.
page2
===
0
&&
this
.
page3
===
0
)
{
this
.
pageList
.
push
(
i
+
this
.
page1
+
19
+
this
.
page2
+
this
.
page3
)
this
.
pageList
.
push
(
i
+
this
.
page1
+
6
+
this
.
page2
+
this
.
page3
)
}
}
else
{
this
.
pageList
.
push
(
i
+
this
.
page1
+
19
+
this
.
pageAll
-
this
.
del
)
this
.
pageList
.
push
(
i
+
this
.
page1
+
6
+
this
.
pageAll
-
this
.
del
)
}
}
console
.
log
(
this
.
pageList
)
},
// 获取打印时间
imeDayFilter
()
{
...
...
@@ -899,11 +899,13 @@ export default {
}
this
.
$server
.
getTechnology
(
val
).
then
(
res
=>
{
// console.log('数据请求结果', res.data)
console
.
log
(
this
.
$route
.
query
.
agree
)
if
(
res
.
data
!==
500
)
{
this
.
systemName
=
res
.
data
.
sysName
;
this
.
reportName
=
res
.
data
.
type
===
2
?
'适配'
:
'改造'
+
'工作评估报告'
;
this
.
reportName
=
'在国产化安全自主可控环境下的'
+
this
.
reportName
;
this
.
htmlTitle
=
this
.
reportName
;
console
.
log
(
res
.
data
.
sysScale
)
this
.
sysScale
.
codeNum
=
res
.
data
.
sysScale
.
code
.
num
===
-
1
?
'-'
:
res
.
data
.
sysScale
.
code
.
num
;
this
.
sysScale
.
modelNum
=
res
.
data
.
sysScale
.
mode
.
num
===
-
1
?
'-'
:
res
.
data
.
sysScale
.
mode
.
num
;
this
.
sysScale
.
fileNum
=
res
.
data
.
sysScale
.
file
.
num
===
-
1
?
'-'
:
res
.
data
.
sysScale
.
file
.
num
;
...
...
@@ -939,7 +941,8 @@ export default {
this
.
newCost
.
work
.
normal
=
res
.
data
.
manufacturingCost
===
''
?
0
:
res
.
data
.
manufacturingCost
.
workLoad
.
calculation
;
this
.
newCost
.
work
.
now
=
res
.
data
.
manufacturingCost
===
''
?
0
:
res
.
data
.
manufacturingCost
.
workLoad
.
calculation
;
this
.
newCost
.
other
.
normal
=
res
.
data
.
manufacturingCost
===
''
?
0
:
res
.
data
.
manufacturingCost
.
apply
.
calculation
;
this
.
newCost
.
other
.
now
=
res
.
data
.
manufacturingCost
===
''
?
0
:
res
.
data
.
manufacturingCost
.
apply
.
calculation
;
this
.
newCost
.
other
.
operating
=
this
.
$route
.
query
.
agree
===
'true'
?
'同意'
:
0
;
this
.
newCost
.
other
.
now
=
this
.
$route
.
query
.
agree
===
'true'
?
res
.
data
.
manufacturingCost
.
apply
.
calculation
:
0
;
this
.
newCost
.
cost
.
now
=
res
.
data
.
manufacturingCost
===
''
?
0
:
(
(
(
Number
(
this
.
newCost
.
person
.
normal
)
+
Number
(
this
.
newCost
.
person
.
operating
))
*
Number
(
this
.
newCost
.
work
.
now
)
)
+
Number
(
this
.
newCost
.
other
.
now
)
).
toFixed
(
3
)
this
.
degreeOfDifficulty
=
res
.
data
.
manufacturingCost
.
degreeOfDifficulty
.
calculation
;
this
.
tableTitle
[
0
].
val
=
this
.
title
;
// 单位名称
...
...
@@ -1166,6 +1169,10 @@ export default {
.otherPdf
.listContent
.child
{
text-align
:
right
;
}
.otherPdf
.listContent
.child
span
{
display
:
inline-block
;
width
:
25px
;
}
.otherPdf
.title1
{
font-size
:
22px
;
line-height
:
1.5
;
...
...
src/components/reportAssess/reportAssess.vue
浏览文件 @
112d4c3d
...
...
@@ -888,7 +888,8 @@ export default {
query
:
{
username
:
this
.
$route
.
query
.
username
,
id
:
this
.
$route
.
query
.
id
,
popp
:
this
.
popp
.
basic
popp
:
this
.
popp
.
basic
,
agree
:
this
.
isAgree
}
});
window
.
open
(
href
,
'_blank'
);
...
...
src/tools/htmlToPdf.js
浏览文件 @
112d4c3d
// 导出页面为PDF格式
import
Vue
from
'vue'
let
v
=
new
Vue
();
import
html2Canvas
from
'html2canvas'
import
JsPDF
from
'jspdf'
export
default
{
import
{
Loading
}
from
'element-ui'
let
loading
;
export
default
{
install
(
Vue
,
options
)
{
Vue
.
prototype
.
getPdf
=
function
()
{
loading
=
Loading
.
service
({
lock
:
true
,
text
:
'正在下载pdf...'
,
background
:
'rgba(0,0,0,.5)'
});
let
title
=
this
.
htmlTitle
v
.
$message
.
info
(
'正在生成pdf文件!请稍等'
)
html2Canvas
(
document
.
querySelector
(
'#pdfDom'
),
{
allowTaint
:
true
}).
then
(
function
(
canvas
)
{
...
...
@@ -32,6 +38,7 @@ export default {
}
}
}
loading
.
close
();
PDF
.
save
(
title
+
'.pdf'
)
})
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论