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/companyInfo/InnerPage.vue |  137 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 137 insertions(+), 0 deletions(-)

diff --git a/apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/InnerPage.vue
new file mode 100644
index 0000000..491197c
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/InnerPage.vue
@@ -0,0 +1,137 @@
+<template>
+  <ContentScrollView :paddingH="false">
+    <nut-form :model-value="form" ref="formRef" :rules="rules">
+      <nut-form-item label="澶村儚:" class="bole-form-item" prop="avatar">
+        <Uploader v-model:file-list="form.avatar" :maximum="1" class="bole-uploader"> </Uploader>
+      </nut-form-item>
+      <nut-form-item label="钀ヤ笟鎵х収:" class="bole-form-item alignTop" prop="licenseUrl" required>
+        <Uploader
+          v-model:file-list="form.licenseUrl"
+          :maximum="1"
+          :limitFileSize="10"
+          class="bole-uploader nopaddingtop"
+          @my-success="handleLicenseUrlChange"
+        >
+        </Uploader>
+      </nut-form-item>
+      <nut-form-item label="浼佷笟鍚嶇О:" class="bole-form-item" prop="enterpriseName" required>
+        <nut-input
+          v-model.trim="form.enterpriseName"
+          class="nut-input-text bole-input-text"
+          placeholder="璇疯緭鍏ユ偍钀ヤ笟鎵х収涓婄殑浼佷笟鍚嶇О"
+          type="text"
+          :max-length="35"
+        />
+      </nut-form-item>
+      <nut-form-item
+        label="缁熶竴绀句細淇$敤浠g爜:"
+        class="bole-form-item"
+        prop="societyCreditCode"
+        required
+      >
+        <nut-input
+          v-model.trim="form.societyCreditCode"
+          class="nut-input-text bole-input-text"
+          placeholder="璇疯緭鍏ユ偍钀ヤ笟鎵х収涓婄殑淇$敤浠g爜"
+          type="text"
+        />
+      </nut-form-item>
+      <nut-form-item label="鎵嬫満鍙�:" class="bole-form-item" prop="contactPhoneNumber" required>
+        <nut-input
+          v-model.trim="form.contactPhoneNumber"
+          placeholder="璇疯緭鍏ユ墜鏈哄彿"
+          type="text"
+          disabled
+        />
+      </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 { convertApi2FormUrlOnlyOne, FormValidator, Message } from '@12333/utils';
+import Taro from '@tarojs/taro';
+import { useQuery } from '@tanstack/vue-query';
+import { goBack } from '@/utils';
+import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
+import { vatLicense } from '@12333/hooks';
+import * as enterpriseServices from '@12333/services/apiV2/enterprise';
+
+defineOptions({
+  name: 'InnerPage',
+});
+
+const { userDetail, updateUserInfo } = useUser();
+
+const form = reactive({
+  avatar: convertApi2FormUrlOnlyOne(userDetail.value.originalAvatar),
+  licenseUrl: convertApi2FormUrlOnlyOne(userDetail.value.licenseImage),
+  enterpriseName: userDetail.value.enterpriseName ?? '',
+  societyCreditCode: userDetail.value.societyCreditCode ?? '',
+  contactPhoneNumber: userDetail.value.contactPhoneNumber ?? '',
+});
+
+const handleLicenseUrlChange = (response: FileItem) => {
+  vatLicense(response, {
+    onSuccess(res) {
+      let tips: string[] = [];
+      res?.enterpriseName ? (form.enterpriseName = res.enterpriseName) : tips.push('鍟嗘埛鍚嶇О');
+      res?.societyCreditCode
+        ? (form.societyCreditCode = res.societyCreditCode)
+        : tips.push('缁熶竴绀句細淇$敤浠g爜');
+      if (tips.length > 0) {
+        Message.error(`鏈兘璇嗗埆鍒版偍涓婁紶鐨勫浘鐗囷紝璇烽噸鏂颁笂浼犳竻鏅扮殑鍥剧墖鎴栨墜鍔ㄨ緭鍏�${tips.join('鍜�')}`);
+      }
+    },
+  });
+};
+
+const rules = reactive<FormRules>({
+  licenseUrl: [
+    { required: true, message: '璇蜂笂浼犺惀涓氭墽鐓�', validator: FormValidator.validatorArray },
+  ],
+  enterpriseName: [{ required: true, message: '璇疯緭鍏ヤ紒涓氬悕绉�' }],
+  societyCreditCode: [
+    { required: true, message: '璇疯緭鍏ユ偍钀ヤ笟鎵х収涓婄殑淇$敤浠g爜' },
+    { message: '璇疯緭鍏ユ纭殑淇$敤浠g爜', validator: FormValidator.validatorSocietyCreditCode },
+  ],
+  contactPhoneNumber: [
+    { required: true, message: '璇疯緭鍏ユ墜鏈哄彿' },
+    { validator: FormValidator.validatorPhoneNumber, message: '璇疯緭鍏ユ纭殑鎵嬫満鍙�' },
+  ],
+});
+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.SetEnterpriseLoginInfoCommand = {
+      avatar: form.avatar?.[0]?.path ?? '',
+      licenseImage: form.licenseUrl?.[0]?.path ?? '',
+      enterpriseName: form.enterpriseName,
+      societyCreditCode: form.societyCreditCode,
+      contactPhoneNumber: form.contactPhoneNumber,
+    };
+    let res = await enterpriseServices.setEnterpriseLoginInfo(params);
+    if (res) {
+      Message.success('淇濆瓨鎴愬姛', {
+        onClosed() {
+          goBack();
+          updateUserInfo();
+        },
+      });
+    }
+  } catch (error) {}
+}
+</script>

--
Gitblit v1.10.0