yanghao 1 هفته پیش
والد
کامیت
f2585b8bc2
1فایلهای تغییر یافته به همراه47 افزوده شده و 11 حذف شده
  1. 47 11
      src/views/researchProject/list/index.vue

+ 47 - 11
src/views/researchProject/list/index.vue

@@ -43,10 +43,16 @@
       <zm-table-column label="立项时间" prop="projectDate" min-width="220" show-overflow-tooltip />
       <zm-table-column
         label="计划结题时间"
-        prop="planEndDaate"
+        prop="planEndDate"
         min-width="220"
         show-overflow-tooltip
-      />
+      >
+        <template #default="scope">
+          <span v-if="scope.row.planEndDate">
+            {{ scope.row.planEndDate }}
+          </span>
+        </template>
+      </zm-table-column>
 
       <zm-table-column
         label="执行单位"
@@ -166,6 +172,7 @@
               :check-strictly="true"
               node-key="id"
               filterable
+              multiple
               placeholder="请选择执行单位"
               class="w-full"
             />
@@ -201,6 +208,34 @@
             </el-select>
           </el-form-item>
         </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="项目所属单位" prop="deptId">
+            <el-tree-select
+              clearable
+              v-model="formData.deptId"
+              :data="deptList"
+              :props="defaultProps"
+              :check-strictly="true"
+              node-key="id"
+              filterable
+              placeholder="请选择项目所属单位"
+              class="w-full"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="计划结题时间" prop="planEndDate">
+            <el-date-picker
+              v-model="formData.planEndDate"
+              placeholder="请选择计划结题时间"
+              type="date"
+              value-format="YYYY-MM-DD"
+              class="w-full!"
+            />
+          </el-form-item>
+        </el-col>
       </el-row>
 
       <el-divider content-position="left">项目内容</el-divider>
@@ -453,7 +488,7 @@
         <zm-table-column label="工作计划" prop="workPlan" min-width="200" show-overflow-tooltip />
         <zm-table-column label="截止时间" prop="deadline" width="150">
           <template #default="{ row }">
-            <span>{{ row.deadline.join('-') }}</span>
+            <span>{{ row.deadline }}</span>
           </template>
         </zm-table-column>
       </zm-table>
@@ -564,7 +599,6 @@ import { computed, reactive, ref, onMounted } from 'vue'
 import { ElMessage, ElMessageBox, type FormRules } from 'element-plus'
 import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
 import { getSimpleDeptList } from '@/api/system/dept'
-import { getUserProfile } from '@/api/system/user/profile'
 import {
   getProjectPage,
   getProject,
@@ -576,6 +610,7 @@ import {
   approvePre,
   approveFormal
 } from '@/api/project'
+import dayjs from 'dayjs'
 
 defineOptions({ name: 'ResearchProjectList' })
 
@@ -604,7 +639,6 @@ const defaultProps = {
   value: 'id'
 }
 const deptList = ref<any[]>([])
-const deptId = ref('')
 
 // ========== 类型 ==========
 type ScheduleItem = { workPlan: string; deadline: string; sort?: number }
@@ -737,7 +771,8 @@ const createBudgetDetail = (): BudgetDetail => ({
 })
 
 const createForm = () => ({
-  deptId: deptId.value,
+  deptId: '',
+  planEndDate: '',
   projectLevel: '',
   executingUnit: null as number | null,
   projectName: '',
@@ -764,7 +799,9 @@ const formRules = reactive<FormRules>({
   projectType: [{ required: true, message: '请选择项目类型', trigger: 'change' }],
   goalAndSignificance: [{ required: true, message: '请输入目标和意义', trigger: 'blur' }],
   mainResearchContent: [{ required: true, message: '请输入主要研究内容', trigger: 'blur' }],
-  innovationPoint: [{ required: true, message: '请输入创新点', trigger: 'blur' }]
+  innovationPoint: [{ required: true, message: '请输入创新点', trigger: 'blur' }],
+  deptId: [{ required: true, message: '请选择项目所属部门', trigger: 'change' }],
+  planEndDate: [{ required: true, message: '请选择计划结束时间', trigger: 'change' }]
 })
 
 const budgetTotal = computed(() =>
@@ -798,9 +835,10 @@ const openForm = async (project?: any) => {
         mainResearchContent: data.mainResearchContent,
         innovationPoint: data.innovationPoint,
         involveBudget: data.involveBudget,
-        deptId: deptId.value,
+        deptId: data.deptId,
         scheduleList: data.scheduleList?.length ? data.scheduleList : [createSchedule()],
-        budgetList: data.budgetList?.length ? data.budgetList : [createBudgetDetail()]
+        budgetList: data.budgetList?.length ? data.budgetList : [createBudgetDetail()],
+        planEndDate: data.planEndDate
       }
 
       // 附件回显
@@ -978,8 +1016,6 @@ const removeProject = async (id: number) => {
 
 // ========== 生命周期 ==========
 onMounted(async () => {
-  const data = await getUserProfile()
-  deptId.value = data.dept.id
   await getList()
   deptList.value = await getSimpleDeptList()
 })