|
@@ -1,30 +1,56 @@
|
|
import { FormSchema } from '/@/components/Form';
|
|
import { FormSchema } from '/@/components/Form';
|
|
import {ref} from "vue";
|
|
import {ref} from "vue";
|
|
-import {checkPermDuplication} from "@/views/system/menu/menu/menu.api";
|
|
|
|
import {ComponentTypes} from "@/views/system/menu/menu/menu.data";
|
|
import {ComponentTypes} from "@/views/system/menu/menu/menu.data";
|
|
import {checkMenuInfoisExist} from "@/views/appmanage/AppBaseInfo.api";
|
|
import {checkMenuInfoisExist} from "@/views/appmanage/AppBaseInfo.api";
|
|
|
|
|
|
|
|
|
|
export const menuInfoisshow = ref(false)
|
|
export const menuInfoisshow = ref(false)
|
|
|
|
|
|
|
|
+const isValidIp = (_rule, value, callback) => {
|
|
|
|
+ if (!value) {
|
|
|
|
+ return callback(new Error('请输入 IP 地址'));
|
|
|
|
+ }
|
|
|
|
+ if (!isValidIpAddress(value)) {
|
|
|
|
+ return callback(new Error('请输入正确的 IP 地址格式'));
|
|
|
|
+ }
|
|
|
|
+ callback();
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+const isValidIpAddress = (ip) => {
|
|
|
|
+ const regex = /^(\d{1,3}\.){3}\d{1,3}$/;
|
|
|
|
+ const parts = ip.split('.');
|
|
|
|
+ if (parts.length !== 4) return false;
|
|
|
|
+ for (let part of parts) {
|
|
|
|
+ if (isNaN(part) || part < 0 || part > 255) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return regex.test(ip);
|
|
|
|
+};
|
|
|
|
|
|
export const checkMenuInfo = async (_rule, value, callback) => {
|
|
export const checkMenuInfo = async (_rule, value, callback) => {
|
|
- console.log("菜单value:" + value)
|
|
|
|
|
|
+ console.log("菜单信息:"+value)
|
|
const res = await checkMenuInfoisExist(value)
|
|
const res = await checkMenuInfoisExist(value)
|
|
- if (res === '该值可用!') {
|
|
|
|
- callback(); // 校验通过
|
|
|
|
- } else {
|
|
|
|
- callback(new Error(res)); // 校验失败
|
|
|
|
|
|
+ console.dir(res)
|
|
|
|
+ if (value === undefined){
|
|
|
|
+ callback(new Error('菜单信息不能为空')); // 校验失败
|
|
|
|
+ }else {
|
|
|
|
+
|
|
|
|
+ if (res === '该值可用!') {
|
|
|
|
+ callback(); // 校验通过
|
|
|
|
+ } else {
|
|
|
|
+ callback(new Error(res)); // 校验失败
|
|
|
|
+ }
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+
|
|
export const step1Schemas: FormSchema[] = [
|
|
export const step1Schemas: FormSchema[] = [
|
|
{
|
|
{
|
|
field: 'name',
|
|
field: 'name',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
label: '应用名称',
|
|
label: '应用名称',
|
|
required: true,
|
|
required: true,
|
|
- defaultValue:'',
|
|
|
|
componentProps: {
|
|
componentProps: {
|
|
placeholder:"请输入应用名称"
|
|
placeholder:"请输入应用名称"
|
|
},
|
|
},
|
|
@@ -70,41 +96,41 @@ export const step1Schemas: FormSchema[] = [
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- field: 'businessUser',
|
|
|
|
- component: 'JSelectUser',
|
|
|
|
- label: '业务对接人',
|
|
|
|
- componentProps: {
|
|
|
|
- isRadioSelection: true,
|
|
|
|
- rowKey:'id'
|
|
|
|
- },
|
|
|
|
|
|
+ field: 'developUser',
|
|
|
|
+ component: 'JDictSelectTag',
|
|
|
|
+ label: '开发负责人',
|
|
|
|
+ defaultValue: '',
|
|
|
|
+ slot: 'UserInfoByInfoDept',
|
|
colProps: {
|
|
colProps: {
|
|
span: 8,
|
|
span: 8,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- field: 'requirementUser',
|
|
|
|
- component: 'JDictSelectTag',
|
|
|
|
- label: '需求对接人',
|
|
|
|
|
|
+ field: 'operationUser',
|
|
|
|
+ component: 'JInputSelect',
|
|
|
|
+ label: '运维负责人',
|
|
slot: 'UserInfoByInfoDept',
|
|
slot: 'UserInfoByInfoDept',
|
|
colProps: {
|
|
colProps: {
|
|
span: 8,
|
|
span: 8,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- field: 'developUser',
|
|
|
|
|
|
+ field: 'requirementUser',
|
|
component: 'JDictSelectTag',
|
|
component: 'JDictSelectTag',
|
|
- label: '开发负责人',
|
|
|
|
- defaultValue: '',
|
|
|
|
|
|
+ label: '需求对接人',
|
|
slot: 'UserInfoByInfoDept',
|
|
slot: 'UserInfoByInfoDept',
|
|
colProps: {
|
|
colProps: {
|
|
span: 8,
|
|
span: 8,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- field: 'operationUser',
|
|
|
|
- component: 'JInputSelect',
|
|
|
|
- label: '运维负责人',
|
|
|
|
- slot: 'UserInfoByInfoDept',
|
|
|
|
|
|
+ field: 'businessUser',
|
|
|
|
+ component: 'JSelectUser',
|
|
|
|
+ label: '业务对接人',
|
|
|
|
+ componentProps: {
|
|
|
|
+ isRadioSelection: true,
|
|
|
|
+ rowKey:'id'
|
|
|
|
+ },
|
|
colProps: {
|
|
colProps: {
|
|
span: 8,
|
|
span: 8,
|
|
},
|
|
},
|
|
@@ -113,9 +139,8 @@ export const step1Schemas: FormSchema[] = [
|
|
field: 'menuInfo',
|
|
field: 'menuInfo',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
label: '菜单信息',
|
|
label: '菜单信息',
|
|
- required: true,
|
|
|
|
ifShow: ({ values }) => !(values.component === ComponentTypes.IFrame && values.internalOrExternal),
|
|
ifShow: ({ values }) => !(values.component === ComponentTypes.IFrame && values.internalOrExternal),
|
|
- rules:[{required: true, validator: checkMenuInfo, trigger: 'blur'}],
|
|
|
|
|
|
+ rules:[{ validator: checkMenuInfo, trigger: 'blur'}],
|
|
// dynamicRules: ({ model, schema, values }) => {
|
|
// dynamicRules: ({ model, schema, values }) => {
|
|
// return checkPermDuplication(model, schema, values.menuType !== 2);
|
|
// return checkPermDuplication(model, schema, values.menuType !== 2);
|
|
// },
|
|
// },
|
|
@@ -149,27 +174,6 @@ export const step1Schemas: FormSchema[] = [
|
|
];
|
|
];
|
|
|
|
|
|
|
|
|
|
-const isValidIp = (_rule, value, callback) => {
|
|
|
|
- if (!value) {
|
|
|
|
- return callback(new Error('请输入 IP 地址'));
|
|
|
|
- }
|
|
|
|
- if (!isValidIpAddress(value)) {
|
|
|
|
- return callback(new Error('请输入正确的 IP 地址格式'));
|
|
|
|
- }
|
|
|
|
- callback();
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-const isValidIpAddress = (ip) => {
|
|
|
|
- const regex = /^(\d{1,3}\.){3}\d{1,3}$/;
|
|
|
|
- const parts = ip.split('.');
|
|
|
|
- if (parts.length !== 4) return false;
|
|
|
|
- for (let part of parts) {
|
|
|
|
- if (isNaN(part) || part < 0 || part > 255) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return regex.test(ip);
|
|
|
|
-};
|
|
|
|
|
|
|
|
export const step2Schemas: FormSchema[] = [
|
|
export const step2Schemas: FormSchema[] = [
|
|
{
|
|
{
|
|
@@ -177,7 +181,6 @@ export const step2Schemas: FormSchema[] = [
|
|
component: 'Select',
|
|
component: 'Select',
|
|
label: '环境类型',
|
|
label: '环境类型',
|
|
required: true,
|
|
required: true,
|
|
- defaultValue: "",
|
|
|
|
componentProps: {
|
|
componentProps: {
|
|
options: [
|
|
options: [
|
|
{
|
|
{
|
|
@@ -220,17 +223,45 @@ export const step2Schemas: FormSchema[] = [
|
|
span: 8,
|
|
span: 8,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
+ {
|
|
|
|
+ field: 'backupFrequency',
|
|
|
|
+ component: 'JDictSelectTag',
|
|
|
|
+ label: '备份频率',
|
|
|
|
+ componentProps: {
|
|
|
|
+ dictCode: "dataBackupFrequency",
|
|
|
|
+ },
|
|
|
|
+ show: ({ values }) => {
|
|
|
|
+ return values.env === 'prod'
|
|
|
|
+ },
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 6,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'backupLocation',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '备份位置',
|
|
|
|
+ show: ({ values }) => {
|
|
|
|
+ return values.env === 'prod'
|
|
|
|
+ },
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 18,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
{
|
|
{
|
|
field: 'dataBaseInfo',
|
|
field: 'dataBaseInfo',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
- label: '数据库连接信息',
|
|
|
|
|
|
+ label: '数据库信息',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 24,
|
|
|
|
+ },
|
|
},
|
|
},
|
|
{
|
|
{
|
|
field: 'codeUrl',
|
|
field: 'codeUrl',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
label: '源码路径',
|
|
label: '源码路径',
|
|
colProps: {
|
|
colProps: {
|
|
- span: 12,
|
|
|
|
|
|
+ span: 24,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
|
|
@@ -242,7 +273,7 @@ export const step2Schemas: FormSchema[] = [
|
|
placeholder:"namespace-group-dataId"
|
|
placeholder:"namespace-group-dataId"
|
|
},
|
|
},
|
|
colProps: {
|
|
colProps: {
|
|
- span: 12,
|
|
|
|
|
|
+ span: 24,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
|
|
@@ -251,27 +282,7 @@ export const step2Schemas: FormSchema[] = [
|
|
component: 'InputTextArea',
|
|
component: 'InputTextArea',
|
|
label: '其它备注',
|
|
label: '其它备注',
|
|
colProps: {
|
|
colProps: {
|
|
- span: 12,
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- {
|
|
|
|
- field: 'backupFrequency',
|
|
|
|
- component: 'JDictSelectTag',
|
|
|
|
- label: '备份频率',
|
|
|
|
- componentProps: {
|
|
|
|
- dictCode: "sys_user,realname,id,username!='admin' order by create_time",
|
|
|
|
- },
|
|
|
|
- colProps: {
|
|
|
|
- span: 6,
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- field: 'backupLocation',
|
|
|
|
- component: 'Input',
|
|
|
|
- label: '备份位置',
|
|
|
|
- colProps: {
|
|
|
|
- span: 6,
|
|
|
|
|
|
+ span: 24,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
// 隐藏主键字段
|
|
// 隐藏主键字段
|
|
@@ -289,6 +300,7 @@ export const step2_1Schemas: FormSchema[] = [
|
|
component: 'Select',
|
|
component: 'Select',
|
|
label: '环境类型',
|
|
label: '环境类型',
|
|
required: true,
|
|
required: true,
|
|
|
|
+ defaultValue: "",
|
|
componentProps: {
|
|
componentProps: {
|
|
options: [
|
|
options: [
|
|
{
|
|
{
|
|
@@ -316,8 +328,8 @@ export const step2_1Schemas: FormSchema[] = [
|
|
field: 'leadingIp',
|
|
field: 'leadingIp',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
required: true,
|
|
required: true,
|
|
- label: '前端部署IP',
|
|
|
|
rules:[{ required: true, validator: isValidIp, trigger: 'blur' }],
|
|
rules:[{ required: true, validator: isValidIp, trigger: 'blur' }],
|
|
|
|
+ label: '前端部署IP',
|
|
colProps: {
|
|
colProps: {
|
|
span: 8,
|
|
span: 8,
|
|
},
|
|
},
|
|
@@ -331,17 +343,45 @@ export const step2_1Schemas: FormSchema[] = [
|
|
span: 8,
|
|
span: 8,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
+ {
|
|
|
|
+ field: 'backupFrequency',
|
|
|
|
+ component: 'JDictSelectTag',
|
|
|
|
+ label: '备份频率',
|
|
|
|
+ componentProps: {
|
|
|
|
+ dictCode: "dataBackupFrequency",
|
|
|
|
+ },
|
|
|
|
+ show: ({ values }) => {
|
|
|
|
+ return values.env === 'prod'
|
|
|
|
+ },
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 6,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'backupLocation',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '备份位置',
|
|
|
|
+ show: ({ values }) => {
|
|
|
|
+ return values.env === 'prod'
|
|
|
|
+ },
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 18,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
{
|
|
{
|
|
field: 'dataBaseInfo',
|
|
field: 'dataBaseInfo',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
- label: '数据库连接信息',
|
|
|
|
|
|
+ label: '数据库信息',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 24,
|
|
|
|
+ },
|
|
},
|
|
},
|
|
{
|
|
{
|
|
field: 'codeUrl',
|
|
field: 'codeUrl',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
label: '源码路径',
|
|
label: '源码路径',
|
|
colProps: {
|
|
colProps: {
|
|
- span: 12,
|
|
|
|
|
|
+ span: 24,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
|
|
@@ -353,7 +393,7 @@ export const step2_1Schemas: FormSchema[] = [
|
|
placeholder:"namespace-group-dataId"
|
|
placeholder:"namespace-group-dataId"
|
|
},
|
|
},
|
|
colProps: {
|
|
colProps: {
|
|
- span: 12,
|
|
|
|
|
|
+ span: 24,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
|
|
@@ -362,27 +402,7 @@ export const step2_1Schemas: FormSchema[] = [
|
|
component: 'InputTextArea',
|
|
component: 'InputTextArea',
|
|
label: '其它备注',
|
|
label: '其它备注',
|
|
colProps: {
|
|
colProps: {
|
|
- span: 12,
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- {
|
|
|
|
- field: 'backupFrequency',
|
|
|
|
- component: 'JDictSelectTag',
|
|
|
|
- label: '备份频率',
|
|
|
|
- componentProps: {
|
|
|
|
- dictCode: "sys_user,realname,id,username!='admin' order by create_time",
|
|
|
|
- },
|
|
|
|
- colProps: {
|
|
|
|
- span: 6,
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- field: 'backupLocation',
|
|
|
|
- component: 'Input',
|
|
|
|
- label: '备份位置',
|
|
|
|
- colProps: {
|
|
|
|
- span: 6,
|
|
|
|
|
|
+ span: 24,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
// 隐藏主键字段
|
|
// 隐藏主键字段
|
|
@@ -428,8 +448,8 @@ export const step2_2Schemas: FormSchema[] = [
|
|
field: 'leadingIp',
|
|
field: 'leadingIp',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
required: true,
|
|
required: true,
|
|
- label: '前端部署IP',
|
|
|
|
rules:[{ required: true, validator: isValidIp, trigger: 'blur' }],
|
|
rules:[{ required: true, validator: isValidIp, trigger: 'blur' }],
|
|
|
|
+ label: '前端部署IP',
|
|
colProps: {
|
|
colProps: {
|
|
span: 8,
|
|
span: 8,
|
|
},
|
|
},
|
|
@@ -443,17 +463,45 @@ export const step2_2Schemas: FormSchema[] = [
|
|
span: 8,
|
|
span: 8,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
+ {
|
|
|
|
+ field: 'backupFrequency',
|
|
|
|
+ component: 'JDictSelectTag',
|
|
|
|
+ label: '备份频率',
|
|
|
|
+ componentProps: {
|
|
|
|
+ dictCode: "dataBackupFrequency",
|
|
|
|
+ },
|
|
|
|
+ show: ({ values }) => {
|
|
|
|
+ return values.env === 'prod'
|
|
|
|
+ },
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 6,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'backupLocation',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '备份位置',
|
|
|
|
+ show: ({ values }) => {
|
|
|
|
+ return values.env === 'prod'
|
|
|
|
+ },
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 18,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
{
|
|
{
|
|
field: 'dataBaseInfo',
|
|
field: 'dataBaseInfo',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
- label: '数据库连接信息',
|
|
|
|
|
|
+ label: '数据库信息',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 24,
|
|
|
|
+ },
|
|
},
|
|
},
|
|
{
|
|
{
|
|
field: 'codeUrl',
|
|
field: 'codeUrl',
|
|
component: 'Input',
|
|
component: 'Input',
|
|
label: '源码路径',
|
|
label: '源码路径',
|
|
colProps: {
|
|
colProps: {
|
|
- span: 12,
|
|
|
|
|
|
+ span: 24,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
|
|
@@ -465,7 +513,7 @@ export const step2_2Schemas: FormSchema[] = [
|
|
placeholder:"namespace-group-dataId"
|
|
placeholder:"namespace-group-dataId"
|
|
},
|
|
},
|
|
colProps: {
|
|
colProps: {
|
|
- span: 12,
|
|
|
|
|
|
+ span: 24,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
|
|
@@ -474,27 +522,7 @@ export const step2_2Schemas: FormSchema[] = [
|
|
component: 'InputTextArea',
|
|
component: 'InputTextArea',
|
|
label: '其它备注',
|
|
label: '其它备注',
|
|
colProps: {
|
|
colProps: {
|
|
- span: 12,
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- {
|
|
|
|
- field: 'backupFrequency',
|
|
|
|
- component: 'JDictSelectTag',
|
|
|
|
- label: '备份频率',
|
|
|
|
- componentProps: {
|
|
|
|
- dictCode: "sys_user,realname,id,username!='admin' order by create_time",
|
|
|
|
- },
|
|
|
|
- colProps: {
|
|
|
|
- span: 6,
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- field: 'backupLocation',
|
|
|
|
- component: 'Input',
|
|
|
|
- label: '备份位置',
|
|
|
|
- colProps: {
|
|
|
|
- span: 6,
|
|
|
|
|
|
+ span: 24,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
// 隐藏主键字段
|
|
// 隐藏主键字段
|
|
@@ -546,4 +574,124 @@ export const step3Schemas: FormSchema[] = [
|
|
show: false,
|
|
show: false,
|
|
},
|
|
},
|
|
];
|
|
];
|
|
|
|
+// 用于注册应用信息审核的表单
|
|
|
|
+export const registerFormCheckSchemas: FormSchema[] = [
|
|
|
|
+ {
|
|
|
|
+ field: 'name',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '应用名称',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 8,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'type',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '应用类型',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 8,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'status',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '应用状态',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 8,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'admin',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '应用管理员',
|
|
|
|
+ required: true,
|
|
|
|
+ defaultValue:'',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 8,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'businessUser',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '业务对接人',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 8,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'requirementUser',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '需求对接人',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 8,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'developUser',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '开发负责人',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 8,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'operationUser',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '运维负责人',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 8,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'menuInfo',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '菜单信息',
|
|
|
|
+ colProps: {
|
|
|
|
+ span: 8,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'descr',
|
|
|
|
+ component: 'InputTextArea',
|
|
|
|
+ label: '应用描述',
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 隐藏主键字段
|
|
|
|
+ {
|
|
|
|
+ label: '',
|
|
|
|
+ field: 'key',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ show: false,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'requirement',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '需求文档',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'design',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '设计文档',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'dev',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '开发文档',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'test',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '测试报告',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ field: 'instructions',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '软件使用说明',
|
|
|
|
+ },
|
|
|
|
|
|
|
|
+ {
|
|
|
|
+ field: 'other',
|
|
|
|
+ component: 'Input',
|
|
|
|
+ label: '其它文档',
|
|
|
|
+ },
|
|
|
|
+]
|