scorpio 2 vuotta sitten
vanhempi
commit
1a57c33d2b

+ 12 - 13
src/api/contract/index.js

@@ -1,17 +1,16 @@
 import fetch from '../fetch.js'
 
 export default {
-    /**
-     * 合同管理相关借口
-     * @returns {Promise<unknown>}
-     */
-    contractList(params) {
-        // 合同列表
-        return fetch(
-            '/blade-project-manage-v2/contracts-manage/v2/page',
-            params,
-            'post'
-        )
-    },
+  /**
+   * 合同管理相关借口
+   * @returns {Promise<unknown>}
+   */
+  contractList(params) {
+    // 合同列表
+    return fetch(
+      '/blade-project-manage-v2/contracts-manage/v2/page',
+      params,
+      'post'
+    )
+  }
 }
-

+ 1 - 1
src/layout/tips.vue

@@ -78,7 +78,7 @@ export default {
   },
   methods: {
     goNext(path) {
-      const data = this.$router.resolve(path)
+      const data = this.$router.resolve({ path, query: this.$route.query })
       window.open(data.href, '_blank')
     }
   }

+ 15 - 16
src/views/contract/component/info.vue

@@ -8,55 +8,54 @@
     </div>
     <div class="padding">
       <el-form
-          label-position="right"
-          label-width="100px"
-          :disabled="disabled"
-          style="background-color: white"
+        label-position="right"
+        label-width="100px"
+        :disabled="disabled"
+        style="background-color: white"
       >
         <div class="full-width flex flex-center flex-justify-between">
           <el-form-item label="合同名称" class="flex-child-average">
-            <el-input v-model="form.name"/>
+            <el-input v-model="form.name" />
           </el-form-item>
           <el-form-item label="合同类别" class="flex-child-average">
-            <el-input v-model="form.region"/>
+            <el-input v-model="form.region" />
           </el-form-item>
         </div>
         <div class="full-width flex flex-center flex-justify-between">
           <el-form-item label="合同编号" class="flex-child-average">
-            <el-input v-model="form.type"/>
+            <el-input v-model="form.type" />
           </el-form-item>
           <el-form-item label="合同金额" class="flex-child-average">
-            <el-input v-model="form.type"/>
+            <el-input v-model="form.type" />
           </el-form-item>
         </div>
         <div class="full-width flex flex-center flex-justify-between">
           <el-form-item label="合同甲方" class="flex-child-average">
-            <el-input v-model="form.type"/>
+            <el-input v-model="form.type" />
           </el-form-item>
           <el-form-item label="合同乙方" class="flex-child-average">
-            <el-input v-model="form.type"/>
+            <el-input v-model="form.type" />
           </el-form-item>
         </div>
         <div class="full-width flex flex-center flex-justify-between">
           <el-form-item label="签订日期" class="flex-child-average">
-            <el-input v-model="form.type"/>
+            <el-input v-model="form.type" />
           </el-form-item>
           <el-form-item label="到期日期" class="flex-child-average">
-            <el-input v-model="form.type"/>
+            <el-input v-model="form.type" />
           </el-form-item>
         </div>
         <div class="full-width flex flex-center flex-justify-between">
           <el-form-item label="签订地点" class="flex-child-average">
-            <el-input v-model="form.type"/>
+            <el-input v-model="form.type" />
           </el-form-item>
           <el-form-item label="合同状态" class="flex-child-average">
-            <el-input v-model="form.type"/>
+            <el-input v-model="form.type" />
           </el-form-item>
         </div>
         <div class="full-width flex flex-center flex-justify-between">
           <el-form-item label="支付方式" class="flex-child-average">
-            <el-input v-model="form.type" autosize
-                      type="textarea"/>
+            <el-input v-model="form.type" type="textarea" :rows="5" />
           </el-form-item>
         </div>
       </el-form>

+ 35 - 16
src/views/contract/component/info3.vue

@@ -1,19 +1,19 @@
 <template>
   <div>
     <div class="padding top flex flex-center flex-justify-between">
-      <span>相关信息文件</span>
+      <span>相关文件</span>
     </div>
     <div class="ml-20 mr-20 mt-20">
       <avue-crud
-          :option="option"
-          :data="data"
-          ref="crud"
-          v-model="form"
-          :before-open="beforeOpen"
-          @row-del="rowDel"
-          @row-save="rowSave"
-          @row-update="rowUpdate"
-          @on-load="onLoad"
+        :option="option"
+        :data="data"
+        ref="crud"
+        v-model="form"
+        :before-open="beforeOpen"
+        @row-del="rowDel"
+        @row-save="rowSave"
+        @row-update="rowUpdate"
+        @on-load="onLoad"
       >
       </avue-crud>
     </div>
@@ -26,10 +26,12 @@ export default {
   data() {
     return {
       form: {},
-      data: [{
-        id: 3,
-        prop: 'ooooo'
-      }],
+      data: [
+        {
+          id: 3,
+          prop: 'ooooo'
+        }
+      ],
       option: {
         align: 'center',
         menuAlign: 'center',
@@ -57,12 +59,29 @@ export default {
           {
             label: '上传时间',
             prop: 'noticeType'
-          },
+          }
         ]
       }
     }
+  },
+  methods: {
+    beforeOpen(done, type) {
+      console.log(type)
+      if (type === 'add') {
+      }
+    },
+    openFile(row) {
+      const routeUrl = this.$router.resolve({
+        path: '/home/details',
+        query: {
+          id: this.info.projectId,
+          dispatchType: row,
+          type: 4
+        }
+      })
+      window.open(routeUrl.href, '_blank')
+    }
   }
-
 }
 </script>
 

+ 50 - 47
src/views/contract/index.vue

@@ -3,50 +3,54 @@
     <el-form v-model="params" class="full-width" label-width="120px">
       <div class="flex">
         <div class="flex flex-center mt-15 mr-10">
-          <el-form-item label="关键字" class="full-width" style="margin-left: -50px">
+          <el-form-item
+            label="关键字"
+            class="full-width"
+            style="margin-left: -50px"
+          >
             <el-input
-                v-model="params.name"
-                placeholder="输入合同关键字"
-                prefix-icon="Search"
-                clearable
+              v-model="params.name"
+              placeholder="输入合同关键字"
+              prefix-icon="Search"
+              clearable
             />
           </el-form-item>
           <el-form-item class="full-width" label="合同类别">
             <el-select v-model="params.type" clearable>
               <el-option
-                  v-for="item in typelist"
-                  :key="item.dictKey"
-                  :label="item.dictValue"
-                  :value="item.dictKey"
+                v-for="item in typelist"
+                :key="item.dictKey"
+                :label="item.dictValue"
+                :value="item.dictKey"
               />
             </el-select>
           </el-form-item>
           <el-form-item class="full-width" label="合同状态">
             <el-select v-model="params.status" clearable>
               <el-option
-                  v-for="item in dicList"
-                  :key="item.dictKey"
-                  :label="item.dictValue"
-                  :value="item.dictKey"
+                v-for="item in dicList"
+                :key="item.dictKey"
+                :label="item.dictValue"
+                :value="item.dictKey"
               />
             </el-select>
           </el-form-item>
         </div>
         <div class="flex flex-center ml-20">
-          <base-button type="0" title="重置" icon="Refresh"/>
-          <base-button class="ml-20" @click="onLoad"/>
+          <base-button type="0" title="重置" icon="Refresh" />
+          <base-button class="ml-20" @click="onLoad" />
         </div>
       </div>
     </el-form>
     <avue-crud
-        :option="option"
-        :data="data"
-        ref="crud"
-        v-model="form"
-        :before-open="beforeOpen"
-        @row-del="rowDel"
-        @row-save="rowSave"
-        @row-update="rowUpdate"
+      :option="option"
+      :data="data"
+      ref="crud"
+      v-model="form"
+      :before-open="beforeOpen"
+      @row-del="rowDel"
+      @row-save="rowSave"
+      @row-update="rowUpdate"
     >
     </avue-crud>
   </el-card>
@@ -59,17 +63,20 @@ meta: { layout: 'empty'}
 }
 </route>
 <script>
-import BaseButton from "@/components/base-button.vue";
+import BaseButton from '@/components/base-button.vue'
 
 export default {
-  components: {BaseButton},
+  components: { BaseButton },
   data() {
     return {
+      projectId: '',
       form: {},
-      data: [{
-        id: 3,
-        prop: 'ooooo'
-      }],
+      data: [
+        {
+          id: 3,
+          prop: 'ooooo'
+        }
+      ],
       option: {
         align: 'center',
         menuAlign: 'center',
@@ -123,8 +130,7 @@ export default {
           {
             label: '到期日期',
             prop: 'noticeType'
-          },
-
+          }
         ]
       },
       page: {
@@ -141,47 +147,44 @@ export default {
     }
   },
   created() {
+    this.projectId = this.$route.query.id
     this.getDic('contract-status')
     this.getDic('contract-type')
     this.onLoad()
   },
   methods: {
     getDic(code) {
-      this.$api.common.dicList({code}).then(res => {
+      this.$api.common.dicList({ code }).then(res => {
         if (res.code === 200) {
           if (code === 'contract-status') {
             this.dicList = res.data
           } else if (code === 'contract-type') {
             this.typelist = res.data
           }
-
         }
       })
     },
     onLoad() {
-      const data = {
-        name: this.params.name,
-        status: this.params.status,
-        type: this.params.type
-      }
       this.loading = true
-      this.$api.contract.contractList(Object.assign(this.page, data))
-          .then(res => {
-            console.log(res)
-          })
-          .finally(() => {
-            this.loading = false
-          })
+      const data = Object.assign(this.params, { projectId: this.projectId })
+      this.$api.contract
+        .contractList(Object.assign(this.page, data))
+        .then(res => {
+          console.log(res)
+        })
+        .finally(() => {
+          this.loading = false
+        })
     },
     beforeOpen(done, type) {
       if (type === 'view') {
         const data = this.$router.resolve({
           path: '/contract/detail',
-          query: {id: this.form.id}
+          query: { id: this.form.projectId }
         })
         window.open(data.href, '_blank')
       }
-    },
+    }
   }
 }
 </script>

+ 1 - 1
src/views/home/pro_detail.vue

@@ -50,7 +50,7 @@
 <route>
 {
 name: '项目详情',
-meta :{ layout: 'empty','path':'/contract','title':'合同管理' }
+meta :{ layout: 'empty','path':'/contract' + [this.id],'title':'合同管理' }
 }
 </route>