Browse Source

货代11.07

caojunjie 1 năm trước cách đây
mục cha
commit
839738c996

+ 17 - 0
src/api/iosBasicData/feecenter.js

@@ -21,6 +21,7 @@ export const feecenterDetail = (id) => {
     }
   })
 }
+// 删除
 export const feecenterRemove = (ids) => {
   return request({
     url: '/api/blade-los/feecenter/remove',
@@ -38,4 +39,20 @@ export const feecenterSubmit = (row) => {
     data: row
   })
 }
+// 生成账单
+export const finaccbillsGenerateBill = (row) => {
+  return request({
+    url: '/api/blade-los/finaccbills/generateBill',
+    method: 'post',
+    data: row
+  })
+}
+// 撤销账单
+export const finaccbillsRevokeBill = (row) => {
+  return request({
+    url: '/api/blade-los/finaccbills/revokeBill',
+    method: 'post',
+    data: row
+  })
+}
 

+ 150 - 8
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -106,8 +106,12 @@
                 <el-col :span="15">
                     <el-button type="danger" plain size="small"
                                :disabled="!selectionDList.length" @click="batchDelete('D')">批量删除</el-button>
-                    <el-button type="success" plain size="small">应收账单</el-button>
-                    <el-button type="primary" plain size="small">应付账单</el-button>
+                    <el-button type="success" plain size="small"
+                               :disabled="!selectionDList.length" @click="GenerateBillsfun('D')">应收账单
+                    </el-button>
+                    <el-button type="danger" plain size="small"
+                               :disabled="!selectionDList.length" @click="RevokingBillsfun('D')">撤销账单
+                    </el-button>
                     <el-button type="primary" plain size="small">打印账单</el-button>
                     <el-button type="success" plain size="small" :disabled="!this.assemblyForm.id" @click="templateClick('D')">应收模板</el-button>
                 </el-col>
@@ -138,6 +142,14 @@
                         </template>
                     </el-table-column>
                     <el-table-column
+                        prop="accStatus"
+                        label="是否生成账单" width="100px"
+                        header-align="center">
+                        <template slot-scope="scope">
+                            <span>{{scope.row.accStatus?'是':'否'}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
                         prop="corpCnName"
                         header-align="center"
                         label="单位" width="160px">
@@ -182,7 +194,7 @@
                         header-align="center"
                         label="预付/到付" width="120px">
                         <template slot-scope="{ row }">
-                            <el-select v-if="row.edit" v-model="row.paymode" placeholder="请选择">
+                            <el-select v-if="row.edit" v-model="row.paymode" size="small" placeholder="请选择">
                                 <el-option
                                     v-for="item in paymodeData"
                                     :key="item.value"
@@ -225,7 +237,7 @@
                                           :clearable="true"
                                           :remote="true"
                                           :buttonIf="false"
-                                          :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                          :forParameter="{key:'id',label:'code',value:'code'}"
                                           @remoteMethod="getRateListfun($event,'curCode')"
                                           @corpChange="corpChange($event,'curCode',row)"
                                           @corpFocus="getRateListfun($event,'curCode')" >
@@ -314,6 +326,7 @@
                 <el-col :span="15">
                     <el-button type="danger" plain size="small"
                                :disabled="!selectionCList.length" @click="batchDelete('C')">批量删除</el-button>
+                    <el-button type="primary" plain size="small">应付账单</el-button>
                     <el-button type="success" plain size="small" :disabled="!this.assemblyForm.id" @click="templateClick('C')">应付模板</el-button>
                 </el-col>
             </el-row>
@@ -343,6 +356,14 @@
                         </template>
                     </el-table-column>
                     <el-table-column
+                        prop="accStatus"
+                        label="是否生成账单" width="100px"
+                        header-align="center">
+                        <template slot-scope="scope">
+                            <span>{{scope.row.accStatus?'是':'否'}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
                         prop="corpCnName"
                         label="单位" width="160px"
                         header-align="center">
@@ -387,7 +408,7 @@
                         label="预付/到付" width="120px"
                         header-align="center">
                         <template slot-scope="{ row }">
-                            <el-select v-if="row.edit" v-model="row.paymode" placeholder="请选择">
+                            <el-select v-if="row.edit" v-model="row.paymode" size="small" placeholder="请选择">
                                 <el-option
                                     v-for="item in paymodeData"
                                     :key="item.value"
@@ -626,7 +647,12 @@
     import {bfeesList} from "@/api/iosBasicData/bfees";
     import {getBunitsPage} from "@/api/iosBasicData/bunits";
     import {getRateList} from "@/api/iosBasicData/rateManagement";
-    import {feecenterList, feecenterRemove, feecenterSubmit} from "@/api/iosBasicData/feecenter";
+    import {
+        feecenterList,
+        feecenterRemove,
+        feecenterSubmit,
+        finaccbillsGenerateBill, finaccbillsRevokeBill
+    } from "@/api/iosBasicData/feecenter";
     import {getWorkDicts} from "@/api/system/dictbiz";
     import {feecenterTemplateImport, losbfeestemplateGetListTemplate} from "@/api/iosBasicData/bills";
     import {losbfeestemplateDetail} from "@/api/iosBasicData/losbfeestemplate";
@@ -699,7 +725,7 @@
                     column:[
                         {
                             label: '客户',
-                            prop:'curCode'
+                            prop:'corpCnName'
                         },
                         {
                             label: '费用',
@@ -911,8 +937,74 @@
                 row.podCode = this.assemblyForm.podCode // 卸货港代码
                 row.podCnName = this.assemblyForm.podCnName // 卸货港中文名称
                 row.podEnName = this.assemblyForm.podEnName // 卸货港英文名称
+                row.corpArgreementNo = this.assemblyForm.corpArgreementNo // 客户约号
                 this.feecenterSubmitfun(row)
             },
+            // 生成账单
+            GenerateBillsfun(dc){
+                this.$confirm("确定将选择数据生成账单?", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                }).then(()=>{
+                    if (dc == 'D') {
+                        for(let item of this.selectionDList) {
+                            if (item.accStatus == 1) {
+                                this.$message({
+                                    type: "warning",
+                                    message: "当前选择的费用已经生成账单了!"
+                                });
+                                return
+                            }
+                        }
+                        this.finaccbillsGenerateBillfun(this.selectionDList)
+                    }else {
+                        for(let item of this.selectionCList) {
+                            if (item.accStatus == 1) {
+                                this.$message({
+                                    type: "warning",
+                                    message: "当前选择的费用已经生成账单了!"
+                                });
+                                return
+                            }
+                        }
+                        this.finaccbillsGenerateBillfun(this.selectionCList)
+                    }
+                })
+            },
+            // 撤销账单
+            RevokingBillsfun(dc){
+                this.$confirm("确定将选择数据撤销账单?", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                }).then(()=>{
+                    if (dc == 'D') {
+                        for(let item of this.selectionDList) {
+                            if (item.accStatus == 0) {
+                                this.$message({
+                                    type: "warning",
+                                    message: "当前选择的费用还没有生成账单!"
+                                });
+                                return
+                            }
+                        }
+                        this.finaccbillsRevokeBillfun(this.selectionDList)
+                    }else {
+                        for(let item of this.selectionCList) {
+                            if (item.accStatus == 0) {
+                                this.$message({
+                                    type: "warning",
+                                    message: "当前选择的费用还没有生成账单!"
+                                });
+                                return
+                            }
+                        }
+                        this.finaccbillsRevokeBillfun(this.selectionCList)
+                    }
+                })
+
+            },
             // 多选删除
             handleSelectionChange(list,dc){
                 if (dc == 'D') {
@@ -971,12 +1063,28 @@
                         }
                     }
                 }else if (name == 'feeCnName') {
+                    if (!value) {
+                        this.$set(row,'feeCnName','')
+                        this.$set(row,'feeEnName','')
+                        this.$set(row,'feeId','')
+                        this.$set(row,'feeCode','')
+                        // 核算要素
+                        this.$set(row,'elementsId','')
+                        this.$set(row,'elementsCnName','')
+                        this.$set(row,'elementsCode','')
+                        this.$set(row,'elementsEnName','')
+                    }
                     for(let item of this.feeCnNameData) {
                         if (item.cnName == value){
                             this.$set(row,'feeCnName',item.cnName)
                             this.$set(row,'feeEnName',item.enName)
                             this.$set(row,'feeId',item.id)
                             this.$set(row,'feeCode',item.code)
+                            // 核算要素
+                            this.$set(row,'elementsId',item.accElementId)
+                            this.$set(row,'elementsCnName',item.accElementName)
+                            this.$set(row,'elementsCode',item.elementsCode)
+                            this.$set(row,'elementsEnName',item.elementsEnName)
                         }
                     }
                 }else if (name == 'curCode') {
@@ -1073,7 +1181,7 @@
                     srcBillId = this.assemblyForm.id
                 }
                 getBunitsPage({srcBillId}).then(res=>{
-                    this.unitNoData = res.data.data.records
+                    this.unitNoData = res.data.data
                 })
             },
             // 获取币别数据
@@ -1097,6 +1205,40 @@
                     }
                 }
             },
+            // 生成账单接口
+            finaccbillsGenerateBillfun(list){
+                const obj = {
+                    feeCenterList:list,
+                    businessTypeCode:'HYZD',
+                    billNoFormat:'HYZD',
+                    accountType:'LOCAL',
+                    refno:this.assemblyForm.refno,
+                    bookingNo:this.assemblyForm.bookingNo,
+                    polNamePrint:this.assemblyForm.polNamePrint,
+                    podNamePrint:this.assemblyForm.podNamePrint,
+                }
+                console.log(obj,1132)
+                finaccbillsGenerateBill(obj).then(res=>{
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                    this.$emit('billsDetailfun')
+                })
+            },
+            // 撤销账单接口
+            finaccbillsRevokeBillfun(list){
+                const obj = {
+                    feeCenterList:list,
+                }
+                finaccbillsRevokeBill(obj).then(res=>{
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                    this.$emit('billsDetailfun')
+                })
+            },
             // 表头样式
             tableHeaderCellStyle({row,column,rowIndex, columnIndex}){
                 return "padding:4px 0px;fontSize:12px;color:#000;background:#ecf5ff"

+ 31 - 6
src/views/iosBasicData/SeafreightExportF/bills/assembly/filescenter.vue

@@ -115,6 +115,19 @@
           </avue-form>
       </el-dialog>
 
+      <!--附近弹窗-->
+      <el-dialog
+          width="80%"
+          title="附件"
+          :visible.sync="urlVisible"
+          :close-on-click-modal="false"
+          append-to-body
+      >
+          <div style="width: 50%;height: 50%;margin: 0 auto">
+              <img :src="imgUrl" alt="" style="width: 100%;height: 100%;" />
+          </div>
+      </el-dialog>
+
   </basic-container>
 </template>
 
@@ -122,6 +135,7 @@
   import {filescenterList, filescenterDetail, filescenterSubmit, filescenterRemove} from "@/api/iosBasicData/filescenter";
   import {mapGetters} from "vuex";
   import {requiredMessage} from "@/util/messageReminder";
+  import Vue from "vue";
 
   export default {
       props:{
@@ -166,6 +180,8 @@
               label: '是',
               value: 1
           }],
+          urlVisible:false, // 附件的上传
+          imgUrl:'', // 弹窗展示的图片地址
 
         form: {},
         query: {},
@@ -241,17 +257,17 @@
             {
               label: "文件地址",
               prop: "url",
-                width: "400"
+              width: "500"
             },
             {
               label: "是否图片",
               prop: "isImage",
             },
-              {
-                  label: "文件接收日期",
-                  prop: "receivedData",
-                  width:"120",
-              },
+            {
+               label: "文件接收日期",
+               prop: "receivedData",
+               width:"160",
+            },
             // {
             //   label: "排序",
             //   prop: "sort",
@@ -313,6 +329,8 @@
         // 预览
         rowPreview(row,index){
             console.log(row,315)
+            this.imgUrl = row.url
+            this.urlVisible = true
         },
         // 编辑
         rowEdit(row,index) {
@@ -335,6 +353,13 @@
             if (!requiredMessage(row,messageData)){
                 return
             }
+            if (!row.isImage && row.isImage != 0) {
+                this.$message({
+                    message: '请选择文件类型',
+                    type: 'warning'
+                });
+                return;
+            }
             row.sort = index
             row.businessType = 'SE'
             row.pid = this.assemblyForm.id

+ 9 - 1
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -44,7 +44,7 @@
                                                     </span>
                                                             <!--<div v-if="item[0].type == 'button'" style="width: 100%;background: #1eff11" class="buttomBlNO">-->
                                                             <!--</div>-->
-                                                            <el-button v-if="item[0].type == 'button'" :disabled="item[0].disabled"
+                                                            <el-button v-if="item[0].type == 'button'" :disabled="detailData.seeDisabled || item[0].disabled"
                                                                        size="small" type="success" icon="el-icon-edit" circle
                                                                        @click="applyforfun(item[0].label)" >
                                                             </el-button>
@@ -777,6 +777,7 @@ import {dateFormat} from "@/util/date";
                 }).then(res=>{
                     this.columnforfun('hpaymode').disabled = false
                     this.$set(this.form,'hblno',res.data.data)
+                    this.billsSubmitfun()
                 })
             },
             /* 远程模糊查询操作用户 */
@@ -940,6 +941,13 @@ import {dateFormat} from "@/util/date";
             },
             // 申请B/L NO
             applyforfun(text){
+                if (!this.form.id) {
+                    this.$message({
+                        message: '请先保存数据',
+                        type: 'warning'
+                    });
+                    return
+                }
                 // 如果不是分单
                 if (this.form.billType != 'MH') {
                     this.$message({

+ 42 - 9
src/views/iosBasicData/bfeesdefine/index.vue

@@ -86,6 +86,15 @@
               </avue-text-ellipsis>
             </template>
 
+              <template slot-scope="scope" slot="accElementNameForm">
+                  <search-query ref="SearchQuery" :disabled="searchDisabled"
+                                :selectValue="form.accElementName" :datalist="accElementData" title="费用类别"
+                                :filterable="true" :clearable="true"
+                                :remote="true" :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
+                                @remoteMethod="getBaccelementsListfun" @corpChange="accElementCorpChange">
+                      <bfeesdetype></bfeesdetype>
+                  </search-query>
+              </template>
           </avue-crud>
         </basic-container>
       </el-col>
@@ -132,6 +141,7 @@ import bfeesdetype from "@/views/iosBasicData/bfeesdefine/bfeesdetype.vue";
 import rateManagement from '@/views/iosBasicData/rateManagement/index.vue'
 
 import { getToken } from "@/util/auth";
+import {getBaccelementsList} from "@/api/iosBasicData/baccelements";
 
 
 export default {
@@ -148,6 +158,8 @@ export default {
       unitNoData: [],
       // 币别数据
       curNoData: [],
+        // 核算名称
+        accElementData:[],
 
       treeOption: {
         nodeKey: "id",
@@ -301,18 +313,19 @@ export default {
             //   trigger: "blur"
             // }]
           },
-          {
-            label: "核算ID",
-            prop: "accElementId",
-            // rules: [{
-            //     required: true,
-            //     message: "请输入核算要素ID",
-            //     trigger: "blur"
-            // }]
-          },
+          // {
+          //   label: "核算ID",
+          //   prop: "accElementId",
+          //   // rules: [{
+          //   //     required: true,
+          //   //     message: "请输入核算要素ID",
+          //   //     trigger: "blur"
+          //   // }]
+          // },
           {
             label: "核算名称",
             prop: "accElementName",
+              formslot: true
             // rules: [{
             //   required: true,
             //   message: "请输入财务核算要素名称",
@@ -476,6 +489,7 @@ export default {
     this.bfeesdefineListfun()
     this.getBunitsListfun()
     this.getRateListfun()
+      this.getBaccelementsListfun()
   },
   methods: {
       // 禁用启用按钮
@@ -565,6 +579,25 @@ export default {
         this.curNoData = res.data.data.records
       })
     },
+      // 获取核算要素数据
+      getBaccelementsListfun(cnName){
+          getBaccelementsList(1, 10, { cnName }).then(res=>{
+              this.accElementData = res.data.data.records
+          })
+      },
+      // 核算要素的监听
+      accElementCorpChange(value){
+          for(let item of this.accElementData) {
+              if(item.cnName == value) {
+                  this.$set(this.form,'accElementId',item.id)
+                  this.$set(this.form,'accElementName',item.cnName)
+                  this.$set(this.form,'elementsCode',item.code)
+                  this.$set(this.form,'elementsEnName',item.enName)
+              }
+          }
+
+      },
+
     // 费用信息选中回调
     feesTypeCorpChange(value) {
       this.feesTypeData.map(item => {