index.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <template>
  2. <div class="p-2">
  3. <el-card shadow="never">
  4. <template #header>
  5. <span class="font-bold text-base">联系电话管理</span>
  6. </template>
  7. <el-form ref="formRef" :model="form" :rules="rules" label-width="140px" class="mt-4">
  8. <el-form-item label="华晟型材专家电话" prop="expertPhone">
  9. <el-input v-model="form.expertPhone" placeholder="请输入专家电话" style="width: 300px" maxlength="20" />
  10. </el-form-item>
  11. <el-form-item label="客服电话" prop="servicePhone">
  12. <el-input v-model="form.servicePhone" placeholder="请输入客服电话" style="width: 300px" maxlength="20" />
  13. </el-form-item>
  14. <el-form-item label="业务员电话" prop="salesPhone">
  15. <el-input v-model="form.salesPhone" placeholder="请输入业务员电话" style="width: 300px" maxlength="20" />
  16. </el-form-item>
  17. <el-form-item>
  18. <el-button type="primary" icon="Check" :loading="saving" @click="handleSave">
  19. 保存
  20. </el-button>
  21. <el-button icon="Refresh" @click="loadPhone">重置</el-button>
  22. </el-form-item>
  23. </el-form>
  24. </el-card>
  25. </div>
  26. </template>
  27. <script setup lang="ts">
  28. import { getPhone, updatePhone, PhoneForm } from '@/api/system/phone';
  29. const { proxy } = getCurrentInstance() as ComponentInternalInstance;
  30. const saving = ref(false);
  31. const formRef = ref();
  32. const form = reactive<PhoneForm>({
  33. id: 1,
  34. expertPhone: '',
  35. servicePhone: '',
  36. salesPhone: ''
  37. });
  38. const rules = {
  39. expertPhone: [{ required: true, message: '专家电话不能为空', trigger: 'blur' }],
  40. servicePhone: [{ required: true, message: '客服电话不能为空', trigger: 'blur' }],
  41. salesPhone: [{ required: true, message: '业务员电话不能为空', trigger: 'blur' }]
  42. };
  43. /** 加载联系电话 */
  44. const loadPhone = async () => {
  45. const res = await getPhone(1);
  46. form.id = res.data.id;
  47. form.expertPhone = res.data.expertPhone;
  48. form.servicePhone = res.data.servicePhone;
  49. form.salesPhone = res.data.salesPhone;
  50. };
  51. /** 保存 */
  52. const handleSave = () => {
  53. formRef.value?.validate(async (valid: boolean) => {
  54. if (!valid) return;
  55. saving.value = true;
  56. try {
  57. await updatePhone({ ...form });
  58. proxy?.$modal.msgSuccess('保存成功');
  59. } finally {
  60. saving.value = false;
  61. }
  62. });
  63. };
  64. onMounted(() => {
  65. loadPhone();
  66. });
  67. </script>