From e75076815db5ab6870353d0760b962b671e7c56f Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 23 十二月 2025 17:50:28 +0800
Subject: [PATCH] fix: 甲方小程序

---
 apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 172 insertions(+), 0 deletions(-)

diff --git a/apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue
new file mode 100644
index 0000000..caf540a
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue
@@ -0,0 +1,172 @@
+<template>
+  <ContentScrollView :paddingH="false">
+    <nut-form :model-value="form" ref="formRef" :rules="rules" label-position="top">
+      <nut-form-item label="濮撳悕:" class="bole-form-item" prop="name" required>
+        <nut-input v-model="form.name" placeholder="璇疯緭鍏ュ鍚�"> </nut-input>
+      </nut-form-item>
+      <nut-form-item label="鎵嬫満鍙�:" class="bole-form-item" prop="contactPhoneNumber" required>
+        <nut-input v-model.trim="form.contactPhoneNumber" placeholder="璇疯緭鍏ユ墜鏈哄彿" type="text" />
+      </nut-form-item>
+      <!-- <nut-form-item label="鍏徃鎵�鍦ㄥ湴" class="bole-form-item" prop="areaList" required>
+        <ChooseInputWithAreaPicker
+          :columns="areaTree"
+          v-model="form.areaList"
+          placeholder="璇烽�夋嫨鎮ㄥ叕鍙哥殑鎵�鍦ㄥ湴"
+        ></ChooseInputWithAreaPicker>
+      </nut-form-item> -->
+      <nut-form-item label="璇︾粏鍦板潃:" class="bole-form-item" prop="weMapInfo" required>
+        <ChooseLocationInput
+          inputAlign="left"
+          placeholder="璇烽�夋嫨璇︾粏鍦板潃"
+          v-model="form.weMapInfo"
+        />
+      </nut-form-item>
+      <nut-form-item label="闂ㄧ墝鍙�:" class="bole-form-item" prop="addressDetail" required>
+        <nut-input v-model="form.addressDetail" placeholder="渚嬪锛歺x灏忓尯xx鍗曞厓xxx"> </nut-input>
+      </nut-form-item>
+      <nut-form-item
+        label="榛樿鍦板潃:"
+        class="bole-form-item"
+        prop="isDefault"
+        label-position="left"
+      >
+        <div class="switch-wrapper">
+          <nut-switch v-model="form.isDefault" />
+        </div>
+      </nut-form-item>
+    </nut-form>
+  </ContentScrollView>
+  <PageFooter>
+    <PageFooterBtn type="primary" @click="handleConfirm">淇濆瓨</PageFooterBtn>
+  </PageFooter>
+</template>
+
+<script setup lang="ts">
+import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
+import { useQuery } from '@tanstack/vue-query';
+import Taro from '@tarojs/taro';
+import * as enterpriseServices from '@12333/services/apiV2/enterprise';
+import { FormValidator, Message } from '@12333/utils';
+import { goBack } from '@/utils';
+import { ChooseLocationInput } from '@12333/components';
+
+defineOptions({
+  name: 'InnerPage',
+});
+
+const router = Taro.useRouter();
+const id = router.params?.id ?? '';
+const isCopy = router.params?.isCopy === 'true';
+const isEdit = !!id;
+
+const form = reactive({
+  name: '',
+  contactPhoneNumber: '',
+  provinceCode: '',
+  cityCode: '',
+  areaCode: '',
+
+  weMapInfo: {} as WeMapModel,
+  //   addressName: '',
+  addressDetail: '',
+  isDefault: false,
+});
+
+const rules = reactive<FormRules>({
+  name: [{ required: true, message: '璇疯緭鍏ュ鍚�' }],
+  contactPhoneNumber: [
+    { required: true, message: '璇疯緭鍏ユ墜鏈哄彿' },
+    { validator: FormValidator.validatorPhoneNumber, message: '璇疯緭鍏ユ纭殑鎵嬫満鍙�' },
+  ],
+  weMapInfo: [
+    { required: true, message: '璇烽�夋嫨璇︾粏鍦板潃', validator: FormValidator.validatorWeMap },
+  ],
+  addressDetail: [{ required: true, message: '璇疯緭鍏ラ棬鐗屽彿' }],
+});
+
+const {
+  isLoading,
+  isError,
+  data: detail,
+  refetch,
+} = useQuery({
+  queryKey: ['enterpriseServices/getEnterpriseAddress', id],
+  queryFn: async () => {
+    return await enterpriseServices.getEnterpriseAddress(
+      { id: id },
+      {
+        showLoading: false,
+      }
+    );
+  },
+  placeholderData: () => ({} as API.GetEnterpriseAddressQueryResult),
+  enabled: isEdit,
+  onSuccess(data) {
+    form.name = data.name;
+    form.contactPhoneNumber = data.contactPhoneNumber;
+
+    form.weMapInfo = {
+      provinceName: data.provinceContent,
+      cityName: data.cityContent,
+      provinceCode: data.provinceCode,
+      cityCode: data.cityCode,
+      countyCode: data.areaCode,
+      latitude: data.latitude,
+      longitude: data.longitude,
+    };
+    form.addressDetail = data.addressDetail;
+    form.isDefault = data.isDefault;
+  },
+});
+
+const formRef = ref<any>(null);
+function handleConfirm() {
+  if (!formRef.value) return;
+  formRef.value.validate().then(({ valid, errors }: any) => {
+    if (valid) {
+      confirm();
+    }
+  });
+}
+
+async function confirm() {
+  try {
+    let params: API.SaveEnterpriseAddressCommand = {
+      name: form.name,
+      contactPhoneNumber: form.contactPhoneNumber,
+      provinceCode: form.weMapInfo.provinceCode,
+      cityCode: form.weMapInfo.cityCode,
+      areaCode: form.weMapInfo.countyCode,
+      addressName: form.weMapInfo.address,
+      addressDetail: form.addressDetail,
+      longitude: form.weMapInfo.longitude,
+      latitude: form.weMapInfo.latitude,
+      isDefault: form.isDefault,
+    };
+
+    if (isEdit) {
+      params.id = id;
+    }
+
+    let res = await enterpriseServices.saveEnterpriseAddress(params);
+    if (res) {
+      Message.success(isEdit ? '缂栬緫鎴愬姛' : '娣诲姞鎴愬姛', {
+        onClosed() {
+          goBack();
+        },
+      });
+    }
+  } catch (error) {}
+}
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.editAddress-page-wrapper {
+  .switch-wrapper {
+    display: flex;
+    justify-content: flex-end;
+  }
+}
+</style>

--
Gitblit v1.10.0