hsy
7 小时以前 2d3530a7c11557a40807ad7c0b9e302ce6ce3a9f
src/views/projectManagement/Management/index.vue
@@ -56,15 +56,21 @@
        <template #projectStage="{ row }">
          <dict-tag :options="plan_status" :value="row.projectStage" />
        </template>
        <template #salesContractCount="{ row }">
          <el-button link type="primary" @click="handleOpenContractDialog(row)">{{ row.salesContractCount || 0 }}</el-button>
        </template>
        <template #action="{ row }">
          <el-button link type="primary" @click="handleEdit(row)">编辑</el-button>
          <el-button link type="primary" :loading="progressBtnLoadingId===row.id" @click="handleProgressReport(row)">进度汇报</el-button>
          <el-button link type="primary" @click="handleArchive(row)">文档归档</el-button>
          <el-button link type="primary" @click="handleDetail(row)">详情</el-button>
        </template>
      </PIMTable>
    </div>
    <FormDia ref="formDiaRef" @completed="getList" />
    <ArchiveDialog v-model="archiveVisible" :project-id="archiveProjectId" />
    <ContractListDialog v-model="contractVisible" :project-id="contractProjectId" />
    <ProgressReportDialog
      v-model="progressReportVisible"
      :project-id="progressProjectId"
@@ -82,6 +88,8 @@
import SearchPanel from '@/components/SearchPanel/index.vue'
import PIMTable from '@/components/PIMTable/PIMTable.vue'
import FormDia from './components/formDia.vue'
import ArchiveDialog from './components/ArchiveDialog.vue'
import ContractListDialog from './components/ContractListDialog.vue'
import ProgressReportDialog from '@/components/ProjectManagement/ProgressReportDialog.vue'
import {
  listProject,
@@ -111,6 +119,10 @@
const progressPlanNodes = ref([])
const progressDefaultPlanNodeId = ref(undefined)
const progressBtnLoadingId = ref(null)
const archiveVisible = ref(false)
const archiveProjectId = ref(null)
const contractVisible = ref(false)
const contractProjectId = ref(null)
const submitLoading = ref(false)
const auditLoading = ref(false)
const reverseAuditLoading = ref(false)
@@ -154,6 +166,7 @@
  { label: '立项日期', prop: 'setupDate', align: 'center', width: '120' },
  { label: '项目来源', prop: 'projectSource', align: 'center' },
  { label: '项目分类', prop: 'projectClassification', align: 'center' },
  { label: '销售合同总数', prop: 'salesContractCount', align: 'center', dataType: 'slot', slot: 'salesContractCount' },
  { label: '操作', prop: 'action', align: 'center', width: '250', dataType: 'slot', slot: 'action', fixed: 'right' }
]
@@ -188,6 +201,7 @@
        projectType: r.planName ?? r.projectType,
        projectSource: r.source ?? r.projectSource,
        projectClassification: r.departmentName ?? r.projectClassification,
        salesContractCount: r.salesContractCount,
        raw: r
      }))
      pagination.value.total = response?.total || response?.data?.total || 0
@@ -407,6 +421,18 @@
  formDiaRef.value?.openDialog({ operationType: 'edit', row })
}
function handleArchive(row) {
  if (!row?.id) return
  archiveProjectId.value = row.id
  archiveVisible.value = true
}
function handleOpenContractDialog(row) {
  if (!row?.id) return
  contractProjectId.value = row.id
  contractVisible.value = true
}
onMounted(() => {
  getList()
})