|
@@ -24,20 +24,21 @@
|
|
|
</template>
|
|
|
<el-input v-model="state.ruleForm.telNumbers" placeholder="多个号码请以英文,分隔" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="接收者" prop="array" :rules="[{ required: true, message: '请选择接收者', trigger: 'blur' }]" v-else>
|
|
|
+ <el-form-item label="接收者" prop="userIds" :rules="[{ required: true, message: '请选择接收者', trigger: 'blur' }]" v-else>
|
|
|
<el-transfer
|
|
|
- v-model="state.ruleForm.array"
|
|
|
+ v-model="state.ruleForm.userIds"
|
|
|
filterable
|
|
|
:filter-method="filterMethod"
|
|
|
filter-placeholder="姓名/手机号码"
|
|
|
:data="contacts"
|
|
|
:props="{
|
|
|
- key: 'phoneNo',
|
|
|
+ key: 'id',
|
|
|
label: 'name',
|
|
|
}"
|
|
|
+ :titles="['待选','已选']"
|
|
|
>
|
|
|
<template #default="{ option }">
|
|
|
- <span>{{ option.name }} - {{ option.phoneNo }}</span>
|
|
|
+ <div class="flex-center-align">{{ option.name }} - {{ option.phoneNo }}</div>
|
|
|
</template>
|
|
|
<template #left-footer>
|
|
|
<el-text type="danger">温馨提示:没有电话号码的不显示。</el-text>
|
|
@@ -82,7 +83,6 @@ const state = reactive<any>({
|
|
|
// 打开弹窗
|
|
|
const openDialog = async () => {
|
|
|
await getBaseData();
|
|
|
- state.dialogVisible = true;
|
|
|
};
|
|
|
// 关闭弹窗
|
|
|
const closeDialog = () => {
|
|
@@ -94,7 +94,11 @@ const close = () => {
|
|
|
};
|
|
|
const contacts = ref<EmptyArrayType>([]); // 用户列表
|
|
|
const filterMethod = (query: any, item: any) => {
|
|
|
- return item.phoneNo.toLowerCase().includes(query.toLowerCase()) || item.name.toLowerCase().includes(query.toLowerCase());
|
|
|
+ // 模糊查询条件
|
|
|
+ const nameMatch = item.name.toLowerCase().includes(query.toLowerCase());
|
|
|
+ const phoneMatch = item.phoneNo.toLowerCase().includes(query.toLowerCase());
|
|
|
+ // 返回满足任意一个条件的项目
|
|
|
+ return nameMatch || phoneMatch;
|
|
|
};
|
|
|
// 新增
|
|
|
const onSubmit = (formEl: FormInstance | undefined) => {
|
|
@@ -102,15 +106,15 @@ const onSubmit = (formEl: FormInstance | undefined) => {
|
|
|
formEl.validate((valid: boolean) => {
|
|
|
if (!valid) return;
|
|
|
state.loading = true;
|
|
|
- let request = {};
|
|
|
+ let request:EmptyObjectType;
|
|
|
if (state.ruleForm.type === 1) {
|
|
|
request = {
|
|
|
- ...state.ruleForm,
|
|
|
+ telNumbers: state.ruleForm.telNumbers,
|
|
|
+ content: state.ruleForm.content,
|
|
|
};
|
|
|
} else {
|
|
|
- const array = removeDuplicate(state.ruleForm.array);
|
|
|
request = {
|
|
|
- telNumbers: array.join(','),
|
|
|
+ userIds: state.ruleForm.userIds,
|
|
|
content: state.ruleForm.content,
|
|
|
};
|
|
|
}
|
|
@@ -133,11 +137,15 @@ const onSubmit = (formEl: FormInstance | undefined) => {
|
|
|
};
|
|
|
// 获取基础信息
|
|
|
const getBaseData = async () => {
|
|
|
+ state.loading = true;
|
|
|
+ state.dialogVisible = true;
|
|
|
try {
|
|
|
const { result } = await messageAddBase();
|
|
|
contacts.value = result.contacts ?? [];
|
|
|
+ state.loading = false;
|
|
|
} catch (e) {
|
|
|
console.log(e);
|
|
|
+ state.loading = false;
|
|
|
}
|
|
|
};
|
|
|
const change = () => {
|