From 357291a906de883ccf0b29f6113126c6c58af2ca Mon Sep 17 00:00:00 2001
From: ZN <zhang_12370@163.com>
Date: 星期一, 23 三月 2026 17:01:39 +0800
Subject: [PATCH] 禁止提交.vscode配置文件

---
 src/pages/basicData/supplierManage/edit.vue |  216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 216 insertions(+), 0 deletions(-)

diff --git a/src/pages/basicData/supplierManage/edit.vue b/src/pages/basicData/supplierManage/edit.vue
new file mode 100644
index 0000000..c890e88
--- /dev/null
+++ b/src/pages/basicData/supplierManage/edit.vue
@@ -0,0 +1,216 @@
+<template>
+  <view class="account-detail">
+    <PageHeader :title="pageTitle" @back="goBack" />
+    <up-form ref="formRef" :model="form" :rules="rules" label-width="120">
+      <u-cell-group title="渚涘簲鍟嗕俊鎭�" class="form-section">
+        <up-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName" required>
+          <up-input v-model="form.supplierName" placeholder="璇疯緭鍏�" clearable />
+        </up-form-item>
+        <up-form-item label="绾崇◣浜鸿瘑鍒彿" prop="taxpayerIdentificationNum" required>
+          <up-input v-model="form.taxpayerIdentificationNum" placeholder="璇疯緭鍏�" clearable />
+        </up-form-item>
+        <up-form-item label="鍏徃鍦板潃" prop="companyAddress" required>
+          <up-input v-model="form.companyAddress" placeholder="璇疯緭鍏�" clearable />
+        </up-form-item>
+        <up-form-item label="鍏徃鐢佃瘽" prop="companyPhone" required>
+          <up-input v-model="form.companyPhone" placeholder="璇疯緭鍏�" clearable />
+        </up-form-item>
+        <up-form-item label="寮�鎴疯" prop="bankAccountName" required>
+          <up-input v-model="form.bankAccountName" placeholder="璇疯緭鍏�" clearable />
+        </up-form-item>
+        <up-form-item label="璐﹀彿" prop="bankAccountNum" required>
+          <up-input v-model="form.bankAccountNum" placeholder="璇疯緭鍏�" clearable />
+        </up-form-item>
+        <up-form-item label="鑱旂郴浜�" prop="contactUserName">
+          <up-input v-model="form.contactUserName" placeholder="璇疯緭鍏�" clearable />
+        </up-form-item>
+        <up-form-item label="鑱旂郴鐢佃瘽" prop="contactUserPhone">
+          <up-input v-model="form.contactUserPhone" placeholder="璇疯緭鍏�" clearable />
+        </up-form-item>
+        <up-form-item label="渚涘簲鍟嗙被鍨�" prop="supplierType" required>
+          <up-input
+            v-model="supplierTypeText"
+            placeholder="璇烽�夋嫨"
+            readonly
+            @click="showSupplierTypeSheet = true"
+          />
+          <template #right>
+            <up-icon name="arrow-right" @click="showSupplierTypeSheet = true"></up-icon>
+          </template>
+        </up-form-item>
+        <up-form-item label="鏄惁鐧藉悕鍗�" prop="isWhite" required>
+          <up-input v-model="isWhiteText" placeholder="璇烽�夋嫨" readonly @click="showIsWhiteSheet = true" />
+          <template #right>
+            <up-icon name="arrow-right" @click="showIsWhiteSheet = true"></up-icon>
+          </template>
+        </up-form-item>
+        <up-form-item label="缁存姢浜�" prop="maintainUserName">
+          <up-input v-model="form.maintainUserName" disabled placeholder="鑷姩濉厖" />
+        </up-form-item>
+        <up-form-item label="缁存姢鏃堕棿" prop="maintainTime">
+          <up-input v-model="form.maintainTime" disabled placeholder="鑷姩濉厖" />
+        </up-form-item>
+      </u-cell-group>
+    </up-form>
+    <FooterButtons :loading="loading" confirmText="淇濆瓨" @cancel="goBack" @confirm="handleSubmit" />
+
+    <up-action-sheet
+      :show="showSupplierTypeSheet"
+      title="閫夋嫨渚涘簲鍟嗙被鍨�"
+      :actions="supplierTypeActions"
+      @select="onSelectSupplierType"
+      @close="showSupplierTypeSheet = false"
+    />
+    <up-action-sheet
+      :show="showIsWhiteSheet"
+      title="閫夋嫨鐧藉悕鍗�"
+      :actions="isWhiteActions"
+      @select="onSelectIsWhite"
+      @close="showIsWhiteSheet = false"
+    />
+  </view>
+</template>
+
+<script setup>
+  import { computed, onMounted, ref } from "vue";
+  import { onLoad } from "@dcloudio/uni-app";
+  import FooterButtons from "@/components/FooterButtons.vue";
+  import useUserStore from "@/store/modules/user";
+  import { formatDateToYMD } from "@/utils/ruoyi";
+  import { addSupplier, getSupplier, updateSupplier } from "@/api/basicData/supplierManageFile";
+
+  const userStore = useUserStore();
+  const formRef = ref();
+  const loading = ref(false);
+  const supplierId = ref(undefined);
+
+  const form = ref({
+    supplierName: "",
+    taxpayerIdentificationNum: "",
+    companyAddress: "",
+    companyPhone: "",
+    bankAccountName: "",
+    bankAccountNum: "",
+    contactUserName: "",
+    contactUserPhone: "",
+    maintainUserId: "",
+    maintainUserName: "",
+    maintainTime: "",
+    supplierType: "",
+    isWhite: 0,
+  });
+
+  const rules = {
+    supplierName: [{ required: true, message: "璇疯緭鍏ヤ緵搴斿晢鍚嶇О", trigger: "blur" }],
+    taxpayerIdentificationNum: [{ required: true, message: "璇疯緭鍏ョ撼绋庝汉璇嗗埆鍙�", trigger: "blur" }],
+    companyAddress: [{ required: true, message: "璇疯緭鍏ュ叕鍙稿湴鍧�", trigger: "blur" }],
+    companyPhone: [{ required: true, message: "璇疯緭鍏ュ叕鍙哥數璇�", trigger: "blur" }],
+    bankAccountName: [{ required: true, message: "璇疯緭鍏ュ紑鎴疯", trigger: "blur" }],
+    bankAccountNum: [{ required: true, message: "璇疯緭鍏ヨ处鍙�", trigger: "blur" }],
+    supplierType: [{ required: true, message: "璇烽�夋嫨渚涘簲鍟嗙被鍨�", trigger: "change" }],
+    isWhite: [{ required: true, message: "璇烽�夋嫨鐧藉悕鍗�", trigger: "change" }],
+  };
+
+  const pageTitle = computed(() => {
+    return supplierId.value ? "缂栬緫渚涘簲鍟�" : "鏂板渚涘簲鍟�";
+  });
+
+  const supplierTypeActions = [
+    { name: "鐢�", value: "鐢�" },
+    { name: "涔�", value: "涔�" },
+    { name: "涓�", value: "涓�" },
+    { name: "涓�", value: "涓�" },
+  ];
+  const isWhiteActions = [
+    { name: "鏄�", value: 0 },
+    { name: "鍚�", value: 1 },
+  ];
+
+  const showSupplierTypeSheet = ref(false);
+  const showIsWhiteSheet = ref(false);
+
+  const supplierTypeText = computed(() => form.value.supplierType || "");
+  const isWhiteText = computed(() => {
+    return String(form.value.isWhite) === "0" ? "鏄�" : "鍚�";
+  });
+
+  const onSelectSupplierType = action => {
+    form.value.supplierType = action.value;
+    showSupplierTypeSheet.value = false;
+  };
+
+  const onSelectIsWhite = action => {
+    form.value.isWhite = action.value;
+    showIsWhiteSheet.value = false;
+  };
+
+  const initForAdd = () => {
+    form.value.maintainUserId = userStore.id;
+    form.value.maintainUserName = userStore.nickName;
+    form.value.maintainTime = formatDateToYMD(Date.now());
+    form.value.isWhite = 0;
+  };
+
+  const loadDetail = () => {
+    if (!supplierId.value) return;
+    uni.showLoading({ title: "鍔犺浇涓�...", mask: true });
+    getSupplier(supplierId.value)
+      .then(res => {
+        form.value = { ...form.value, ...(res.data || {}) };
+      })
+      .catch(() => {
+        uni.showToast({ title: "鑾峰彇璇︽儏澶辫触", icon: "error" });
+      })
+      .finally(() => {
+        uni.hideLoading();
+      });
+  };
+
+  const goBack = () => {
+    uni.navigateBack();
+  };
+
+  const handleSubmit = async () => {
+    const valid = await formRef.value.validate().catch(() => false);
+    if (!valid) return;
+    loading.value = true;
+    const action = supplierId.value ? updateSupplier : addSupplier;
+    action({ ...form.value, id: supplierId.value })
+      .then(() => {
+        uni.showToast({ title: "淇濆瓨鎴愬姛", icon: "success" });
+        uni.navigateBack();
+      })
+      .catch(() => {
+        uni.showToast({ title: "淇濆瓨澶辫触", icon: "error" });
+      })
+      .finally(() => {
+        loading.value = false;
+      });
+  };
+
+  onMounted(() => {
+    userStore.getInfo();
+    initForAdd();
+  });
+
+  onLoad(options => {
+    if (options?.id) supplierId.value = options.id;
+    if (supplierId.value) loadDetail();
+  });
+</script>
+
+<style scoped lang="scss">
+  @import "@/styles/procurement-common.scss";
+
+  .account-detail {
+    min-height: 100vh;
+    background: #f8f9fa;
+    padding-bottom: 90px;
+  }
+
+  .form-section {
+    margin: 12px;
+    border-radius: 12px;
+    overflow: hidden;
+  }
+</style>

--
Gitblit v1.9.3