liu
3 天以前 b337be5073334334962e873c1a980968ad2cf068
src/views/research/application/modules/member-statistics-modal.vue
@@ -39,10 +39,9 @@
const columns: TableColumnsType<ResearchApplicationApi.MemberStatistics> = [
  { title: '成员姓名', dataIndex: 'name', key: 'name', width: 110, fixed: 'left' },
  { title: '联系电话', dataIndex: 'contactPhone', key: 'contactPhone', width: 130 },
  { title: '所属单位', dataIndex: 'workUnit', key: 'workUnit', width: 180 },
  { title: '职称/职务', dataIndex: 'jobTitle', key: 'jobTitle', width: 120 },
  { title: '成员角色', dataIndex: 'memberRoles', key: 'memberRoles', width: 140 },
  { title: '成员类型', dataIndex: 'memberTypes', key: 'memberTypes', width: 120 },
  { title: '所属部门', dataIndex: 'workUnit', key: 'workUnit', width: 200 },
  { title: '职称', dataIndex: 'jobTitle', key: 'jobTitle', width: 110 },
  { title: '参与课题数', dataIndex: 'projectCount', key: 'projectCount', width: 110 },
  { title: '参与课题', dataIndex: 'projectTitles', key: 'projectTitles', ellipsis: true },
];
@@ -79,7 +78,9 @@
function buildPublishText() {
  const lines = ['【课题成员名单】'];
  rows.value.forEach((row, index) => {
    const meta = [row.workUnit, row.jobTitle].filter(Boolean).join('/');
    const meta = [row.memberTypes, row.workUnit, row.jobTitle]
      .filter(Boolean)
      .join('/');
    const metaText = meta ? `(${meta})` : '';
    const roles = row.memberRoles ? `[${row.memberRoles}]` : '';
    const projects = row.projectTitles ? `:${row.projectTitles}` : '';
@@ -122,7 +123,7 @@
    <div class="mb-3 flex flex-wrap items-center gap-2">
      <Input
        v-model:value="keyword"
        placeholder="姓名 / 电话 / 单位"
        placeholder="姓名 / 所属部门"
        allow-clear
        style="width: 220px"
        @press-enter="loadData"
@@ -152,7 +153,7 @@
    />
    <div class="mt-2 text-xs text-gray-400">
      统计口径:同一「姓名 + 电话 + 单位」视为同一成员;参与课题数按不重复课题计数。
      统计口径:同一「姓名 + 所属部门」视为同一成员;参与课题数按不重复课题计数。
    </div>
  </Modal>
</template>