From 69b01c1de544bdaedfa12aaf13600239dabbcb3c Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 29 十一月 2024 16:51:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/projectEngineering/projectLibrary/index.vue                |   11 
 src/views/projectManage/plan/planInfo.vue                            |   14 
 src/views/projectManage/progress/progressRecord.vue                  |   76 ++-
 src/views/projectManage/plan/index.vue                               |    1 
 src/views/projectEngineering/projectLibrary/list.js                  |  174 ++++----
 src/views/projectEngineering/projectLibrary/component/FileDialog.vue |   53 --
 src/views/projectEngineering/projectLibrary/component/BasicInfo.vue  |    2 
 src/views/projectManage/plan/planInfoCheck.vue                       |   18 
 src/api/projectManage/progress/index.js                              |    9 
 src/views/projectEngineering/projectLibrary/projectDetails.vue       |    5 
 src/views/projectManage/progress/index.vue                           |   58 --
 src/views/components/projectOverview.vue                             |  654 +++++++++++++++++++-----------------
 src/views/projectManage/plan/planRecord.vue                          |    3 
 13 files changed, 542 insertions(+), 536 deletions(-)

diff --git a/src/api/projectManage/progress/index.js b/src/api/projectManage/progress/index.js
index ade3e9b..63e83f8 100644
--- a/src/api/projectManage/progress/index.js
+++ b/src/api/projectManage/progress/index.js
@@ -50,6 +50,15 @@
   })
 }
 
+// 瀹℃壒
+export function examine(data) {
+  return request({
+    url: '/api/project-plan-progress-report/examine',
+    method: 'post',
+    data: data
+  })
+}
+
 // 淇濆瓨绔e伐鎶ュ憡銆佹儏鍐佃鏄庨檮浠�
 export function saveProjectProgressFileLists(data) {
   return request({
diff --git a/src/views/components/projectOverview.vue b/src/views/components/projectOverview.vue
index 3bda1ba..77f5e12 100644
--- a/src/views/components/projectOverview.vue
+++ b/src/views/components/projectOverview.vue
@@ -1,339 +1,373 @@
 <template>
-    <div class="overview-bottom">
-        <div class="abnormal" @click="showAbnormal">
-            <div style="margin-bottom: 30px">寮傚父椤圭洰鎯呭喌缁熻</div>
-            <div>
-                <div class="abnormal-center">
-                    娴佺▼寮傚父椤圭洰锛�<span
-                        style="font-size: 16px; font-weight: 700"
-                        >{{
-                            countExceptionProjectData.processExceptionProject
-                        }}</span
-                    >
-                </div>
-                <div class="abnormal-center">
-                    璧勯噾寮傚父椤圭洰锛�<span
-                        style="font-size: 16px; font-weight: 700"
-                        >0</span
-                    >
-                </div>
-                <div class="abnormal-center">
-                    杩涘害寮傚父椤圭洰锛�<span
-                        style="font-size: 16px; font-weight: 700"
-                        >0</span
-                    >
-                </div>
-            </div>
-            <div class="abnormal-img"></div>
+  <div class="overview-bottom">
+    <div class="abnormal" @click="showAbnormal">
+      <div style="margin-bottom: 30px">寮傚父椤圭洰鎯呭喌缁熻</div>
+      <div>
+        <div class="abnormal-center">
+          娴佺▼寮傚父椤圭洰锛�<span
+          style="font-size: 16px; font-weight: 700"
+        >{{
+            countExceptionProjectData.processExceptionProject
+          }}</span
+        >
         </div>
-        <div class="overview-div custom-min-width">
-            <div
-                v-for="i in calculation"
-                :key="i.text"
-                :style="setbcStyle(i.text)"
-                class="listings"
-                @click="showDetail(i.text)"
-            >
-                <div :style="setTextStyle(i.text)" class="title">
-                    {{ i.text }}
-                </div>
-                <div class="conter">
-                    <div :style="setTextColor(i.text)" class="mun">
-                        {{ i.mun }}
-                    </div>
-                    <div class="statistics">
-                        <div>{{ i.statistics }}</div>
-                        <div :style="setTextColor(i.text)">
-                            {{ i.statisticsMun
-                            }}<span style="font-size: 18px">浜�</span>
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <!-- <div class="listings">
-                <div class="title">
-                    鍌�
-                </div>
-                <div class="conter">
-                    <div class="mun">44</div>
-                    <div class="statistics">
-                        <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
-                        <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
-                    </div>
-                </div>
-            </div>
-            <div class="listings">
-                <div class="title">
-                    鍌�
-                </div>
-                <div class="conter">
-                    <div class="mun">44</div>
-                    <div class="statistics">
-                        <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
-                        <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
-                    </div>
-                </div>
-            </div>
-            <div class="listings">
-                <div class="title">
-                    鍌�
-                </div>
-                <div class="conter">
-                    <div class="mun">44</div>
-                    <div class="statistics">
-                        <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
-                        <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
-                    </div>
-                </div>
-            </div>
-            <div class="listings">
-                <div class="title">
-                    鍌�
-                </div>
-                <div class="conter">
-                    <div class="mun">44</div>
-                    <div class="statistics">
-                        <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
-                        <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
-                    </div>
-                </div>
-            </div>
-            <div class="listings">
-                <div class="title">
-                    鍌�
-                </div>
-                <div class="conter">
-                    <div class="mun">44</div>
-                    <div class="statistics">
-                        <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
-                        <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
-                    </div>
-                </div>
-            </div>
-            <div class="listings">
-                <div class="title">
-                    鍌�
-                </div>
-                <div class="conter">
-                    <div class="mun">44</div>
-                    <div class="statistics">
-                        <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
-                        <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
-                    </div>
-                </div>
-            </div>
-            <div class="listings">
-                <div class="title active">
-                    鍌�
-                </div>
-                <div class="conter">
-                    <div class="mun">44</div>
-                    <div class="statistics">
-                        <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
-                        <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
-                    </div>
-                </div>
-            </div> -->
+        <div class="abnormal-center">
+          璧勯噾寮傚父椤圭洰锛�<span
+          style="font-size: 16px; font-weight: 700"
+        >0</span
+        >
         </div>
+        <div class="abnormal-center">
+          杩涘害寮傚父椤圭洰锛�<span
+          style="font-size: 16px; font-weight: 700"
+        >0</span
+        >
+        </div>
+      </div>
+      <div class="abnormal-img"></div>
     </div>
+    <div class="overview-div custom-min-width">
+      <div
+        v-for="i in calculation"
+        :key="i.text"
+        :style="setbcStyle(i.text)"
+        class="listings"
+        @click="showDetail(i.text)"
+      >
+        <div :style="setTextStyle(i.text)" class="title">
+          {{ i.text }}
+        </div>
+        <div class="conter">
+          <div :style="setTextColor(i.text)" class="mun">
+            {{ i.mun }}
+          </div>
+          <div class="statistics">
+            <div>{{ i.statistics }}</div>
+            <div :style="setTextColor(i.text)">
+              {{
+                i.statisticsMun
+              }}<span style="font-size: 18px">浜�</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!-- <div class="listings">
+          <div class="title">
+              鍌�
+          </div>
+          <div class="conter">
+              <div class="mun">44</div>
+              <div class="statistics">
+                  <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
+                  <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
+              </div>
+          </div>
+      </div>
+      <div class="listings">
+          <div class="title">
+              鍌�
+          </div>
+          <div class="conter">
+              <div class="mun">44</div>
+              <div class="statistics">
+                  <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
+                  <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
+              </div>
+          </div>
+      </div>
+      <div class="listings">
+          <div class="title">
+              鍌�
+          </div>
+          <div class="conter">
+              <div class="mun">44</div>
+              <div class="statistics">
+                  <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
+                  <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
+              </div>
+          </div>
+      </div>
+      <div class="listings">
+          <div class="title">
+              鍌�
+          </div>
+          <div class="conter">
+              <div class="mun">44</div>
+              <div class="statistics">
+                  <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
+                  <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
+              </div>
+          </div>
+      </div>
+      <div class="listings">
+          <div class="title">
+              鍌�
+          </div>
+          <div class="conter">
+              <div class="mun">44</div>
+              <div class="statistics">
+                  <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
+                  <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
+              </div>
+          </div>
+      </div>
+      <div class="listings">
+          <div class="title">
+              鍌�
+          </div>
+          <div class="conter">
+              <div class="mun">44</div>
+              <div class="statistics">
+                  <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
+                  <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
+              </div>
+          </div>
+      </div>
+      <div class="listings">
+          <div class="title active">
+              鍌�
+          </div>
+          <div class="conter">
+              <div class="mun">44</div>
+              <div class="statistics">
+                  <div>鍌ㄥ椤圭洰鏁伴噺缁熻</div>
+                  <div class="statistics-mun">1233<span style="font-size: 18px;">浜�</span></div>
+              </div>
+          </div>
+      </div> -->
+    </div>
+  </div>
 </template>
 
-<script >
+<script>
 export default {
-    name: "Index",
-    data() {
-        return {}
+  name: "Index",
+  data() {
+    return {}
+  },
+  props: {
+    calculation: Array,
+    countExceptionProjectData: Object,
+  },
+  watch: {
+    // calculation: {
+    //     handler(val) {
+    //         console.log("11111" + val);
+
+    //     },
+    // },
+    // countExceptionProjectData: {
+    //     handler(val) {
+    //         console.log("22222" + val);
+
+    //     },
+    // },
+  },
+  methods: {
+    setTextStyle(text) {
+      if (text === '鍌�') return 'background-color:#3369FF';
+      if (text === '寤�') return 'background-color:#64ADFD';
+      if (text === '鐪�') return 'background-color:#FF5E57';
+      if (text === '甯�') return 'background-color:#FFA83F';
+      if (text === '鏂�') return 'background-color:#5DD1E5';
+      if (text === '绔�') return 'background-color:#576BF5';
+      if (text === '鍘�') return 'background-color:#3369FF';
+      if (text === '鏅�') return 'background-color:#64ADFD';
+      return '';
     },
-    props: {
-        calculation: Array,
-        countExceptionProjectData: Object,
+
+    setTextColor(text) {
+      if (text === '鍌�') return 'color:#3369FF';
+      if (text === '寤�') return 'color:#64ADFD';
+      if (text === '鐪�') return 'color:#FF5E57';
+      if (text === '甯�') return 'color:#FFA83F';
+      if (text === '鏂�') return 'color:#5DD1E5';
+      if (text === '绔�') return 'color:#576BF5';
+      if (text === '鍘�') return 'color:#3369FF';
+      if (text === '鏅�') return 'color:#64ADFD';
+      return '';
     },
-    watch: {
-        // calculation: {
-        //     handler(val) {
-        //         console.log("11111" + val);
 
-        //     },
-        // },
-        // countExceptionProjectData: {
-        //     handler(val) {
-        //         console.log("22222" + val);
-
-        //     },
-        // },
+    setbcStyle(text) {
+      if (text === '鍌�') return 'background-color:#EAF0FF';
+      if (text === '寤�') return 'background-color:#EFF7FF';
+      if (text === '鐪�') return 'background-color:#FEEEED';
+      if (text === '甯�') return 'background-color:#FFF6EB';
+      if (text === '鏂�') return 'background-color:#EEFAFC';
+      if (text === '绔�') return 'background-color:#EEF0FE';
+      if (text === '鍘�') return 'background-color:#EAF0FF';
+      if (text === '鏅�') return 'background-color:#EFF7FF';
+      return '';
     },
-    methods: {
-        setTextStyle(text) {
-            if (text === '鍌�') return 'background-color:#3369FF';
-            if (text === '寤�') return 'background-color:#64ADFD';
-            if (text === '鐪�') return 'background-color:#FF5E57';
-            if (text === '甯�') return 'background-color:#FFA83F';
-            if (text === '鏂�') return 'background-color:#5DD1E5';
-            if (text === '绔�') return 'background-color:#576BF5';
-            if (text === '鍘�') return 'background-color:#3369FF';
-            if (text === '鏅�') return 'background-color:#64ADFD';
-            return '';
-        },
+    // 璺宠浆鍒板紓甯搁」鐩�
+    showAbnormal() {
+      console.log('璺宠浆寮傚父椤圭洰');
+      this.$router.push({
+        path: 'projectEngineering/project/abnormalProject'
+      });
+    },
 
-        setTextColor(text) {
-            if (text === '鍌�') return 'color:#3369FF';
-            if (text === '寤�') return 'color:#64ADFD';
-            if (text === '鐪�') return 'color:#FF5E57';
-            if (text === '甯�') return 'color:#FFA83F';
-            if (text === '鏂�') return 'color:#5DD1E5';
-            if (text === '绔�') return 'color:#576BF5';
-            if (text === '鍘�') return 'color:#3369FF';
-            if (text === '鏅�') return 'color:#64ADFD';
-            return '';
-        },
-
-        setbcStyle(text) {
-            if (text === '鍌�') return 'background-color:#EAF0FF';
-            if (text === '寤�') return 'background-color:#EFF7FF';
-            if (text === '鐪�') return 'background-color:#FEEEED';
-            if (text === '甯�') return 'background-color:#FFF6EB';
-            if (text === '鏂�') return 'background-color:#EEFAFC';
-            if (text === '绔�') return 'background-color:#EEF0FE';
-            if (text === '鍘�') return 'background-color:#EAF0FF';
-            if (text === '鏅�') return 'background-color:#EFF7FF';
-            return '';
-        },
-        // 璺宠浆鍒板紓甯搁」鐩�
-        showAbnormal() {
-            console.log('璺宠浆寮傚父椤圭洰');
-            this.$router.push({
-                path: 'projectEngineering/project/abnormalProject'
-            });
-        },
-
-        // 璺宠浆鍒板搴旂殑椤圭洰搴�
-        showDetail(text) {
-            console.log('璺宠浆鍒板搴旂殑椤圭洰搴�', text);
-            switch (text) {
-                case '鍌�':
-                    this.$router.push({
-                        path: '/projectEngineering/project/reserveProjects',
-                        query: {
-                            projectCategory: '1'
-                        }
-                    });
-                    break;
-                case '鏂�':
-                    this.$router.push({
-                        path: '/projectEngineering/project/previousProjects',
-                        query: {
-                            projectCategory: '2'
-                        }
-                    });
-                    break;
-                case '寤�':
-                    this.$router.push({
-                        path: '/projectEngineering/project/implementationProject',
-                        query: {
-                            projectCategory: '3'
-                        }
-                    });
-                    break;
-                case '绔�':
-                    this.$router.push({
-                        path: '/projectEngineering/project/completedProjects',
-                        query: {
-                            projectCategory: '4'
-                        }
-                    });
-                    break;
-                default:
-                    break;
+    // 璺宠浆鍒板搴旂殑椤圭洰搴�
+    showDetail(text) {
+      console.log('璺宠浆鍒板搴旂殑椤圭洰搴�', text);
+      switch (text) {
+        case '鍌�':
+          this.$router.push({
+            path: '/projectEngineering/project/reserveProjects',
+            query: {
+              projectCategory: '1'
             }
-        }
+          });
+          break;
+        case '鏂�':
+          this.$router.push({
+            path: '/projectEngineering/project/previousProjects',
+            query: {
+              projectCategory: '2'
+            }
+          });
+          break;
+        case '寤�':
+          this.$router.push({
+            path: '/projectEngineering/project/implementationProject',
+            query: {
+              projectCategory: '3'
+            }
+          });
+          break;
+        case '绔�':
+          this.$router.push({
+            path: '/projectEngineering/project/completedProjects',
+            query: {
+              projectCategory: '4'
+            }
+          });
+          break;
+        case '鐪�':
+          this.$router.push({
+            path: '/projectEngineering/project/projectLibrary',
+            query: {
+              importanceType: 'provincial_key'
+            }
+          });
+          break;
+        case '鍘�':
+          this.$router.push({
+            path: '/projectEngineering/project/projectLibrary',
+            query: {
+              importanceType: 'shehong_key'
+            }
+          });
+          break;
+        case '甯�':
+          this.$router.push({
+            path: '/projectEngineering/project/projectLibrary',
+            query: {
+              importanceType: 'suining_key'
+            }
+          });
+          break;
+        case '鏅�':
+          this.$router.push({
+            path: '/projectEngineering/project/projectLibrary',
+            query: {
+              importanceType: 'normal'
+            }
+          });
+          break;
+        default:
+          break;
+      }
     }
+  }
 }
 </script>
 <style lang="scss" scoped>
 .overview-bottom {
-    display: flex;
-    justify-content: space-between;
+  display: flex;
+  justify-content: space-between;
 
-    .abnormal {
-        position: relative;
-        width: 25%;
-        min-width: 342px;
-        height: 200px;
-        background-image: url(../../assets/images/b.png);
-        background-size: 100% auto;
-        border-radius: 6px;
-        font-size: 16px;
-        color: #ffffff;
-        padding: 20px 0 0 20px;
+  .abnormal {
+    position: relative;
+    width: 25%;
+    min-width: 342px;
+    height: 200px;
+    background-image: url(../../assets/images/b.png);
+    background-size: 100% auto;
+    border-radius: 6px;
+    font-size: 16px;
+    color: #ffffff;
+    padding: 20px 0 0 20px;
 
-        .abnormal-center {
-            margin-bottom: 15px;
-        }
-
-        .abnormal-img {
-            position: absolute;
-            right: 50px;
-            bottom: 20px;
-            width: 100px;
-            height: 100px;
-            background-image: url(../../assets/images/c.png);
-        }
+    .abnormal-center {
+      margin-bottom: 15px;
     }
 
-    .custom-min-width {
-        min-width: 1250px;
-        width: 1250px;
+    .abnormal-img {
+      position: absolute;
+      right: 50px;
+      bottom: 20px;
+      width: 100px;
+      height: 100px;
+      background-image: url(../../assets/images/c.png);
     }
+  }
 
-    .listings {
-        width: 300px;
-        height: 90px;
-        border-radius: 6px;
-        display: flex;
-        align-items: center;
-
-        .title {
-            width: 45px;
-            height: 45px;
-            font-size: 24px;
-            border-radius: 8px;
-            line-height: 45px;
-            text-align: center;
-            margin-left: 15px;
-            color: #ffffff;
-        }
-
-        .active {
-            background-color: #3369ff;
-        }
-
-        .conter {
-            margin-left: 10px;
-
-            .mun {
-                font-size: 30px;
-                line-height: 32px;
-            }
-
-            .statistics {
-                width: 200px;
-                display: flex;
-                justify-content: space-between;
-                align-items: center;
-
-                // .statistics-mun {
-                //     // color: #3369FF;
-                // }
-            }
-        }
-    }
-}
-.overview-div {
+  .custom-min-width {
     min-width: 1250px;
     width: 1250px;
-    gap: 10px;
-    flex-wrap: wrap;
+  }
+
+  .listings {
+    width: 300px;
+    height: 90px;
+    border-radius: 6px;
     display: flex;
-    margin-left: 10px;
+    align-items: center;
+
+    .title {
+      width: 45px;
+      height: 45px;
+      font-size: 24px;
+      border-radius: 8px;
+      line-height: 45px;
+      text-align: center;
+      margin-left: 15px;
+      color: #ffffff;
+    }
+
+    .active {
+      background-color: #3369ff;
+    }
+
+    .conter {
+      margin-left: 10px;
+
+      .mun {
+        font-size: 30px;
+        line-height: 32px;
+      }
+
+      .statistics {
+        width: 200px;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+
+        // .statistics-mun {
+        //     // color: #3369FF;
+        // }
+      }
+    }
+  }
+}
+
+.overview-div {
+  min-width: 1250px;
+  width: 1250px;
+  gap: 10px;
+  flex-wrap: wrap;
+  display: flex;
+  margin-left: 10px;
 }
 </style>
diff --git a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue b/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue
index cd47875..7b6c23b 100644
--- a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue
+++ b/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue
@@ -508,7 +508,7 @@
         this.$message.success('鑾峰彇鍦板潃鎴愬姛');
         this.dialogMap = false;
       } else {
-        this.$message.error('鑾峰彇鍧愭爣澶辫触');
+        this.$message.error('璇峰厛鐐瑰嚮鍦板浘閫夋嫨鍦板潃');
       }
     },
 
diff --git a/src/views/projectEngineering/projectLibrary/component/FileDialog.vue b/src/views/projectEngineering/projectLibrary/component/FileDialog.vue
index 357d39e..aee768c 100644
--- a/src/views/projectEngineering/projectLibrary/component/FileDialog.vue
+++ b/src/views/projectEngineering/projectLibrary/component/FileDialog.vue
@@ -77,6 +77,7 @@
   },
   data() {
     return {
+      queryParams: {},
       uploadRef: null,
       targetColumn: [],
       accept: `.zip`,
@@ -108,49 +109,7 @@
       }
     },
     handleDownloadFile() {
-      // fetch(`${process.env.VITE_APP_BASE_API}/project/info/export/template`, {
-      //   method: 'GET',
-      //   headers: self.upload.headers
-      // })
-      //   .then(response => response.blob())
-      //   .then(blob => {
-      //     const url = window.URL.createObjectURL(blob);
-      //     const a = document.createElement('a');
-      //     a.style.display = 'none';
-      //     a.href = url;
-      //     a.download = `椤圭洰鏂囦欢妯℃澘_${new Date().getTime()}.zip`;
-      //     document.body.appendChild(a);
-      //     a.click();
-      //     window.URL.revokeObjectURL(url);
-      //   })
-      //   .catch(error => {
-      //     console.error('鏂囦欢涓嬭浇澶辫触:', error);
-      //   });
-
-      const url = process.env.VUE_APP_BASE_API + '/project/info/export/template';
-      axios.post(url, [], { // 鍙戦�佷竴涓┖鏁扮粍鑰屼笉鏄┖瀵硅薄
-        responseType: 'blob', // 鍛婅瘔axios鏈熸湜鏈嶅姟鍣ㄨ繑鍥炵殑鏄痓lob绫诲瀷
-        headers: {
-          'Content-Type': 'application/json',
-          Authorization: "Bearer " + getToken()
-        }
-      })
-        .then(response => {
-          // 澶勭悊鏂囦欢涓嬭浇
-          const blob = new Blob([response.data], { type: 'application/zip' }); // 鎸囧畾MIME绫诲瀷涓簔ip
-          const url = window.URL.createObjectURL(blob);
-          const a = document.createElement('a');
-          a.style.display = 'none';
-          a.href = url;
-          a.download = `椤圭洰鏂囦欢妯℃澘_${new Date().getTime()}.zip`;
-          document.body.appendChild(a);
-          a.click();
-          document.body.removeChild(a);
-          window.URL.revokeObjectURL(url);
-        })
-        .catch(error => {
-          console.error('There was an error!', error);
-        });
+      this.download('/project/info/export/template', {}, `椤圭洰鏂囦欢妯℃澘_${new Date().getTime()}.zip`)
     },
     submitFileForm() {
       if (this.uploadRef) {
@@ -161,15 +120,17 @@
       this.$emit('fileDialogCancel');
     },
     handleDownloadTargetList() {
-      console.log('瀵煎嚭鐩爣鍒楄〃鍐呭', this.currentColumns);
-      this.targetColumn = this.currentColumns.filter(item => item.visible);
+      this.queryParams.fieldList = this.currentColumns.filter(item => item.visible).map(item =>item.id);
+      this.queryParams.requireFile = false;
+      this.download('project/info/export', {
+          ...this.queryParams
+        }, `椤圭洰搴�${new Date().getTime()}.xlsx`)
     }
   },
   mounted() {
     this.uploadRef = this.$refs.uploadRef;
   },
   created() {
-
     this.isFileDialogVisible = this.fileDialogVisible;
   }
 };
diff --git a/src/views/projectEngineering/projectLibrary/index.vue b/src/views/projectEngineering/projectLibrary/index.vue
index 1a6a439..6abcd02 100644
--- a/src/views/projectEngineering/projectLibrary/index.vue
+++ b/src/views/projectEngineering/projectLibrary/index.vue
@@ -227,6 +227,10 @@
             <template v-if="item.slotName === 'investType'">
               <dict-tag :options="dict.type.sys_investment_type" :value="scope.row.investType"/>
             </template>
+            <!-- investType鎻掓Ы -->
+            <template v-if="item.slotName === 'importanceType'">
+              <dict-tag :options="dict.type.sys_key_categories" :value="scope.row.importanceType"/>
+            </template>
             <!-- planStartTime -->
             <template v-if="item.slotName === 'planStartTime'">
               {{ scope.row.planStartTime ? scope.row.planStartTime.split('-')[0] + '骞�' : '' }}
@@ -366,6 +370,7 @@
     };
   },
   created() {
+    this.queryParams.importanceType = this.$route.query.importanceType;
     const projectCategory = this.$route.query.projectCategory;
     if (!projectCategory || projectCategory === '1') {
       this.isReserve = true;
@@ -394,7 +399,7 @@
     },
     handleDetail(row) {
       this.removeStore();
-      this.$router.push({path: '/projectEngineering/project/ProjectDetails', query: {projectId: row.id}});
+      this.$router.push({path: '/projectEngineering/project/ProjectDetails', query: {projectId: row.id,disabled: 'true' }});
     },
     // 鏂板椤甸潰
     add() {
@@ -544,8 +549,8 @@
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal.confirm('鏄惁纭鍒犻櫎椤圭洰绠$悊鍩虹淇℃伅缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function () {
-        return delInfo(ids);
+      this.$modal.confirm('鏄惁纭鍒犻櫎椤圭洰:"' + row.projectName + '"鐨勬暟鎹」锛�').then(function () {
+        return delProject(ids);
       }).then(() => {
         this.getList();
         this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
diff --git a/src/views/projectEngineering/projectLibrary/list.js b/src/views/projectEngineering/projectLibrary/list.js
index d187287..0da3a9a 100644
--- a/src/views/projectEngineering/projectLibrary/list.js
+++ b/src/views/projectEngineering/projectLibrary/list.js
@@ -19,7 +19,7 @@
   {id: 'area', label: '琛屾斂鍖哄垝', visible: false},
   {id: 'managementCentralizationList', label: '绠$悊褰掑彛', visible: false},
   {id: 'projectApprovalType', label: '椤圭洰瀹℃壒绫诲瀷', visible: false},
-  {id: 'importanceType', label: '閲嶇偣鍒嗙被', visible: false},
+  {id: 'importanceType', label: '閲嶇偣鍒嗙被', slotName: 'importanceType', visible: false},
   {id: 'setTime', label: '绔嬮」鏃堕棿', visible: false},
   {id: 'planCompleteTime', label: '璁″垝绔e伐鏃堕棿', visible: false},
   {id: 'winUnit', label: '涓爣鍗曚綅', visible: false},
@@ -87,90 +87,90 @@
   {id: 'otherInvestmentTotal', label: '鍏朵粬鎶曡祫', visible: false}
 ];
 export const currentRest = [
-  { id: 'projectName', label: '椤圭洰鍚嶇О', visible: true },
-  { id: 'projectOwnerUnit', label: '涓氫富鍗曚綅', visible: true },
-  { id: 'projectColorCode', label: '椤圭洰鐮�', slotName: 'projectColorCode', visible: true },
-  { id: 'projectCode', label: '椤圭洰浠g爜', visible: true },
-  { id: 'projectType', label: '椤圭洰绫诲瀷', slotName: 'projectType', visible: true },
-  { id: 'projectPhase', label: '椤圭洰闃舵', visible: true },
-  { id: 'totalInvestment', label: '鎬绘姇璧勯', visible: true },
-  { id: 'yearInvestAmount', label: '鏈勾璁″垝鎶曡祫', visible: true },
-  { id: 'planStartTime', label: '椤圭洰骞翠唤', slotName: 'planStartTime', visible: true },
-  { id: 'projectStatus', label: '椤圭洰鐘舵��', slotName: 'projectStatus', visible: true },
-  { id: 'investType', label: '鎶曡祫绫诲埆', slotName: 'investType', visible: true },
-  { id: 'content', label: '寤鸿鍐呭', visible: false },
-  { id: 'fundType', label: '璧勯噾绫诲瀷', visible: false },
-  { id: 'projectContactPerson', label: '椤圭洰鑱旂郴浜�', visible: false },
-  { id: 'contact', label: '鑱旂郴鏂瑰紡', visible: false },
-  { id: 'engineeringIdList', label: '鍏宠仈宸ョ▼', visible: false },
-  { id: 'competentDepartmentList', label: '涓荤閮ㄩ棬', visible: false },
-  { id: 'area', label: '琛屾斂鍖哄垝', visible: false },
-  { id: 'managementCentralizationList', label: '绠$悊褰掑彛', visible: false },
-  { id: 'projectApprovalType', label: '椤圭洰瀹℃壒绫诲瀷', visible: false },
-  { id: 'importanceType', label: '閲嶇偣鍒嗙被', visible: false },
-  { id: 'setTime', label: '绔嬮」鏃堕棿', visible: false },
-  { id: 'planCompleteTime', label: '璁″垝绔e伐鏃堕棿', visible: false },
-  { id: 'winUnit', label: '涓爣鍗曚綅', visible: false },
-  { id: 'winAmount', label: '涓爣閲戦', visible: false },
-  { id: 'winTime', label: '涓爣鏃堕棿', visible: false },
-  { id: 'year', label: '骞村害鎶曡祫璁″垝', visible: false },
-  { id: 'address', label: '椤圭洰鍦板潃', visible: false },
-  { id: 'projectBudget', label: '椤圭洰棰勭畻', visible: false },
-  { id: 'beCrossRegion', label: '寤鸿鍦扮偣鏄惁璺ㄥ煙', visible: false },
-  { id: 'constructionLocation', label: '椤圭洰寤鸿鍦扮偣', visible: false },
-  { id: 'detailedAddress', label: '寤鸿璇︾粏鍦板潃', visible: false },
-  { id: 'beCompensationProject', label: '鏄惁鏄ˉ鐮侀」鐩�', visible: false },
-  { id: 'compensationReason', label: '琛ョ爜鍘熷洜', visible: false },
-  { id: 'plannedStartDate', label: '璁″垝寮�宸ユ椂闂�', visible: false },
-  { id: 'expectedCompletionDate', label: '鎷熷缓鎴愭椂闂�', visible: false },
-  { id: 'nationalIndustryClassification', label: '鍥介檯琛屼笟鍒嗙被', visible: false },
-  { id: 'industryClassification', label: '鎵�灞炶涓氬垎绫�', visible: false },
-  { id: 'projectNature', label: '椤圭洰寤烘垚鎬ц川', visible: false },
-  { id: 'projectAttribute', label: '椤圭洰灞炴��', visible: false },
-  { id: 'useEarth', label: '鏄惁浣跨敤鍦熷湴', visible: false },
-  { id: 'contentScale', label: '涓昏寤鸿鍐呭鍙婅妯�', visible: false },
-  { id: 'code', label: '寤虹骞冲彴浠g爜', visible: false },
-  { id: 'projectUnit', label: '椤圭洰鍗曚綅', visible: false },
-  { id: 'projectUnitType', label: '椤圭洰鍗曚綅绫诲瀷', visible: false },
-  { id: 'registrationType', label: '鐧昏娉ㄥ唽绫诲瀷', visible: false },
-  { id: 'holdingSituation', label: '鎺ц偂鎯呭喌', visible: false },
-  { id: 'certificateType', label: '璇佺収绫诲瀷', visible: false },
-  { id: 'certificateNumber', label: '璇佷欢鍙风爜', visible: false },
-  { id: 'registeredAddress', label: '娉ㄥ唽鍦板潃', visible: false },
-  { id: 'registeredCapital', label: '娉ㄥ唽璧勯噾', visible: false },
-  { id: 'legal_representative', label: '娉曚汉浠h〃', visible: false },
-  { id: 'fixedPhone', label: '鍥哄畾鐢佃瘽', visible: false },
-  { id: 'legalPersonIdcard', label: '娉曚汉韬唤璇佸彿', visible: false },
-  { id: 'projectContactPerson', label: '椤圭洰鑱旂郴浜�', visible: false },
-  { id: 'phone', label: '绉诲姩鐢佃瘽', visible: false },
-  { id: 'contactIdcard', label: '鑱旂郴浜鸿韩浠借瘉鍙�', visible: false },
-  { id: 'wechat', label: '寰俊鍙�', visible: false },
-  { id: 'contactAddress', label: '鑱旂郴浜洪�氳鍦板潃', visible: false },
-  { id: 'postCode', label: '閭斂缂栫爜', visible: false },
-  { id: 'email', label: '鐢靛瓙閭', visible: false },
-  { id: 'totalInvestment', label: '椤圭洰鎬绘姇璧勯', visible: false },
-  { id: 'principal', label: '椤圭洰鏈噾', visible: false },
-  { id: 'governmentInvestmentTotal', label: '鏀垮簻鎶曡祫', visible: false },
-  { id: 'centralInvestmentTotal', label: '涓ぎ鎶曡祫', visible: false },
-  { id: 'centralBudgetInvestment', label: '涓ぎ棰勭畻鎶曡祫', visible: false },
-  { id: 'centralFiscalInvestment', label: '涓ぎ璐㈡斂', visible: false },
-  { id: 'centralSpecialBondInvestment', label: '涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲�', visible: false },
-  { id: 'centralSpecialFundInvestment', label: '涓ぎ涓撻」寤鸿鍩洪噾', visible: false },
-  { id: 'provincialInvestmentTotal', label: '鐪佺骇鎶曡祫', visible: false },
-  { id: 'provincialBudgetInvestment', label: '鐪侀绠楀唴鎶曡祫', visible: false },
-  { id: 'provincialFiscalInvestment', label: '鐪佽储鏀挎�у缓璁炬姇璧�', visible: false },
-  { id: 'provincialSpecialFundInvestment', label: '鐪佷笓椤瑰缓璁捐祫閲�', visible: false },
-  { id: 'cityInvestmentTotal', label: '甯�(宸�)鎶曡祫', visible: false },
-  { id: 'cityBudgetInvestment', label: '甯�(宸�)棰勭畻鍐呮姇璧�', visible: false },
-  { id: 'cityFiscalInvestment', label: '甯�(宸�)璐㈡斂鎬ф姇璧�', visible: false },
-  { id: 'citySpecialFundInvestment', label: '甯�(宸�)涓撻」璧勯噾', visible: false },
-  { id: 'countyInvestmentTotal', label: '鍘�(甯傘�佸尯)鎶曡祫', visible: false },
-  { id: 'countyBudgetInvestment', label: '鍖�(鍘�)棰勭畻鍐呮姇璧�', visible: false },
-  { id: 'countyFiscalInvestment', label: '鍖猴紙鍘匡級璐㈡斂鎬у缓璁捐祫閲�', visible: false },
-  { id: 'countySpecialFundInvestment', label: '鍖�(鍘�)涓撻」璧勯噾', visible: false },
-  { id: 'domesticLoanTotal', label: '鍥藉唴璐锋', visible: false },
-  { id: 'bankLoan', label: '閾惰璐锋', visible: false },
-  { id: 'foreignInvestmentTotal', label: '澶栧晢鎶曡祫', visible: false },
-  { id: 'enterpriseSelfRaisedTotal', label: '浼佷笟鑷', visible: false },
-  { id: 'otherInvestmentTotal', label: '鍏朵粬鎶曡祫', visible: false }
+  {id: 'projectName', label: '椤圭洰鍚嶇О', visible: true},
+  {id: 'projectOwnerUnit', label: '涓氫富鍗曚綅', visible: true},
+  {id: 'projectColorCode', label: '椤圭洰鐮�', slotName: 'projectColorCode', visible: true},
+  {id: 'projectCode', label: '椤圭洰浠g爜', visible: true},
+  {id: 'projectType', label: '椤圭洰绫诲瀷', slotName: 'projectType', visible: true},
+  {id: 'projectPhase', label: '椤圭洰闃舵', visible: true},
+  {id: 'totalInvestment', label: '鎬绘姇璧勯', visible: true},
+  {id: 'yearInvestAmount', label: '鏈勾璁″垝鎶曡祫', visible: true},
+  {id: 'planStartTime', label: '椤圭洰骞翠唤', slotName: 'planStartTime', visible: true},
+  {id: 'projectStatus', label: '椤圭洰鐘舵��', slotName: 'projectStatus', visible: true},
+  {id: 'investType', label: '鎶曡祫绫诲埆', slotName: 'investType', visible: true},
+  {id: 'content', label: '寤鸿鍐呭', visible: false},
+  {id: 'fundType', label: '璧勯噾绫诲瀷', visible: false},
+  {id: 'projectContactPerson', label: '椤圭洰鑱旂郴浜�', visible: false},
+  {id: 'contact', label: '鑱旂郴鏂瑰紡', visible: false},
+  {id: 'engineeringIdList', label: '鍏宠仈宸ョ▼', visible: false},
+  {id: 'competentDepartmentList', label: '涓荤閮ㄩ棬', visible: false},
+  {id: 'area', label: '琛屾斂鍖哄垝', visible: false},
+  {id: 'managementCentralizationList', label: '绠$悊褰掑彛', visible: false},
+  {id: 'projectApprovalType', label: '椤圭洰瀹℃壒绫诲瀷', visible: false},
+  {id: 'importanceType', label: '閲嶇偣鍒嗙被', slotName: 'importanceType', visible: false},
+  {id: 'setTime', label: '绔嬮」鏃堕棿', visible: false},
+  {id: 'planCompleteTime', label: '璁″垝绔e伐鏃堕棿', visible: false},
+  {id: 'winUnit', label: '涓爣鍗曚綅', visible: false},
+  {id: 'winAmount', label: '涓爣閲戦', visible: false},
+  {id: 'winTime', label: '涓爣鏃堕棿', visible: false},
+  {id: 'year', label: '骞村害鎶曡祫璁″垝', visible: false},
+  {id: 'address', label: '椤圭洰鍦板潃', visible: false},
+  {id: 'projectBudget', label: '椤圭洰棰勭畻', visible: false},
+  {id: 'beCrossRegion', label: '寤鸿鍦扮偣鏄惁璺ㄥ煙', visible: false},
+  {id: 'constructionLocation', label: '椤圭洰寤鸿鍦扮偣', visible: false},
+  {id: 'detailedAddress', label: '寤鸿璇︾粏鍦板潃', visible: false},
+  {id: 'beCompensationProject', label: '鏄惁鏄ˉ鐮侀」鐩�', visible: false},
+  {id: 'compensationReason', label: '琛ョ爜鍘熷洜', visible: false},
+  {id: 'plannedStartDate', label: '璁″垝寮�宸ユ椂闂�', visible: false},
+  {id: 'expectedCompletionDate', label: '鎷熷缓鎴愭椂闂�', visible: false},
+  {id: 'nationalIndustryClassification', label: '鍥介檯琛屼笟鍒嗙被', visible: false},
+  {id: 'industryClassification', label: '鎵�灞炶涓氬垎绫�', visible: false},
+  {id: 'projectNature', label: '椤圭洰寤烘垚鎬ц川', visible: false},
+  {id: 'projectAttribute', label: '椤圭洰灞炴��', visible: false},
+  {id: 'useEarth', label: '鏄惁浣跨敤鍦熷湴', visible: false},
+  {id: 'contentScale', label: '涓昏寤鸿鍐呭鍙婅妯�', visible: false},
+  {id: 'code', label: '寤虹骞冲彴浠g爜', visible: false},
+  {id: 'projectUnit', label: '椤圭洰鍗曚綅', visible: false},
+  {id: 'projectUnitType', label: '椤圭洰鍗曚綅绫诲瀷', visible: false},
+  {id: 'registrationType', label: '鐧昏娉ㄥ唽绫诲瀷', visible: false},
+  {id: 'holdingSituation', label: '鎺ц偂鎯呭喌', visible: false},
+  {id: 'certificateType', label: '璇佺収绫诲瀷', visible: false},
+  {id: 'certificateNumber', label: '璇佷欢鍙风爜', visible: false},
+  {id: 'registeredAddress', label: '娉ㄥ唽鍦板潃', visible: false},
+  {id: 'registeredCapital', label: '娉ㄥ唽璧勯噾', visible: false},
+  {id: 'legal_representative', label: '娉曚汉浠h〃', visible: false},
+  {id: 'fixedPhone', label: '鍥哄畾鐢佃瘽', visible: false},
+  {id: 'legalPersonIdcard', label: '娉曚汉韬唤璇佸彿', visible: false},
+  {id: 'projectContactPerson', label: '椤圭洰鑱旂郴浜�', visible: false},
+  {id: 'phone', label: '绉诲姩鐢佃瘽', visible: false},
+  {id: 'contactIdcard', label: '鑱旂郴浜鸿韩浠借瘉鍙�', visible: false},
+  {id: 'wechat', label: '寰俊鍙�', visible: false},
+  {id: 'contactAddress', label: '鑱旂郴浜洪�氳鍦板潃', visible: false},
+  {id: 'postCode', label: '閭斂缂栫爜', visible: false},
+  {id: 'email', label: '鐢靛瓙閭', visible: false},
+  {id: 'totalInvestment', label: '椤圭洰鎬绘姇璧勯', visible: false},
+  {id: 'principal', label: '椤圭洰鏈噾', visible: false},
+  {id: 'governmentInvestmentTotal', label: '鏀垮簻鎶曡祫', visible: false},
+  {id: 'centralInvestmentTotal', label: '涓ぎ鎶曡祫', visible: false},
+  {id: 'centralBudgetInvestment', label: '涓ぎ棰勭畻鎶曡祫', visible: false},
+  {id: 'centralFiscalInvestment', label: '涓ぎ璐㈡斂', visible: false},
+  {id: 'centralSpecialBondInvestment', label: '涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲�', visible: false},
+  {id: 'centralSpecialFundInvestment', label: '涓ぎ涓撻」寤鸿鍩洪噾', visible: false},
+  {id: 'provincialInvestmentTotal', label: '鐪佺骇鎶曡祫', visible: false},
+  {id: 'provincialBudgetInvestment', label: '鐪侀绠楀唴鎶曡祫', visible: false},
+  {id: 'provincialFiscalInvestment', label: '鐪佽储鏀挎�у缓璁炬姇璧�', visible: false},
+  {id: 'provincialSpecialFundInvestment', label: '鐪佷笓椤瑰缓璁捐祫閲�', visible: false},
+  {id: 'cityInvestmentTotal', label: '甯�(宸�)鎶曡祫', visible: false},
+  {id: 'cityBudgetInvestment', label: '甯�(宸�)棰勭畻鍐呮姇璧�', visible: false},
+  {id: 'cityFiscalInvestment', label: '甯�(宸�)璐㈡斂鎬ф姇璧�', visible: false},
+  {id: 'citySpecialFundInvestment', label: '甯�(宸�)涓撻」璧勯噾', visible: false},
+  {id: 'countyInvestmentTotal', label: '鍘�(甯傘�佸尯)鎶曡祫', visible: false},
+  {id: 'countyBudgetInvestment', label: '鍖�(鍘�)棰勭畻鍐呮姇璧�', visible: false},
+  {id: 'countyFiscalInvestment', label: '鍖猴紙鍘匡級璐㈡斂鎬у缓璁捐祫閲�', visible: false},
+  {id: 'countySpecialFundInvestment', label: '鍖�(鍘�)涓撻」璧勯噾', visible: false},
+  {id: 'domesticLoanTotal', label: '鍥藉唴璐锋', visible: false},
+  {id: 'bankLoan', label: '閾惰璐锋', visible: false},
+  {id: 'foreignInvestmentTotal', label: '澶栧晢鎶曡祫', visible: false},
+  {id: 'enterpriseSelfRaisedTotal', label: '浼佷笟鑷', visible: false},
+  {id: 'otherInvestmentTotal', label: '鍏朵粬鎶曡祫', visible: false}
 ];
diff --git a/src/views/projectEngineering/projectLibrary/projectDetails.vue b/src/views/projectEngineering/projectLibrary/projectDetails.vue
index 593af4b..6494775 100644
--- a/src/views/projectEngineering/projectLibrary/projectDetails.vue
+++ b/src/views/projectEngineering/projectLibrary/projectDetails.vue
@@ -101,6 +101,11 @@
       this.$refs.childRef.reset();
     },
   },
+  mounted() {
+    if(this.$route.query.disabled){
+      this.disabled = true
+    }
+  }
 };
 </script>
 
diff --git a/src/views/projectManage/plan/index.vue b/src/views/projectManage/plan/index.vue
index ac6e35f..b4b6913 100644
--- a/src/views/projectManage/plan/index.vue
+++ b/src/views/projectManage/plan/index.vue
@@ -301,7 +301,6 @@
           }
         })
       })
-
     }
   }
 };
diff --git a/src/views/projectManage/plan/planInfo.vue b/src/views/projectManage/plan/planInfo.vue
index bf620a5..47f9ae0 100644
--- a/src/views/projectManage/plan/planInfo.vue
+++ b/src/views/projectManage/plan/planInfo.vue
@@ -22,12 +22,17 @@
                 </el-table-column>
                 <el-table-column prop="startTime" label="璁″垝寮�濮嬫椂闂�" width="160" align="center">
                   <template #default="scope">
-                    <el-date-picker v-model="scope.row.startTime" type="date" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 130px" />
+                    <el-date-picker v-model="scope.row.startTime"
+                                    type="date"
+                                    placeholder="閫夋嫨鏃ユ湡"
+                                    size="small"
+                                    style="width: 130px"
+                                    value-format="yyyy-MM-dd HH:mm:ss"/>
                   </template>
                 </el-table-column>
                 <el-table-column prop="endTime" label="璁″垝瀹屾垚鏃堕棿" width="160" align="center">
                   <template #default="scope">
-                    <el-date-picker v-model="scope.row.endTime" type="date" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 130px" />
+                    <el-date-picker v-model="scope.row.endTime" type="date" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 130px" value-format="yyyy-MM-dd HH:mm:ss"/>
                   </template>
                 </el-table-column>
                 <el-table-column :label="planInfoData.planTimeFlag === 0 ? '鏈堝害' : planInfoData.planTimeFlag === 1 ? '瀛e害' : '骞村害' " width="100" align="center">
@@ -45,7 +50,7 @@
               </el-table>
               <div style="display: flex; align-items: center;">
                 <h1 style="margin: 0;">
-                  鎴鏈鍒掕繘搴﹀畬鎴愭姇璧勶紙涓囧厓锛夛細
+                  璁″垝鎶曡祫閲戦锛堜竾鍏冿級锛�
                 </h1>
                 <el-input
                   placeholder="璇疯緭鍏ユ姇璧勯噾棰�"
@@ -72,7 +77,7 @@
 import { getPlanInfoData, addPlanInfo, savePlanInfo } from "@/api/projectPlan/index";
 
 export default {
-  name: "PlanInfo",
+  name: "planInfo",
   data() {
     return {
       loading: true,
@@ -139,6 +144,7 @@
       }
       addPlanInfo(this.addData).then(response => {
         this.handlePlanRecord()
+        this.$message.success('涓婃姤鎴愬姛');
       })
     },
     // 閲嶇疆褰撳墠琛屾暟鎹�
diff --git a/src/views/projectManage/plan/planInfoCheck.vue b/src/views/projectManage/plan/planInfoCheck.vue
index 0a3ed72..60dc8fd 100644
--- a/src/views/projectManage/plan/planInfoCheck.vue
+++ b/src/views/projectManage/plan/planInfoCheck.vue
@@ -7,7 +7,7 @@
         <el-card shadow="hover">
           <el-row :gutter="20">
             <el-col :span="24" class="mb-4">
-              <el-button type="primary" size="small" @click="handlePlanRecord" style="float: right; margin-bottom: 10px;">杩斿洖</el-button>
+              <el-button type="primary" size="small" @click="handlePlanRecord" style="float: right; margin-bottom: 10px; margin-left: 10px">杩斿洖</el-button>
               <!--椤圭洰璁″垝椤�-->
               <el-table :data="tableData" border stripe style="width: 100%; margin-bottom: 20px">
                 <el-table-column prop="index" label="搴忓彿" width="50" align="center">
@@ -112,13 +112,11 @@
                     <el-input type="textarea" v-model="scope.row.manageApprovalReply" placeholder="璇疯緭鍏�" rows="3" />
                   </template>
                 </el-table-column>
-                <el-table-column fixed="right" label="鎿嶄綔" align="center">
-                  <template #default="scope" v-if="!projectInfoData.managerFlag">
-                    <el-button size="small" @click="handleReply(scope.$index)">鍥炲</el-button>
-                    <el-button size="small" type="danger" @click="handleReset(scope.$index)">閲嶇疆</el-button>
-                  </template>
-                  <template v-if="projectInfoData.managerFlag" #default="scope">
-                    <el-button size="small" @click="handleSave(scope.$index)">淇濆瓨</el-button>
+                <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+                  <template #default="scope">
+                    <el-button v-show="!projectInfoData.managerFlag" size="small" @click="handleReply(scope.$index)">鍥炲</el-button>
+                    <el-button v-show="!projectInfoData.managerFlag" size="small" type="danger" @click="handleReset(scope.$index)">閲嶇疆</el-button>
+                    <el-button v-show="projectInfoData.managerFlag" size="small" @click="handleSave(scope.$index)">淇濆瓨</el-button>
                   </template>
                 </el-table-column>
               </el-table>
@@ -163,7 +161,7 @@
 import { getPlanInfoData, delayPlanInfo, getDepartmentApproval, getPlanLog, replyExamine, saveExamine } from "@/api/projectPlan/index";
 
 export default {
-  name: "PlanInfoCheck",
+  name: "planInfoCheck",
   data() {
     return {
       loading: true,
@@ -258,7 +256,7 @@
     },
     /** 杩斿洖椤圭洰璁″垝璁板綍 */
     handlePlanRecord() {
-      this.$router.push({
+      this.$router.replace({
         path: '/projectManage/planRecord',
         query: {
           data: this.projectInfoData
diff --git a/src/views/projectManage/plan/planRecord.vue b/src/views/projectManage/plan/planRecord.vue
index dc9e845..ed81999 100644
--- a/src/views/projectManage/plan/planRecord.vue
+++ b/src/views/projectManage/plan/planRecord.vue
@@ -41,7 +41,7 @@
             <el-col :span="24" class="mb-4" style="margin-top: 20px">
               <div style="margin-bottom: 10px">
                 <span style="font-size: 20px; font-weight: bold;">瀛e害璁″垝</span>
-                <el-button type="primary" size="small" style="float: right" @click="handleAddSeasonPlan" v-show="!projectInfoData.managerFlag">鏌ョ湅</el-button>
+                <el-button type="primary" size="small" style="float: right" @click="handleAddSeasonPlan" v-show="!projectInfoData.managerFlag">鏂板</el-button>
               </div>
               <el-table  :data="seasonRecords" border stripe style="width: 100%; margin-bottom: 20px">
                 <!-- 琛ㄥご -->
@@ -220,7 +220,6 @@
     },
     // 鏌ョ湅椤圭洰璁″垝椤�
     handleCheckPlanInfo(row) {
-      console.log(this.projectInfoData);
       this.$router.push({
         path: '/projectManage/planInfoCheck',
         query: {
diff --git a/src/views/projectManage/progress/index.vue b/src/views/projectManage/progress/index.vue
index 514064a..1e85d12 100644
--- a/src/views/projectManage/progress/index.vue
+++ b/src/views/projectManage/progress/index.vue
@@ -189,7 +189,7 @@
 </template>
 
 <script>
-import { getList, getRecord, delRecord, addRecord, updateRecord } from "@/api/projectPlan/index";
+import { getList, getManagerFlag } from "@/api/projectPlan/index";
 
 export default {
   name: "Index",
@@ -280,46 +280,7 @@
       this.open = true;
       this.title = "娣诲姞椤圭洰璁″垝璁板綍";
     },
-    /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getRecord(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "淇敼椤圭洰璁″垝璁板綍";
-      });
-    },
-    /** 鎻愪氦鎸夐挳 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateRecord(this.form).then(response => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addRecord(this.form).then(response => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('鏄惁纭鍒犻櫎椤圭洰璁″垝璁板綍缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
-        return delRecord(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      }).catch(() => {});
-    },
+
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
       this.download('plan/record/export', {
@@ -328,11 +289,16 @@
     },
     /** 鏌ョ湅椤圭洰璁″垝璁板綍 */
     handlePlanRecord(row) {
-      this.$router.push({
-        path: '/projectManage/progressRecord',
-        query: {
-          data: JSON.stringify(row)
-        }
+      // 鑾峰緱涓荤鏍囧織
+      getManagerFlag(row.id).then(res => {
+        this.managerFlag = res.data;
+        row.managerFlag = this.managerFlag;
+        this.$router.push({
+          path: '/projectManage/progressRecord',
+          query: {
+            data: row
+          }
+        })
       })
     }
   }
diff --git a/src/views/projectManage/progress/progressRecord.vue b/src/views/projectManage/progress/progressRecord.vue
index 566a7e9..c07558c 100644
--- a/src/views/projectManage/progress/progressRecord.vue
+++ b/src/views/projectManage/progress/progressRecord.vue
@@ -31,8 +31,9 @@
                     <el-table-column prop="endTime" label="璁″垝瀹屾垚鏃堕棿" align="center" />
                     <el-table-column fixed="right" label="鎿嶄綔" align="center">
                       <template slot-scope="scope">
-                        <el-button type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">杩涘害涓婃姤</el-button>
-                        <el-button type="primary" size="small" @click="handleCheckProgress(scope.row)">鏌ョ湅</el-button>
+                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">杩涘害涓婃姤</el-button>
+                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">鏌ョ湅</el-button>
+                        <el-button v-if="projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">瀹℃牳</el-button>
                       </template>
                     </el-table-column>
                   </el-table>
@@ -59,8 +60,9 @@
                     <el-table-column prop="endTime" label="璁″垝瀹屾垚鏃堕棿" align="center" />
                     <el-table-column fixed="right" label="鎿嶄綔" align="center">
                       <template slot-scope="scope">
-                        <el-button type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">杩涘害涓婃姤</el-button>
-                        <el-button type="primary" size="small" @click="handleCheckProgress(scope.row)">鏌ョ湅</el-button>
+                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">杩涘害涓婃姤</el-button>
+                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">鏌ョ湅</el-button>
+                        <el-button v-if="projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">瀹℃牳</el-button>
                       </template>
                     </el-table-column>
                   </el-table>
@@ -87,8 +89,9 @@
                     <el-table-column prop="endTime" label="璁″垝瀹屾垚鏃堕棿" align="center" />
                     <el-table-column fixed="right" label="鎿嶄綔" align="center">
                       <template slot-scope="scope">
-                        <el-button type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">杩涘害涓婃姤</el-button>
-                        <el-button type="primary" size="small" @click="handleCheckProgress(scope.row)">鏌ョ湅</el-button>
+                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" :disabled="scope.row.progressStatus === 1 || scope.row.progressStatus === 3" @click="handleProgressReport(scope.row)">杩涘害涓婃姤</el-button>
+                        <el-button v-if="!projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">鏌ョ湅</el-button>
+                        <el-button v-if="projectInfoData.managerFlag" type="primary" size="small" @click="handleCheckProgress(scope.row)">瀹℃牳</el-button>
                       </template>
                     </el-table-column>
                   </el-table>
@@ -130,42 +133,57 @@
                 <el-date-picker v-model="progressReportData.endTime" type="date" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 130px" readonly/>
               </el-form-item>
               <el-form-item label="瀹為檯瀹屾垚鏃堕棿锛�" :label-width="formLabelWidth">
-                <el-date-picker v-model="progressReportData.actualStartTime" type="date" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 130px" :readonly="checkFlag"/>
+                <el-date-picker v-model="progressReportData.actualStartTime" type="date" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 130px" :readonly="checkFlag && projectInfoData.managerFlag"/>
                 鑷�
-                <el-date-picker v-model="progressReportData.actualEndTime" type="date" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 130px" :readonly="checkFlag"/>
+                <el-date-picker v-model="progressReportData.actualEndTime" type="date" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 130px" :readonly="checkFlag && projectInfoData.managerFlag"/>
               </el-form-item>
               <el-form-item label="杩涘害鎯呭喌锛�" :label-width="formLabelWidth">
-                <el-input type="textarea" v-model="progressReportData.progressStatus" placeholder="璇疯緭鍏�" rows="3" :readonly="checkFlag" />
+                <el-input type="textarea" v-model="progressReportData.progressStatus" placeholder="璇疯緭鍏�" rows="3" :readonly="checkFlag && projectInfoData.managerFlag" />
               </el-form-item>
-              <el-form-item prop="fileList" label="宸ョ▼杩涘害闄勪欢锛�" :label-width="formLabelWidth">
+              <el-form-item label="宸ョ▼杩涘害闄勪欢锛�" :label-width="formLabelWidth">
                 <file-upload v-model="progressReportData.fileList"
                              :fileType="accept"
                              :isShowTip="false"/>
               </el-form-item>
               <el-form-item label="鎴鏈姤鍛婂畬鎴愭姇璧勶細" :label-width="formLabelWidth">
-                <el-input v-model="progressReportData.actualInvest" type="number" :readonly="checkFlag" />
+                <el-input v-model="progressReportData.actualInvest" type="number" :readonly="checkFlag && projectInfoData.managerFlag" />
               </el-form-item>
               <el-form-item label="涓婄骇瀹℃牳锛�" :label-width="formLabelWidth">
-                <el-input :value="progressReportData.departmentExamine === 0 ? '鍚屾剰' : progressReportData.departmentExamine === 1 ? '椹冲洖' : '鏈鏍�'" readonly />
+                <el-input v-if="!projectInfoData.managerFlag" :value="progressReportData.departmentExamine === 0 ? '鍚屾剰' : progressReportData.departmentExamine === 1 ? '椹冲洖' : '鏈鏍�'" readonly />
+                <el-select v-if="projectInfoData.managerFlag" v-model="progressReportData.departmentExamine" placeholder="璇烽�夋嫨" size="small" clearable>
+                  <el-option label="鍚屾剰" :value="0"></el-option>
+                  <el-option label="椹冲洖" :value="1"></el-option>
+                  <el-option label="璇烽�夋嫨" :value="null"></el-option>
+                </el-select>
               </el-form-item>
               <el-form-item label="涓婄骇鎵瑰锛�" :label-width="formLabelWidth">
-                <el-input v-model="progressReportData.departmentApproval" readonly />
+                <el-input v-if="!projectInfoData.managerFlag" v-model="progressReportData.departmentApproval" readonly />
+                <el-input v-if="projectInfoData.managerFlag" v-model="progressReportData.departmentApproval" />
               </el-form-item>
               <el-form-item label="涓婄骇鎵瑰鍥炲锛�" :label-width="formLabelWidth">
-                <el-input type="textarea" v-model="progressReportData.departmentApprovalReply" placeholder="璇疯緭鍏�" rows="3" :readonly="checkFlag" />
+                <el-input v-if="!projectInfoData.managerFlag" type="textarea" v-model="progressReportData.departmentApprovalReply" placeholder="璇疯緭鍏�" rows="3" />
+                <el-input v-if="projectInfoData.managerFlag" type="textarea" v-model="progressReportData.departmentApprovalReply" placeholder="璇疯緭鍏�" rows="3" :readonly="checkFlag" />
               </el-form-item>
               <el-form-item label="涓荤閮ㄩ棬瀹℃牳锛�" :label-width="formLabelWidth">
-                <el-input :value="progressReportData.manageExamine === 0 ? '鍚屾剰' : progressReportData.manageExamine === 1 ? '椹冲洖' : '鏈鏍�'" readonly />
+                <el-input v-if="!projectInfoData.managerFlag" :value="progressReportData.manageExamine === 0 ? '鍚屾剰' : progressReportData.manageExamine === 1 ? '椹冲洖' : '鏈鏍�'" readonly />
+                <el-select v-if="projectInfoData.managerFlag" v-model="progressReportData.manageExamine" placeholder="璇烽�夋嫨" size="small" clearable>
+                  <el-option label="璇烽�夋嫨" :value="null"></el-option>
+                  <el-option label="鍚屾剰" :value="0"></el-option>
+                  <el-option label="椹冲洖" :value="1"></el-option>
+                </el-select>
               </el-form-item>
               <el-form-item label="涓荤閮ㄩ棬瀹℃牳鎵瑰锛�" :label-width="formLabelWidth">
-                <el-input v-model="progressReportData.manageApproval" readonly />
+                <el-input v-if="!projectInfoData.managerFlag" v-model="progressReportData.manageApproval" readonly />
+                <el-input v-if="projectInfoData.managerFlag" v-model="progressReportData.manageApproval" />
               </el-form-item>
               <el-form-item label="涓荤閮ㄩ棬鎵瑰鍥炲锛�" :label-width="formLabelWidth">
-                <el-input type="textarea" v-model="progressReportData.manageApprovalReply" placeholder="璇疯緭鍏�" rows="3" :readonly="checkFlag" />
+                <el-input v-if="!projectInfoData.managerFlag" type="textarea" v-model="progressReportData.manageApprovalReply" placeholder="璇疯緭鍏�" rows="3" />
+                <el-input v-if="projectInfoData.managerFlag" type="textarea" v-model="progressReportData.manageApprovalReply" placeholder="璇疯緭鍏�" rows="3" :readonly="checkFlag" />
               </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
-              <el-button type="primary" @click="handleRecordSubmit" v-if="!checkFlag">涓� 鎶�</el-button>
+              <el-button type="primary" @click="handleRecordSubmit" v-if="!checkFlag && !projectInfoData.managerFlag">涓� 鎶�</el-button>
+              <el-button type="primary" @click="handleExamine" v-if="projectInfoData.managerFlag">瀹� 鎵�</el-button>
               <el-button @click="handleCancel">鍙� 娑�</el-button>
             </div>
           </el-dialog>
@@ -176,11 +194,11 @@
 </template>
 
 <script>
-import { getProgressInfoList, getProgressReport, recordSubmit, saveProjectProgressFileLists, getProjectProgressForm } from "@/api/projectManage/progress/index";
+import { getProgressInfoList, getProgressReport, recordSubmit, saveProjectProgressFileLists, getProjectProgressForm, examine } from "@/api/projectManage/progress/index";
 import progressRecord from "./progressRecord.vue";
 
 export default {
-  name: "ProgressRecord",
+  name: "progressRecord",
   computed: {
     progressRecord() {
       return progressRecord
@@ -215,16 +233,14 @@
   },
   methods: {
     search() {
-      this.getProjectInfoData()
       this.getProjectProgressForm(this.projectInfoData.id);
+      this.getProgressInfoList(this.projectInfoData.id);
     },
     // 鑾峰彇浼犻�掕繃鏉ョ殑椤圭洰璁″垝璇︽儏
     getProjectInfoData() {
       // 浠庢煡璇㈠弬鏁颁腑鑾峰彇鏁版嵁
-      if (this.$route.query.data) {
-        this.projectInfoData = JSON.parse(this.$route.query.data);
-        this.getProgressInfoList(this.projectInfoData.id);
-      }
+        this.projectInfoData = this.$route.query.data;
+        this.search();
     },
     getProjectProgressForm(id) {
       getProjectProgressForm(id).then(res => {
@@ -254,6 +270,14 @@
         this.search();
       })
     },
+    // 瀹℃壒
+    handleExamine() {
+      examine(this.progressReportData).then(res => {
+        this.dialogFormVisible = false;
+        this.$message.success('瀹℃壒鎴愬姛');
+        this.search();
+      })
+    },
     // 鏌ョ湅杩涘害
     handleCheckProgress(row) {
       this.dialogFormVisible = true;
@@ -278,7 +302,7 @@
     }
   },
   created() {
-    this.search();
+    this.getProjectInfoData()
   },
 };
 </script>

--
Gitblit v1.8.0