scorpioyq 2 jaren geleden
bovenliggende
commit
40b9929d54
3 gewijzigde bestanden met toevoegingen van 185 en 136 verwijderingen
  1. 51 51
      src/views/contract/component/info2.vue
  2. 24 1
      src/views/home/component/dash.vue
  3. 110 84
      src/views/home/component/owner_serach.vue

+ 51 - 51
src/views/contract/component/info2.vue

@@ -5,23 +5,23 @@
     </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="handleRowSave"
-        @row-update="rowUpdate"
-        @on-load="onLoad"
+          :option="option"
+          :data="data"
+          ref="crud"
+          v-model="form"
+          :before-open="beforeOpen"
+          @row-del="rowDel"
+          @row-save="handleRowSave"
+          @row-update="rowUpdate"
+          @on-load="onLoad"
       >
         <template #fileIds-form="{ row, type }">
           <div v-if="type === 'view'">
-            <div
-              v-for="i in form.accountInformationFileList"
-              :key="i.id"
-              class="pointer"
-              @click="previewFile(i)"
+            <div v-if="form.accountInformationFileList && form.accountInformationFileList.length > 0"
+                 v-for="i in form.accountInformationFileList"
+                 :key="i.id"
+                 class="pointer"
+                 @click="previewFile(i)"
             >
               {{ i.title }}
               <el-button text type="primary" plain>查看</el-button>
@@ -29,12 +29,12 @@
           </div>
           <div v-if="type === 'edit'">
             <div
-              v-if="
+                v-if="
                 form.accountInformationFileList &&
                 form.accountInformationFileList.length === 0
               "
             >
-              <uploads :max="9" @success="uploadSucc" :auto="true" />
+              <uploads :max="9" @success="uploadSucc" :auto="true"/>
               <div>
                 <div v-for="item in fileList" :key="item.id">
                   {{ item.originalFileName }}
@@ -42,17 +42,17 @@
               </div>
             </div>
             <div
-              v-for="i in form.accountInformationFileList"
-              :key="i.id"
-              class="pointer"
-              @click="removeFile(i)"
+                v-for="i in form.accountInformationFileList"
+                :key="i.id"
+                class="pointer"
+                @click="removeFile(i)"
             >
               {{ i.title }}
               <el-button text type="primary" plain>删除</el-button>
             </div>
           </div>
           <div v-else>
-            <uploads :max="9" @success="uploadSucc" :auto="true" />
+            <uploads :max="9" @success="uploadSucc" :auto="true"/>
             <div>
               <div v-for="item in fileList" :key="item.id">
                 {{ item.originalFileName }}
@@ -63,9 +63,9 @@
       </avue-crud>
     </div>
     <el-image-viewer
-      v-if="showImage"
-      :url-list="preList"
-      @close="showImage = false"
+        v-if="showImage"
+        :url-list="preList"
+        @close="showImage = false"
     />
   </div>
 </template>
@@ -76,7 +76,7 @@ import api from '@/api/index.js'
 
 export default {
   name: 'info',
-  components: { uploads },
+  components: {uploads},
   data() {
     return {
       id: '',
@@ -221,7 +221,7 @@ export default {
   },
   methods: {
     onLoad() {
-      this.$api.contract.ledgerList({ contractId: this.id }).then(res => {
+      this.$api.contract.ledgerList({contractId: this.id}).then(res => {
         if (res.code === 200) {
           this.data = res.data
         }
@@ -240,7 +240,7 @@ export default {
       if (api.offices.includes(item.suffix)) {
         const routeData = this.$router.resolve({
           path: '/home/file_detail',
-          query: { id: item.fileId }
+          query: {id: item.fileId}
         })
         window.open(routeData.href, '_blank')
       } else {
@@ -255,12 +255,12 @@ export default {
       }).then(res => {
         if (res === 'confirm') {
           console.log(item)
-          this.$api.contract.voucherDel({ ids: item.id }).then(res => {
+          this.$api.contract.voucherDel({ids: item.id}).then(res => {
             if (res.code === 200) {
               this.form.accountInformationFileList =
-                this.form.accountInformationFileList.filter(
-                  sub => sub.id !== item.id
-                )
+                  this.form.accountInformationFileList.filter(
+                      sub => sub.id !== item.id
+                  )
             }
           })
         }
@@ -268,31 +268,31 @@ export default {
     },
     rowUpdate(row, index, done, loading) {
       loading()
-      const data = Object.assign(this.form, { contractId: this.id })
+      const data = Object.assign(this.form, {contractId: this.id})
       this.$api.contract.ledgerUpdate(data).then(
-        res => {
-          if (res.code === 200) {
-            this.$message.success(res.msg)
-          } else {
-            this.$message.error(res.msg)
+          res => {
+            if (res.code === 200) {
+              this.$message.success(res.msg)
+            } else {
+              this.$message.error(res.msg)
+            }
+            done(row)
+            this.onLoad()
+          },
+          error => {
+            window.console.log(error)
+            loading()
           }
-          done(row)
-          this.onLoad()
-        },
-        error => {
-          window.console.log(error)
-          loading()
-        }
       )
     },
     handleRowSave(row, done, loading) {
       loading()
-      const data = Object.assign(row, { contractId: this.id })
+      const data = Object.assign(row, {contractId: this.id})
       this.$confirm(
-        '请检查并确认所填写内容是否正确,系统将会根据填写内容,计算合同付款等相关数据!',
-        {
-          type: 'warning'
-        }
+          '请检查并确认所填写内容是否正确,系统将会根据填写内容,计算合同付款等相关数据!',
+          {
+            type: 'warning'
+          }
       ).then(res => {
         if (res === 'confirm') {
           this.$api.contract.ledgerAdd(data).then(res => {
@@ -305,11 +305,11 @@ export default {
       })
     },
     rowDel(row, index, done) {
-      this.$confirm('确认删除该内容?', {
+      this.$confirm('请确认是否删除该条台账信息?', {
         type: 'warning'
       }).then(res => {
         if (res === 'confirm') {
-          this.$api.contract.remove({ ids: row.id }).then(res => {
+          this.$api.contract.remove({ids: row.id}).then(res => {
             if (res.code === 200) {
               this.$message.success(res.msg)
               this.onLoad()

+ 24 - 1
src/views/home/component/dash.vue

@@ -291,6 +291,21 @@
                 />
               </el-select>
             </el-form-item>
+            <el-form-item class="full-width" label="行业分类" prop="tags">
+              <el-select
+                  v-model="projectForm.dictKey"
+                  clearable
+                  placeholder="选择行业分类"
+                  style="width: 100%"
+              >
+                <el-option
+                    v-for="item in industryList"
+                    :key="item.dictKey"
+                    :label="item.dictValue"
+                    :value="item.dictKey"
+                />
+              </el-select>
+            </el-form-item>
             <el-form-item class="full-width" label="建设内容">
               <el-input
                 v-model="projectForm.introduction"
@@ -543,13 +558,15 @@ export default {
       numList: [],
       typeList: [],
       tagsList: [],
+      industryList: [],
       num: '',
       projectForm: {
         name: '',
         totalAmount: '',
         projectType: '1589613582090166274',
         tags: '',
-        introduction: ''
+        introduction: '',
+        dictKey: ''
       },
       rules: {
         name: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
@@ -727,6 +744,12 @@ export default {
           this.tagsList = res.data
         }
       })
+      this.$api.common.dicList({code: 'industry-classification'}).then(res => {
+        if (res.code === 200) {
+          this.industryList = res.data
+        }
+      })
+
     },
     report(res) {
       if (res.is_report === 1) {

+ 110 - 84
src/views/home/component/owner_serach.vue

@@ -6,30 +6,30 @@
         <div class="flex flex-col mr-10">
           <el-form-item class="full-width" label="项目名称">
             <el-input
-              v-model="form.projectName"
-              placeholder="输入项目关键字"
-              prefix-icon="Search"
-              clearable
+                v-model="form.projectName"
+                placeholder="输入项目关键字"
+                prefix-icon="Search"
+                clearable
             />
           </el-form-item>
           <div class="flex flex-center">
             <el-form-item class="full-width" label="是否开工">
               <el-select v-model="form.isStart" style="width: 100%" clearable>
                 <el-option
-                  v-for="item in start"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
+                    v-for="item in start"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
                 />
               </el-select>
             </el-form-item>
             <el-form-item class="full-width" label="是否入库">
               <el-select v-model="form.isStorage" style="width: 100%" clearable>
                 <el-option
-                  v-for="item in storage"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
+                    v-for="item in storage"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
                 />
               </el-select>
             </el-form-item>
@@ -40,29 +40,29 @@
           <div class="flex flex-center">
             <el-form-item class="full-width" label="省重点">
               <el-select
-                v-model="form.isImportant"
-                style="width: 100%"
-                clearable
+                  v-model="form.isImportant"
+                  style="width: 100%"
+                  clearable
               >
                 <el-option
-                  v-for="item in isimport"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
+                    v-for="item in isimport"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
                 />
               </el-select>
             </el-form-item>
             <el-form-item class="full-width" label="省集中开工">
               <el-select
-                v-model="form.isFocusStart"
-                style="width: 100%"
-                clearable
+                  v-model="form.isFocusStart"
+                  style="width: 100%"
+                  clearable
               >
                 <el-option
-                  v-for="item in isfocus"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
+                    v-for="item in isfocus"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
                 />
               </el-select>
             </el-form-item>
@@ -70,16 +70,30 @@
           <div class="flex flex-center flex-justify-between">
             <el-form-item class="full-width" label="总投资额">
               <el-select
-                v-model="form.amount"
-                @change="changeAmount"
-                style="width: 100%"
-                clearable
+                  v-model="form.amount"
+                  @change="changeAmount"
+                  style="width: 100%"
+                  clearable
               >
                 <el-option
-                  v-for="item in totalAmount"
-                  :key="item.value"
-                  :label="item.name"
-                  :value="item.value"
+                    v-for="item in totalAmount"
+                    :key="item.value"
+                    :label="item.name"
+                    :value="item.value"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item class="full-width" label="行业分类">
+              <el-select
+                  v-model="form.dictKey"
+                  style="width: 100%"
+                  clearable
+              >
+                <el-option
+                    v-for="item in industryList"
+                    :key="item.dictKey"
+                    :label="item.dictValue"
+                    :value="item.dictKey"
                 />
               </el-select>
             </el-form-item>
@@ -90,55 +104,55 @@
         <div class="flex-child-average flex flex-center">
           <el-form-item class="full-width" label="项目状态">
             <el-select
-              v-model="form.reportType"
-              style="width: 98%; margin: 0; padding: 0"
+                v-model="form.reportType"
+                style="width: 98%; margin: 0; padding: 0"
             >
               <el-option
-                v-for="item in reportTypes"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
+                  v-for="item in reportTypes"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
               />
             </el-select>
           </el-form-item>
         </div>
         <div
-          class="flex-child-average flex flex-align-center flex-justify-end"
-          style="margin-bottom: 18px"
+            class="flex-child-average flex flex-align-center flex-justify-end"
+            style="margin-bottom: 18px"
         >
           <base-button
-            class="pointer"
-            icon="Delete"
-            title="清空"
-            type="0"
-            :width="130"
-            @click="clear"
+              class="pointer"
+              icon="Delete"
+              title="清空"
+              type="0"
+              :width="130"
+              @click="clear"
           />
-          <base-button class="pointer" width="130" @click="sure" />
+          <base-button class="pointer" width="130" @click="sure"/>
         </div>
       </div>
     </el-form>
     <!----机构选择----->
     <el-dialog
-      v-model="showOrg"
-      append-to-body
-      center
-      title="机构选择"
-      width="45%"
+        v-model="showOrg"
+        append-to-body
+        center
+        title="机构选择"
+        width="45%"
     >
       <div class="flex flex-col">
         <el-input
-          v-model="keyWords"
-          clearable
-          placeholder="机构快速搜索"
-          prefix-icon="Search"
-          @blur="change"
+            v-model="keyWords"
+            clearable
+            placeholder="机构快速搜索"
+            prefix-icon="Search"
+            @blur="change"
         />
       </div>
-      <el-divider />
+      <el-divider/>
       <div
-        class="hide-scrollbar full-width"
-        style="height: 40vh; overflow-x: scroll"
+          class="hide-scrollbar full-width"
+          style="height: 40vh; overflow-x: scroll"
       >
         <!--        <div v-if='attaches.length === 0' class='full-width flex flex-center '>-->
         <!--          <el-empty image-size='100'/>-->
@@ -147,20 +161,20 @@
           <span class="bold font-15 grey ml-5">部门</span>
         </div>
         <div
-          class="grid radius mt-15 padding"
-          style="border: 1px solid #dddfe6"
+            class="grid radius mt-15 padding"
+            style="border: 1px solid #dddfe6"
         >
           <div
-            v-for="(item, index) in deptList"
-            :key="item.id"
-            class="flex flex-center pointer padding"
-            :class="item.search ? 'org-search' : item.checked ? 'org-s' : 'org'"
-            @click="changeChecked(index)"
+              v-for="(item, index) in deptList"
+              :key="item.id"
+              class="flex flex-center pointer padding"
+              :class="item.search ? 'org-search' : item.checked ? 'org-s' : 'org'"
+              @click="changeChecked(index)"
           >
             <div :class="item.checked ? 'dot-checked' : 'dot'"></div>
             <div
-              class="ml-5 full-width"
-              :class="item.checked || item.search ? 'white' : ''"
+                class="ml-5 full-width"
+                :class="item.checked || item.search ? 'white' : ''"
             >
               {{ item.deptName }}
             </div>
@@ -168,12 +182,12 @@
         </div>
       </div>
       <div class="flex flex-center mt-20 mb-5">
-        <base-button title="重置" type="0" icon="Refresh" @click="orgRefresh" />
+        <base-button title="重置" type="0" icon="Refresh" @click="orgRefresh"/>
         <base-button
-          class="ml-20"
-          title="确定"
-          icon="Check"
-          @click="orgCheck"
+            class="ml-20"
+            title="确定"
+            icon="Check"
+            @click="orgCheck"
         />
       </div>
     </el-dialog>
@@ -182,12 +196,12 @@
 
 <script>
 import baseButton from '../../../components/base-button.vue'
-import { useStore } from '@/store/user.js'
+import {useStore} from '@/store/user.js'
 import confing from '@/config/website'
 
 export default {
   name: 'owner_serach',
-  components: { baseButton },
+  components: {baseButton},
   watch: {
     keyWords: {
       handler(val) {
@@ -200,7 +214,7 @@ export default {
   },
   setup() {
     const user = useStore()
-    return { user }
+    return {user}
   },
   data() {
     return {
@@ -215,7 +229,8 @@ export default {
         isImportant: '', // 是否省重点
         isFocusStart: '', // 是否集中开工
         type: true,
-        reportType: ''
+        reportType: '',
+        dictKey: '',
       },
       totalAmount: [
         {
@@ -272,6 +287,7 @@ export default {
         }
       ],
       typeList: [],
+      industryList: [],
       showOrg: false,
       keyWords: '',
       checked: false,
@@ -281,10 +297,19 @@ export default {
     }
   },
   created() {
+    this.getDic()
     this.reportTypes = confing.reportTypes
     this.getTypeList()
   },
   methods: {
+    getDic() {
+      this.$api.common.dicList({code: 'industry-classification'}).then(res => {
+        if (res.code === 200) {
+          this.industryList = res.data
+        }
+      })
+    },
+
     getTypeList() {
       this.$api.project.typeList().then(res => {
         this.typeList = res.data.records
@@ -300,7 +325,7 @@ export default {
       }
       if (this.form.isStart === 0) {
         this.form.planCommencementTime =
-          this.time1 === null ? '' : this.time1.join(',')
+            this.time1 === null ? '' : this.time1.join(',')
         this.form.startTime = ''
       } else if (this.form.isStart === 1 && this.time1 !== null) {
         this.form.planCommencementTime = ''
@@ -312,7 +337,7 @@ export default {
 
       if (this.form.isStorage === 0) {
         this.form.planStorageTime =
-          this.time2 === null ? '' : this.time2.join(',')
+            this.time2 === null ? '' : this.time2.join(',')
         this.form.storageTime = ''
       } else if (this.form.isStorage === 1 && this.time2 !== null) {
         this.form.planStorageTime = ''
@@ -353,6 +378,7 @@ export default {
       this.form.planStorageTime = ''
       this.form.storageTime = ''
       this.form.reportType = ''
+      this.form.dictKey = ''
       this.time1 = null
       this.time2 = null
       this.deptName = '机构选择'
@@ -396,8 +422,8 @@ export default {
         return
       }
       const tmp = this.deptList
-        .filter(sub => sub.deptName.indexOf(this.keyWords) > -1)
-        .map(sub => sub.id)
+          .filter(sub => sub.deptName.indexOf(this.keyWords) > -1)
+          .map(sub => sub.id)
       tmp.forEach(sub => {
         const index = this.deptList.findIndex(ele => ele.id === sub)
         this.deptList[index].search = true