Browse Source

完善客户信息表+患者信息表逻辑

cgp 6 days ago
parent
commit
f29f72dbf1

+ 18 - 8
src/views/qw/collectionUnBind/addCollectionDialog.vue

@@ -48,8 +48,8 @@
       <el-form-item label="用户姓名" prop="userName">
         <el-input v-model="form.userName" placeholder="请输入用户姓名"></el-input>
       </el-form-item>
-      <el-form-item label="用户手机号后四位" prop="userPhoneFour">
-        <el-input v-model="form.userPhoneFour" placeholder="请输入手机号后四位"></el-input>
+      <el-form-item label="用户手机号" prop="userPhoneFour">
+        <el-input v-model="form.userPhoneFour" placeholder="请输入用户手机号" maxlength="11" show-word-limit></el-input>
       </el-form-item>
       <el-form-item label="用户性别" prop="sex">
         <el-select v-model="form.sex" placeholder="请选择用户性别">
@@ -58,7 +58,7 @@
         </el-select>
       </el-form-item>
       <el-form-item label="年龄" prop="age">
-        <el-input-number v-model="form.age" placeholder="请输入年龄" style="width: 20%"/>
+        <el-input-number v-model="form.age" placeholder="请输入年龄" style="width: 20%" :min="1" :max="150"/>
       </el-form-item>
 
       <el-form-item label="过敏情况" prop="allergy">
@@ -114,6 +114,17 @@ export default {
       callback();
     };
 
+    // 手机号校验规则
+    const validatePhone = (rule, value, callback) => {
+      if (!value) {
+        return callback(new Error('请输入用户手机号'));
+      }
+      if (!/^1[3-9]\d{9}$/.test(value)) {
+        return callback(new Error('请输入正确的手机号码格式'));
+      }
+      callback();
+    };
+
     return {
       originalAnswers: null,
       isAnswersModified: 0,
@@ -125,7 +136,7 @@ export default {
         questionId: null,
         answers: [],
         userName: '',
-        userPhoneFour: '',
+        userPhoneFour: '', // 改为完整的手机号字段
         sex: null,
         age: null,
         allergy: '',
@@ -141,8 +152,7 @@ export default {
           {required: true, validator: validateName, trigger: 'blur'}
         ],
         userPhoneFour: [
-          {required: true, message: '请输入手机号后四位', trigger: 'blur'},
-          {pattern: /^\d{4}$/, message: '请输入正确的4位数字', trigger: 'blur'}
+          {required: true, validator: validatePhone, trigger: 'blur'}
         ],
         sex: [
           {required: true, message: '请选择用户性别', trigger: 'change'},
@@ -332,7 +342,7 @@ export default {
 
         const preservedFields = {
           userName: this.form.userName,
-          userPhoneFour: this.form.userPhoneFour,
+          userPhoneFour: this.form.userPhoneFour, // 保存完整的手机号
           sex: this.form.sex,
           age: this.form.age,
           allergy: this.form.allergy,
@@ -374,7 +384,7 @@ export default {
         questionId: null,
         answers: [],
         userName: '',
-        userPhoneFour: '',
+        userPhoneFour: '', // 重置为完整的手机号
         sex: null,
         age: null,
         allergy: '',

+ 38 - 12
src/views/qw/companyCustomer/index.vue

@@ -181,11 +181,18 @@ export default {
     const validatePhone = (rule, value, callback) => {
       if (!value) {
         callback(new Error('电话号码不能为空'));
-      } else if (!/^1[3-9]\d{9}$/.test(value)) {
-        callback(new Error('请输入有效的手机号码'));
-      } else {
-        callback();
+        return;
+      }
+      const phone = String(value).trim();
+      if (!/^\d{11}$/.test(phone)) {
+        callback(new Error('电话号码必须为11位数字'));
+        return;
       }
+      if (!/^1[3-9]\d{9}$/.test(phone)) {
+        callback(new Error('请输入有效的手机号码(1开头,第二位3-9)'));
+        return;
+      }
+      callback();
     };
     const validateAge = (rule, value, callback) => {
       if (value === null || value === undefined || value === '') {
@@ -226,6 +233,7 @@ export default {
           { required: true, message: "电话不能为空", trigger: "blur" },
           { validator: validatePhone, trigger: "blur" }
         ],
+        address: [{ required: true, message: "地址不能为空", trigger: "blur" }],
         filingTime: [{ required: true, message: "建档时间不能为空", trigger: "blur" }],
         companyUserName: [{ required: true, message: "客服姓名不能为空", trigger: "blur" }],
         doctorName: [{ required: true, message: "负责医生不能为空", trigger: "blur" }],
@@ -245,12 +253,23 @@ export default {
   },
   methods: {
     parseTime,
+    // 原生方法生成当前时间字符串 yyyy-MM-dd HH:mm:ss
+    getCurrentDateTime() {
+      const now = new Date();
+      const year = now.getFullYear();
+      const month = String(now.getMonth() + 1).padStart(2, '0');
+      const day = String(now.getDate()).padStart(2, '0');
+      const hours = String(now.getHours()).padStart(2, '0');
+      const minutes = String(now.getMinutes()).padStart(2, '0');
+      const seconds = String(now.getSeconds()).padStart(2, '0');
+      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    },
     getList() {
       this.loading = true;
       listCustomer(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-        const data = response; // 若依 request 解包后直接返回 data 对象
-        this.customerList = data.rows; // 数据在 rows 中
-        this.total = data.total;       // 总记录数
+        const data = response;
+        this.customerList = data.rows;
+        this.total = data.total;
         this.loading = false;
       }).catch(() => {
         this.loading = false;
@@ -299,7 +318,8 @@ export default {
     },
     handleAdd() {
       this.reset();
-      //获取回填信息(当前登录销售和绑定的医生)
+      // 设置默认建档时间为当前系统时间(字符串格式)
+      this.form.filingTime = this.getCurrentDateTime();
       getCompanyUserAndDoctor().then(response => {
         const data = response.data;
         if (!data || !data.doctorId) {
@@ -334,24 +354,30 @@ export default {
         if (!valid) return;
         if (this.form.id != null) {
           await updateCustomer(this.form);
-          this.$modal.msgSuccess("修改成功");
+          this.$message.success("修改成功");
         } else {
           await addCustomer(this.form);
-          this.$modal.msgSuccess("新增成功");
+          this.$message.success("新增成功");
         }
         this.open = false;
+        await this.$nextTick();
         this.getList();
       } catch (e) {
         console.warn("提交失败", e);
+        if (e.message) this.$message.error(e.message);
       }
     },
     handleDelete(row) {
       const ids = row.id || this.ids.join(",");
-      this.$modal.confirm('是否确认删除该客户信息?').then(function() {
+      this.$confirm('是否确认删除该客户信息?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
         return delCustomer(ids);
       }).then(() => {
         this.getList();
-        this.$modal.msgSuccess("删除成功");
+        this.$message.success("删除成功");
       }).catch(() => {});
     },
     handleExport() {

+ 20 - 9
src/views/qw/externalContact/collection.vue

@@ -53,8 +53,8 @@
       <el-form-item label="用户姓名" prop="userName">
         <el-input v-model="form.userName" placeholder="请输入用户姓名"></el-input>
       </el-form-item>
-      <el-form-item label="用户手机号后四位" prop="userPhoneFour">
-        <el-input v-model="form.userPhoneFour" placeholder="请输入手机号后四位"></el-input>
+      <el-form-item label="用户手机号" prop="userPhoneFour">
+        <el-input v-model="form.userPhoneFour" placeholder="请输入用户手机号" maxlength="11" show-word-limit></el-input>
       </el-form-item>
       <el-form-item label="用户性别" prop="sex">
         <el-select v-model="form.sex" placeholder="请选择用户性别">
@@ -63,7 +63,7 @@
         </el-select>
       </el-form-item>
       <el-form-item label="年龄" prop="age">
-        <el-input-number v-model="form.age" placeholder="请输入年龄"  style="width: 20%"/>
+        <el-input-number v-model="form.age" placeholder="请输入年龄" style="width: 20%" :min="1" :max="150"/>
       </el-form-item>
 
       <el-form-item label="过敏情况" prop="allergy">
@@ -143,6 +143,18 @@ export default {
       }
       callback();
     };
+
+    // 手机号校验规则
+    const validatePhone = (rule, value, callback) => {
+      if (!value) {
+        return callback(new Error('请输入用户手机号'));
+      }
+      if (!/^1[3-9]\d{9}$/.test(value)) {
+        return callback(new Error('请输入正确的手机号码格式'));
+      }
+      callback();
+    };
+
     return {
       originalAnswers: null, // 保存原始 answers 数据
       isAnswersModified: 0, // 0-未修改, 1-已修改
@@ -161,7 +173,7 @@ export default {
         isPackage: null,
         answers: [],
         userName: '',
-        userPhoneFour: '',
+        userPhoneFour: '', // 改为完整的手机号
         sex: null,
         age: null,
         allergy: '',
@@ -200,8 +212,7 @@ export default {
           { required: true, validator: validateName, trigger: 'blur' }
         ],
         userPhoneFour: [
-          { required: true, message: '请输入手机号后四位', trigger: 'blur' },
-          { pattern: /^\d{4}$/, message: '请输入正确的4位数字', trigger: 'blur' }
+          { required: true, validator: validatePhone, trigger: 'blur' }
         ],
         sex: [
           { required: true, message: '请选择用户性别', trigger: 'change' },
@@ -392,7 +403,7 @@ export default {
         isPackage: data.isPackage ?? null,
         answers: processedAnswers,
         userName: data.userName || '',
-        userPhoneFour: data.userPhoneFour || '',
+        userPhoneFour: data.userPhoneFour || '', // 使用完整的手机号字段
         sex: data.sex ?? null,
         age: data.age ?? null,
         allergy: data.allergy || '',
@@ -424,7 +435,7 @@ export default {
         isPackage: null,
         answers: [],
         userName: '',
-        userPhoneFour: '',
+        userPhoneFour: '', // 重置为完整的手机号
         sex: null,
         age: null,
         allergy: '',
@@ -491,7 +502,7 @@ export default {
       const preservedFields = {
         appId: this.form.appId,
         userName: this.form.userName,
-        userPhoneFour: this.form.userPhoneFour,
+        userPhoneFour: this.form.userPhoneFour, // 保留完整的手机号
         sex: this.form.sex,
         age: this.form.age,
         allergy: this.form.allergy,