From b58f53769f004fb0ba6b5aedf55ef602850c7c97 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 20 九月 2026 15:46:05 +0800
Subject: [PATCH] 天津豹鸣app 1.部署修改

---
 src/pages/projectManagement/project/_components/TeamRow.vue |  148 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 148 insertions(+), 0 deletions(-)

diff --git a/src/pages/projectManagement/project/_components/TeamRow.vue b/src/pages/projectManagement/project/_components/TeamRow.vue
new file mode 100644
index 0000000..31fb7e7
--- /dev/null
+++ b/src/pages/projectManagement/project/_components/TeamRow.vue
@@ -0,0 +1,148 @@
+<!--
+  椤圭洰鍥㈤槦瀛愯〃鐨勪竴琛�
+
+  鎴愬憳 / 瑙掕壊涓嬫媺鐢辩埗绾х粺涓�鎷夊彇鍚庝紶鍏ワ紙澶氫釜琛屽叡鐢ㄤ竴浠介�夐」锛屼笉閲嶅璇锋眰锛夈��
+  鎻愪氦鏃跺悗绔笉鍙嶆煡 userName / userRoleName锛屾墍浠ラ�変腑鍚庤鎶� label 涓�璧疯鍦� row 涓娿��
+-->
+<template>
+  <view class="team-card">
+    <view class="team-header">
+      <text class="team-title">鎴愬憳 {{ index + 1 }}</text>
+      <up-icon name="trash"
+               color="#ee0a24"
+               size="18"
+               @click="$emit('remove')"></up-icon>
+    </view>
+    <up-divider></up-divider>
+
+    <view class="team-body">
+      <view class="field-row">
+        <text class="field-label">濮撳悕</text>
+        <FormPicker v-model="row.memberId"
+                    type="select"
+                    title="閫夋嫨椤圭洰鎴愬憳"
+                    :options="userOptions"
+                    placeholder="璇烽�夋嫨鎴愬憳"
+                    @change="onMemberChange" />
+      </view>
+
+      <view class="field-row">
+        <text class="field-label">椤圭洰缁勮鑹�</text>
+        <FormPicker v-model="row.roleId"
+                    type="select"
+                    title="閫夋嫨椤圭洰缁勮鑹�"
+                    :options="roleOptions"
+                    placeholder="璇烽�夋嫨瑙掕壊"
+                    @change="onRoleChange" />
+      </view>
+
+      <view class="field-row">
+        <text class="field-label">杩涘叆鏃ユ湡</text>
+        <FormPicker v-model="row.enterDate"
+                    type="date"
+                    placeholder="璇烽�夋嫨杩涘叆鏃ユ湡" />
+      </view>
+
+      <view class="field-row">
+        <text class="field-label">绂诲紑鏃ユ湡</text>
+        <FormPicker v-model="row.leaveDate"
+                    type="date"
+                    placeholder="璇烽�夋嫨绂诲紑鏃ユ湡" />
+      </view>
+
+      <view class="field-row">
+        <text class="field-label">鑱旂郴鏂瑰紡</text>
+        <u-input v-model="row.phone"
+                 placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"
+                 border="none"
+                 inputAlign="right" />
+      </view>
+
+      <view class="field-row">
+        <text class="field-label">澶囨敞</text>
+        <u-input v-model="row.remark"
+                 placeholder="璇疯緭鍏ュ娉�"
+                 border="none"
+                 inputAlign="right" />
+      </view>
+    </view>
+  </view>
+</template>
+
+<script setup>
+  import FormPicker from "@/components/FormPicker.vue";
+
+  const props = defineProps({
+    row: {
+      type: Object,
+      required: true,
+    },
+    index: {
+      type: Number,
+      default: 0,
+    },
+    userOptions: {
+      type: Array,
+      default: () => [],
+    },
+    roleOptions: {
+      type: Array,
+      default: () => [],
+    },
+  });
+
+  defineEmits(["remove"]);
+
+  // 閫変腑鍚庢妸 label 璁板埌琛屼笂锛屾彁浜ゆ椂闅� payload 涓�璧峰彂缁欏悗绔�
+  const onMemberChange = (value, item) => {
+    props.row.memberName = item?.name || props.row.memberName || "";
+  };
+
+  const onRoleChange = (value, item) => {
+    props.row.roleName = item?.name || props.row.roleName || "";
+  };
+</script>
+
+<style scoped lang="scss">
+  .team-card {
+    background: #fff;
+    border-radius: 12px;
+    padding: 0 12px 12px;
+    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
+  }
+
+  .team-header {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding: 12px 0;
+  }
+
+  .team-title {
+    font-size: 14px;
+    font-weight: 600;
+    color: #22324d;
+  }
+
+  .team-body {
+    padding-top: 4px;
+  }
+
+  .field-row {
+    display: flex;
+    align-items: center;
+    min-height: 44px;
+    border-bottom: 1px solid #f5f6fa;
+  }
+
+  .field-row:last-child {
+    border-bottom: none;
+  }
+
+  .field-label {
+    width: 96px;
+    flex-shrink: 0;
+    font-size: 14px;
+    color: #606266;
+  }
+</style>

--
Gitblit v1.9.3