diff --git a/cdTMP/package-lock.json b/cdTMP/package-lock.json
index 3870de4..c670cff 100644
--- a/cdTMP/package-lock.json
+++ b/cdTMP/package-lock.json
@@ -44,6 +44,8 @@
"@vitejs/plugin-vue-jsx": "^3.0.1",
"@vue/babel-plugin-jsx": "^1.1.1",
"autoprefixer": "^10.4.14",
+ "browserslist": "^4.23.0",
+ "caniuse-lite": "^1.0.30001591",
"eslint": "^8.42.0",
"eslint-plugin-vue": "^9.14.1",
"less": "^4.1.3",
@@ -1760,15 +1762,15 @@
}
},
"node_modules/browserslist": {
- "version": "4.21.7",
- "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.7.tgz",
- "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==",
+ "version": "4.23.0",
+ "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
"dev": true,
"dependencies": {
- "caniuse-lite": "^1.0.30001489",
- "electron-to-chromium": "^1.4.411",
- "node-releases": "^2.0.12",
- "update-browserslist-db": "^1.0.11"
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
},
"bin": {
"browserslist": "cli.js"
@@ -1821,9 +1823,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001492",
- "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001492.tgz",
- "integrity": "sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==",
+ "version": "1.0.30001591",
+ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz",
+ "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==",
"dev": true
},
"node_modules/chalk": {
@@ -2081,9 +2083,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.417",
- "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.417.tgz",
- "integrity": "sha512-8rY8HdCxuSVY8wku3i/eDac4g1b4cSbruzocenrqBlzqruAZYHjQCHIjC66dLR9DXhEHTojsC4EjhZ8KmzwXqA==",
+ "version": "1.4.686",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.686.tgz",
+ "integrity": "sha512-3avY1B+vUzNxEgkBDpKOP8WarvUAEwpRaiCL0He5OKWEFxzaOFiq4WoZEZe7qh0ReS7DiWoHMnYoQCKxNZNzSg==",
"dev": true
},
"node_modules/enhanced-resolve": {
@@ -2158,9 +2160,9 @@
}
},
"node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
"dev": true,
"engines": {
"node": ">=6"
@@ -3341,9 +3343,9 @@
"peer": true
},
"node_modules/node-releases": {
- "version": "2.0.12",
- "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.12.tgz",
- "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==",
+ "version": "2.0.14",
+ "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true
},
"node_modules/normalize-path": {
@@ -4296,9 +4298,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "version": "1.0.13",
+ "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"dev": true,
"dependencies": {
"escalade": "^3.1.1",
diff --git a/cdTMP/package.json b/cdTMP/package.json
index 351db64..5f0ca7d 100644
--- a/cdTMP/package.json
+++ b/cdTMP/package.json
@@ -47,6 +47,8 @@
"@vitejs/plugin-vue-jsx": "^3.0.1",
"@vue/babel-plugin-jsx": "^1.1.1",
"autoprefixer": "^10.4.14",
+ "browserslist": "^4.23.0",
+ "caniuse-lite": "^1.0.30001591",
"eslint": "^8.42.0",
"eslint-plugin-vue": "^9.14.1",
"less": "^4.1.3",
diff --git a/cdTMP/src/api/generate/dgGenerate.js b/cdTMP/src/api/generate/dgGenerate.js
index eb208d5..3453465 100644
--- a/cdTMP/src/api/generate/dgGenerate.js
+++ b/cdTMP/src/api/generate/dgGenerate.js
@@ -33,4 +33,180 @@ export default {
params
})
},
+ /**
+ *
+ * @returns 生成技术依据文件部分
+ */
+ createTechYiju(params = {}) {
+ return request({
+ url: `/generate/create/techyiju`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成测评大纲-测评时间和地点
+ */
+ createTimeaddress(params = {}) {
+ return request({
+ url: `/generate/create/timeaddress`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成测评大纲-被测软件功能
+ */
+ createFuncList(params = {}) {
+ return request({
+ url: `/generate/create/funcList`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成测评大纲-测评对象的软件组成描述
+ */
+ createSoftComposition(params = {}) {
+ return request({
+ url: `/generate/create/softComposition`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成测评大纲-被测软件接口
+ */
+ createInterface(params = {}) {
+ return request({
+ url: `/generate/create/interface`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成测评大纲-被测软件性能
+ */
+ createPerformance(params = {}) {
+ return request({
+ url: `/generate/create/performance`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成测评大纲-被测软件性能
+ */
+ createBaseInformation(params = {}) {
+ return request({
+ url: `/generate/create/baseInformation`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成测评大纲-测试总体要求
+ */
+ createRequirement(params = {}) {
+ return request({
+ url: `/generate/create/requirement`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成-测试内容充分性及测试方法有效性
+ */
+ createAdequacyEffectiveness(params = {}) {
+ return request({
+ url: `/generate/create/adequacy_effectiveness`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成-测评组织及分工
+ */
+ createGroup(params = {}) {
+ return request({
+ url: `/generate/create/group`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成-测评条件和保障
+ */
+ createGuarantee(params = {}) {
+ return request({
+ url: `/generate/create/guarantee`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成-缩略语
+ */
+ createAbbreviation(params = {}) {
+ return request({
+ url: `/generate/create/abbreviation`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成-研制总要求-测试项对比表
+ */
+ createYzComparison(params = {}) {
+ return request({
+ url: `/generate/create/yzComparison`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成-需求规格说明追踪表
+ */
+ createXqComparison(params = {}) {
+ return request({
+ url: `/generate/create/xqComparison`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成-反向测试项-需求规格说明追踪表
+ */
+ createFanXqComparison(params = {}) {
+ return request({
+ url: `/generate/create/fanXqComparison`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ *
+ * @returns 生成-代码质量度量分析表
+ */
+ createCodeQuality(params = {}) {
+ return request({
+ url: `/generate/create/codeQuality`,
+ method: "get",
+ params
+ })
+ },
}
diff --git a/cdTMP/src/api/generate/dgSeitaiGenerate.js b/cdTMP/src/api/generate/dgSeitaiGenerate.js
new file mode 100644
index 0000000..66b9c36
--- /dev/null
+++ b/cdTMP/src/api/generate/dgSeitaiGenerate.js
@@ -0,0 +1,14 @@
+import { request } from "@/api/request"
+export default {
+ /**
+ * 如果缺少部分文件给与提示
+ * @returns 根据output_dir生成最终大纲文档
+ */
+ createDagangSeiTai(params = {}) {
+ return request({
+ url: `/create/dgDocument`,
+ method: "get",
+ params
+ })
+ }
+}
diff --git a/cdTMP/src/api/project/testDemand.js b/cdTMP/src/api/project/testDemand.js
index 051c2d7..b5d4990 100644
--- a/cdTMP/src/api/project/testDemand.js
+++ b/cdTMP/src/api/project/testDemand.js
@@ -44,4 +44,37 @@ export default {
data
})
},
+ /**
+ * 请求一个项目的所有测试需求(即测试项)
+ * @returns
+ */
+ getRelatedTestDemand(params = {}) {
+ return request({
+ url: "/project/testDemand/getRelatedTestDemand",
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 设计需求关联测试需求(测试项)的接口请求
+ * @returns
+ */
+ solveRelatedTestDemand(params = {}) {
+ return request({
+ url: "/project/testDemand/solveRelatedTestDemand",
+ method: "post",
+ data: params
+ })
+ },
+ /**
+ * 根据当前设计需求design,找出已关联非自己的测试项
+ * @returns
+ */
+ getExistRelatedTestDemand(params = {}) {
+ return request({
+ url: "/project/testDemand/getExistRelatedTestDemand",
+ method: "post",
+ data: params
+ })
+ }
}
diff --git a/cdTMP/src/api/system/abbreviation.js b/cdTMP/src/api/system/abbreviation.js
new file mode 100644
index 0000000..b4b7898
--- /dev/null
+++ b/cdTMP/src/api/system/abbreviation.js
@@ -0,0 +1,48 @@
+import { request } from "@/api/request"
+
+export default {
+ /**
+ * 请求缩略语列表
+ * @returns 请求缩略语的数据
+ */
+ getlist(params = {}) {
+ return request({
+ url: `system/abbreviation/getlist`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 添加缩略语数据
+ * @returns 返回已添加的缩略语
+ */
+ save(data = {}) {
+ return request({
+ url: "system/abbreviation/save",
+ method: "post",
+ data
+ })
+ },
+ /**
+ * 更新缩略语
+ * @returns
+ */
+ update(id, data = {}) {
+ return request({
+ url: "system/abbreviation/update/" + id,
+ method: "put",
+ data
+ })
+ },
+ /**
+ * 删除缩略语
+ * @returns
+ */
+ delete(data) {
+ return request({
+ url: "system/abbreviation/delete",
+ method: "delete",
+ data
+ })
+ }
+}
diff --git a/cdTMP/src/components/ma-crud/components/column.vue b/cdTMP/src/components/ma-crud/components/column.vue
index 03dae18..9f7a94b 100644
--- a/cdTMP/src/components/ma-crud/components/column.vue
+++ b/cdTMP/src/components/ma-crud/components/column.vue
@@ -69,6 +69,7 @@
"
type="primary"
> {{ options.see.text || '查看' }} -->
+
-
+
{{
props.isRecovery
diff --git a/cdTMP/src/components/ma-editor/index.vue b/cdTMP/src/components/ma-editor/index.vue
index c41a663..7774ce0 100644
--- a/cdTMP/src/components/ma-editor/index.vue
+++ b/cdTMP/src/components/ma-editor/index.vue
@@ -51,8 +51,8 @@ const props = defineProps({
},
toolbar: {
type: [String, Array],
- default:
- "code undo redo restoredraft | paste pastetext |bold italic underline strikethrough codesample | preview | alignleft alignjustify indent formatpainter | \
+ default: // 如果要取消粘贴只粘贴文本,需要用户加格式请加上pastetext
+ "code undo redo restoredraft | paste |bold italic underline strikethrough codesample | preview | alignleft alignjustify indent formatpainter | \
styleselect formatselect fontselect fontsizeselect | bullist numlist | blockquote subscript superscript removeformat | charmap pagebreak insertdatetime"
}
})
@@ -81,6 +81,7 @@ const initConfig = reactive({
toolbar: props.toolbar,
skeletonScreen: true,
branding: false,
+ paste_as_text: true, // 粘贴文字只能是纯文本
content_css: "/tinymce/skins/content/default/content.css",
setup: (editor) => {
editor.on("init", () => {
diff --git a/cdTMP/src/layout/components/navbar.vue b/cdTMP/src/layout/components/navbar.vue
index 8c30c99..2009663 100644
--- a/cdTMP/src/layout/components/navbar.vue
+++ b/cdTMP/src/layout/components/navbar.vue
@@ -20,7 +20,7 @@
-
-
+
@@ -159,11 +159,10 @@ const handleClickLogo = () => {
}
// 测试生成文档-测试项和方法
-const testCreate = async ()=>{
+const testCreate = async () => {
const st = await dgGenerateApi.createTestDemand()
Message.success(st.message)
}
-
diff --git a/cdTMP/src/views/datamanage/dictmanage/dataList.vue b/cdTMP/src/views/datamanage/dictmanage/dataList.vue
index cd9569b..2bcfb08 100644
--- a/cdTMP/src/views/datamanage/dictmanage/dataList.vue
+++ b/cdTMP/src/views/datamanage/dictmanage/dataList.vue
@@ -59,6 +59,30 @@ const open = (row) => {
crudRef.value.requestParams = { id: currentRow.value.id }
crudRef.value.requestData()
visible.value = true
+ // 判断如果是行数据的code值为standard则不显示‘文档名称’‘发布来源’‘发布日期’,且表单也不显示
+ // columnService可以动态设置表格列的属性!!!
+ const columnService = crudRef.value.getColumnService()
+ if (currentRow.value.code === "standard") {
+ columnService.get("doc_name").setAttr("hide", false)
+ columnService.get("publish_date").setAttr("hide", false)
+ columnService.get("source").setAttr("hide", false)
+ columnService.get("doc_name").setAttr("addDisplay", true)
+ columnService.get("publish_date").setAttr("addDisplay", true)
+ columnService.get("source").setAttr("addDisplay", true)
+ columnService.get("doc_name").setAttr("editDisplay", true)
+ columnService.get("publish_date").setAttr("editDisplay", true)
+ columnService.get("source").setAttr("editDisplay", true)
+ } else {
+ columnService.get("doc_name").setAttr("hide", true)
+ columnService.get("publish_date").setAttr("hide", true)
+ columnService.get("source").setAttr("hide", true)
+ columnService.get("doc_name").setAttr("addDisplay", false)
+ columnService.get("publish_date").setAttr("addDisplay", false)
+ columnService.get("source").setAttr("addDisplay", false)
+ columnService.get("doc_name").setAttr("editDisplay", false)
+ columnService.get("publish_date").setAttr("editDisplay", false)
+ columnService.get("source").setAttr("editDisplay", false)
+ }
}
// crudOptions
const crudOptions = ref({
@@ -76,6 +100,7 @@ const crudOptions = ref({
edit: { show: true, api: dictApi.updateDictItemData },
delete: { show: true, api: dictApi.realDeleteItem }
})
+
// crudColumns
const columns = ref([
{ title: "ID", dataIndex: "id", addDisplay: false, editDisplay: false, width: 50, hide: true },
@@ -159,7 +184,7 @@ const columns = ref([
dataIndex: "source",
align: "center",
search: false,
- placeholder: "如果不是标准则不填"
+ placeholder: "如果不是标准则不填",
}
])
diff --git a/cdTMP/src/views/project/design-demand/index.vue b/cdTMP/src/views/project/design-demand/index.vue
index be746c7..d830596 100644
--- a/cdTMP/src/views/project/design-demand/index.vue
+++ b/cdTMP/src/views/project/design-demand/index.vue
@@ -6,18 +6,47 @@
{{ showType(record) }}
+
+
+
+
+
+
+ 关联测试项
+
+
+
+
+ 关联测试项
+
已存在的关联项:
+
+
+ - {{ item }}
+
+
+ 选择关联的测试需求项:
+
+
-
+
diff --git a/cdTMP/src/views/project/dut/index.vue b/cdTMP/src/views/project/dut/index.vue
index 6673281..11b6b9c 100644
--- a/cdTMP/src/views/project/dut/index.vue
+++ b/cdTMP/src/views/project/dut/index.vue
@@ -50,7 +50,7 @@ const crudOptions = ref({
delete: { show: true, api: designDemandApi.delete },
// 处理添加后函数
beforeOpenAdd: function () {
- let key_split = route.query.key.split("-")
+ let key_split = route.query.key.split("-")
let round_key = key_split[0]
let dut_key = key_split[1]
let td = treeDataStore.treeData
@@ -58,7 +58,7 @@ const crudOptions = ref({
return true
},
beforeOpenEdit: function (record) {
- let key_split = route.query.key.split("-")
+ let key_split = route.query.key.split("-")
let round_key = key_split[0]
let dut_key = key_split[1]
let td = treeDataStore.treeData
@@ -98,7 +98,7 @@ const crudColumns = ref([
align: "center",
width: 50,
dataIndex: "id",
- commonRules: [{ required: true, message: "标识是必填" }],
+ commonRules: [{ required: true, message: "ID必填" }],
validateTrigger: "blur"
},
{
diff --git a/cdTMP/src/views/project/round/index.vue b/cdTMP/src/views/project/round/index.vue
index 6d7f7ba..5878e5b 100644
--- a/cdTMP/src/views/project/round/index.vue
+++ b/cdTMP/src/views/project/round/index.vue
@@ -100,7 +100,8 @@ const beiceType = [
{ label: "源代码", value: "SO" },
{ label: "设计说明", value: "SJ" },
{ label: "需求文档", value: "XQ" },
- { label: "通信协议", value: "XY" }
+ { label: "通信协议", value: "XY" },
+ { label: "研制总要求", value: "YZ" }
]
const crudColumns = ref([
@@ -135,7 +136,7 @@ const crudColumns = ref([
dict: {
data: beiceType,
translation: true,
- tagColors: { XQ: "blue", SO: "green", SJ: "orangered", XY: "pinkpurple" }
+ tagColors: { XQ: "blue", SO: "green", SJ: "orangered", XY: "pinkpurple",YZ:"red" }
},
control: (value, data) => {
if (value === "SO") {
@@ -150,7 +151,6 @@ const crudColumns = ref([
}
} else {
// 其他数据清除
-
return {
black_line: { display: false },
pure_code_line: { display: false },
@@ -180,6 +180,14 @@ const crudColumns = ref([
commonRules: [{ required: true, message: "版本必填" }],
validateTrigger: "blur"
},
+ {
+ title: "用户标识",
+ align: "center",
+ dataIndex: "ref",
+ search: true,
+ commonRules: [{ required: true, message: "用户标识或编号必填" }],
+ validateTrigger: "blur"
+ },
{
title: "单位",
align: "center",
diff --git a/cdTMP/src/views/testmanage/projmanage/cpns/progress.vue b/cdTMP/src/views/testmanage/projmanage/cpns/progress.vue
new file mode 100644
index 0000000..c3044ff
--- /dev/null
+++ b/cdTMP/src/views/testmanage/projmanage/cpns/progress.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
diff --git a/cdTMP/src/views/testmanage/projmanage/index.vue b/cdTMP/src/views/testmanage/projmanage/index.vue
index ee5692c..b5a39c1 100644
--- a/cdTMP/src/views/testmanage/projmanage/index.vue
+++ b/cdTMP/src/views/testmanage/projmanage/index.vue
@@ -6,12 +6,17 @@
进入工作区
预览
- 【测试】生成依据文件
- 【测试】联系方式
+ 生成测试项
+ [测试]生成依据文件
+ [测试]联系方式
+ [测试]生成接口
+ [测试]研总追踪
+ [测试]生成最后大纲
+