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 | 169 +++++++++++++++++++++---------------------------------- 1 files changed, 65 insertions(+), 104 deletions(-) diff --git a/src/views/fytz/user/components/CompUserInfo.vue b/src/views/fytz/user/components/CompUserInfo.vue index 1194b4a..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" - :reset="active" + :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"> @@ -68,8 +67,8 @@ v-if="create" prop="_locations" :allOption="false" - :level="4" - :checkStrictly="false" + :level="5" + :checkStrictly="true" :initValue="false" v-model:value="formObj._locations" ></FYOptionLocation> @@ -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, @@ -130,82 +135,59 @@ // trigger: 'blur', // }, // ], - _usertype: [ - { - required: true, - message: '鐢ㄦ埛绫诲瀷涓嶈兘涓虹┖', - trigger: 'change' - } - ], - _locations: [ - { - required: props.create, - message: '鐪�/甯�/鍖�/闀囦笉鑳戒负绌�', - trigger: 'change' - } - ], - _scenetype: [ - { - required: true, - message: '鍦烘櫙绫诲瀷涓嶈兘涓虹┖', - trigger: 'change' - } - ] }); // 鐢ㄦ埛鍩烘湰淇℃伅鏍煎紡鍖� 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 = []; + s._locations = {}; return s; } -function parseUserInfoReverse(formObj) { +function parseUserInfoReverse(v) { // 琛屾斂鍖哄垝淇℃伅濉厖 - 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; + 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) { +function createUser(v, success, fail) { + const l = v._locations; const params = { - userInfo: formObj.value, + userInfo: v, 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 + biProvinceCode: l.pCode, + biProvinceName: l.pName, + biCityCode: l.cCode, + biCityName: l.cName, + biDistrictCode: l.dCode, + biDistrictName: l.dName, + biTownCode: l.tCode, + biTownName: l.tName, + biAreaCode: l.aCode, + biArea: l.aName + // biManagementCompanyId: + // biManagementCompany: // biContact // biTelephone // biAddress @@ -222,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) => { @@ -234,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() { @@ -275,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