Bladeren bron

fix(供应商):供应商授信

sufan 5 maanden geleden
bovenliggende
commit
75c6931084

BIN
public/favicon.ico


+ 9 - 0
src/api/dictionary.js

@@ -20,3 +20,12 @@ export const getFilePerview = (params) => (
     responseType: 'arraybuffer'
   })
 )
+
+// 获取省市区
+export const getRegion = (params) => (
+  request({
+    url: '/department/findAll',
+    method: 'get',
+    params
+  })
+)

+ 16 - 3
src/store/modules/constant.js

@@ -1,10 +1,11 @@
-import { getTypeCode } from '@/api/dictionary.js'
+import { getTypeCode, getRegion } from '@/api/dictionary.js'
 import { strFirstUpper } from '@/utils/index.js'
 import constantData from './constantData.js'
+import { treeChildrenEmpty } from '@/utils'
 
 export default {
   state: {
-    noConstant: [],
+    noConstant: ['regionList'],
     tree: [],
     noCache: [],
     params: [],
@@ -15,7 +16,8 @@ export default {
       amountKind: [],
       invoiceType: [],
       InvoiceStatus: [],
-      ledgerStatus: []
+      ledgerStatus: [],
+      regionList: [] // 省市区
     }
   },
   mutations: {
@@ -79,6 +81,17 @@ export default {
           reject(error)
         })
       })
+    },
+    getRegionList({ commit }, type) {
+      return new Promise((resolve, reject) => {
+        getRegion().then(({ data }) => {
+          commit('SEY_DICT', { type, data: treeChildrenEmpty(data) })
+          resolve()
+        })
+          .catch(error => {
+            reject(error)
+          })
+      })
     }
   }
 }

+ 4 - 0
src/styles/element/ruleForm.scss

@@ -140,6 +140,10 @@ $orangeColor: #FE7D0B;
   background-color: #fff;
 }
 
+// 级联
+.el-cascader .el-input .el-input__inner:focus, .el-cascader .el-input.is-focus .el-input__inner {
+  border-color: $orangeColor;
+}
 // 下拉框
 .el-select {
   width: 100%;

+ 12 - 0
src/utils/index.js

@@ -387,3 +387,15 @@ export function formatMoney(amount, decimalPlaces = 2) {
   }
   return amountNum.toLocaleString(undefined, options)
 }
+
+// 处理tree children为空的情况
+export function treeChildrenEmpty(tree, type = 'children') {
+  return tree.map(item => {
+    if (item[type] && item[type].length !== 0) {
+      treeChildrenEmpty(item[type], type)
+    } else {
+      delete item[type]
+    }
+    return item
+  })
+}

+ 1 - 0
src/views/login/index.vue

@@ -10,6 +10,7 @@
         <el-button type="text" @click="loginClick('register')">注册</el-button>
       </div>
     </div>
+
     <div class="login-bg">
       <img src="@/assets/login/bg.jpg" alt="">
     </div>

+ 51 - 2
src/views/myBusiness/supplementaryInfo/components/AddInfo.vue

@@ -40,7 +40,20 @@
       </el-form-item>
       <cy-info-title type="center">企业经营地址</cy-info-title>
       <el-form-item label="经营地址" style="width: 100%;" prop="businessAddress">
-        <el-input v-model="ruleForm.businessAddress" :disabled="disabled" placeholder="请输入经营地址" />
+        <div class="address">
+          <div v-if="!disabled">
+            <el-cascader
+              v-model="ruleForm.businessAddress"
+              style="width: 100%;"
+              placeholder="请选择省市区"
+              :options="constant.regionList"
+              :props="{ value: 'name', label: 'name' }"
+            />
+          </div>
+          <div>
+            <el-input v-model="ruleForm.businessAddress" disabled placeholder="请输入经营地址" />
+          </div>
+        </div>
       </el-form-item>
       <el-form-item label="地点定位图" class="form-required" prop="locationMap">
         <cy-upload
@@ -150,6 +163,7 @@
 <script>
 import { salesContractManagementGetAuthStatus, salesContractManagementSignType } from '@/api/myTrade/salesContractManagement/salesContractManagement'
 import creditInvestigation from '../mixins/creditInvestigation'
+import { mapGetters } from 'vuex'
 export default {
   mixins: [creditInvestigation],
   props: {
@@ -168,7 +182,6 @@ export default {
   },
   data() {
     return {
-      testVal: '1111',
       tableKey: 0,
       ruleForm: {
         businessAddress: '',
@@ -262,6 +275,13 @@ export default {
         },
         {
           label: '认证状态',
+          headerAlign: 'center',
+          renderHeader: (h, row) => {
+            return <div>
+              <div>认证状态</div>
+              { !this.disabled && <div style='color:#FE7D0B'>(认证后请点击刷新)</div> }
+            </div>
+          },
           showTooltip: true,
           prop: 'authStatus',
           render: (h, row) => {
@@ -278,6 +298,13 @@ export default {
         },
         {
           label: '签署状态',
+          headerAlign: 'center',
+          renderHeader: (h, row) => {
+            return <div>
+              <div>签署状态</div>
+              {!this.disabled && <div style='color:#FE7D0B'>(签署后请点击刷新)</div>}
+            </div>
+          },
           showTooltip: true,
           prop: 'certificateSignStatus',
           render: (h, row) => {
@@ -294,6 +321,9 @@ export default {
       ]
     }
   },
+  computed: {
+    ...mapGetters(['constant'])
+  },
   watch: {
     addInfo: {
       handler(newV) {
@@ -332,6 +362,10 @@ export default {
       deep: true
     }
   },
+
+  created() {
+    this.$store.dispatch('getConstant', ['regionList'])
+  },
   methods: {
     refreshAuthStatus(row) {
       const { fddCustomerId } = row
@@ -466,9 +500,24 @@ export default {
     display: flex;
     align-items: center;
   }
+  .sgin-box {
+    justify-content: center;
+  }
   .icon-a-Group779, .icon-a-Group8131 {
     margin-left: 10px;
     font-size: 30px;
   }
+  .address {
+    display: flex;
+    & > div {
+      &:first-child {
+        width: calc(33.5% - 20px);
+        margin-right: 20px;
+      }
+      &:last-child {
+        width: 66.66%;
+      }
+    }
+  }
 }
 </style>

+ 16 - 6
src/views/myBusiness/supplementaryInfo/components/FinancialSituation.vue

@@ -12,7 +12,7 @@
       <el-form-item label="纳税申报表" style="width: 100%" class="form-required" prop="taxReturn">
         <template slot="label">
           <span>纳税申报表</span>
-          <span class="slot-name-desc">请上传经由税务网站下载的官方纳税申报表</span>
+          <span class="slot-name-desc">请于电子税务局网站(<span class="url-link" @click="taxBureauWebsiteClick">{{ taxBureauWebsite }}</span>)下载纳税申报表,并上传至此处</span>
         </template>
         <cy-upload
           ref="taxReturn"
@@ -23,13 +23,13 @@
           :file-data="taxReturn"
           :upload-from-orange-status="true"
           file-type="pdf"
-          placeholder="请上传纳税申报表"
+          placeholder="请上传上年度以及上个月的制式纳税申报表、报表(格式为:pdf)"
         />
       </el-form-item>
       <cy-info-title>
         <div>
           近两年财务报表
-          <span class="slot-name-desc">请上传经由税务网站下载的官方财务报表</span>
+          <span class="slot-name-desc">请于电子税务局网站(<span class="url-link" @click="taxBureauWebsiteClick">{{ taxBureauWebsite }}</span>)下载财务报表,并上传至此处</span>
         </div>
         <div slot="right">
           <el-button v-if="!disabled" type="primary" @click="optionsClick('add')">新增</el-button>
@@ -78,6 +78,7 @@ export default {
     return {
       taxReturn: [],
       accountingreport: [],
+      taxBureauWebsite: '',
       ruleForm: {
       },
       rules: {
@@ -136,7 +137,8 @@ export default {
               uploadParams={{ fileType: 'enterprise_financial_statements' }}
               disabled={this.disabled}
               fileData={row.fileStorage}
-              defaultDesc='请上传附件'
+              defaultDesc='请上传上年度以及上个月的制式纳税申报表、报表(格式为:pdf)'
+              file-type='pdf'
             />
           }
         },
@@ -155,9 +157,10 @@ export default {
     financialInfo: {
       handler(newV) {
         if (newV && Object.keys(newV).length) {
-          const { taxReturn, corporateFinances, accountingreport } = newV
+          const { taxReturn, corporateFinances, accountingreport, taxBureauWebsite } = newV
           this.taxReturn = taxReturn
           this.accountingreport = accountingreport
+          this.taxBureauWebsite = taxBureauWebsite
           this.tableData = corporateFinances.map(item => {
             item.fileStorage = [item.fileStorage]
             return item
@@ -182,6 +185,9 @@ export default {
         this.tableData.splice(index, 1)
       }
     },
+    taxBureauWebsiteClick() {
+      window.open(this.taxBureauWebsite)
+    },
     getParams(type) {
       const taxReturn = this.$refs.taxReturn.getFileLists
       const corporateFinances = this.tableData.map((item, index) => {
@@ -257,6 +263,10 @@ export default {
 
 <style lang="scss" scoped>
 .financial-situation {
-
+  .slot-name-desc {
+    .url-link {
+      cursor: pointer;
+    }
+  }
 }
 </style>

+ 16 - 0
src/views/myFinancing/applyFinancing/index.vue

@@ -136,6 +136,7 @@
 <script>
 import { getProjectInfo, getFinishProCon, getApplicantInfo, chooseToAcceptTheGoods, generateReceivable, applySubmit, getDetailsInfo } from '@/api/myFinancing'
 import { validMail } from '@/utils/validate'
+import { deduplicateArray } from '@/utils'
 export default {
   name: 'ApplyFinancing',
   props: {
@@ -382,6 +383,15 @@ export default {
         {
           label: '结算状态',
           prop: 'settlementStatus'
+        },
+        {
+          label: '验收数量',
+          prop: 'acceptanceNumTotal'
+        },
+        {
+          label: '结算总价(元)',
+          prop: 'settlementAmountTotal',
+          type: 'num'
         }
       ],
       goodsTableData: [],
@@ -497,10 +507,16 @@ export default {
     },
     goodsSubmit() {
       const multipleList = this.$refs.goodsTable.multipleSelection
+      const list = deduplicateArray(multipleList, 'signConfirm')
+
       if (!multipleList.length) {
         this.$message.warning('请选择已验收的货物')
         return
       }
+      if (list.length < multipleList.length) {
+        this.$message.warning('已签署和未签署验收单不能同时选择')
+        return
+      }
       this.getMultipleList(multipleList)
       this.getReceivable()
       this.$refs.dialog.show = false

+ 19 - 2
src/views/myFinancing/contractSign.vue

@@ -26,7 +26,11 @@
               <div>
                 认证状态: {{ modifyStatus(item.authStatus, 1) }}
               </div>
-              <el-button v-if="!disabled" type="text" icon="iconfont icon-a-Group8131" @click="refreshAuth(item)" />
+              <div v-if="!disabled" class="tips">
+                <span><span>*</span>签署后点击「刷新」按钮”</span>
+                <el-button type="text" icon="iconfont icon-a-Group8131" @click="refreshAuth(item)" />
+              </div>
+
             </div>
           </div>
           <div class="one-link">
@@ -35,7 +39,10 @@
           </div>
           <div v-for=" (citem, cindex) in item.contractElectronicCustomerInfos" :key="cindex" class="one-link">
             <div>签署状态:{{ modifyStatus(citem.signStatus, 2) }}</div>
-            <el-button v-if="!disabled" type="text" icon="iconfont icon-a-Group8131" @click="refreshSign(item, citem)" />
+            <div v-if="!disabled" class="tips">
+              <span><span>*</span>签署后点击「刷新」按钮”</span>
+              <el-button type="text" icon="iconfont icon-a-Group8131" @click="refreshSign(item, citem)" />
+            </div>
           </div>
         </div>
 
@@ -276,6 +283,16 @@ export default {
         align-items: center;
         height: 40px;
       }
+      .tips {
+        display: flex;
+        align-items: center;
+        & > span {
+          color: #b9b9b9;
+          & > span {
+            color: #ff1a1a;
+          }
+        }
+      }
     }
   }
 }