Browse Source

涉访涉诉自动查重

master
parent
commit
906ac4d877
  1. 68
      src/components/data/complaintformdialog.vue

68
src/components/data/complaintformdialog.vue

@ -96,6 +96,7 @@
v-model="model.responderName"
:placeholder="model.responderNameSkip ? '无' : '请输入来件人姓名'"
:disabled="model.responderNameSkip"
@blur="onAutoCheckDuplicate"
>
<template #append>
<el-checkbox
@ -116,6 +117,7 @@
v-model="model.responderIdCode"
:placeholder="model.responderIdCodeSkip ? '无' : '请输入身份证号码'"
:disabled="model.responderIdCodeSkip"
@blur="onAutoCheckDuplicate"
>
<template #append>
<el-checkbox
@ -134,8 +136,19 @@
:disabled="model.responderIdCodeSkip"
@click="onCheckDuplicate"
>
</el-button>
<span
v-if="duplicateHintVisible"
style="margin-left: 8px; font-size: 12px;"
:style="{ color: duplicateCount > 0 ? '#fa541c' : '#8c8c8c' }"
>
<template v-if="autoDuplicateLoading">查重中</template>
<template v-else-if="duplicateCount > 0">疑似重复 {{ duplicateCount }} </template>
<template v-else>未发现重复</template>
</span>
</div>
</el-col>
</el-row>
@ -148,6 +161,7 @@
v-model="model.responderPhone"
:placeholder="model.responderPhoneSkip ? '无' : '请输入联系电话'"
:disabled="model.responderPhoneSkip"
@blur="onAutoCheckDuplicate"
>
<template #append>
<el-checkbox
@ -390,6 +404,14 @@ watch(
props.model.responderNameSkip = false
props.model.responderIdCodeSkip = false
props.model.responderPhoneSkip = false
duplicateDrawerVisible.value = false
duplicateLoading.value = false
autoDuplicateLoading.value = false
duplicateHintVisible.value = false
duplicateCount.value = 0
duplicateCache.value = []
duplicateList.value = []
}
}
)
@ -449,6 +471,50 @@ const onCheckDuplicate = async () => {
}
}
// region
const duplicateCount = ref(0) //
const duplicateCache = ref([]) //
const autoDuplicateLoading = ref(false)
const duplicateHintVisible = ref(false)
const fetchDuplicate = async () => {
const body = {
responderIdCode: props.model.responderIdCode,
responderName: props.model.responderName,
responderPhone: props.model.responderPhone,
}
const res = await maileRepeatt(body)
return res?.complaintCollectionRepeatDTOS || []
}
const onAutoCheckDuplicate = async () => {
const { responderIdCode, responderName, responderPhone } = props.model
if (!responderIdCode && !responderName && !responderPhone) {
duplicateCount.value = 0
duplicateCache.value = []
duplicateHintVisible.value = false
return
}
duplicateHintVisible.value = true
autoDuplicateLoading.value = true
try {
const list = await fetchDuplicate()
duplicateCount.value = list.length
duplicateCache.value = list
} catch (e) {
//
} finally {
autoDuplicateLoading.value = false
}
}
// endregion
</script>

Loading…
Cancel
Save