Selaa lähdekoodia

创建项目修改

duy 1 vuosi sitten
vanhempi
commit
0faf05f3cf

+ 16 - 9
src/api/modules/project/project.js

@@ -18,14 +18,21 @@ export default {
             data: form,
         }, false)
     },
-        //项目与计划详情
-        async detail(id) {
-            return HcApi({
-                url: '/api/blade-attach/project/project-and-plan-detail',
-                method: 'get',
-                params: { id },
-            }, false)
-        },
-
+    //项目与计划详情
+    async detailMore(id) {
+        return HcApi({
+            url: '/api/blade-attach/project/project-and-plan-detail',
+            method: 'get',
+            params: { id },
+        }, false)
+    },
+    //项目详情
+    async detail(id) {
+        return HcApi({
+            url: '/api/blade-attach/project/detail',
+            method: 'get',
+            params: { id },
+        }, false)
+    },
 
 }

+ 38 - 22
src/views/project/admin/create.vue

@@ -25,14 +25,14 @@
                 <el-col :span="6">
                     <el-form-item label="项目阶段:" prop="projectStage">
                         <el-select v-model="baseForm.projectStage" placeholder="请选择">
-                            <el-option v-for="item in stateOptions" :key="item.id" :label="item.dictValue" :value="item.dictKey" />
+                            <el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" />
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
                     <el-form-item label="项目类型:" prop="projectType">
                         <el-select v-model="baseForm.projectType" placeholder="请选择">
-                            <el-option v-for="item in typeOptions" :key="item.id" :label="item.dictValue" :value="item.dictKey" />
+                            <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
                         </el-select>
                     </el-form-item>
                 </el-col>
@@ -69,16 +69,16 @@
                 <el-col :span="6">
                     <el-form-item label="市级重点项目:" prop="isFocusProject">
                         <el-select v-model="baseForm.isFocusProject" placeholder="请选择">
-                            <el-option label="是" value="1" />
-                            <el-option label="否" value="0" />
+                            <el-option label="是" :value="1" />
+                            <el-option label="否" :value="0" />
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
                     <el-form-item label="交通强国建设试点任务:" prop="isPilotPlan">
                         <el-select v-model="baseForm.isPilotPlan" placeholder="请选择">
-                            <el-option label="是" value="1" />
-                            <el-option label="否" value="0" />
+                            <el-option label="是" :value="1" />
+                            <el-option label="否" :value="0" />
                         </el-select>
                     </el-form-item>
                 </el-col>
@@ -176,6 +176,7 @@ import { isNullES } from 'js-fast-way'
 import { getDictionary } from '~api/dictbiz'
 import { arrIndex, formValidate, getArrValue, getObjValue, isArrItem } from 'js-fast-way'
 import mainApi from '~api/project/project'
+import { getDictionaryData } from '~src/utils/tools'
 
 const props = defineProps({
     form: {
@@ -195,12 +196,37 @@ watch(() => props.form, (data) => {
 })
 
 //渲染完成
-onMounted(() => {
+onMounted(async () => {
     console.log(formInfo.value, '11111')
-    getProStation()
-    getProType()
+   await getProStation()
+   await getProType()
+   getDataApi()
 })
+const getDataApi = async () => {
 
+    const form = getObjValue(formInfo.value)
+    if (!isNullES(form.id)) {
+        getProDetail(form.id)
+        // baseForm.value = {
+        //     ...form,
+        //     id: form.id,
+          
+        // }
+     
+    }
+}
+const getProDetail = async (id)=>{
+    const { error, code, data } = await mainApi.detail(id)
+    //处理数据
+ 
+    if (!error && code === 200) {
+        baseForm.value = getObjValue(data)
+        baseForm.value.startYear = data.startYear.toString()
+        baseForm.value.endYear = data.endYear.toString()
+    } else {
+        baseForm.value = {}
+    }
+}
 const baseForm = ref({ })
 const baseFormRules = {
     name: {
@@ -226,24 +252,13 @@ const unitSelect = ref('')
 const stateOptions = ref([])
 
 const getProStation = async () => {
-    const { error, code, data } = await getDictionary({ code:'projectStage' })
-        if (!error && code === 200) {
-            stateOptions.value = getArrValue(data) 
-        } else {
-            stateOptions.value = []
-        }   
+    stateOptions.value = await getDictionaryData('projectStage', true)
     
 }
 //项目类型
 const typeOptions = ref([])
 const getProType = async () => {
-    const { error, code, data } = await getDictionary({ code:'projectType' })
-        if (!error && code === 200) {
-            typeOptions.value = getArrValue(data)
-        } else {
-            typeOptions.value = []
-        }   
-    
+    typeOptions.value = await getDictionaryData('projectType', true)
   }
   const endYearRef = ref(null)
   const startYearRef = ref(null)
@@ -286,6 +301,7 @@ const endYearBlur = () => {
     )
   }
   yearOptions.value = years
+  selectYear.value = yearOptions.value[0].value
 }
 //选择年份
 const selectIndex = ref(0)

+ 6 - 16
src/views/project/admin/list.vue

@@ -16,12 +16,12 @@
         <template #extraToHeader>
             <div class="w-[120px]">
                 <el-select v-model="searchForm.projectStage" filterable clearable block placeholder="项目阶段" @change="searchClick">
-                    <el-option v-for="item in stateOptions" :key="item.id" :label="item.dictValue" :value="item.dictKey" />
+                    <el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
             </div>
             <div class="ml-2 w-[100px]">
                 <el-select v-model="searchForm.projectType" filterable clearable block placeholder="项目类型" @change="searchClick">
-                    <el-option v-for="item in typeOptions" :key="item.id" :label="item.dictValue" :value="item.dictKey" />
+                    <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
             </div>
         </template>
@@ -91,6 +91,7 @@ import HcTableList from '../modules/project-list.vue'
 import { getDictionary } from '~api/dictbiz'
 import { getArrValue } from 'js-fast-way'
 import mainApi from '~api/project/project'
+import { getDictionaryData } from '~src/utils/tools'
 
 //事件
 const emit = defineEmits(['edit'])
@@ -123,25 +124,14 @@ const getTableData = async () => {
 //项目阶段
 const stateOptions = ref([])
 const getProStation = async () => {
-    const { error, code, data } = await getDictionary({ code:'projectStage' })
-        if (!error && code === 200) {
-            stateOptions.value = getArrValue(data) 
-        } else {
-            stateOptions.value = []
-        }   
+    stateOptions.value = await getDictionaryData('projectStage', true)
     
 }
 //项目类型
 const typeOptions = ref([])
 const getProType = async () => {
-    const { error, code, data } = await getDictionary({ code:'projectType' })
-        if (!error && code === 200) {
-            typeOptions.value = getArrValue(data)
-        } else {
-            typeOptions.value = []
-        }   
-    
-    }
+    typeOptions.value = await getDictionaryData('projectType', true)
+  }
 //搜索条件
 const searchForm = ref({
     startYear: '', endYear: '', searchValue: '', year: '', projectStage:'', projectType:'',