提交 39357ace authored 作者: liuluyu's avatar liuluyu

更新月报字段

上级 45acbaf6
import type { VxeGridProps, VxeColumnPropTypes } from 'vxe-table'; import type { VxeGridProps, VxeColumnPropTypes } from 'vxe-table';
import XEUtils from 'xe-utils'; import XEUtils from 'xe-utils';
...@@ -26,139 +25,132 @@ interface VxeColumn { ...@@ -26,139 +25,132 @@ interface VxeColumn {
export const tableFormData = [ export const tableFormData = [
{ {
serialNumber: "1", serialNumber: '1',
project: "监管部门发布的基础软硬件产品缺陷信息通报情况处置结果", project: '监管部门发布的基础软硬件产品缺陷信息通报情况处置结果',
code: 'TM1002', code: 'TM1002',
content: [ content: [
{ type: "text", value: "(1) 监管部门发布的上期基础软硬件产品缺陷信息通报中涉及本机构缺陷数量:" }, { type: 'text', value: '(1) 监管部门发布的上期基础软硬件产品缺陷信息通报中涉及本机构缺陷数量:' },
{ type: "number", value: "", unit: "个", field: "COL31" }, { type: 'number', value: '', unit: '个', field: 'COL31' },
{ type: "br" }, { type: 'br' },
{ type: "text", value: "(2) 根据历史通报,本月处置基础软硬件产品缺陷数量合计:" }, { type: 'text', value: '(2) 根据历史通报,本月处置基础软硬件产品缺陷数量合计:' },
{ type: "number", value: "", unit: "台/套/次", field: "C23A001" }, { type: 'number', value: '', unit: '台/套/次', field: 'C23A001' },
{ type: "brspace" }, { type: 'brspace' },
{ type: "text", value: "涉及本机构重要信息系统数量:" }, { type: 'text', value: '涉及本机构重要信息系统数量:' },
{ type: "number", value: "", unit: "个", field: "C23A002" }, { type: 'number', value: '', unit: '个', field: 'C23A002' },
], ],
remarks: { remarks: {
rows:3, rows: 3,
field:"C23A002" field: 'C23A002',
} },
}, },
{ {
serialNumber: "2", serialNumber: '2',
project: "本月新发现基础软硬件产品缺陷清单", project: '本月新发现基础软硬件产品缺陷清单',
code: 'TM1001', code: 'TM1001',
type: "MultiColumnTable", type: 'MultiColumnTable',
content: [ content: [
{ {
name: "产品类型", name: '产品类型',
formType: 'radio-group', formType: 'radio-group',
field: "COL1", field: 'COL1',
options: [ options: ['机房基础设施', '服务器', '存储', '网络设备', '信息安全设备', '操作系统', '数据库', '中间件', '其他'],
"机房基础设施", "服务器", "存储", "网络设备", "信息安全设备",
"操作系统", "数据库", "中间件"
],
otherOption: true, otherOption: true,
otherFormType: 'input', otherFormType: 'input',
otherField: "COL0" otherField: 'COL0',
}, },
{ name: "设备型号/软件版本", formType: 'input', field: "COL3" }, { name: '设备型号/软件版本', formType: 'input', field: 'COL3' },
{ name: "配件型号", formType: 'input', field: "COL4" }, { name: '配件型号', formType: 'input', field: 'COL4' },
{ name: "软件版本", formType: 'input', field: "COL5" }, { name: '软件版本', formType: 'input', field: 'COL5' },
{ name: "生产厂家", formType: 'input', field: "COL7" }, { name: '生产厂家', formType: 'input', field: 'COL7' },
{ {
name: "缺陷情况外在表现", name: '缺陷情况外在表现',
formType: 'textarea', formType: 'textarea',
field: "COL9", field: 'COL9',
width: 200 width: 200,
}, },
{ {
name: "缺陷情况实际影响", name: '缺陷情况实际影响',
formType: 'checkbox-group', formType: 'checkbox-group',
field: "COL11", field: 'COL11',
options: [ options: ['敏感数据损毁、丢失、泄露', '服务水平下降', '业务运营中断', '其他'],
"敏感数据损毁、丢失、泄露", "服务水平下降", "业务运营中断"
],
otherOption: true, otherOption: true,
otherFormType: 'input', otherFormType: 'input',
otherField: "COL10" otherField: 'COL10',
}, },
{ {
name: "缺陷情况潜在影响", name: '缺陷情况潜在影响',
formType: 'checkbox-group', formType: 'checkbox-group',
field: "COL13", field: 'COL13',
options: [ options: ['敏感数据损毁、丢失、泄露', '服务水平下降', '业务运营中断', '其他'],
"敏感数据损毁、丢失、泄露", "服务水平下降", "业务运营中断"
],
otherOption: true, otherOption: true,
otherFormType: 'input', otherFormType: 'input',
otherField: "COL12" otherField: 'COL12',
}, },
{ {
name: "缺陷原因", name: '缺陷原因',
formType: 'textarea', formType: 'textarea',
field: "COL14", field: 'COL14',
width: 200 width: 200,
}, },
{ {
name: "缺陷发现途径", name: '缺陷发现途径',
formType: 'radio-group', formType: 'radio-group',
field: "COL16", field: 'COL16',
options: ["自主发现", "生产厂家主动提示"], options: ['自主发现', '生产厂家主动提示', '其他'],
otherOption: true, otherOption: true,
otherFormType: 'input', otherFormType: 'input',
otherField: "COL17" otherField: 'COL17',
}, },
{ {
name: "解决方案已采取措施", name: '解决方案已采取措施',
formType: 'textarea', formType: 'textarea',
field: "COL19", field: 'COL19',
width: 200 width: 200,
}, },
{ {
name: "生产厂家提供的解决方案", name: '生产厂家提供的解决方案',
formType: 'textarea', formType: 'textarea',
field: "COL20", field: 'COL20',
width: 200 width: 200,
}, },
{ {
name: "补丁版本", name: '补丁版本',
formType: 'input', formType: 'input',
field: "COL22" field: 'COL22',
}, },
{ {
name: "发现时间", name: '发现时间',
formType: 'date', formType: 'date',
field: "COL24" field: 'COL24',
}, },
{ {
name: "解决情况", name: '解决情况',
formType: 'radio-group', formType: 'radio-group',
field: "COL26", field: 'COL26',
options: ["已解决", "未解决"] options: ['已解决', '未解决'],
}, },
{ {
name: "缺陷信息联系人", name: '缺陷信息联系人',
formType: 'input', formType: 'input',
field: "COL28" field: 'COL28',
}, },
{ {
name: "缺陷信息联系电话", name: '缺陷信息联系电话',
formType: 'input', formType: 'input',
field: "COL29" field: 'COL29',
} },
], ],
datas: [], datas: [],
remarks: { remarks: {
rows:3, rows: 3,
field:"C23A002" field: 'C23A002',
} },
} },
]; ];
export const attachmentData = [ export const attachmentData = [
{ name: "基础软硬件产品缺陷详细报告", field: "TM1001.COL30" }, { name: '基础软硬件产品缺陷详细报告', field: 'TM1001.COL30' },
{ name: "生产厂家提供的解决方案文件", field: "TM1001.COL21" } { name: '生产厂家提供的解决方案文件', field: 'TM1001.COL21' },
]; ];
// 数据结构定义 // 数据结构定义
...@@ -210,56 +202,56 @@ export interface TM1Data { ...@@ -210,56 +202,56 @@ export interface TM1Data {
// 示例数据 // 示例数据
export const sampleTM1Data: TM1Data = { export const sampleTM1Data: TM1Data = {
FILLIN_DEPT: "", FILLIN_DEPT: '',
FILLIN_DATE: "", FILLIN_DATE: '',
FILLIN_PERSON: "", FILLIN_PERSON: '',
TELEPHONE: "", TELEPHONE: '',
RES_PERSON: "", RES_PERSON: '',
jiaoyanwei: "0", jiaoyanwei: '0',
isempty: "0", isempty: '0',
itTitle: "T-M-1 基础软硬件产品缺陷信息表", itTitle: 'T-M-1 基础软硬件产品缺陷信息表',
itVersion: "23A", itVersion: '23A',
TM1002: { TM1002: {
COL31: "", COL31: '',
C23A001: "", C23A001: '',
C23A002: "", C23A002: '',
COL34: "" COL34: '',
}, },
TM1001: [createEmptyTM1001Item()] TM1001: [createEmptyTM1001Item()],
}; };
// 创建空数据函数 // 创建空数据函数
export function createEmptyTM1Data(): TM1Data { export function createEmptyTM1Data(): TM1Data {
return { return {
...sampleTM1Data, ...sampleTM1Data,
TM1001: [createEmptyTM1001Item()] TM1001: [createEmptyTM1001Item()],
}; };
} }
// 创建空的TM1001项 // 创建空的TM1001项
export function createEmptyTM1001Item(): TM1001Item { export function createEmptyTM1001Item(): TM1001Item {
return { return {
COL1: "", COL1: '',
COL0: "", COL0: '',
COL3: "", COL3: '',
COL4: "", COL4: '',
COL5: "", COL5: '',
COL7: "", COL7: '',
COL9: "", COL9: '',
COL11: "", COL11: '',
COL10: "", COL10: '',
COL13: "", COL13: '',
COL12: "", COL12: '',
COL14: "", COL14: '',
COL16: "", COL16: '',
COL17: "", COL17: '',
COL19: "", COL19: '',
COL20: "", COL20: '',
COL22: "", COL22: '',
COL24: "", COL24: '',
COL26: "", COL26: '',
COL28: "", COL28: '',
COL29: "", COL29: '',
COL30: "" COL30: '',
}; };
} }
...@@ -25,142 +25,201 @@ interface VxeColumn { ...@@ -25,142 +25,201 @@ interface VxeColumn {
export const tableFormData = [ export const tableFormData = [
{ {
serialNumber: "1", serialNumber: '1',
project: "卫星导航系统应用整体情况", project: '卫星导航系统应用整体情况',
code: 'TM2001', code: 'TM2001',
type: "VxeTable", type: 'VxeTable',
columns: [ columns: [
{ field: '', title: '业务场景',headerAlign: 'center', {
field: '',
title: '业务场景',
headerAlign: 'center',
children: [ children: [
{ field: 'COL1', title: '场景类型', {
field: 'COL1',
title: '场景类型',
width: 200,
editRender: { editRender: {
name: 'VxeSelect', name: 'VxeSelect',
options: ["授时", "定位", "导航", "短报文通信", "国际搜救", "其他"], options: ['授时', '定位', '导航', '短报文通信', '国际搜救', '其他'],
}, },
slots:{ edit: 'select',default: 'default_select'}, slots: { edit: 'select', default: 'default_select' },
}, },
{ field: 'COL3', title: '场景简述', editRender: { name: 'VxeInput',}} {
] field: 'COL2',
title: '其他场景',
width: 200,
editRender: { name: 'VxeInput' },
slots: { edit: 'other_input', default: 'default_other' },
}, },
{ field: '', title: '产品情况',headerAlign: 'center', { field: 'COL3', title: '场景简述', width: 200, editRender: { name: 'VxeInput' } },
children: [ ],
{ field: '', showHeaderOverflow: true, title: '至年底计划拥有BDS载体保有量',
children: [
{ field: 'COL8', title: '保有量', editRender: { name: 'VxeNumberInput'}},
{ field: 'COL5', title: '单用', editRender: { name: 'VxeNumberInput'}},
{ field: 'COL6', title: '主用', editRender: { name: 'VxeNumberInput'}},
{ field: 'COL7', title: '优先', editRender: { name: 'VxeNumberInput'}},
]
}, },
{ field: '', showHeaderOverflow: true,title: '截至本月底拥有BDS载体保有量', {
field: '',
title: '产品情况',
headerAlign: 'center',
children: [
{
field: '',
showHeaderOverflow: true,
title: '截至本月底拥有BDS载体保有量',
children: [ children: [
{ field: 'COL9', title: '保有量', editRender: { name: 'VxeNumberInput'}}, { field: 'COL9', title: '保有量', width: 200, editRender: { name: 'VxeNumberInput' } },
{ field: 'COL011', title: '单用', editRender: { name: 'VxeNumberInput'}}, { field: 'COL011', title: '单用', width: 200, editRender: { name: 'VxeNumberInput' } },
{ field: 'COL013', title: '主用', editRender: { name: 'VxeNumberInput'}}, { field: 'COL013', title: '主用', width: 200, editRender: { name: 'VxeNumberInput' } },
{ field: 'COL015', title: '优先', editRender: { name: 'VxeNumberInput'}}, { field: 'COL015', title: '优先', width: 200, editRender: { name: 'VxeNumberInput' } },
] ],
}, },
{ field: '', showHeaderOverflow: true,title: '截至本月底拥有GPS载体保有量', {
field: '',
showHeaderOverflow: true,
title: '截至本月底拥有GPS载体保有量',
children: [ children: [
{ field: 'COL017', title: '保有量', editRender: { name: 'VxeNumberInput'}}, { field: 'COL017', title: '保有量', width: 200, editRender: { name: 'VxeNumberInput' } },
{ field: 'COL019', title: '单用', editRender: { name: 'VxeNumberInput'}}, { field: 'COL019', title: '单用', width: 200, editRender: { name: 'VxeNumberInput' } },
{ field: 'COL021', title: '主用', editRender: { name: 'VxeNumberInput'}}, { field: 'COL021', title: '主用', width: 200, editRender: { name: 'VxeNumberInput' } },
{ field: 'COL023', title: '优先', editRender: { name: 'VxeNumberInput'}}, { field: 'COL023', title: '优先', width: 200, editRender: { name: 'VxeNumberInput' } },
],
]
}, },
{ field: 'col2_3', showHeaderOverflow: true,title: '截至本月底拥有其他载体保有量', {
field: 'col2_3',
showHeaderOverflow: true,
title: '截至本月底拥有其他载体保有量',
children: [ children: [
{ field: 'COL025', title: '保有量', editRender: { name: 'VxeNumberInput'}}, { field: 'COL025', title: '保有量', width: 200, editRender: { name: 'VxeNumberInput' } },
{ field: 'COL027', title: '单用', editRender: { name: 'VxeNumberInput'}}, { field: 'COL027', title: '单用', width: 200, editRender: { name: 'VxeNumberInput' } },
{ field: 'COL029', title: '主用', editRender: { name: 'VxeNumberInput'}}, { field: 'COL029', title: '主用', width: 200, editRender: { name: 'VxeNumberInput' } },
{ field: 'COL031', title: '优先', editRender: { name: 'VxeNumberInput'}}, { field: 'COL031', title: '优先', width: 200, editRender: { name: 'VxeNumberInput' } },
],
]
}, },
], ],
}, },
{ title: '操作', slots: { default: 'action' },width:100 } { title: '操作', slots: { default: 'action' }, width: 100 },
], ],
datas: [], datas: [],
remarks: "" remarks: '',
}, },
{ {
serialNumber: "2", serialNumber: '2',
project: "卫星导航系统应用清单", project: '卫星导航系统应用清单',
code: 'TM2002', code: 'TM2002',
type: "VxeTable", type: 'VxeTable',
columns: [ columns: [
{ field: '', title: '业务场景',headerAlign: 'center', {
field: '',
title: '业务场景',
headerAlign: 'center',
children: [ children: [
{ field: 'COL001', title: '场景类型', {
field: 'COL001',
title: '场景类型',
width: 200,
editRender: { editRender: {
name: 'VxeSelect', name: 'VxeSelect',
options: ["授时", "定位", "导航", "短报文通信", "国际搜救", "其他"], options: ['授时', '定位', '导航', '短报文通信', '国际搜救', '其他'],
},
slots: { edit: 'select', default: 'default_select' },
}, },
{
field: 'COL002',
title: '其他场景',
width: 200,
editRender: { name: 'VxeInput' },
slots: { edit: 'other_input', default: 'default_other' },
}, },
{ field: 'COL003', title: '场景简述', editRender: { name: 'VxeInput',}} { field: 'COL003', title: '场景简述', width: 200, editRender: { name: 'VxeInput' } },
] ],
}, },
{ field: '', title: '产品情况',headerAlign: 'center', {
field: '',
title: '产品情况',
headerAlign: 'center',
children: [ children: [
{ field: 'COL005', title: '名称',editRender: { name: 'VxeInput',}}, { field: 'COL005', title: '名称', width: 200, editRender: { name: 'VxeInput' } },
{ field: 'COL006', title: '描述',editRender: { name: 'VxeInput',}}, { field: 'COL006', title: '描述', width: 200, editRender: { name: 'VxeInput' } },
{ field: 'COL007', title: '是否境内生产',editRender: { {
field: 'COL007',
title: '是否境内生产',
width: 200,
editRender: {
name: 'VxeSelect', name: 'VxeSelect',
options: [ options: [
{ label: '是', value: '是' }, { label: '是', value: '是' },
{ label: '否', value: '否' } { label: '否', value: '否' },
] ],
}}, },
{ field: 'COL008', title: '生产厂家',editRender: { name: 'VxeInput',}}, },
{ field: 'COL009', title: '生产型号',editRender: { name: 'VxeInput',}}, { field: 'COL008', title: '生产厂家', width: 200, editRender: { name: 'VxeInput' } },
{ field: 'COL009', title: '生产型号', width: 200, editRender: { name: 'VxeInput' } },
], ],
}, },
{ field: '', title: '产品所用器件情况',headerAlign: 'center', {
field: '',
title: '产品所用器件情况',
headerAlign: 'center',
children: [ children: [
{ field: 'COL011', title: '器件类型',editRender: { {
field: 'COL011',
title: '器件类型',
width: 200,
editRender: {
name: 'VxeSelect', name: 'VxeSelect',
options: [ options: [
{ label: '芯片', value: '芯片' }, { label: '芯片', value: '芯片' },
{ label: '模块', value: '模块' }, { label: '模块', value: '模块' },
{ label: '板卡', value: '板卡' }, { label: '板卡', value: '板卡' },
{ label: '不涉及', value: '不涉及' } { label: '不涉及', value: '不涉及' },
] ],
} },
}, },
{ field: 'COL012', title: '是否境内生产',editRender: { {
field: 'COL012',
title: '是否境内生产',
width: 200,
editRender: {
name: 'VxeSelect', name: 'VxeSelect',
options: [ options: [
{ label: '是', value: '是' }, { label: '是', value: '是' },
{ label: '否', value: '否' } { label: '否', value: '否' },
] ],
}}, },
{ field: 'COL013', title: '生产厂家',editRender: { name: 'VxeInput',}}, },
{ field: 'COL014', title: '生产型号',editRender: { name: 'VxeInput',}}, { field: 'COL013', title: '生产厂家', width: 200, editRender: { name: 'VxeInput' } },
{ field: 'COL014', title: '生产型号', width: 200, editRender: { name: 'VxeInput' } },
], ],
}, },
{ field: '', title: '产品应用现状',headerAlign: 'center', {
field: '',
title: '产品应用现状',
headerAlign: 'center',
children: [ children: [
{ field: 'COL016', title: '应用模式',editRender: { {
options: [ field: 'COL016',
{ label: '仅BDS ', value: '仅BDS' },{ label: '仅GPS', value: '仅GPS' },{ label: '仅其他', value: '仅其他' }, title: '应用模式',
{ label: '主用BDS', value: '主用BDS' },{ label: '主用GPS', value: '主用GPS' },{ label: '主用其他 ', value: '主用其他 ' }, width: 200,
{ label: '优先用BDS', value: '优先用BDS' },{ label: '优先用GPS', value: '优先用GPS' },{ label: '优先用其他', value: '优先用其他'}, editRender: {
{ label: '其他', value: '其他'} name: 'VxeSelect',
]} options: ['仅BDS ', '仅GPS', '仅其他', '主用BDS', '主用GPS', '主用其他', '优先用BDS', '优先用GPS', '优先用其他', '其他'],
},
slots: { edit: 'select', default: 'default_select' },
},
{
field: 'COL017',
title: '其他应用模式',
width: 200,
editRender: { name: 'VxeInput' },
slots: { edit: 'other_input', default: 'default_other' },
}, },
{ field: 'COL018', title: '应用台数',editRender: { name: 'VxeNumberInput'}}, { field: 'COL018', title: '应用台数', width: 200, editRender: { name: 'VxeNumberInput' } },
], ],
}, },
{ title: '操作', slots: { default: 'action' },width:100 } { title: '操作', slots: { default: 'action' }, width: 100 },
], ],
datas: [], datas: [],
remarks: "" remarks: '',
} },
]; ];
...@@ -14,7 +14,11 @@ ...@@ -14,7 +14,11 @@
</div> </div>
</template> </template>
<template #other_input="{ row, column }"> <template #other_input="{ row, column }">
<vxe-input v-model="row[column.field]" placeholder="请输入" :disabled="row.COL4 !== '其他'" /> <vxe-input
v-model="row[column.field]"
placeholder="请输入"
:disabled="!(row.COL1 === '其他' || row.COL001 === '其他' || row.COL016 === '其他' || row.COL4 === '其他')"
/>
</template> </template>
<template #input="{ row, column }"> <template #input="{ row, column }">
<vxe-input <vxe-input
...@@ -27,7 +31,7 @@ ...@@ -27,7 +31,7 @@
<span>{{ row[column.field] }}</span> <span>{{ row[column.field] }}</span>
</template> </template>
<template #default_other="{ row, column }"> <template #default_other="{ row, column }">
<span v-if="row.COL4 === '其他'"> {{ row[column.field] }}</span> <span v-if="row.COL1 === '其他' || row.COL001 === '其他' || row.COL016 === '其他' || row.COL4 === '其他'"> {{ row[column.field] }}</span>
</template> </template>
<template #default_input="{ row, column }"> <template #default_input="{ row, column }">
<span v-if="(row.COL4 === '软件类(银行业)' || row.COL4 === '软件类(保险业)') && row.COL5 === '其他'"> {{ row[column.field] }}</span> <span v-if="(row.COL4 === '软件类(银行业)' || row.COL4 === '软件类(保险业)') && row.COL5 === '其他'"> {{ row[column.field] }}</span>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论