update
This commit is contained in:
@@ -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"
|
||||
/>
|
||||
</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-transfer
|
||||
v-model="form.transferValue"
|
||||
filterable
|
||||
:titles="['备选', '已选']"
|
||||
:filter-method="filterMethod"
|
||||
filter-placeholder="请输入表名"
|
||||
:data="transferData"
|
||||
/>
|
||||
</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,23 +258,56 @@ export default {
|
||||
})
|
||||
this.form.ruleConfig.ruleItemCode = item.itemCode
|
||||
},
|
||||
sourceSelectChanged(val) {
|
||||
listDataTable({ sourceId: val }).then(response => {
|
||||
if (response.success) {
|
||||
this.tableOptions = response.data
|
||||
this.columnOptions = []
|
||||
const source = this.sourceOptions.find(function (item) {
|
||||
return item.id === val
|
||||
})
|
||||
this.form.ruleSource = source.sourceName
|
||||
this.form.ruleDbType = source.dbType
|
||||
this.form.ruleTableId = ''
|
||||
this.form.ruleTable = ''
|
||||
this.form.ruleTableComment = ''
|
||||
this.form.ruleColumnId = ''
|
||||
this.form.ruleColumn = ''
|
||||
this.form.ruleColumnComment = ''
|
||||
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) {
|
||||
return item.id === val
|
||||
})
|
||||
this.form.ruleSource = source.sourceName
|
||||
this.form.ruleDbType = source.dbType
|
||||
this.form.ruleTableId = ''
|
||||
this.form.ruleTable = ''
|
||||
this.form.ruleTableComment = ''
|
||||
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) {
|
||||
|
||||
Reference in New Issue
Block a user