修改数据模型的样式已经提示信息

main
于阔 9 months ago
parent d9d3291fb1
commit b77aacb812

@ -61,3 +61,17 @@ export const getCsckCheckType = ({ paramName, systemCode }): Promise<IResponse>
}); });
}; };
/* 获取数据源列表 */
export const RepStoreGeyDataSource = (params: any) => {
return request.postJson({url:'/RepStore/spi/dataset/RepStore/RepStoreGeyDataSource', params })
}
//获取schema
export const RepStoreGeySchema = (params: any) => {
return request.postJson({url:'/RepStore/spi/dataset/RepStore/RepStoreGeySchema', params })
}
//获取数据库表信息
export const RepStoreGeyTables = (params: any) => {
return request.postJson({url:'/RepStore/spi/dataset/RepStore/RepStoreGeyTables', params })
}

@ -80,9 +80,9 @@ const tableColumns = reactive<TableColumn[]>([
field: 'storeType', field: 'storeType',
label: '规则类型', label: '规则类型',
slots:{ slots:{
default:(data:any)=>{ default:(data:any)=>{
return <span>{RULE_TYPE_LIST[data.row.storeType -1]?.label}</span> return <span>{RULE_TYPE_LIST[data.row.storeType -1]?.label}</span>
} }
} }
}, },
{ {
@ -101,8 +101,9 @@ const tableColumns = reactive<TableColumn[]>([
{ {
field: 'action', field: 'action',
label: t('tableDemo.action'), label: t('tableDemo.action'),
width: 240, width: 220,
fixed: 'right', fixed: 'right',
headerAlign:"center",
slots: { slots: {
default: (data: any) => { default: (data: any) => {
return ( return (
@ -231,11 +232,12 @@ const save = async () => {
if (formData) { if (formData) {
saveLoading.value = true saveLoading.value = true
const res = await saveRepStoreApi(formData) const res = await saveRepStoreApi(formData)
.catch(() => {}) .catch(() => {ElMessage.error('保存失败!');})
.finally(() => { .finally(() => {
saveLoading.value = false saveLoading.value = false
}) })
if (res) { if (res) {
ElMessage.success(res.head.code == '0'?'保存成功':res.head.msg);
dialogVisible.value = false dialogVisible.value = false
currentPage.value = 1 currentPage.value = 1
getList() getList()
@ -308,7 +310,7 @@ const exportExcel = async () => {
</Table> </Table>
</ContentWrap> </ContentWrap>
<Dialog v-model="dialogVisible" :title="dialogTitle"> <Dialog v-model="dialogVisible" :title="dialogTitle" width="800px">
<Write <Write
v-if="actionType !== 'detail'" v-if="actionType !== 'detail'"
ref="writeRef" ref="writeRef"

@ -4,58 +4,48 @@ import { TableData } from '@/api/dataset/RepStore/types'
import { Descriptions, DescriptionsSchema } from '@/components/Descriptions' import { Descriptions, DescriptionsSchema } from '@/components/Descriptions'
const detailSchema = ref<DescriptionsSchema[]>([ const detailSchema = ref<DescriptionsSchema[]>([
{
field: 'modelCode',
label: '模型编码 '
},
{
field: 'beginDate',
label: '开始日期'
},
{
field: 'endDate',
label: '结束日期'
},
{ {
field: 'dscode', field: 'dscode',
label: '数据源' label: '数据源',
},
{
field: 'storeType',
label: '规则类型'
}, },
{ {
field: 'storeContent', field: 'redscode',
label: '规则内容' label: '备份数据源'
}, },
{ {
field: 'storeOperateType', field: 'storeOperateType',
label: '操作类型' label: '操作类型',
}, },
{ {
field: 'ruleId', field: 'storeType',
label: '存储规则id' label: '类型',
}, },
{ {
field: 'schema', field: 'schema',
label: '数据库用户' label: 'schema',
}, },
{ {
field: 'tableName', field:"tableName",
label: '' label:'数据表',
}, },
{ {
field: 'validateResultTable', field: 'validateResultTable',
label: '校验结果表的表名' label: '校验结果表',
}, },
{ {
field: 'dataRule', field:"storeContent",
label: '数据规则' label:"数据集合",
}, },
{ {
field: 'redscode', field: 'beginDate',
label: '备份数据源' label: '开始日期'
} },
{
field: 'endDate',
label: '结束日期'
},
]) ])
defineProps({ defineProps({

@ -3,7 +3,8 @@ import { Form, FormSchema } from '@/components/Form'
import { useForm } from '@/hooks/web/useForm' import { useForm } from '@/hooks/web/useForm'
import { PropType, reactive, watch } from 'vue' import { PropType, reactive, watch } from 'vue'
import { useValidator } from '@/hooks/web/useValidator' import { useValidator } from '@/hooks/web/useValidator'
import { OPERATION_TYPE_LIST,RULE_TYPE_LIST } from '../constants'; import { OPERATION_TYPE_LIST,RULE_TYPE_LIST,getRepStoreGeyDataSource,getRepStoreGeySchema,getRepStoreGeyTables } from '../constants';
import {ref} from "vue"
const { required } = useValidator() const { required } = useValidator()
@ -21,124 +22,313 @@ const props = defineProps({
const { formRegister, formMethods } = useForm() const { formRegister, formMethods } = useForm()
const { setValues, getFormData, getElFormExpose } = formMethods const { setValues, getFormData, getElFormExpose } = formMethods
let gradeShow = ref(true);//
//
let dataSource = reactive({
dscode:'',
dsname:'',
});
const formSchema = reactive<FormSchema[]>([ const formSchema = reactive<FormSchema[]>([
{ {
field: 'modelCode', field: '',
label: '模型编码 ', label: '基础信息 ',
component: 'Input', component: 'Divider',
},
{
field: 'dscode',
label: '数据源',
component: 'Select',
colProps:{
span:24
},
componentProps: { componentProps: {
on:{
change:async (value)=>{
dataSource = value?formSchema[1].componentProps.options.find(item=>item.dscode==value):{};
if(dataSource.dscode){
formSchema[5].componentProps.options = await getRepStoreGeySchema(dataSource)?await getRepStoreGeySchema(dataSource):[];
formSchema[6].componentProps.options = await getRepStoreGeyTables(dataSource)?await getRepStoreGeyTables(dataSource):[];
}
// formSchema.find(item=>item.field=='schema')?.componentProps.optionsApi = async ()=>{return await getRepStoreGeySchema(dataSource);}
// formSchema.find(item=>item.field=='tableName')?.componentProps.optionsApi = async ()=>{return await getRepStoreGeyTables(dataSource);}
}
}
},
optionApi: async ()=>{return await getRepStoreGeyDataSource()}
},
{
field: 'redscode',
label: '备份数据源',
component: 'Select',
colProps:{
span:24
},
optionApi: async ()=>{return await getRepStoreGeyDataSource()}
},
{
field: 'storeOperateType',
label: '操作类型',
component: 'Select',
colProps:{
span:24
},
componentProps: {
options:OPERATION_TYPE_LIST,
style:{width:'100%'},
},
value:'1'
},
{
field: 'storeType',
label: '类型',
component: 'Select',
colProps:{
span:24
},
componentProps: {
options:RULE_TYPE_LIST,
style:{width:'100%'},
}, },
value:'1'
},
{
field: 'schema',
label: 'schema',
colProps:{
span:24
},
component: 'Select',
componentProps:{
options:[]
}
}, },
{ {
field: 'ruleId', field:"tableName",
label: '存储规则id', label:'数据表',
component: 'Input', colProps:{
span:24
},
component: 'Select',
componentProps:{
options:[]
}
},
{
field: 'validateResultTable',
label: '校验结果表',
component: 'Select',
colProps:{
span:24
},
componentProps: { componentProps: {
}, },
}, },
{ {
field: 'beginDate', field:"storeContent",
label: '开始日期', label:"数据集合",
component: 'DatePicker', component:"Input",
colProps:{
span:24
},
componentProps: { componentProps: {
valueFormat: 'YYYYMMDD', type:'textarea',
style:{width:'100%'}
}, },
}, },
{ {
field: 'endDate', field:"date",
label: '结束日期', label:'日期',
component: 'DatePicker', component:"DatePicker",
colProps:{
span:24
},
componentProps: { componentProps: {
valueFormat: 'YYYYMMDD', type:'daterange',
style:{width:'100%'} style:{width:'100%'},
valueFormat:'YYYYMMDD',
rangeSeparator:'到',
}, },
}, },
// {
// field: 'beginDate',
// label: '',
// component: 'DatePicker',
// componentProps: {
// valueFormat: 'YYYYMMDD',
// style:{width:'100%'}
// },
// },
// {
// field: 'endDate',
// label: '',
// component: 'DatePicker',
// componentProps: {
// valueFormat: 'YYYYMMDD',
// style:{width:'100%'}
// },
// },
{ {
field: 'dscode', field:"controlShowGrade",
label: '数据源', label: `高级(点击${gradeShow.value?'展开':'收起'})`,
component: 'Input', component:"Divider",
componentProps:{
contentPosition:"center",
borderStyle :'dashed',
style:{
fontSize:"20px !important",
color:'rgb(29 127 29) !important',
},
onClick:()=>{
gradeShow.value = !gradeShow.value;
formSchema.forEach(item=>{
if(item.field == 'controlShowGrade'){
item.label = `高级(点击${gradeShow.value?'展开':'收起'})`;
}
for(let i in item){
if(i == 'remove' || i == 'hidden'){
item[i] = gradeShow.value;
}
}
})
},
class:'cursor-pointer'
},
},
{
field:"",
label:"校验结果信息",
component:"Divider",
remove:gradeShow.value
},
{
field:"chkDscode",
label:"校验结果信息数据源",
component:"Select",
colProps:{
span:24
},
componentProps: { componentProps: {
}, },
hidden:gradeShow.value
}, },
{ {
field: 'storeType', field:"chkSchema",
label: '规则类型', label:"schema",
component: 'Select', component:"Select",
colProps:{
span:24
},
componentProps: { componentProps: {
options:RULE_TYPE_LIST,
style:{width:'100%'},
}, },
value:'1' hidden:gradeShow.value
}, },
{ {
field: 'storeContent', field:"chkTablename",
label: '规则内容', label:"物理表",
component: 'Input', component:"Select",
colProps:{
span:24
},
componentProps: { componentProps: {
}, },
hidden:gradeShow.value
}, },
{ {
field: 'storeOperateType', field:"",
label: '操作类型', label:"日志数据",
component: 'Select', component:"Divider",
remove:gradeShow.value
},
{
field:"logDscode",
label:"校验结果信息数据源",
component:"Select",
colProps:{
span:24
},
componentProps: { componentProps: {
options:OPERATION_TYPE_LIST,
style:{width:'100%'},
}, },
value:'1' hidden:gradeShow.value
}, },
{ {
field: 'schema', field:"logSchema",
label: '数据库用户', label:"schema",
component: 'Input', component:"Select",
colProps:{
span:24
},
componentProps: { componentProps: {
}, },
hidden:gradeShow.value
}, },
{ {
field: 'tableName', field:"logTablename",
label: '表名', label:"物理表",
component: 'Input', component:"Select",
colProps:{
span:24
},
componentProps: { componentProps: {
}, },
hidden:gradeShow.value
}, },
{ {
field: 'validateResultTable', field:"",
label: '校验结果表的表名', label:"抽样数据",
component: 'Input', component:"Divider",
remove:gradeShow.value
},
{
field:"resDscode",
label:"校验结果信息数据源",
component:"Select",
colProps:{
span:24
},
componentProps: { componentProps: {
}, },
hidden:gradeShow.value
}, },
{ {
field: 'dataRule', field:"resSchema",
label: '数据规则', label:"schema",
component: 'Input', component:"Select",
colProps:{
span:24
},
componentProps: { componentProps: {
}, },
hidden:gradeShow.value
}, },
{ {
field: 'redscode', field:"resTablename",
label: '备份数据源', label:"物理表",
component: 'Input', component:"Select",
colProps:{
span:24
},
componentProps: { componentProps: {
}, },
} hidden:gradeShow.value
},
]) ])
const rules = reactive({ const rules = reactive({
modelCode: [required()], dscode: [required()],//
beginDate: [required()], storeType:[required()],//
endDate: [required()], storeOperateType:[required()],//
ruleId: [required()], storeContent:[required()],//
date:[required()],//
}) })
const submit = async () => { const submit = async () => {
@ -147,7 +337,11 @@ const submit = async () => {
console.log(err) console.log(err)
}) })
if (valid) { if (valid) {
const formData = await getFormData() const formData = await getFormData();
if(formData.date){
formData.beginDate = formData.date[0];
formData.endDate = formData.date[1];
}
return formData return formData
} }
} }

@ -1,3 +1,8 @@
import {
RepStoreGeyDataSource,
RepStoreGeySchema,
RepStoreGeyTables
} from '@/api/dataset/RepStore'
export const OPERATION_TYPE_LIST = [//操作类型1表2sql export const OPERATION_TYPE_LIST = [//操作类型1表2sql
{ {
value:"1", value:"1",
@ -18,4 +23,44 @@ export const RULE_TYPE_LIST = [//规则类型 1只读2读写
value:"2", value:"2",
label:"读写" label:"读写"
} }
] ]
//获取数据源
export async function getRepStoreGeyDataSource(){
let DATASOURCE_LIST = [];
await RepStoreGeyDataSource({}).then(res=>{
if(res.head.code == 0){
DATASOURCE_LIST = res.body.list;
DATASOURCE_LIST = DATASOURCE_LIST.map(item=>{
return {
...item,
value:item.dscode,
label:item.dsname
}
})
}
})
return DATASOURCE_LIST;
}
//获取schema
export async function getRepStoreGeySchema(params){
let SCHEMA_LIST = [];
await RepStoreGeySchema(params).then(res=>{
if(res.head.code == 0){
SCHEMA_LIST = res.body.list;
}
})
return SCHEMA_LIST;
}
//获取数据表
export async function getRepStoreGeyTables(params){
let TABLE_LIST = [];
await RepStoreGeyTables(params).then(res=>{
if(res.head.code == 0){
TABLE_LIST = res.body.list;
}
})
return TABLE_LIST;
}

@ -121,8 +121,9 @@ const tableColumns = reactive<TableColumn[]>([
{ {
field: 'action', field: 'action',
label: t('tableDemo.action'), label: t('tableDemo.action'),
width: 160, width: 120,
fixed: 'right', fixed: 'right',
headerAlign:'center',
slots: { slots: {
default: (data: any) => { default: (data: any) => {
return ( return (
@ -232,11 +233,12 @@ const save = async () => {
if (formData) { if (formData) {
saveLoading.value = true saveLoading.value = true
const res = await saveRepStoreMappingApi(formData) const res = await saveRepStoreMappingApi(formData)
.catch(() => {}) .catch(() => {ElMessage.warning('保存失败')})
.finally(() => { .finally(() => {
saveLoading.value = false saveLoading.value = false
}) })
if (res) { if (res) {
ElMessage.success(res.head.code == '0'?'保存成功':res.head.msg);
dialogVisible.value = false dialogVisible.value = false
currentPage.value = 1 currentPage.value = 1
getList() getList()

Loading…
Cancel
Save