2023-06-15 20:13:46 +08:00
|
|
|
<template>
|
|
|
|
|
<div class="ma-content-block lg:flex justify-between p-4">
|
|
|
|
|
<div class="lg:w-full w-full lg:ml-4 mt-5 lg:mt-0">
|
|
|
|
|
<!-- CRUD组件 -->
|
2023-06-20 18:09:30 +08:00
|
|
|
<ma-crud :options="crudOptions" :columns="crudColumns">
|
|
|
|
|
<template #total_code_line="{ record }">
|
|
|
|
|
<template v-if="record.total_code_line">
|
|
|
|
|
<a-statistic
|
|
|
|
|
:animation-duration="1000"
|
|
|
|
|
:value="parseInt(record.total_code_line)"
|
|
|
|
|
animation
|
|
|
|
|
:value-style="{ color: '#0fbf60' }"
|
|
|
|
|
></a-statistic>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
<template #total_line="{ record }">
|
|
|
|
|
<template v-if="record.total_line">
|
|
|
|
|
<a-statistic
|
|
|
|
|
:animation-duration="1000"
|
|
|
|
|
:value="parseInt(record.total_line)"
|
|
|
|
|
animation
|
|
|
|
|
:value-style="{ color: 'orange' }"
|
|
|
|
|
></a-statistic>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
<template #comment_line="{ record }">
|
|
|
|
|
<template v-if="record.comment_line">
|
|
|
|
|
<a-statistic
|
|
|
|
|
:animation-duration="1000"
|
|
|
|
|
:precision="2"
|
|
|
|
|
:value="parseFloat(record.comment_line)"
|
|
|
|
|
animation
|
|
|
|
|
:value-style="{ color: 'lightblue' }"
|
|
|
|
|
>
|
|
|
|
|
<template #suffix> % </template>
|
|
|
|
|
</a-statistic>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
</ma-crud>
|
2023-06-15 20:13:46 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup>
|
|
|
|
|
import { ref } from "vue"
|
|
|
|
|
import { useRoute, useRouter } from "vue-router"
|
2023-06-19 19:51:12 +08:00
|
|
|
import dutApi from "@/api/project/dut"
|
2023-06-15 20:13:46 +08:00
|
|
|
const route = useRoute()
|
|
|
|
|
const router = useRouter()
|
|
|
|
|
|
|
|
|
|
// crud组件
|
|
|
|
|
const crudOptions = ref({
|
2023-06-19 19:51:12 +08:00
|
|
|
api: dutApi.getDutList,
|
2023-06-15 20:13:46 +08:00
|
|
|
parameters: {
|
|
|
|
|
projectId: route.query.id,
|
|
|
|
|
round: route.query.key
|
|
|
|
|
},
|
2023-06-20 18:09:30 +08:00
|
|
|
operationWidth: 200,
|
2023-06-15 20:13:46 +08:00
|
|
|
showIndex: false,
|
|
|
|
|
rowSelection: { showCheckedAll: true },
|
|
|
|
|
add: { show: true },
|
|
|
|
|
edit: { show: true },
|
|
|
|
|
delete: { show: true },
|
|
|
|
|
searchColNumber: 3,
|
|
|
|
|
tablePagination: true,
|
|
|
|
|
operationColumn: true,
|
2023-06-20 18:09:30 +08:00
|
|
|
operationColumnAlign: "center",
|
2023-06-15 20:13:46 +08:00
|
|
|
formOption: {
|
2023-06-20 18:09:30 +08:00
|
|
|
viewType: "drawer",
|
|
|
|
|
width: 600
|
2023-06-15 20:13:46 +08:00
|
|
|
}
|
|
|
|
|
})
|
2023-06-20 18:09:30 +08:00
|
|
|
const beiceType = [
|
|
|
|
|
{ label: "源代码", value: "SO" },
|
|
|
|
|
{ label: "设计说明", value: "SJ" },
|
|
|
|
|
{ label: "需求文档", value: "XQ" },
|
|
|
|
|
{ label: "通信协议", value: "XY" }
|
|
|
|
|
]
|
|
|
|
|
|
2023-06-15 20:13:46 +08:00
|
|
|
const crudColumns = ref([
|
|
|
|
|
{
|
|
|
|
|
title: "ID",
|
|
|
|
|
width: 50,
|
2023-06-20 18:09:30 +08:00
|
|
|
align: "center",
|
2023-06-15 20:13:46 +08:00
|
|
|
dataIndex: "id",
|
|
|
|
|
search: true,
|
2023-06-20 18:09:30 +08:00
|
|
|
commonRules: [{ required: true, message: "ID是必填" }],
|
2023-06-15 20:13:46 +08:00
|
|
|
validateTrigger: "blur"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "标识",
|
2023-06-19 19:51:12 +08:00
|
|
|
width: 150,
|
2023-06-20 18:09:30 +08:00
|
|
|
align: "center",
|
2023-06-15 20:13:46 +08:00
|
|
|
dataIndex: "ident",
|
|
|
|
|
search: true,
|
|
|
|
|
commonRules: [{ required: true, message: "标识是必填" }],
|
|
|
|
|
validateTrigger: "blur"
|
|
|
|
|
},
|
2023-06-20 18:09:30 +08:00
|
|
|
{
|
|
|
|
|
title: "被测类型",
|
|
|
|
|
align: "center",
|
|
|
|
|
dataIndex: "type",
|
|
|
|
|
search: true,
|
|
|
|
|
formType: "radio",
|
|
|
|
|
addDefaultValue: "SO",
|
|
|
|
|
dict: {
|
|
|
|
|
data: beiceType,
|
|
|
|
|
translation: true,
|
|
|
|
|
tagColors: { XQ: "blue", SO: "green", SJ: "orangered", XY: "pinkpurple" }
|
|
|
|
|
},
|
|
|
|
|
control: (value) => {
|
|
|
|
|
if (value === "SO") {
|
|
|
|
|
return {
|
|
|
|
|
black_line: { display: true },
|
|
|
|
|
pure_code_line: { display: true },
|
|
|
|
|
mix_line: { display: true },
|
|
|
|
|
total_comment_line: { display: true },
|
|
|
|
|
total_code_line: { display: true },
|
|
|
|
|
total_line: { display: true },
|
|
|
|
|
comment_line: { display: true }
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
return {
|
|
|
|
|
black_line: { display: false },
|
|
|
|
|
pure_code_line: { display: false },
|
|
|
|
|
mix_line: { display: false },
|
|
|
|
|
total_comment_line: { display: false },
|
|
|
|
|
total_code_line: { display: false },
|
|
|
|
|
total_line: { display: false },
|
|
|
|
|
comment_line: { display: false }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2023-06-15 20:13:46 +08:00
|
|
|
{
|
2023-06-19 19:51:12 +08:00
|
|
|
title: "被测件名",
|
|
|
|
|
width: 120,
|
2023-06-20 18:09:30 +08:00
|
|
|
align: "center",
|
2023-06-15 20:13:46 +08:00
|
|
|
dataIndex: "name",
|
|
|
|
|
search: true,
|
|
|
|
|
commonRules: [{ required: true, message: "需求名称是必填" }],
|
|
|
|
|
validateTrigger: "blur"
|
|
|
|
|
},
|
|
|
|
|
{
|
2023-06-20 18:09:30 +08:00
|
|
|
title: "空行",
|
|
|
|
|
hide: true,
|
|
|
|
|
align: "center",
|
|
|
|
|
dataIndex: "black_line"
|
2023-06-15 20:13:46 +08:00
|
|
|
},
|
|
|
|
|
{
|
2023-06-20 18:09:30 +08:00
|
|
|
title: "纯注释",
|
|
|
|
|
hide: true,
|
|
|
|
|
align: "center",
|
|
|
|
|
dataIndex: "pure_code_line"
|
2023-06-19 19:51:12 +08:00
|
|
|
},
|
|
|
|
|
{
|
2023-06-20 18:09:30 +08:00
|
|
|
title: "混合行",
|
|
|
|
|
hide: true,
|
|
|
|
|
align: "center",
|
|
|
|
|
dataIndex: "mix_line"
|
2023-06-19 19:51:12 +08:00
|
|
|
},
|
|
|
|
|
{
|
2023-06-20 18:09:30 +08:00
|
|
|
title: "总注释",
|
|
|
|
|
hide: true,
|
|
|
|
|
align: "center",
|
|
|
|
|
dataIndex: "total_comment_line"
|
2023-06-19 19:51:12 +08:00
|
|
|
},
|
|
|
|
|
{
|
2023-06-20 18:09:30 +08:00
|
|
|
title: "总代码",
|
|
|
|
|
align: "center",
|
|
|
|
|
dataIndex: "total_code_line"
|
2023-06-19 19:51:12 +08:00
|
|
|
},
|
|
|
|
|
{
|
2023-06-20 18:09:30 +08:00
|
|
|
title: "总行数",
|
|
|
|
|
align: "center",
|
|
|
|
|
dataIndex: "total_line"
|
2023-06-19 19:51:12 +08:00
|
|
|
},
|
|
|
|
|
{
|
2023-06-20 18:09:30 +08:00
|
|
|
title: "注释率",
|
|
|
|
|
align: "center",
|
|
|
|
|
dataIndex: "comment_line",
|
|
|
|
|
commonRules: [{ required: true, message: "注释率必填" }]
|
|
|
|
|
}
|
2023-06-15 20:13:46 +08:00
|
|
|
])
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="less" scoped></style>
|