update
This commit is contained in:
parent
5c770409d8
commit
300825d877
@ -68,3 +68,10 @@ export function updateCheckRule(data) {
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function listSourceIdBytable(id) {
|
||||
return request({
|
||||
url: '/data/quality/checkRules/listSourceIdBytable/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
@ -237,10 +237,11 @@ export default {
|
||||
if (response.success) {
|
||||
const { data } = response
|
||||
const tree = {}
|
||||
tree.name = '核查规则类型'
|
||||
tree.name = '规则类型'
|
||||
const children = []
|
||||
data.forEach(e => {
|
||||
if (e.code === 'regular' || e.code === 'accuracy' || e.code === 'integrity') {
|
||||
if (e.code === 'unique' || e.code === 'integrity' || e.code === 'accuracy' ||
|
||||
e.code === 'consistent' || e.code === 'relevance' || e.code === 'regular') {
|
||||
children.push(e)
|
||||
}
|
||||
})
|
||||
|
@ -36,7 +36,7 @@
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-form-item label="任务概述" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
@ -113,6 +113,18 @@
|
||||
icon="el-icon-view"
|
||||
@click="handleRun(scope.row)"
|
||||
>立即执行</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-view"
|
||||
@click="handleRun(scope.row)"
|
||||
>编辑</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-view"
|
||||
@click="handleRun(scope.row)"
|
||||
>查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -147,9 +159,10 @@ export default {
|
||||
// 表格头
|
||||
tableColumns: [
|
||||
{ prop: 'jobName', label: '任务名称', show: true },
|
||||
{ prop: 'beanName', label: 'bean名称', show: true },
|
||||
{ prop: 'methodName', label: '方法名称', show: true },
|
||||
{ prop: 'methodParams', label: '方法参数', show: true },
|
||||
// { prop: 'beanName', label: 'bean名称', show: true },
|
||||
// { prop: 'methodName', label: '方法名称', show: true },
|
||||
// { prop: 'methodParams', label: '方法参数', show: true },
|
||||
{ prop: 'methodParams', label: '最近完成时间', show: true },
|
||||
{ prop: 'cronExpression', label: 'cron表达式', show: true },
|
||||
{
|
||||
prop: 'status',
|
||||
|
@ -42,134 +42,16 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="数据表" prop="ruleTableId">
|
||||
<el-select v-model="form.ruleTableId" placeholder="请选择数据表" @change="tableSelectChanged">
|
||||
<el-option
|
||||
v-for="table in tableOptions"
|
||||
:key="table.id"
|
||||
:label="table.tableName"
|
||||
:value="table.id"
|
||||
>
|
||||
<span style="float: left">{{ table.tableName + '(' + table.tableComment + ')' }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="核查字段" prop="ruleColumnId">
|
||||
<el-select v-model="form.ruleColumnId" placeholder="请选择核查字段" @change="columnSelectChanged">
|
||||
<el-option
|
||||
v-for="column in columnOptions"
|
||||
:key="column.id"
|
||||
:label="column.columnName"
|
||||
:value="column.id"
|
||||
>
|
||||
<span style="float: left">{{ column.columnName + '(' + column.columnComment + ')' }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-divider content-position="left">核查配置</el-divider>
|
||||
<el-row v-if="form.ruleConfig.ruleItemCode === 'timeliness_key'">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="判定阀值">
|
||||
<el-input-number v-model="form.ruleConfig.timeliness.threshold" :controls="false" :min="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="form.ruleConfig.ruleItemCode === 'consistent_key'">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="标准字典类别">
|
||||
<el-select
|
||||
v-model="form.ruleConfig.consistent.gbTypeId"
|
||||
placeholder="请选择"
|
||||
@change="dictTypeSelectChanged"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dictTypeOptions"
|
||||
:key="item.id"
|
||||
:label="item.gbTypeName"
|
||||
:value="item.id"
|
||||
<div>
|
||||
<el-transfer
|
||||
v-model="form.transferValue"
|
||||
filterable
|
||||
:titles="['备选', '已选']"
|
||||
:filter-method="filterMethod"
|
||||
filter-placeholder="请输入表名"
|
||||
:data="transferData"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="标准字典字段">
|
||||
<el-select v-model="form.ruleConfig.consistent.bindGbColumn" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in gbColumnOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="form.ruleConfig.ruleItemCode === 'relevance_key'">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="关联表">
|
||||
<el-select
|
||||
v-model="form.ruleConfig.relevance.relatedTableId"
|
||||
placeholder="请选择"
|
||||
@change="relatedTableSelectChanged"
|
||||
>
|
||||
<el-option
|
||||
v-for="table in tableOptions"
|
||||
:key="table.id"
|
||||
:label="table.tableName"
|
||||
:value="table.id"
|
||||
>
|
||||
<span style="float: left">{{ table.tableName + '(' + table.tableComment + ')' }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="关联字段">
|
||||
<el-select
|
||||
v-model="form.ruleConfig.relevance.relatedColumnId"
|
||||
placeholder="请选择"
|
||||
@change="relatedColumnSelectChanged"
|
||||
>
|
||||
<el-option
|
||||
v-for="column in relatedColumnOptions"
|
||||
:key="column.id"
|
||||
:label="column.columnName"
|
||||
:value="column.id"
|
||||
>
|
||||
<span style="float: left">{{ column.columnName + '(' + column.columnComment + ')' }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="form.ruleConfig.ruleItemCode === 'accuracy_key_length'">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="最大长度">
|
||||
<el-input-number v-model="form.ruleConfig.accuracy.maxLength" :controls="false" :min="1" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 正则表达式规则-->
|
||||
<el-row v-if="form.ruleConfig.ruleItemCode === 'regular_key'">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="正则表达">
|
||||
<el-input v-model="form.ruleConfig.regular.regular" placeholder="请输入正则规则" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="form.ruleConfig.ruleItemCode === 'regular_key'">
|
||||
<el-form-item label="常用正则">
|
||||
<el-radio-group v-model="form.zzStatus" @change="handleZzStatusRadioChange">
|
||||
<el-radio label="1">手机号码</el-radio>
|
||||
<el-radio label="2">邮箱</el-radio>
|
||||
<el-radio label="3">整数</el-radio>
|
||||
<el-radio label="4">负数</el-radio>
|
||||
<el-radio label="5">身份证</el-radio>
|
||||
<el-radio label="6">日期格式yyyy-mm-dd</el-radio>
|
||||
<el-radio label="7">IP</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-radio-group v-model="form.status">
|
||||
<el-radio
|
||||
@ -189,14 +71,18 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listRuleLevel, listRuleItem, addCheckRule } from '@/api/quality/checkrule'
|
||||
import { listRuleLevel, listRuleItem, addCheckRule, listSourceIdBytable } from '@/api/quality/checkrule'
|
||||
import { listDataSource } from '@/api/metadata/datasource'
|
||||
import { listDataTable } from '@/api/metadata/datatable'
|
||||
import { listDataColumn } from '@/api/metadata/datacolumn'
|
||||
import { listDataDictType } from '@/api/standard/datadict'
|
||||
|
||||
import { Transfer } from 'element-ui'
|
||||
import 'element-ui/lib/theme-chalk/index.css'
|
||||
export default {
|
||||
name: 'CheckRuleAdd',
|
||||
components: {
|
||||
ElTransfer: Transfer
|
||||
},
|
||||
props: {
|
||||
data: {
|
||||
type: Object,
|
||||
@ -207,6 +93,9 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// eslint-disable-next-line vue/no-dupe-keys
|
||||
transferData: [],
|
||||
|
||||
title: '核查规则新增',
|
||||
// 展示切换
|
||||
showOptions: {
|
||||
@ -224,6 +113,7 @@ export default {
|
||||
},
|
||||
// 表单参数
|
||||
form: {
|
||||
qualityType: 'jg',
|
||||
ruleName: undefined,
|
||||
ruleTypeId: undefined,
|
||||
ruleItemId: undefined,
|
||||
@ -262,7 +152,8 @@ export default {
|
||||
}
|
||||
},
|
||||
status: '1',
|
||||
zzStatus: '0' // 状态正则
|
||||
zzStatus: '0', // 状态正则
|
||||
transferValue: []
|
||||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
@ -299,11 +190,11 @@ export default {
|
||||
{ value: 'gb_code', label: '标准编码' },
|
||||
{ value: 'gb_name', label: '标准名称' }
|
||||
],
|
||||
relatedColumnOptions: []
|
||||
relatedColumnOptions: [],
|
||||
tableNameOldList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
console.log('data:' + this.data)
|
||||
this.form.ruleTypeId = this.data.ruleTypeId
|
||||
this.getDicts('sys_common_status').then(response => {
|
||||
if (response.success) {
|
||||
@ -319,7 +210,24 @@ export default {
|
||||
this.getRuleItemList()
|
||||
this.getDataSourceList()
|
||||
},
|
||||
|
||||
methods: {
|
||||
filterMethod(query, item) {
|
||||
return item.pinyin.indexOf(query) > -1
|
||||
},
|
||||
generateData(tableData) {
|
||||
const data = []
|
||||
const tableName = tableData
|
||||
const pinyin = tableData
|
||||
tableName.forEach((tableData, index) => {
|
||||
data.push({
|
||||
label: tableData,
|
||||
key: tableData,
|
||||
pinyin: pinyin[index]
|
||||
})
|
||||
})
|
||||
this.transferData = data
|
||||
},
|
||||
showCard() {
|
||||
this.$emit('showCard', this.showOptions)
|
||||
},
|
||||
@ -350,9 +258,29 @@ export default {
|
||||
})
|
||||
this.form.ruleConfig.ruleItemCode = item.itemCode
|
||||
},
|
||||
sourceSelectChanged(val) {
|
||||
listDataTable({ sourceId: val }).then(response => {
|
||||
async sourceSelectChanged(val) {
|
||||
// this.inspectSourceId(val)
|
||||
// const tableNameOldList = []
|
||||
const tableNameOldList = await listSourceIdBytable(val).then(response => {
|
||||
const result = []
|
||||
for (let i = 0; i < response.data.length; i++) {
|
||||
const tableName = response.data[i].ruleTable
|
||||
result.push(tableName)
|
||||
}
|
||||
return result
|
||||
})
|
||||
const response = await listDataTable({ sourceId: val })
|
||||
if (response.success) {
|
||||
// 处理过滤数据
|
||||
const tableNameList = []
|
||||
for (let i = 0; i < response.data.length; i++) {
|
||||
const tableName = response.data[i].tableName
|
||||
if (!tableNameOldList.some((str) => str === tableName)) {
|
||||
tableNameList.push(tableName)
|
||||
}
|
||||
}
|
||||
await this.generateData(tableNameList)
|
||||
// this.form.transferValue = ['robot_patient'] 暂时失效,初始化默认值
|
||||
this.tableOptions = response.data
|
||||
this.columnOptions = []
|
||||
const source = this.sourceOptions.find(function (item) {
|
||||
@ -366,7 +294,20 @@ export default {
|
||||
this.form.ruleColumnId = ''
|
||||
this.form.ruleColumn = ''
|
||||
this.form.ruleColumnComment = ''
|
||||
|
||||
console.log('tableNameOldList=', tableNameOldList)
|
||||
this.form.transferValue = tableNameOldList
|
||||
}
|
||||
},
|
||||
// 根据来源数据获取已有表
|
||||
inspectSourceId(val) {
|
||||
listSourceIdBytable(val).then(response => {
|
||||
const tableNameOldList = []
|
||||
for (let i = 0; i < response.data.length; i++) {
|
||||
const tableName = response.data[i].ruleTable
|
||||
tableNameOldList.push(tableName)
|
||||
}
|
||||
this.tableNameOldList = tableNameOldList
|
||||
})
|
||||
},
|
||||
tableSelectChanged(val) {
|
||||
|
@ -184,7 +184,7 @@ export default {
|
||||
{ prop: 'ruleType', label: '规则类型', show: true },
|
||||
{ prop: 'ruleSource', label: '数据源', show: true },
|
||||
{ prop: 'ruleTable', label: '数据表', show: true, formatter: this.ruleTableFormatter },
|
||||
{ prop: 'ruleColumn', label: '核查字段', show: true, formatter: this.ruleColumnFormatter },
|
||||
// { prop: 'ruleColumn', label: '核查字段', show: true, formatter: this.ruleColumnFormatter },
|
||||
{ prop: 'ruleLevel', label: '规则级别', width: 100, show: true },
|
||||
{
|
||||
prop: 'status',
|
||||
@ -209,7 +209,8 @@ export default {
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
ruleTypeId: '',
|
||||
ruleName: ''
|
||||
ruleName: '',
|
||||
ruleType: 'jj'
|
||||
},
|
||||
// 左侧树
|
||||
ruleTypeOptions: [],
|
||||
@ -237,10 +238,11 @@ export default {
|
||||
if (response.success) {
|
||||
const { data } = response
|
||||
const tree = {}
|
||||
tree.name = '核查规则类型'
|
||||
tree.name = '规则类型'
|
||||
const children = []
|
||||
data.forEach(e => {
|
||||
if (e.code !== 'regular' && e.code !== 'accuracy' && e.code !== 'integrity') {
|
||||
if (e.code === 'table_jc' || e.code === 'length_jc' || e.code === 'null_jc' ||
|
||||
e.code === 'pk_jc' || e.code === 'fk_jc') {
|
||||
children.push(e)
|
||||
}
|
||||
})
|
||||
@ -385,7 +387,7 @@ export default {
|
||||
float: right;
|
||||
}
|
||||
.el-card ::v-deep .el-card__body {
|
||||
height: calc(100vh - 170px);
|
||||
height: calc(100vh - 110px);
|
||||
}
|
||||
.tree-wrapper {
|
||||
overflow-y: auto;
|
||||
|
@ -66,7 +66,18 @@
|
||||
align="center"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
</template><el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-hasPerm="['quality:rule:detail']"
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-view"
|
||||
@click="handleDetail(scope.row)"
|
||||
>检验报告</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
|
||||
<el-pagination
|
||||
@ -137,11 +148,36 @@ export default {
|
||||
listRuleType().then(response => {
|
||||
if (response.success) {
|
||||
const { data } = response
|
||||
// const tree = {}
|
||||
// tree.name = '核查规则类型'
|
||||
// tree.children = data
|
||||
// this.ruleTypeOptions = []
|
||||
// this.ruleTypeOptions.push(tree)
|
||||
|
||||
const tree = {}
|
||||
tree.name = '核查规则类型'
|
||||
tree.children = data
|
||||
const matchingItems = []
|
||||
tree.name = '结构符合性结果'
|
||||
data.forEach(item => {
|
||||
if (item.id === '11111' || item.id === '22222' || item.id === '33333' || item.id === '44444' ||
|
||||
item.id === '55555') {
|
||||
matchingItems.push(item)
|
||||
}
|
||||
})
|
||||
this.ruleTypeOptions = []
|
||||
tree.children = matchingItems
|
||||
this.ruleTypeOptions.push(tree)
|
||||
|
||||
const treeContent = {}
|
||||
const matchingItems_treeContent = []
|
||||
treeContent.name = '内容符合性结果'
|
||||
data.forEach(item => {
|
||||
if (item.id !== '11111' && item.id !== '22222' && item.id !== '33333' && item.id !== '44444' &&
|
||||
item.id !== '55555') {
|
||||
matchingItems_treeContent.push(item)
|
||||
}
|
||||
})
|
||||
treeContent.children = matchingItems_treeContent
|
||||
this.ruleTypeOptions.push(treeContent)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user