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() { data() {
return { return {
queryParams: { 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: { pickerOption: {
disabledDate(date) { disabledDate(date) {

View File

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