From e5875000e60d4976f159f287ae3773f1d11960b3 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 22 十二月 2023 17:36:56 +0800
Subject: [PATCH] 调整FYForm表单逻辑

---
 src/views/fytz/user/components/CompUserInfo.vue |  112 +++++++++++++++++++++++++-------------------------------
 1 files changed, 50 insertions(+), 62 deletions(-)

diff --git a/src/views/fytz/user/components/CompUserInfo.vue b/src/views/fytz/user/components/CompUserInfo.vue
index cb70f52..d782e78 100644
--- a/src/views/fytz/user/components/CompUserInfo.vue
+++ b/src/views/fytz/user/components/CompUserInfo.vue
@@ -1,14 +1,13 @@
 <template>
   <FYForm
-    :form-info="_formInfo"
+    :form-info="formInfo"
     :rules="rules"
     :doClear="active"
     :useCancel="create"
     :useReset="!create"
-    :clearAftSubmit="create"
-    v-model:is-edit="_edit"
+    @updateEdit="(v) => $emit('updateEdit', v)"
     @submit="submit"
-    @cancel="cancel"
+    @cancel="$emit('onCancel')"
   >
     <template #form-item="{ formObj }">
       <!-- <el-form-item label="澶村儚url" prop="HeadIconUrl">
@@ -85,15 +84,19 @@
 </template>
 
 <script setup>
-import { defineProps, defineEmits, reactive, ref, watch } from 'vue';
+import { defineProps, defineEmits, reactive, ref, watch, computed } from 'vue';
 import { getSceneName } from '@/enum/scene';
 import userApi from '@/api/fytz/userApi';
 import { useMessageBoxTip } from '@/composables/messageBox';
 
 const props = defineProps({
   //鍩烘湰淇℃伅
-  formInfo: Object,
-  isEdit: Boolean,
+  model: {
+    type: Object,
+    default: () => {
+      return { isenable: true };
+    }
+  },
   create: {
     type: Boolean,
     default: false
@@ -104,10 +107,12 @@
   }
 });
 
-const emit = defineEmits(['onSubmit', 'onCancel', 'update:isEdit']);
+const formInfo = computed(() => {
+  return parseUserInfo(props.model);
+});
 
-const _formInfo = ref({ isenable: true });
-const _edit = ref(false);
+const emit = defineEmits(['onSubmit', 'onCancel', 'updateEdit']);
+
 const rules = reactive({
   acountname: [
     {
@@ -122,7 +127,7 @@
       message: '鐢ㄦ埛鏄电О涓嶈兘涓虹┖',
       trigger: 'blur'
     }
-  ],
+  ]
   // password: [
   //   {
   //     required: props.create,
@@ -134,38 +139,42 @@
 
 // 鐢ㄦ埛鍩烘湰淇℃伅鏍煎紡鍖�
 function parseUserInfo(s) {
-  s._usertype = {
-    label: s.usertype,
-    value: s.usertypeid + ''
-  };
+  if (s.usertype && s.usertypeid) {
+    s._usertype = {
+      label: s.usertype,
+      value: s.usertypeid + ''
+    };
+  }
 
-  s._scenetype = getSceneName(s.extension2, 1);
+  if (s.extension2) {
+    s._scenetype = getSceneName(s.extension2, 1);
+  }
 
   s._locations = {};
 
   return s;
 }
 
-function parseUserInfoReverse(formObj) {
+function parseUserInfoReverse(v) {
   // 琛屾斂鍖哄垝淇℃伅濉厖
-  const a = formObj.value._locations;
-  formObj.value.extension1 = a.dName;
+  const a = v._locations;
+  v.extension1 = a.dName;
   // 鐢ㄦ埛绫诲瀷淇℃伅濉厖
-  const b = formObj.value._usertype;
-  formObj.value.usertypeid = b.value;
-  formObj.value.usertype = b.label;
+  const b = v._usertype;
+  v.usertypeid = b.value;
+  v.usertype = b.label;
 
   // 鍦烘櫙绫诲瀷淇℃伅濉厖
-  const c = formObj.value._scenetype;
-  formObj.value.extension2 = c.value;
+  const c = v._scenetype;
+  v.extension2 = c.value;
 
-  return formObj;
+  return v;
 }
 
-function createUser(formObj, success, fail) {
-  const l = formObj.value._locations;
+function createUser(v, success, fail) {
+  const l = v._locations;
   const params = {
-    userInfo: formObj.value,
+    userInfo: v,
     baseInfo: {
       biProvinceCode: l.pCode,
       biProvinceName: l.pName,
@@ -176,7 +185,7 @@
       biTownCode: l.tCode,
       biTownName: l.tName,
       biAreaCode: l.aCode,
-      biArea: l.aName,
+      biArea: l.aName
       // biManagementCompanyId:
       // biManagementCompany:
       // biContact
@@ -195,11 +204,11 @@
     });
 }
 
-function updateUser(formObj, success, fail) {
+function updateUser(v, success, fail) {
   return userApi
-    .updateUserInfo(formObj.value)
+    .updateUserInfo(v)
     .then(() => {
-      emit('onSubmit', formObj);
+      emit('onSubmit', v);
       if (success) success();
     })
     .catch((err) => {
@@ -207,39 +216,18 @@
     });
 }
 
-function submit(formObj, success, fail) {
-  parseUserInfoReverse(formObj);
+function submit(v, success, fail) {
+  parseUserInfoReverse(v.value);
 
-  return props.create ? createUser(formObj, success, fail) : updateUser(formObj, success, fail);
+  return props.create ? createUser(v.value, success, fail) : updateUser(v.value, success, fail);
+  // parseUserInfoReverse(props.formInfo);
+
+  // return props.create
+  //   ? createUser(props.formInfo, success, fail)
+  //   : updateUser(props.formInfo, success, fail);
 }
-
-function cancel() {
-  emit('onCancel');
-}
-
-watch(
-  () => props.formInfo,
-  (nValue) => {
-    _formInfo.value = parseUserInfo(nValue);
-  }
-);
-
-// watch(
-//   () => props.create,
-//   (nValue) => {
-//     if (nValue) {
-
-//     }
-//   },
-//   {immediate:true}
-// );
-
-watch(_edit, (nValue) => {
-  emit('update:isEdit', nValue);
-});
 
 // 閲嶇疆瀵嗙爜
-
 const pwLoading = ref(false);
 
 function onResetPw() {
@@ -248,7 +236,7 @@
     confirmTitle: '閲嶇疆瀵嗙爜',
     onConfirm: async () => {
       pwLoading.value = true;
-      return userApi.resetPassword(props.formInfo.guid).finally(() => {
+      return userApi.resetPassword(formInfo.value.guid).finally(() => {
         pwLoading.value = false;
       });
     }

--
Gitblit v1.9.3