riku
2023-12-18 356f54467f525f437f41271fb62f6be66f2ab1e5
src/views/fytz/user/components/CompUserInfo.vue
@@ -3,6 +3,9 @@
    :form-info="_formInfo"
    :rules="rules"
    :reset="active"
    :useCancel="create"
    :useReset="!create"
    :clearAftSubmit="create"
    v-model:is-edit="_edit"
    @submit="submit"
    @cancel="cancel"
@@ -38,6 +41,7 @@
        </el-col>
      </el-form-item>
      <FYOptionUserType
        prop="_usertype"
        :allOption="false"
        :initValue="false"
        v-model:value="formObj._usertype"
@@ -60,17 +64,17 @@
      <el-form-item label="手机" prop="telephone">
        <el-input clearable type="tel" v-model="formObj.telephone" placeholder="手机" />
      </el-form-item>
      <!-- <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> -->
      <FYOptionLocation
        v-if="create"
        prop="_locations"
        :allOption="false"
        :level="4"
        :checkStrictly="false"
        :initValue="false"
        v-model:value="formObj._locations"
      ></FYOptionLocation>
      <FYOptionScene
        prop="_scenetype"
        :allOption="false"
        :type="1"
        :initValue="false"
@@ -103,13 +107,8 @@
const emit = defineEmits(['onSubmit', 'onCancel', 'update:isEdit']);
const _formInfo = ref();
const _formObject = { value: {} };
const _formInfo = ref({ isenable: true });
const _edit = ref(false);
const locations = enumLocation(false);
const locationsProps = reactive({
  checkStrictly: true
});
const rules = reactive({
  acountname: [
    {
@@ -170,6 +169,16 @@
}
function parseUserInfoReverse(formObj) {
  // 行政区划信息填充
  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 b = formObj.value._usertype;
  formObj.value.usertypeid = b.value;
@@ -182,53 +191,54 @@
  return formObj;
}
function createUser(formObj, func) {
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(formObj.value)
    .createUser(params)
    .then(() => {
      emit('onSubmit', formObj);
      emit('onSubmit', params);
      success();
    })
    .finally(() => {
      _formObject.value = formObj.value;
      func();
    .catch((err) => {
      fail(err);
    });
}
function updateUser(formObj, func) {
function updateUser(formObj, success, fail) {
  return userApi
    .updateUserInfo(formObj.value)
    .then(() => {
      emit('onSubmit', formObj);
      if (success) success();
    })
    .finally(() => {
      _formObject.value = formObj.value;
      if (func) func();
    .catch((err) => {
      if (fail) fail(err);
    });
}
function submit(formObj, func) {
  // 行政区划信息填充
  // const a = formObj.value._locations;
  // 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];
  // }
function submit(formObj, success, fail) {
  parseUserInfoReverse(formObj);
  return props.create ? createUser(formObj, func) : updateUser(formObj, func);
  return props.create ? createUser(formObj, success, fail) : updateUser(formObj, success, fail);
}
function cancel() {
@@ -239,14 +249,22 @@
  () => props.formInfo,
  (nValue) => {
    _formInfo.value = parseUserInfo(nValue);
    _formObject.value = _formInfo.value;
  }
);
// watch(
//   () => props.create,
//   (nValue) => {
//     if (nValue) {
//     }
//   },
//   {immediate:true}
// );
watch(_edit, (nValue) => {
  emit('update:isEdit', nValue);
});
// 重置密码
@@ -257,10 +275,10 @@
    confirmMsg: '是否重置该场景密码?',
    confirmTitle: '重置密码',
    onConfirm: async () => {
      pwLoading.value = true
      _formObject.value.password = '123456';
      await updateUser(_formObject);
      pwLoading.value = false
      pwLoading.value = true;
      return userApi.resetPassword(props.formInfo.guid).finally(() => {
        pwLoading.value = false;
      });
    }
  });
}