From 930cb649dceea439e0b1263926121f580ad836cf Mon Sep 17 00:00:00 2001
From: zmj <1493694146@qq.com>
Date: Sat, 27 Jan 2024 11:25:23 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 package-lock.json                           |   8 +-
 package.json                                |   2 +-
 src/views/competitor/edit.vue               |   9 +-
 src/views/contract/edit.vue                 |   6 +-
 src/views/customer_demand/edit.vue          |   9 +-
 src/views/customer_demand_solution/edit.vue |   9 +-
 src/views/project/components/Business.vue   |  86 +-
 src/views/project/components/Collection.vue |   4 +-
 src/views/project/components/a.vue          |  36 -
 src/views/project/detail.vue                | 995 +-------------------
 src/views/project/edit.vue                  |   4 +-
 src/views/project_follow_up/edit.vue        |  31 +-
 src/views/project_follow_up/index.vue       |  22 +-
 yarn.lock                                   |   8 +-
 14 files changed, 108 insertions(+), 1121 deletions(-)
 delete mode 100644 src/views/project/components/a.vue

diff --git a/package-lock.json b/package-lock.json
index 2be07c7..9bc495e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,7 +34,7 @@
                 "@types/node": "^16.11.41",
                 "@types/nprogress": "^0.2.0",
                 "@vitejs/plugin-legacy": "^2.3.1",
-                "@vitejs/plugin-vue": "^3.0.0",
+                "@vitejs/plugin-vue": "^3.2.0",
                 "@vitejs/plugin-vue-jsx": "^2.0.0",
                 "@vue/eslint-config-prettier": "^7.0.0",
                 "@vue/eslint-config-typescript": "^11.0.0",
@@ -1342,9 +1342,9 @@
             }
         },
         "node_modules/@vitejs/plugin-vue": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.0.1.tgz",
-            "integrity": "sha512-Ll9JgxG7ONIz/XZv3dssfoMUDu9qAnlJ+km+pBA0teYSXzwPCIzS/e1bmwNYl5dcQGs677D21amgfYAnzMl17A==",
+            "version": "3.2.0",
+            "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz",
+            "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==",
             "dev": true,
             "engines": {
                 "node": "^14.18.0 || >=16.0.0"
diff --git a/package.json b/package.json
index 8a921bd..cdd3a9b 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,7 @@
         "@types/node": "^16.11.41",
         "@types/nprogress": "^0.2.0",
         "@vitejs/plugin-legacy": "^2.3.1",
-        "@vitejs/plugin-vue": "^3.0.0",
+        "@vitejs/plugin-vue": "^3.2.0",
         "@vitejs/plugin-vue-jsx": "^2.0.0",
         "@vue/eslint-config-prettier": "^7.0.0",
         "@vue/eslint-config-typescript": "^11.0.0",
diff --git a/src/views/competitor/edit.vue b/src/views/competitor/edit.vue
index f651e68..0d649c1 100644
--- a/src/views/competitor/edit.vue
+++ b/src/views/competitor/edit.vue
@@ -2,15 +2,14 @@
     <div class="edit-popup">
         <popup ref="popupRef" :title="popupTitle" :async="true" width="650px" @confirm="handleSubmit" @close="handleClose">
             <el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
-                <el-form-item label="组织id" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
-                    <el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id"
-                        @change="area_change">
+                <el-form-item label="组织" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
+                    <el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织" @change="area_change">
                         <el-option v-for="(item, index) in orglist" :key="index" :label="item.name"
                             :value="parseInt(item.id)" />
                     </el-select>
                 </el-form-item>
-                <el-form-item label="部门id" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
-                    <el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门id">
+                <el-form-item label="部门" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
+                    <el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门">
                         <el-option v-for="(item, index) in jobs" :key="index" :label="item.name"
                             :value="parseInt(item.id)" />
                     </el-select>
diff --git a/src/views/contract/edit.vue b/src/views/contract/edit.vue
index 502c08b..a4c13a5 100644
--- a/src/views/contract/edit.vue
+++ b/src/views/contract/edit.vue
@@ -19,12 +19,12 @@
                         </el-form-item> </el-col>
 
                     <el-col :span="8">
-                        <el-form-item label="项目名称" prop="buy_bidding_document_id" @click="tanchuan"
+                        <el-form-item label="项目名称" prop="project_id" @click="tanchuan"
                             :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
                             <el-input v-model="project_name" readonly clearable placeholder="请选择项目" />
                         </el-form-item></el-col>
                     <el-col :span="8">
-                        <el-form-item label="项目编码" prop="buy_bidding_document_id"
+                        <el-form-item label="项目编码" prop="project_id"
                             :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
                             <el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
                         </el-form-item></el-col>
@@ -369,6 +369,7 @@ const customEvent1 = (e: any) => {
 };
 const customEvent2 = (e: any) => {
     project_id.value = e.id;
+    formData.project_id = e.id
     project_name.value = e.name;
     project_code.value = e.project_code
     bidding_code.value = ''
@@ -433,6 +434,7 @@ const formData = reactive({
     party_a_phone: '',
     party_a_mobile: '',
     party_a_email: '',
+    project_id: "",
     party_b: '',
     party_b_contact_address: '',
     party_b_diretor: '',
diff --git a/src/views/customer_demand/edit.vue b/src/views/customer_demand/edit.vue
index b36a171..798d42f 100644
--- a/src/views/customer_demand/edit.vue
+++ b/src/views/customer_demand/edit.vue
@@ -2,15 +2,14 @@
     <div class="edit-popup">
         <popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
             <el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
-                <el-form-item label="组织id" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
-                    <el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id"
-                        @change="area_change">
+                <el-form-item label="组织" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
+                    <el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织" @change="area_change">
                         <el-option v-for="(item, index) in orglist" :key="index" :label="item.name"
                             :value="parseInt(item.id)" />
                     </el-select>
                 </el-form-item>
-                <el-form-item label="部门id" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
-                    <el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门id">
+                <el-form-item label="部门" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
+                    <el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门">
                         <el-option v-for="(item, index) in jobs" :key="index" :label="item.name"
                             :value="parseInt(item.id)" />
                     </el-select>
diff --git a/src/views/customer_demand_solution/edit.vue b/src/views/customer_demand_solution/edit.vue
index 6e67e7a..38406de 100644
--- a/src/views/customer_demand_solution/edit.vue
+++ b/src/views/customer_demand_solution/edit.vue
@@ -2,15 +2,14 @@
     <div class="edit-popup">
         <popup ref="popupRef" :title="popupTitle" :async="true" width="650px" @confirm="handleSubmit" @close="handleClose">
             <el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
-                <el-form-item label="组织id" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
-                    <el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织id"
-                        @change="area_change">
+                <el-form-item label="组织" prop="org_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
+                    <el-select class="flex-1" v-model="formData.org_id" clearable placeholder="请选择组织" @change="area_change">
                         <el-option v-for="(item, index) in orglist" :key="index" :label="item.name"
                             :value="parseInt(item.id)" />
                     </el-select>
                 </el-form-item>
-                <el-form-item label="部门id" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
-                    <el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门id">
+                <el-form-item label="部门" prop="dept_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
+                    <el-select class="flex-1" v-model="formData.dept_id" clearable placeholder="请选择部门">
                         <el-option v-for="(item, index) in jobs" :key="index" :label="item.name"
                             :value="parseInt(item.id)" />
                     </el-select>
diff --git a/src/views/project/components/Business.vue b/src/views/project/components/Business.vue
index a39abc8..126cee7 100644
--- a/src/views/project/components/Business.vue
+++ b/src/views/project/components/Business.vue
@@ -1,17 +1,41 @@
 <template>
     <div class="tit">项目跟进</div>
     <div>
+        <el-button v-perms="['project.project/add']" type="primary" @click="handleAdd" style="float: right;">
+            <template #icon>
+                <icon name="el-icon-Plus" />
+            </template>
+            新增
+        </el-button>
         <el-table :data="tableData1" stripe style="width: 100%">
-            <el-table-column label="主题" prop='theme' width="180" />
-            <el-table-column label="日期" prop='follow_date' width="180" />
-            <el-table-column label="方案内容" prop='solution_content' />
-            <el-table-column label="类型" prop='follow_type_text' />
-            <el-table-column label="执行人" prop='executor' />
-            <el-table-column label="阶段" prop='follow_stage_text' />
-            <el-table-column label="状态" prop='follow_status_text' />
-            <el-table-column label="项目把握度" prop='project_assurance_text' />
+            <el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
+            <el-table-column label="客户名称" prop="custom_name" show-overflow-tooltip />
+            <el-table-column label="执行人" prop="executor" show-overflow-tooltip />
+            <el-table-column label="日期" prop="follow_date">
+                <template #default="{ row }">
+                    <span>{{ row.follow_date ? row.follow_date : '' }}</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="类型" prop="follow_type_text">
+            </el-table-column>
+            <el-table-column label="主题" prop="theme" show-overflow-tooltip />
+            <el-table-column label="项目把握度" prop="project_assurance_text">
+            </el-table-column>
+            <el-table-column label="状态" prop="follow_status_text">
+            </el-table-column>
+            <el-table-column label="阶段" prop="follow_stage_text">
+            </el-table-column>
+            <el-table-column label="下次回访日期" prop="next_follow_up_date">
+                <template #default="{ row }">
+                    <span>{{ row.next_follow_up_date ? row.next_follow_up_date :
+                        '' }}</span>
+                </template>
+            </el-table-column>
         </el-table>
+        <edit-popup v-if="showEdit" ref="editRef" @close="showEdit = false" :dict-data="dictData" @success="followUpLists"
+            :project="formData" />
     </div>
+
     <div style="margin: 20px 0;">
         <el-pagination v-model:current-page="pager1.page_no" v-model:page-size="pager1.page_size"
             :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total"
@@ -132,8 +156,6 @@
     </div>
 </template>
 
-
-
 <script setup>
 
 import { ref, reactive, defineProps } from "vue"
@@ -142,15 +164,21 @@ import { apiCustomerDemandLists } from '@/api/customer_demand'
 import { apiCustomerDemandSolutionLists } from '@/api/customer_demand_solution'
 import { apiProjectEstimateLists } from '@/api/project_estimate'
 import { apiCompetitorLists } from '@/api/competitor'
-
-
+import EditPopup from '@/views/project_follow_up/edit.vue'
+import { useDictData } from '@/hooks/useDictOptions'
 const props = defineProps({
-    project_id: Number
+    project_id: Number,
+    formData: Object
 })
-
-
-
-
+const { dictData } = useDictData('project_assurance,follow_status,follow_type,follow_stage')
+const showEdit = ref(false)
+const editRef = ref(null)
+// 添加
+const handleAdd = async () => {
+    showEdit.value = true
+    await nextTick()
+    editRef.value?.open('add')
+}
 const tableData1 = ref([])
 const tableData2 = ref([])
 const tableData3 = ref([])
@@ -208,12 +236,6 @@ const demandList = () => {
     })
 }
 
-// const handleSizeChange1 = (val: number) => {
-//     // pager1.page_size = val
-//     // followUpLists()
-// }
-
-
 // 解决方案列表
 const solutionLists = () => {
     apiCustomerDemandSolutionLists(pager5).then((res) => {
@@ -237,24 +259,6 @@ const competitorLists = () => {
     })
 }
 
-// const handleSizeChange2 = (val: number) => {
-//     pager2.page_size = val
-//     demandList()
-// }
-// const handleSizeChange3 = (val: number) => {
-//     pager3.page_size = val
-//     solutionLists()
-// }
-// const handleSizeChange4 = (val: number) => {
-//     pager4.page_size = val
-//     estimateLists()
-// }
-// const handleSizeChange5 = (val: number) => {
-//     pager5.page_size = val
-//     competitorLists()
-// }
-
-
 
 followUpLists()
 demandList()
diff --git a/src/views/project/components/Collection.vue b/src/views/project/components/Collection.vue
index 73c5d49..26c6500 100644
--- a/src/views/project/components/Collection.vue
+++ b/src/views/project/components/Collection.vue
@@ -13,9 +13,11 @@ import { apiinvoiceapplyLists } from '@/api/InvoicingRequests'
 import { apireturnedLists } from '@/api/remittance'
 import { apireturnedrecordLists } from '@/api/recordsPayment'
 import { apirefundapplyLists } from '@/api/refund'
+import EditPopup from '@/views/project_follow_up/edit.vue'
 
 const props = defineProps({
-    project_id: Number
+    project_id: Number,
+    components: EditPopup
 })
 
 const baseData = reactive({
diff --git a/src/views/project/components/a.vue b/src/views/project/components/a.vue
deleted file mode 100644
index 5e08c7c..0000000
--- a/src/views/project/components/a.vue
+++ /dev/null
@@ -1,36 +0,0 @@
-<template>
-    <myTable :baseData="baseData"></myTable>
-</template>
-
-
-
-<script setup>
-
-import { ref, reactive, defineProps } from "vue"
-import myTable from "./myTable.vue"
-import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
-
-const props = defineProps({
-    project_id: Number
-})
-
-const baseData = reactive({
-    fetchFun: subpackagdetailLists,
-    tit: "竞争对手",
-    queryParams: { project_id: props.project_id },
-
-    columnList: [
-        { label: '工作类型', prop: 'work_type' },
-        { label: '工作内容', prop: 'work_content' },
-        { label: '项目特征', prop: 'project_features' },
-        { label: '单位', prop: 'unit' },
-        { label: '预算工作量', prop: 'num' },
-        { label: '单价', prop: 'price' },
-        { label: '金额', prop: 'amount' },
-        { label: '已分包量', prop: 'has_subcontract_num' },
-        { label: '剩余工作量', prop: 'residue_num' },
-    ]
-})
-
-
-</script>
\ No newline at end of file
diff --git a/src/views/project/detail.vue b/src/views/project/detail.vue
index 11a56dc..b79724e 100644
--- a/src/views/project/detail.vue
+++ b/src/views/project/detail.vue
@@ -9,7 +9,7 @@
                     </el-tab-pane>
 
                     <el-tab-pane label="商机" name="demo-2">
-                        <Business v-if="activeName == 'demo-2'" :project_id="project_id"></Business>
+                        <Business v-if="activeName == 'demo-2'" :formData="formData" :project_id="project_id"></Business>
                     </el-tab-pane>
 
                     <el-tab-pane label="投标" name="demo-3">
@@ -48,207 +48,6 @@
                         <documentation v-if="activeName == 'demo-16'" :project_id="project_id"></documentation>
                     </el-tab-pane>
 
-
-
-                    <!-- <el-tab-pane label="人力" name="demo-12">
-
-                        <el-tabs v-model="active" class="demo-tabs">
-                            <el-tab-pane label="项目人员" name="first-1">
-                                <div>
-                                    <el-table :data="tableData12" stripe style="width: 100%">
-                                        <el-table-column label="姓名" prop='name' width="180" />
-                                        <el-table-column label="身份证号" prop='idcard' width="180" />
-                                        <el-table-column label="手机号" prop='mobile' />
-                                        <el-table-column label="工种" prop='work_type_text' />
-                                        <el-table-column label="人工单价" prop='unit_price' />
-                                        <el-table-column label="每日生活费" prop=' ' />
-                                        <el-table-column label="期初收入" prop='opening_income' />
-                                        <el-table-column label="日结收入" prop='daily_income' />
-                                        <el-table-column label="完工量收入" prop='work_income' />
-                                        <el-table-column label="总收入" prop='total_income' />
-                                        <el-table-column label="总支出" prop='pay_out' />
-                                        <el-table-column label="余额" prop='balance' />
-                                    </el-table>
-                                </div>
-                                <div style="margin: 20px 0;">
-                                    <el-pagination v-model:current-page="pager12.page_no"
-                                        v-model:page-size="pager12.page_size" :page-sizes="[10, 20, 30, 40]"
-                                        layout="total, sizes, prev, pager, next, jumper" :total="total11"
-                                        @size-change="handleSizeChange12" @current-change="handleCurrentChange12" />
-                                </div>
-
-                            </el-tab-pane>
-                            <el-tab-pane label="劳动合同" name="first-2">
-                                <div>
-                                    <el-table :data="tableData13" stripe style="width: 100%">
-                                        <el-table-column label="姓名" prop='project_name' width="180" />
-                                        <el-table-column label="身份证号" prop='person_idcard' width="180" />
-                                        <el-table-column label="合同状态" prop='contract_status_text' />
-                                        <el-table-column label="合同类别" prop='contract_type_text' />
-                                        <el-table-column label="合同名称" prop='contract_title_text' />
-                                        <el-table-column label="合同签定日期" prop='signing_date' />
-                                        <el-table-column label="起始时间" prop='start_date' />
-                                        <el-table-column label="终止时间" prop='end_date' />
-
-                                        <el-table-column label="备注" prop='remark' />
-                                        <el-table-column label="合同附件" prop="annex" show-overflow-tooltip>
-                                            <template #default="{ row }">
-                                                <div v-if="row.annex && row.annex.length > 0">
-                                                    <div v-for="(item, i) in row.annex " :key='i'>
-                                                        <el-link :href="item" target="_blank">文件{{ i + 1 }}查看</el-link>
-                                                    </div>
-                                                </div>
-                                                <div v-else>
-                                                    暂无文件
-                                                </div>
-                                            </template>
-                                        </el-table-column>
-
-                                    </el-table>
-                                </div>
-                                <div style="margin: 20px 0;">
-                                    <el-pagination v-model:current-page="pager13.page_no"
-                                        v-model:page-size="pager13.page_size" :page-sizes="[10, 20, 30, 40]"
-                                        layout="total, sizes, prev, pager, next, jumper" :total="total12"
-                                        @size-change="handleSizeChange13" @current-change="handleCurrentChange13" />
-                                </div>
-                            </el-tab-pane>
-                            <el-tab-pane label="保险记录" name="first-3">
-                                <div>
-                                    <el-table :data="tableData14" stripe style="width: 100%">
-                                        <el-table-column label="姓名" prop='project_name' width="180" />
-                                        <el-table-column label="身份证号" prop='person_idcard' width="180" />
-                                        <el-table-column label="投保日期" prop='insurance_date' />
-                                        <el-table-column label="到期日期" prop='due_date' />
-                                        <el-table-column label="保险种类" prop='type_text' />
-                                        <el-table-column label="保单号" prop='insurance_no' />
-                                        <el-table-column label="投保金额(万元)" prop='insured_amount' />
-                                        <el-table-column label="保险公司" prop='insurance_company' />
-
-
-                                    </el-table>
-                                </div>
-                                <div style="margin: 20px 0;">
-                                    <el-pagination v-model:current-page="pager14.page_no"
-                                        v-model:page-size="pager14.page_size" :page-sizes="[10, 20, 30, 40]"
-                                        layout="total, sizes, prev, pager, next, jumper" :total="total13"
-                                        @size-change="handleSizeChange14" @current-change="handleCurrentChange14" />
-                                </div>
-                            </el-tab-pane>
-                            <el-tab-pane label="项目考勤" name="first-4">
-
-                                <div>
-                                    <el-table :data="tableData15" stripe style="width: 100%">
-                                        <el-table-column label="日记工单号" prop='attendance_code' width="180" />
-                                        <el-table-column label="日期" prop='attendance_date' width="180" />
-                                        <el-table-column label="出勤人数" prop='competitor_contacts_phone' />
-                                        <el-table-column label="记工数量	" prop='work_record_num_total' />
-                                        <el-table-column label="日工资合计" prop="daily_salary_total" show-overflow-tooltip />
-                                        <el-table-column label="日生活费合计" prop="daily_living_total" show-overflow-tooltip />
-                                        <el-table-column label="日补贴合计" prop="daily_subsidy_total" show-overflow-tooltip />
-                                        <el-table-column label="日其它合计" prop="daily_other_total" show-overflow-tooltip />
-                                        <el-table-column label="日收入合计" prop="daily_income_total" show-overflow-tooltip />
-
-                                        <el-table-column label="备注" prop='remark' />
-
-                                    </el-table>
-                                </div>
-                                <div style="margin: 20px 0;">
-                                    <el-pagination v-model:current-page="pager15.page_no"
-                                        v-model:page-size="pager15.page_size" :page-sizes="[10, 20, 30, 40]"
-                                        layout="total, sizes, prev, pager, next, jumper" :total="total14"
-                                        @size-change="handleSizeChange15" @current-change="handleCurrentChange15" />
-                                </div>
-                            </el-tab-pane>
-                            <el-tab-pane label="考勤明细" name="first-5">
-                                <div>
-                                    <el-table :data="tableData16" stripe style="width: 100%">
-                                        <el-table-column label="日记工单号" prop='attendance_code' width="180" />
-                                        <el-table-column label="日期" prop='attendance_date' width="180" />
-                                        <el-table-column label="姓名" prop="person_name" show-overflow-tooltip />
-                                        <el-table-column label="身份证号" prop="person_idcard" show-overflow-tooltip />
-                                        <el-table-column label="工种" prop="work_type_text" show-overflow-tooltip />
-                                        <el-table-column label="上班时间" prop="work_start_time" show-overflow-tooltip />
-                                        <el-table-column label="下班时间" prop="work_end_time" show-overflow-tooltip />
-                                        <el-table-column label="记工数量" prop="work_record_num" show-overflow-tooltip />
-                                        <el-table-column label="日工资" prop="daily_salary" show-overflow-tooltip />
-                                        <el-table-column label="日生活费" prop="daily_living" show-overflow-tooltip />
-                                        <el-table-column label="日补贴" prop="daily_subsidy" show-overflow-tooltip />
-                                        <el-table-column label="日其它" prop="daily_other" show-overflow-tooltip />
-                                        <el-table-column label="日收入" prop="daily_income" show-overflow-tooltip />
-                                        <el-table-column label="备注" prop="remark" show-overflow-tooltip />
-
-                                    </el-table>
-                                </div>
-                                <div style="margin: 20px 0;">
-                                    <el-pagination v-model:current-page="pager16.page_no"
-                                        v-model:page-size="pager16.page_size" :page-sizes="[10, 20, 30, 40]"
-                                        layout="total, sizes, prev, pager, next, jumper" :total="total15"
-                                        @size-change="handleSizeChange16" @current-change="handleCurrentChange16" />
-                                </div>
-                            </el-tab-pane>
-                            <el-tab-pane label="工资付款" name="first-6">
-                                <div>
-                                    <el-table :data="tableData17" stripe style="width: 100%">
-                                        <el-table-column label="工资付款单号" prop='payment_code' width="180" />
-                                        <el-table-column label="日期" prop='apply_date' width="180" />
-                                        <el-table-column label="姓名" prop='person_name' />
-                                        <el-table-column label="身份证号" prop='person_idcard' />
-                                        <el-table-column label="工种" prop='person_work_type_text' />
-                                        <el-table-column label="总收入" prop='total_income' />
-                                        <el-table-column label="总支出" prop='total_pay_out' />
-                                        <el-table-column label="未发放" prop='balance' />
-                                        <el-table-column label="本次付款金额" prop='apply_amount' />
-                                        <el-table-column label="备注" prop='remark' />
-                                    </el-table>
-                                </div>
-                                <div style="margin: 20px 0;">
-                                    <el-pagination v-model:current-page="pager17.page_no"
-                                        v-model:page-size="pager17.page_size" :page-sizes="[10, 20, 30, 40]"
-                                        layout="total, sizes, prev, pager, next, jumper" :total="total16"
-                                        @size-change="handleSizeChange17" @current-change="handleCurrentChange17" />
-                                </div>
-                            </el-tab-pane>
-                        </el-tabs>
-
-
-
-                    </el-tab-pane> -->
-                    <!-- <el-tab-pane label="计划" name="demo-6">Config</el-tab-pane>
-                    <el-tab-pane label="材料" name="demo-7">Role</el-tab-pane>
-
-
-                    <el-tab-pane label="进度" name="demo-10">Role</el-tab-pane>
-                    <el-tab-pane label="任务" name="demo-11">Task</el-tab-pane>
-
-                    <el-tab-pane label="机具" name="demo-13">Task</el-tab-pane>
-                    <el-tab-pane label="费用" name="demo-16">Task</el-tab-pane>
-                    <el-tab-pane label="文档" name="demo-17">Task</el-tab-pane>
-                    <el-tab-pane label="结算" name="demo-18">Task</el-tab-pane> -->
-                    <!-- <el-tab-pane label="售后" name="demo-19">
-                        <div>
-                            <el-table :data="tableData18" stripe style="width: 100%">
-                                <el-table-column label="工单编号" prop='custom_service_code' width="180" />
-                                <el-table-column label="合同编号" prop='contract_code' width="180" />
-                                <el-table-column label="投诉主题" prop='name' />
-                                <el-table-column label="日期" prop='date' />
-                                <el-table-column label="分类" prop='classification' />
-                                <el-table-column label="是否解决" prop='is_solve_text' />
-                                <el-table-column label="解决日期" prop='done_date' />
-
-                            </el-table>
-                        </div>
-                        <div style="margin: 10px 0;">
-                            <el-pagination v-model:current-page="pager18.page_no" v-model:page-size="pager18.page_size"
-                                :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
-                                :total="total17" @size-change="handleSizeChange18"
-                                @current-change="handleCurrentChange18" />
-                        </div>
-
-
-                    </el-tab-pane>
-                    <el-tab-pane label="统计" name="demo-20">Task</el-tab-pane> -->
-
                 </el-tabs>
             </el-form>
         </popup>
@@ -260,16 +59,8 @@
 import type { FormInstance } from 'element-plus'
 import Popup from '@/components/popup/index.vue'
 import { apiCustomDetail } from '@/api/custom'
-import { timeFormat } from '@/utils/util'
 import type { PropType } from 'vue'
 import type { TabsPaneContext } from 'element-plus'
-import { apiCustomerDemandLists } from '@/api/customer_demand'
-import { apiProjectFollowUpLists } from '@/api/project_follow_up'
-import { apiCustomerDemandSolutionLists } from '@/api/customer_demand_solution'
-import { apiProjectEstimateLists } from '@/api/project_estimate'
-import { apiCompetitorLists } from '@/api/competitor'
-import { apiCustomServiceLists } from '@/api/custom_service'
-import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
 import Overview from "./components/Overview.vue"
 import Business from "./components/Business.vue"
 import tender from "./components/tender.vue"
@@ -281,12 +72,8 @@ import manpower from "./components/manpower.vue"
 import Collection from "./components/Collection.vue"
 import payment from "./components/payment.vue"
 import documentation from "./components/documentation.vue"
-// import manpower from "./components/manpower.vue"
 
 
-
-
-const active = ref('first-1')
 const activeName = ref('demo-1')
 const handleClick = (tab: TabsPaneContext, event: Event) => {
     // console.log(tab, event)
@@ -300,800 +87,20 @@ defineProps({
 const emit = defineEmits(['success', 'close'])
 const formRef = shallowRef<FormInstance>()
 const popupRef = shallowRef<InstanceType<typeof Popup>>()
-const formDataannex = reactive([])
-const datas = reactive({
-    provinceOptions: [],
-    cityOptions: [],
-    areaOptions: [],
-});
 
 
-
-const pager12 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager13 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager14 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-
-const pager15 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager16 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-
-const pager17 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager18 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-
-
-
-const pager21 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-
-
-const pager22 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-
-
-const pager23 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-
-
-const pager24 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager25 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager26 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager27 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager28 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager29 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager30 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager31 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-const pager32 = reactive({
-    page_size: 10,
-    page_no: 1,
-    project_id: ""
-})
-
-
-
-
-const total12 = ref(0)
-const total13 = ref(0)
-const total14 = ref(0)
-const total15 = ref(0)
-const total16 = ref(0)
-const total17 = ref(0)
-const total18 = ref(0)
-
-const total21 = ref(0)
-
-const total22 = ref(0)
-const total23 = ref(0)
-
-const total24 = ref(0)
-
-const total25 = ref(0)
-const total26 = ref(0)
-const total27 = ref(0)
-const total28 = ref(0)
-const total29 = ref(0)
-const total30 = ref(0)
-const total31 = ref(0)
-const total32 = ref(0)
-const total33 = ref(0)
-
-const tableData12 = ref([])
-const tableData13 = ref([])
-const tableData15 = ref([])
-const tableData16 = ref([])
-const tableData17 = ref([])
-const tableData18 = ref([])
-
-
-const tableData21 = ref([])
-const tableData22 = ref([])
-
-const tableData23 = ref([])
-
-const tableData24 = ref([])
-const tableData25 = ref([])
-
-const tableData26 = ref([])
-const tableData27 = ref([])
-const tableData28 = ref([])
-const tableData29 = ref([])
-const tableData30 = ref([])
-const tableData31 = ref([])
-const tableData32 = ref([])
 // 表单数据
 const formData = reactive({
 
 })
 
-//条数
-
-const handleSizeChange7 = (val: number) => {
-
-    pager7.page_size = val
-    buydocumentLists()
-}
-const handleSizeChange8 = (val: number) => {
-
-    pager8.page_size = val
-    examinationLists()
-}
-const handleSizeChange9 = (val: number) => {
-
-    pager9.page_size = val
-    bidResultLists()
-}
-const handleSizeChange10 = (val: number) => {
-
-    pager10.page_size = val
-    applyLists()
-}
-
-const handleSizeChange11 = (val: number) => {
-
-    pager11.page_size = val
-
-    refundLists()
-}
-
-const handleSizeChange12 = (val: number) => {
-
-    pager12.page_size = val
-
-    personnelLists()
-}
-
-const handleSizeChange13 = (val: number) => {
-
-    pager13.page_size = val
-
-    laborcontractLists()
-}
-
-const handleSizeChange14 = (val: number) => {
-
-    pager14.page_size = val
-
-    insurancemanagementlists()
-}
-
-
-const handleSizeChange15 = (val: number) => {
-
-    pager15.page_size = val
-
-    attendanceRecord()
-}
-
-const handleSizeChange16 = (val: number) => {
-
-    pager16.page_size = val
-
-    attendancedetail()
-
-}
-const handleSizeChange17 = (val: number) => {
-
-    pager16.page_size = val
-
-    attendancedetail()
-
-}
-
-
-const handleSizeChange18 = (val: number) => {
-
-    pager18.page_size = val
-
-    customServiceLists()
-
-}
-const handleSizeChange19 = (val: number) => {
-
-    pager19.page_size = val
-
-    contractLists()
-}
-
-const handleSizeChange20 = (val: number) => {
-
-    pager20.page_size = val
-    contcractNegotiationLists()
-}
-const handleSizeChange21 = (val: number) => {
-
-    pager21.page_size = val
-
-    customServiceLists()
-}
-
-const handleSizeChange22 = (val: number) => {
-
-    pager22.page_size = val
-
-    customServiceLists()
-}
-const handleSizeChange23 = (val: number) => {
-
-    pager23.page_size = val
-
-    customServiceLists()
-}
-
-const handleSizeChange24 = (val: number) => {
-
-    pager24.page_size = val
-
-    customServiceLists()
-}
-
-const handleSizeChange25 = (val: number) => {
-
-    pager25.page_size = val
-
-    customServiceLists()
-}
-
-const handleSizeChange26 = (val: number) => {
-
-    pager26.page_size = val
-
-    customServiceLists()
-}
-
-
-const handleSizeChange27 = (val: number) => {
-
-    pager27.page_size = val
-
-    customServiceLists()
-}
-
-
-const handleSizeChange28 = (val: number) => {
-
-    pager28.page_size = val
-
-    customServiceLists()
-}
-
-
-const handleSizeChange29 = (val: number) => {
-
-    pager29.page_size = val
-
-    invoiceapplyLists()
-}
-
-
-
-
-const handleSizeChange30 = (val: number) => {
-
-    pager30.page_size = val
-
-    returnedLists()
-}
-const handleSizeChange31 = (val: number) => {
-
-    pager30.page_size = val
-
-    returnedrecordLists()
-}
-const handleSizeChange32 = (val: number) => {
-
-    pager30.page_size = val
-    refundapplyLists()
-}
-
-
-
-//分页
-
-// const handleCurrentChange6 = (val: number) => {
-//     pager6.page_no = val
-//     console.log(`current page: ${val}`)
-//     decisionLists()
-// }
-// const handleCurrentChange7 = (val: number) => {
-//     pager7.page_no = val
-//     console.log(`current page: ${val}`)
-//     buydocumentLists()
-// }
-// const handleCurrentChange8 = (val: number) => {
-//     pager8.page_no = val
-//     console.log(`current page: ${val}`)
-//     examinationLists()
-// }
-// const handleCurrentChange9 = (val: number) => {
-//     pager9.page_no = val
-//     console.log(`current page: ${val}`)
-//     bidResultLists()
-// }
-// const handleCurrentChange10 = (val: number) => {
-//     pager10.page_no = val
-//     console.log(`current page: ${val}`)
-//     applyLists()
-// }
-// const handleCurrentChange11 = (val: number) => {
-//     pager11.page_no = val
-//     console.log(`current page: ${val}`)
-
-//     refundLists()
-// }
-
-const handleCurrentChange12 = (val: number) => {
-    pager12.page_no = val
-    console.log(`current page: ${val}`)
-    personnelLists()
-}
-const handleCurrentChange13 = (val: number) => {
-    pager13.page_no = val
-    console.log(`current page: ${val}`)
-
-    laborcontractLists()
-}
-
-const handleCurrentChange14 = (val: number) => {
-    pager14.page_no = val
-    console.log(`current page: ${val}`)
-
-    insurancemanagementlists()
-}
-
-const handleCurrentChange15 = (val: number) => {
-    pager15.page_no = val
-    console.log(`current page: ${val}`)
-
-    attendanceRecord()
-}
-const handleCurrentChange16 = (val: number) => {
-    pager16.page_no = val
-    console.log(`current page: ${val}`)
-
-    attendancedetail()
-}
-
-const handleCurrentChange17 = (val: number) => {
-    pager17.page_no = val
-    console.log(`current page: ${val}`)
-
-    salarypaymentLists()
-
-}
-
-const handleCurrentChange18 = (val: number) => {
-    pager18.page_no = val
-    console.log(`current page: ${val}`)
-
-    customServiceLists()
-}
-
-const handleCurrentChange19 = (val: number) => {
-    pager19.page_no = val
-    console.log(`current page: ${val}`)
-
-    contractLists()
-}
-
-
-const handleCurrentChange20 = (val: number) => {
-    pager20.page_no = val
-    console.log(`current page: ${val}`)
-
-    contcractNegotiationLists()
-}
-
-const handleCurrentChange21 = (val: number) => {
-    pager21.page_no = val
-    console.log(`current page: ${val}`)
-
-    customServiceLists()
-}
-
-
-const handleCurrentChange22 = (val: number) => {
-    pager22.page_no = val
-    console.log(`current page: ${val}`)
-
-    customServiceLists()
-}
-
-
-const handleCurrentChange23 = (val: number) => {
-    pager23.page_no = val
-    console.log(`current page: ${val}`)
-
-    customServiceLists()
-}
-
-const handleCurrentChange24 = (val: number) => {
-    pager24.page_no = val
-    console.log(`current page: ${val}`)
-
-    customServiceLists()
-}
-
-
-const handleCurrentChange25 = (val: number) => {
-    pager25.page_no = val
-    console.log(`current page: ${val}`)
-
-    customServiceLists()
-}
-const handleCurrentChange26 = (val: number) => {
-    pager26.page_no = val
-    console.log(`current page: ${val}`)
-
-    customServiceLists()
-}
-
-
-const handleCurrentChange27 = (val: number) => {
-    pager27.page_no = val
-    console.log(`current page: ${val}`)
-
-    customServiceLists()
-}
-
-
-const handleCurrentChange28 = (val: number) => {
-    pager28.page_no = val
-    console.log(`current page: ${val}`)
-
-    customServiceLists()
-}
-
-const handleCurrentChange29 = (val: number) => {
-    pager29.page_no = val
-    console.log(`current page: ${val}`)
-    invoiceapplyLists()
-}
-
-
-const handleCurrentChange30 = (val: number) => {
-    pager30.page_no = val
-    console.log(`current page: ${val}`)
-
-    returnedLists()
-}
-
-
-const handleCurrentChange31 = (val: number) => {
-    pager31.page_no = val
-    console.log(`current page: ${val}`)
-
-    returnedrecordLists()
-}
-const handleCurrentChange32 = (val: number) => {
-    pager32.page_no = val
-    console.log(`current page: ${val}`)
-
-    refundapplyLists()
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-//获取项目人员列表
-
-const personnelLists = () => {
-    projectpersonnelLists(pager12).then((res) => {
-        tableData12.value = res.lists
-        total11.value = res.count
-    })
-}
-
-
-//获取保险管理列表
-
-const insurancemanagementlists = () => {
-    insurancemanagementLists(pager14).then((res) => {
-        tableData14.value = res.lists
-        total13.value = res.count
-    })
-}
-//获取考勤记录列表
-
-const attendanceRecord = () => {
-    attendanceRecordLists(pager15).then((res) => {
-        tableData15.value = res.lists
-        total14.value = res.count
-    })
-}
-
-//获取考勤明细列表
-
-const attendancedetail = () => {
-    attendancedetailLists(pager16).then((res) => {
-        tableData16.value = res.lists
-        total15.value = res.count
-    })
-}
-//获取工资付款列表
-
-const salarypaymentLists = () => {
-    projectsalaryDetailLists(pager17).then((res) => {
-        tableData17.value = res.lists
-        total16.value = res.count
-    })
-}
-
-//售后信息
-const customServiceLists = () => {
-    apiCustomServiceLists(pager18).then((res) => {
-        tableData18.value = res.lists
-        total17.value = res.count
-    })
-}
-
-
-//获取分包预算列表
-const subpackagList = () => {
-    subpackagdetailLists(pager21).then((res) => {
-        tableData21.value = res.lists
-        total20.value = res.count
-    })
-}
-
-// 获取收票记录列表
-const financereceiptLists = () => {
-    apifinancereceiptLists(pager22).then((res) => {
-        tableData22.value = res.lists
-        total21.value = res.count
-    })
-}
-
-// 获取付款计划列表
-const planLists = () => {
-    paymentplanLists(pager23).then((res) => {
-        tableData23.value = res.lists
-        total22.value = res.count
-    })
-}
-
-//获取付款记录
-const payapplyLists = () => {
-    paymentapplyLists(pager24).then((res) => {
-        tableData24.value = res.lists
-        total22.value = res.count
-    })
-}
-
-
-//获取退款记录
-const financerefundLists = () => {
-    apiFinancerefundLists(pager25).then((res) => {
-        tableData25.value = res.lists
-        total24.value = res.count
-    })
-}
-
-//获取采购合同
-
-const procurementContractLists = () => {
-    apiProcurementContractLists(pager26).then((res) => {
-        tableData26.value = res.lists
-        total25.value = res.count
-    })
-}
-//获取分包合同
-const subcontractingContractLists = () => {
-    apiSubcontractingContractLists(pager27).then((res) => {
-        tableData27.value = res.lists
-        total26.value = res.count
-    })
-}
-
-//获取分包合同洽商
-const negotiationLists = () => {
-    apinegotiationLists(pager28).then((res) => {
-        tableData28.value = res.lists
-        total27.value = res.count
-    })
-}
-
-//获取开票申请
-const invoiceapplyLists = () => {
-    apiinvoiceapplyLists(pager29).then((res) => {
-        tableData29.value = res.lists
-        total28.value = res.count
-    })
-}
-
-//获取回款计划
-const returnedLists = () => {
-    apireturnedLists(pager30).then((res) => {
-        tableData30.value = res.lists
-        total29.value = res.count
-    })
-}
-
-//获取回款记录
-const returnedrecordLists = () => {
-    apireturnedrecordLists(pager31).then((res) => {
-        tableData31.value = res.lists
-        total30.value = res.count
-    })
-}
-
-//获取退款申请
-const refundapplyLists = () => {
-    apirefundapplyLists(pager32).then((res) => {
-        tableData32.value = res.lists
-        total31.value = res.count
-    })
-}
-
 const project_id = ref(0)
 
 
 // 获取详情
 const setFormData = async (data: Record<any, any>) => {
-
-
-
-    // for (const key in formData) {
-    //     if (data[key] != null && data[key] != undefined) {
-    //         //@ts-ignore
-    //         formData[key] = data[key]
-
-    //     }
-
-    // }
     project_id.value = data.id
-
-    // pager11.project_id = data.id
-    // pager11.project_id = data.id
-    // pager12.project_id = data.id
-    // pager13.project_id = data.id
-    // pager14.project_id = data.id
-    // pager15.project_id = data.id
-    // pager16.project_id = data.id
-    // pager17.project_id = data.id
-    // pager18.project_id = data.id
-    // pager19.project_id = data.id
-    // pager20.project_id = data.id
-    // pager21.project_id = data.id
-    // pager22.project_id = data.id
-    // pager23.project_id = data.id
-    // pager24.project_id = data.id
-    // pager20.project_id = data.id
-    // pager25.project_id = data.id
-    // pager26.project_id = data.id
-    // pager27.project_id = data.id
-    // pager28.project_id = data.id
-    // pager29.project_id = data.id
-    // pager30.project_id = data.id
-    // pager31.project_id = data.id
-    // pager32.project_id = data.id
     Object.assign(formData, data)
-
-    // if (data.annex && data.annex.length > 0) {
-    //     const arry1 = data.annex.map((item: any, index: any) => {
-    //         return {
-    //             name: `文件${index + 1}`,
-    //             uri: item
-    //         };
-    //     });
-    //     Object.assign(formDataannex, arry1)
-    // }
-    // followUpLists()
-    // demandList()
-    // // competitorLists()
-    // solutionLists()
-    // estimateLists()
-    // decisionLists()
-    // buydocumentLists()
-    // examinationLists()
-    // bidResultLists()
-    // applyLists()
-    // refundLists()
-    // personnelLists()
-    // laborcontractLists()
-    // insurancemanagementlists()
-    // attendanceRecord()
-    // attendancedetail()
-    // salarypaymentLists()
-    // customServiceLists()
-    // contractLists()
-    // contcractNegotiationLists()
-    // subpackagList()
-    // financereceiptLists()
-    // planLists()
-    // payapplyLists()
-    // financerefundLists()
-    // procurementContractLists()
-    // subcontractingContractLists()
-    // negotiationLists()
-    // invoiceapplyLists()
-    // returnedLists()
-    // returnedrecordLists()
-    // refundapplyLists()
 }
 
 const getDetail = async (row: Record<string, any>) => {
diff --git a/src/views/project/edit.vue b/src/views/project/edit.vue
index b109fe9..edaedbf 100644
--- a/src/views/project/edit.vue
+++ b/src/views/project/edit.vue
@@ -28,13 +28,13 @@
                             </el-select>
                         </el-form-item>
                     </el-col>
-
                     <el-col :span="8">
                         <el-form-item label="项目名称" prop="name"
                             :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
                             <el-input v-model="formData.name" clearable placeholder="请输入项目名称" />
                         </el-form-item>
-                    </el-col> <el-col :span="8">
+                    </el-col>
+                    <el-col :span="8">
                         <el-form-item label="项目编码" prop="project_code">
                             <el-input v-model="formData.project_code" clearable disabled placeholder="系统自动生成" />
                         </el-form-item>
diff --git a/src/views/project_follow_up/edit.vue b/src/views/project_follow_up/edit.vue
index b94fd6d..975e722 100644
--- a/src/views/project_follow_up/edit.vue
+++ b/src/views/project_follow_up/edit.vue
@@ -7,7 +7,7 @@
                         <el-form-item label="项目名称" prop="project_id"
                             :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
                             <el-input v-model="project_name" readonly @click="showDialog = true" clearable
-                                placeholder="点击选择项目" />
+                                placeholder="点击选择项目" :disabled="project" />
                         </el-form-item>
                     </el-col>
                     <el-col :span="8">
@@ -108,7 +108,6 @@
 import type { FormInstance } from 'element-plus'
 import projectTable from "@/components/project/index.vue"
 import Popup from '@/components/popup/index.vue'
-import feedback from '@/utils/feedback'
 import { apiProjectFollowUpAdd, apiProjectFollowUpEdit, apiProjectFollowUpDetail } from '@/api/project_follow_up'
 import type { PropType } from 'vue'
 
@@ -120,14 +119,13 @@ const handleAvatarSuccess_four = (response: any) => {
 };
 // 删除上传的文件
 const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
-// <annexUpload :annex="formData.annex" @handleAvatarSuccess="handleAvatarSuccess_four"
-//                                 @delFile="delFileFn" />
 
-defineProps({
+const props = defineProps({
     dictData: {
         type: Object as PropType<Record<string, any[]>>,
         default: () => ({})
-    }
+    },
+    project: Object
 })
 const emit = defineEmits(['success', 'close'])
 const formRef = shallowRef<FormInstance>()
@@ -139,13 +137,8 @@ const custom_name = ref('')
 const formDataannex = reactive([])
 // dialog
 const showDialog = ref(false)
-const customEvent = (e: any) => {
-    formData.project_id = e.id;
-    project_name.value = e.name;
-    project_code.value = e.project_code;
-    custom_name.value = e.custom_name;
-    showDialog.value = false;
-};
+
+
 
 // 弹窗标题
 const popupTitle = computed(() => {
@@ -174,6 +167,18 @@ const formData = reactive({
     annex: []
 })
 
+const customEvent = (e: any) => {
+    formData.project_id = e.id;
+    project_name.value = e.name;
+    project_code.value = e.project_code;
+    custom_name.value = e.custom_name;
+    showDialog.value = false;
+};
+
+
+if (props.project) {
+    customEvent(props.project)
+}
 
 // 表单验证
 const formRules = reactive<any>({
diff --git a/src/views/project_follow_up/index.vue b/src/views/project_follow_up/index.vue
index 26d1c22..3867583 100644
--- a/src/views/project_follow_up/index.vue
+++ b/src/views/project_follow_up/index.vue
@@ -9,28 +9,32 @@
                 <el-form-item label="跟进类型" prop="follow_type">
                     <el-select v-model="queryParams.follow_type" class="w-[280px]" clearable placeholder="请选择跟进类型">
                         <el-option label="全部" value=""></el-option>
-                        <el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name" :value="item.value" />
+                        <el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name"
+                            :value="item.value" />
                     </el-select>
                 </el-form-item>
 
                 <el-form-item label="项目把握度" prop="project_assurance">
                     <el-select v-model="queryParams.project_assurance" class="w-[280px]" clearable placeholder="请选择项目把握度">
 
-                        <el-option v-for="(item, index) in dictData.project_assurance" :key="index" :label="item.name" :value="item.value" />
+                        <el-option v-for="(item, index) in dictData.project_assurance" :key="index" :label="item.name"
+                            :value="item.value" />
                     </el-select>
                 </el-form-item>
 
                 <el-form-item label="跟进状态" prop="follow_status">
                     <el-select v-model="queryParams.follow_status" class="w-[280px]" clearable placeholder="请选择跟进状态">
 
-                        <el-option v-for="(item, index) in dictData.follow_status" :key="index" :label="item.name" :value="item.value" />
+                        <el-option v-for="(item, index) in dictData.follow_status" :key="index" :label="item.name"
+                            :value="item.value" />
                     </el-select>
                 </el-form-item>
 
                 <el-form-item label="跟进阶段" prop="follow_stage">
                     <el-select v-model="queryParams.follow_stage" class="w-[280px]" clearable placeholder="请输入跟进阶段">
 
-                        <el-option v-for="(item, index) in dictData.follow_stage" :key="index" :label="item.name" :value="item.value" />
+                        <el-option v-for="(item, index) in dictData.follow_stage" :key="index" :label="item.name"
+                            :value="item.value" />
                     </el-select>
                 </el-form-item>
 
@@ -75,7 +79,8 @@
                 </template>
                 新增
             </el-button>
-            <el-button v-perms="['project.project_follow_up/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
+            <el-button v-perms="['project.project_follow_up/delete']" :disabled="!selectData.length"
+                @click="handleDelete(selectData)">
                 删除
             </el-button>
             <div class="mt-4">
@@ -121,13 +126,14 @@
                                 '' }}</span>
                         </template>
                     </el-table-column>
-                    <el-table-column label="" prop="ceate_time" show-overflow-tooltip />
                     <el-table-column label="操作" width="160" fixed="right">
                         <template #default="{ row }">
-                            <el-button v-perms="['project.project_follow_up/edit']" type="primary" link @click="handleEdit(row)">
+                            <el-button v-perms="['project.project_follow_up/edit']" type="primary" link
+                                @click="handleEdit(row)">
                                 编辑
                             </el-button>
-                            <el-button v-perms="['project.project_follow_up/delete']" type="danger" link @click="handleDelete(row.id)">
+                            <el-button v-perms="['project.project_follow_up/delete']" type="danger" link
+                                @click="handleDelete(row.id)">
                                 删除
                             </el-button>
                             <el-button v-perms="['project.project_follow_up/detail']" link @click="handledetail(row)">
diff --git a/yarn.lock b/yarn.lock
index 256b09c..63881bd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -646,10 +646,10 @@
     "@babel/plugin-transform-typescript" "^7.18.8"
     "@vue/babel-plugin-jsx" "^1.1.1"
 
-"@vitejs/plugin-vue@^3.0.0":
-  "integrity" "sha512-Ll9JgxG7ONIz/XZv3dssfoMUDu9qAnlJ+km+pBA0teYSXzwPCIzS/e1bmwNYl5dcQGs677D21amgfYAnzMl17A=="
-  "resolved" "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.0.1.tgz"
-  "version" "3.0.1"
+"@vitejs/plugin-vue@^3.2.0":
+  "integrity" "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw=="
+  "resolved" "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz"
+  "version" "3.2.0"
 
 "@volar/code-gen@0.38.9":
   "integrity" "sha512-n6LClucfA+37rQeskvh9vDoZV1VvCVNy++MAPKj2dT4FT+Fbmty/SDQqnsEBtdEe6E3OQctFvA/IcKsx3Mns0A=="