From 7e9a217f6d3610d612328112ee538481f7db089b Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 19 十二月 2023 09:14:09 +0800
Subject: [PATCH] Merge branch 'master' into feature-001

---
 src/views/fytz/user/components/CompUserInfo.vue |  203 ++++++++++++++++++++------------------------------
 1 files changed, 83 insertions(+), 120 deletions(-)

diff --git a/src/views/fytz/user/components/CompUserInfo.vue b/src/views/fytz/user/components/CompUserInfo.vue
index e477f47..c0340d7 100644
--- a/src/views/fytz/user/components/CompUserInfo.vue
+++ b/src/views/fytz/user/components/CompUserInfo.vue
@@ -3,9 +3,6 @@
     :form-info="_formInfo"
     :rules="rules"
     :reset="active"
-    :useCancel="create"
-    :useReset="!create"
-    :clearAftSubmit="create"
     v-model:is-edit="_edit"
     @submit="submit"
     @cancel="cancel"
@@ -36,12 +33,13 @@
         </el-col>
         <el-col :span="6" v-if="!create">
           <el-row justify="end">
-            <el-button type="danger" @click="onResetPw" :loading="pwLoading">閲嶇疆瀵嗙爜</el-button>
+            <el-button type="danger" @click="onResetPw" :loading="pwLoading"
+              >閲嶇疆瀵嗙爜</el-button
+            >
           </el-row>
         </el-col>
       </el-form-item>
       <FYOptionUserType
-        prop="_usertype"
         :allOption="false"
         :initValue="false"
         v-model:value="formObj._usertype"
@@ -56,25 +54,32 @@
       </el-form-item> -->
       <el-form-item label="鏄惁鍙敤" prop="isenable">
         <el-switch v-model="formObj.isenable" />
-        <span style="margin-left: 16px">{{ formObj.isenable ? '鍙敤' : '涓嶅彲鐢�' }}</span>
+        <span style="margin-left: 16px">{{
+          formObj.isenable ? '鍙敤' : '涓嶅彲鐢�'
+        }}</span>
       </el-form-item>
       <el-form-item label="宸ュ彿" prop="workno">
         <el-input clearable v-model="formObj.workno" placeholder="宸ュ彿" />
       </el-form-item>
       <el-form-item label="鎵嬫満" prop="telephone">
-        <el-input clearable type="tel" v-model="formObj.telephone" placeholder="鎵嬫満" />
+        <el-input
+          clearable
+          type="tel"
+          v-model="formObj.telephone"
+          placeholder="鎵嬫満"
+        />
       </el-form-item>
-      <FYOptionLocation
-        v-if="create"
-        prop="_locations"
-        :allOption="false"
-        :level="4"
-        :checkStrictly="false"
-        :initValue="false"
-        v-model:value="formObj._locations"
-      ></FYOptionLocation>
+      <!-- <el-form-item label="鐪�/甯�/鍖�/闀�" prop="_locations">
+        <el-cascader
+          v-model="formObj._locations"
+          :options="locations"
+          placeholder="鐪�/甯�/鍖�/闀�"
+          :props="locationsProps"
+          style="width: 280px"
+          :disabled="!create"
+        />
+      </el-form-item> -->
       <FYOptionScene
-        prop="_scenetype"
         :allOption="false"
         :type="1"
         :initValue="false"
@@ -87,9 +92,7 @@
 <script setup>
 import { defineProps, defineEmits, reactive, ref, watch } from 'vue';
 import { getSceneName } from '@/enum/scene';
-import { enumLocation } from '@/enum/location';
 import userApi from '@/api/fytz/userApi';
-import { useMessageBoxTip } from '@/composables/messageBox';
 
 const props = defineProps({
   //鍩烘湰淇℃伅
@@ -97,32 +100,36 @@
   isEdit: Boolean,
   create: {
     type: Boolean,
-    default: false
+    default: false,
   },
   active: {
     type: Boolean,
-    default: false
-  }
+    default: false,
+  },
 });
 
 const emit = defineEmits(['onSubmit', 'onCancel', 'update:isEdit']);
 
-const _formInfo = ref({ isenable: true });
+const _formInfo = ref();
 const _edit = ref(false);
+const locations = enumLocation(false);
+const locationsProps = reactive({
+  checkStrictly: true,
+});
 const rules = reactive({
   acountname: [
     {
       required: true,
       message: '璐︽埛鍚嶄笉鑳戒负绌�',
-      trigger: 'blur'
-    }
+      trigger: 'blur',
+    },
   ],
   realname: [
     {
       required: true,
       message: '鐢ㄦ埛鏄电О涓嶈兘涓虹┖',
-      trigger: 'blur'
-    }
+      trigger: 'blur',
+    },
   ],
   // password: [
   //   {
@@ -135,30 +142,30 @@
     {
       required: true,
       message: '鐢ㄦ埛绫诲瀷涓嶈兘涓虹┖',
-      trigger: 'change'
-    }
+      trigger: 'change',
+    },
   ],
   _locations: [
     {
       required: props.create,
       message: '鐪�/甯�/鍖�/闀囦笉鑳戒负绌�',
-      trigger: 'change'
-    }
+      trigger: 'change',
+    },
   ],
   _scenetype: [
     {
       required: true,
       message: '鍦烘櫙绫诲瀷涓嶈兘涓虹┖',
-      trigger: 'change'
-    }
-  ]
+      trigger: 'change',
+    },
+  ],
 });
 
 // 鐢ㄦ埛鍩烘湰淇℃伅鏍煎紡鍖�
 function parseUserInfo(s) {
   s._usertype = {
     label: s.usertype,
-    value: s.usertypeid + ''
+    value: s.usertypeid + '',
   };
 
   s._scenetype = getSceneName(s.extension2, 1);
@@ -168,17 +175,48 @@
   return s;
 }
 
-function parseUserInfoReverse(formObj) {
+function createUser(formObj, func) {
+  return userApi
+    .createUser(formObj.value)
+    .then(() => {
+      emit('onSubmit', formObj);
+    })
+    .finally(() => {
+      func();
+    });
+}
+
+function updateUser(formObj, func) {
+  return userApi
+    .updateUserInfo(formObj.value)
+    .then(() => {
+      emit('onSubmit', formObj);
+    })
+    .finally(() => {
+      func();
+    });
+}
+
+function submit(formObj, func) {
   // 琛屾斂鍖哄垝淇℃伅濉厖
   const a = formObj.value._locations;
-  formObj.value.provincecode = a.pCode;
-  formObj.value.provincename = a.pName;
-  formObj.value.citycode = a.cCode;
-  formObj.value.cityname = a.cName;
-  formObj.value.districtcode = a.dCode;
-  formObj.value.extension1 = a.dName;
-  formObj.value.towncode = a.tCode;
-  formObj.value.townname = a.tName;
+  if (a[0]) {
+    formObj.value.provincecode = a[0][0];
+    formObj.value.provincename = a[0][1];
+  }
+  if (a[1]) {
+    formObj.value.citycode = a[1][0];
+    formObj.value.cityname = a[1][1];
+  }
+  if (a[2]) {
+    formObj.value.districtcode = a[2][0];
+    formObj.value.extension1 = a[2][1];
+  }
+  if (a[3]) {
+    formObj.value.towncode = a[3][0];
+    formObj.value.townname = a[3][1];
+  }
+
   // 鐢ㄦ埛绫诲瀷淇℃伅濉厖
   const b = formObj.value._usertype;
   formObj.value.usertypeid = b.value;
@@ -188,57 +226,7 @@
   const c = formObj.value._scenetype;
   formObj.value.extension2 = c.value;
 
-  return formObj;
-}
-
-function createUser(formObj, success, fail) {
-  const params = {
-    userInfo: formObj.value,
-    baseInfo: {
-      biProvinceCode: formObj.value.provincecode,
-      biProvinceName: formObj.value.provincename,
-      biCityCode: formObj.value.citycode,
-      biCityName: formObj.value.cityname,
-      biDistrictCode: formObj.value.districtcode,
-      biDistrictName: formObj.value.extension1,
-      biTownCode: formObj.value.towncode,
-      biTownName: formObj.value.townname
-      // biAreaCode
-      // biArea
-      // biManagementCompanyId
-      // biManagementCompany
-      // biContact
-      // biTelephone
-      // biAddress
-    }
-  };
-  return userApi
-    .createUser(params)
-    .then(() => {
-      emit('onSubmit', params);
-      success();
-    })
-    .catch((err) => {
-      fail(err);
-    });
-}
-
-function updateUser(formObj, success, fail) {
-  return userApi
-    .updateUserInfo(formObj.value)
-    .then(() => {
-      emit('onSubmit', formObj);
-      if (success) success();
-    })
-    .catch((err) => {
-      if (fail) fail(err);
-    });
-}
-
-function submit(formObj, success, fail) {
-  parseUserInfoReverse(formObj);
-
-  return props.create ? createUser(formObj, success, fail) : updateUser(formObj, success, fail);
+  return props.create ? createUser(formObj, func) : updateUser(formObj, func);
 }
 
 function cancel() {
@@ -252,34 +240,9 @@
   }
 );
 
-// watch(
-//   () => props.create,
-//   (nValue) => {
-//     if (nValue) {
-
-//     }
-//   },
-//   {immediate:true}
-// );
-
 watch(_edit, (nValue) => {
   emit('update:isEdit', nValue);
 });
 
-// 閲嶇疆瀵嗙爜
-
 const pwLoading = ref(false);
-
-function onResetPw() {
-  useMessageBoxTip({
-    confirmMsg: '鏄惁閲嶇疆璇ュ満鏅瘑鐮侊紵',
-    confirmTitle: '閲嶇疆瀵嗙爜',
-    onConfirm: async () => {
-      pwLoading.value = true;
-      return userApi.resetPassword(props.formInfo.guid).finally(() => {
-        pwLoading.value = false;
-      });
-    }
-  });
-}
 </script>

--
Gitblit v1.9.3