This commit is contained in:
gaochang 2023-12-25 20:07:38 +08:00
parent 812109656a
commit 5a2f1cf69d
2 changed files with 65 additions and 24 deletions

View File

@ -205,7 +205,7 @@ export default {
data() {
return {
queryParams: {
checkDate: moment(moment().add(-1, 'days').startOf('day').valueOf()).format('YYYY-MM-DD')
checkDate: moment(moment().add(-0, 'days').startOf('day').valueOf()).format('YYYY-MM-DD')
},
pickerOption: {
disabledDate(date) {

View File

@ -3,14 +3,17 @@
<div slot="header" class="clearfix">
<span>{{ title }}</span>
<el-button-group style="float: right;">
<el-button v-hasPerm="['quality:rule:add']" size="mini" icon="el-icon-plus" round :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
<el-button v-hasPerm="['quality:rule:add']" size="mini" icon="el-icon-plus" round
:loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{
loadingOptions.loadingText }}
</el-button>
<el-button size="mini" icon="el-icon-back" round @click="showCard">返回</el-button>
</el-button-group>
</div>
<div class="body-wrapper">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="规则名称" prop="ruleName">
<el-input v-model="form.ruleName" placeholder="请输入规则名称" />
<el-input v-model="form.ruleName" placeholder="请输入规则名称"/>
</el-form-item>
<el-form-item label="核查类型" prop="ruleItemId">
<el-select v-model="form.ruleItemId" placeholder="请选择核查类型" @change="ruleItemSelectChanged">
@ -70,14 +73,15 @@
<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-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-select v-model="form.ruleConfig.consistent.gbTypeId" placeholder="请选择"
@change="dictTypeSelectChanged">
<el-option
v-for="item in dictTypeOptions"
:key="item.id"
@ -103,7 +107,8 @@
<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-select v-model="form.ruleConfig.relevance.relatedTableId" placeholder="请选择"
@change="relatedTableSelectChanged">
<el-option
v-for="table in tableOptions"
:key="table.id"
@ -117,7 +122,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="关联字段">
<el-select v-model="form.ruleConfig.relevance.relatedColumnId" placeholder="请选择" @change="relatedColumnSelectChanged">
<el-select v-model="form.ruleConfig.relevance.relatedColumnId" placeholder="请选择"
@change="relatedColumnSelectChanged">
<el-option
v-for="column in relatedColumnOptions"
:key="column.id"
@ -133,21 +139,43 @@
<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-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="常用正则" prop="status">
<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>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio
v-for="dict in statusOptions"
:key="dict.id"
:label="dict.itemText"
>{{ dict.itemValue }}</el-radio>
>{{ dict.itemValue }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-form>
</div>
@ -166,7 +194,7 @@ export default {
props: {
data: {
type: Object,
default: function() {
default: function () {
return {}
}
}
@ -222,9 +250,13 @@ export default {
},
accuracy: {
maxLength: undefined
},
regular: {
regular: undefined
}
},
status: '1'
status: '1',
zzStatus: '0' //
},
//
rules: {
@ -307,7 +339,7 @@ export default {
})
},
ruleItemSelectChanged(val) {
const item = this.ruleItemOptions.find(function(item) {
const item = this.ruleItemOptions.find(function (item) {
return item.id === val
})
this.form.ruleConfig.ruleItemCode = item.itemCode
@ -317,7 +349,7 @@ export default {
if (response.success) {
this.tableOptions = response.data
this.columnOptions = []
const source = this.sourceOptions.find(function(item) {
const source = this.sourceOptions.find(function (item) {
return item.id === val
})
this.form.ruleSource = source.sourceName
@ -335,7 +367,7 @@ export default {
listDataColumn({ sourceId: this.form.ruleSourceId, tableId: val }).then(response => {
if (response.success) {
this.columnOptions = response.data
const table = this.tableOptions.find(function(item) {
const table = this.tableOptions.find(function (item) {
return item.id === val
})
this.form.ruleTable = table.tableName
@ -347,7 +379,7 @@ export default {
})
},
columnSelectChanged(val) {
const column = this.columnOptions.find(function(item) {
const column = this.columnOptions.find(function (item) {
return item.id === val
})
this.form.ruleColumn = column.columnName
@ -355,7 +387,7 @@ export default {
this.$forceUpdate()
},
dictTypeSelectChanged(val) {
const item = this.dictTypeOptions.find(function(item) {
const item = this.dictTypeOptions.find(function (item) {
return item.id === val
})
this.form.ruleConfig.consistent.gbTypeCode = item.gbTypeCode
@ -365,7 +397,7 @@ export default {
listDataColumn({ sourceId: this.form.ruleSourceId, tableId: val }).then(response => {
if (response.success) {
this.relatedColumnOptions = response.data
const table = this.tableOptions.find(function(item) {
const table = this.tableOptions.find(function (item) {
return item.id === val
})
this.form.ruleConfig.relevance.relatedTable = table.tableName
@ -377,19 +409,20 @@ export default {
})
},
relatedColumnSelectChanged(val) {
const column = this.relatedColumnOptions.find(function(item) {
const column = this.relatedColumnOptions.find(function (item) {
return item.id === val
})
this.form.ruleConfig.relevance.relatedColumn = column.columnName
this.form.ruleConfig.relevance.relatedColumnComment = column.columnComment
},
/** 提交按钮 */
submitForm: function() {
submitForm: function () {
this.$refs['form'].validate(valid => {
if (valid) {
this.loadingOptions.loading = true
this.loadingOptions.loadingText = '保存中...'
this.loadingOptions.isDisabled = true
console.log("this.form====", this.form)
addCheckRule(this.form).then(response => {
if (response.success) {
this.$message.success('保存成功')
@ -410,14 +443,22 @@ export default {
})
}
})
},
handleZzStatusRadioChange(value) {
//
if (value === '1') {
this.form.ruleConfig.regular.regular = '^[1-9][0-9]{10}$'
} else if (value === '2') {
this.form.ruleConfig.regular.regular = '^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$'
}
}
}
}
</script>
<style lang="scss" scoped>
.el-card ::v-deep .el-card__body {
.el-card ::v-deep .el-card__body {
height: calc(100vh - 230px);
overflow-y: auto;
}
}
</style>