Ver Fonte

1.OW 新加撤销费用
2.OW 预览报表 新加账期
3.费用新加税率 税额 修改计算
4.费用中心 去掉删除 新加检索条件 切花分页为空
5.箱管 费用明细修改字段名称
6.进场 修改FTP导入 bug
7.费用模板 修改集装箱的币别下拉
8.pod场站 修改pod新加字段
9.ow 新加字段 调整布局
10.amend 费用明细 新加字段和修改计算规则

Qukatie há 4 meses atrás
pai
commit
f298bd715f
25 ficheiros alterados com 977 adições e 397 exclusões
  1. 8 0
      src/api/boxManagement/buyContainer/index.js
  2. 89 23
      src/components/boxManagement/businessReports.vue
  3. 26 1
      src/components/feeModify/main.vue
  4. 84 106
      src/views/billM/expenseCenter/index.vue
  5. 1 1
      src/views/boxManagement/agentBox/detailsPage.vue
  6. 1 1
      src/views/boxManagement/boxAdjustment/detailsPage.vue
  7. 2 2
      src/views/boxManagement/boxCost/detailsPage.vue
  8. 1 1
      src/views/boxManagement/boxExit/detailsPage.vue
  9. 1 1
      src/views/boxManagement/buyContainer/detailsPage.vue
  10. 33 4
      src/views/boxManagement/enterRecord/index.vue
  11. 1 1
      src/views/boxManagement/rentalBox/detailsPage.vue
  12. 109 47
      src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue
  13. 81 25
      src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue
  14. 19 3
      src/views/iosBasicData/financialManagement/finstlbills/index.vue
  15. 6 8
      src/views/iosBasicData/loloTemplate/feesTemplateItems.vue
  16. 27 18
      src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue
  17. 14 1
      src/views/iosBasicData/podStation/index.vue
  18. 6 8
      src/views/iosBasicData/podTemplate/feesTemplateItems.vue
  19. 6 8
      src/views/iosBasicData/polTemplate/feesTemplateItems.vue
  20. 81 38
      src/views/iosBasicData/seamends/assembly/amendsCostdetails.vue
  21. 2 0
      src/views/iosBasicData/seamends/assembly/billgenerated.vue
  22. 78 38
      src/views/iosBasicData/siamends/assembly/amendsCostdetails.vue
  23. 2 0
      src/views/iosBasicData/siamends/assembly/billgenerated.vue
  24. 2 2
      src/views/ow/owPut/detailsPage.vue
  25. 297 60
      src/views/ow/owTask/detailsPage.vue

+ 8 - 0
src/api/boxManagement/buyContainer/index.js

@@ -308,4 +308,12 @@ export function revokeMergeGenerateCost(data) {
     method: 'post',
     data: data
   })
+}
+//撤销费用
+export function revokePickUpCost(data) {
+  return request({
+    url: '/api /blade-los/tradingBox/revokePickUpCost',
+    method: 'post',
+    data: data
+  })
 }

+ 89 - 23
src/components/boxManagement/businessReports.vue

@@ -603,34 +603,100 @@ export default {
     },
     // 打印报表获取数据
     reportsGetReportDatafun(url, row) {
-      printingUpdate({ id: this.id })
-      let obj = {}
-      if (this.selecList.length || this.type) {
-        obj = {
-          billId: this.id,
-          reportCode: row.classifyCode,
-          groupCode: row.groupCode,
-          itemIds: this.itemIds,
-          type: this.businessValue
-        }
+      if (row.code == "PerDiem") {
+        this.$DialogForm.show({
+          title: '账期',
+          width: '30%',
+          menuPosition: 'right',
+          option: {
+            submitText: '确定',
+            emptyText: '取消',
+            // labelWidth: 130,
+            column: [
+              {
+                label: "日期",
+                span: 24,
+                prop: "date",
+                type: "month",
+                format: "yyyy-MM",
+                valueFormat: "yyyy-MM-01 00:00:00",
+                rules: [{
+                  required: true,
+                  message: "请选择日期",
+                  trigger: "blur",
+                }],
+              },
+            ]
+          },
+          beforeClose: (done) => {
+            done()
+          },
+          callback: (res) => {
+            res.done()
+            printingUpdate({ id: this.id })
+            let obj = {}
+            if (this.selecList.length || this.type) {
+              obj = {
+                billId: this.id,
+                reportCode: row.classifyCode,
+                groupCode: row.groupCode,
+                itemIds: this.itemIds,
+                type: this.businessValue,
+                date: res.data.date
+              }
+            } else {
+              obj = {
+                billId: this.id,
+                reportCode: this.classifyCode,
+                groupCode: this.groupCode,
+                type: this.businessValue,
+                corpIds: row.id,
+                date: res.data.date
+              }
+            }
+            reportsGetReportData(obj).then(res => {
+              if (this.selecList.length || this.type) {
+                this.handleReportPreview(url, res.data.data.data)
+              } else {
+                this.handleReportPreview(this.url, res.data.data.data)
+              }
+            })
+            res.close()
+          }
+        })
       } else {
-        obj = {
-          billId: this.id,
-          reportCode: this.classifyCode,
-          groupCode: this.groupCode,
-          type: this.businessValue,
-          corpIds: row.id
-        }
-      }
-      reportsGetReportData(obj).then(res => {
+        printingUpdate({
+          id: this.id
+        })
+        let obj = {}
         if (this.selecList.length || this.type) {
-          this.handleReportPreview(url, res.data.data.data)
+          obj = {
+            billId: this.id,
+            reportCode: row.classifyCode,
+            groupCode: row.groupCode,
+            itemIds: this.itemIds,
+            type: this.businessValue
+          }
         } else {
-          this.handleReportPreview(this.url, res.data.data.data)
+          obj = {
+            billId: this.id,
+            reportCode: this.classifyCode,
+            groupCode: this.groupCode,
+            type: this.businessValue,
+            corpIds: row.id
+          }
         }
-      })
+        reportsGetReportData(obj).then(res => {
+          if (this.selecList.length || this.type) {
+            this.handleReportPreview(url, res.data.data.data)
+          } else {
+            this.handleReportPreview(this.url, res.data.data.data)
+          }
+        })
+      }
+
     },
-        testMail(e) {
+    testMail(e) {
       console.info('eeeeeeeeeeeeeeeeeeee----', e)
       this.$refs.mailComponentRef.dialogVisible = true
       this.$refs.mailComponentRef.formData.attachments = e.fileName

+ 26 - 1
src/components/feeModify/main.vue

@@ -66,6 +66,11 @@
               style="width: 100%;" :precision="0" @change="countChange()"
               :disabled="newOption.disabled"></el-input-number>
           </template>
+          <template slot="taxRateUpdate">
+            <el-input-number v-model="newForm.taxRateUpdate" :controls="false" placeholder="请输入 税率" size="small"
+              style="width: 100%;" :precision="0" @change="countChange()"
+              :disabled="newOption.disabled"></el-input-number>
+          </template>
         </avue-form>
       </div>
       <span slot="footer" class="dialog-footer">
@@ -157,6 +162,14 @@ export default {
             prop: "price",
           },
           {
+            label: "税率",
+            prop: "taxRate",
+          },
+          {
+            label: "税额",
+            prop: "amountTax",
+          },
+          {
             label: "金额",
             prop: "amount",
           },
@@ -211,6 +224,14 @@ export default {
             prop: "priceUpdate",
           },
           {
+            label: "税率",
+            prop: "taxRateUpdate",
+          },
+          {
+            label: "税额",
+            prop: "amountTaxUpdate",
+          },
+          {
             label: "金额",
             prop: "amountUpdate",
             disabled: true,
@@ -304,6 +325,8 @@ export default {
           // billCorpCnNameUpdate: row.billCorpCnName,
           // billCorpEnNameUpdate: row.billCorpEnName,
           // billShortNameUpdate: row.billShortName,
+          taxRateUpdate: row.taxRate,
+          amountTaxUpdate: row.amountTax,
           corpTypeUpdate: row.corpType,
           feeIdUpdate: row.feeId,
           feeCodeUpdate: row.feeCode,
@@ -395,7 +418,9 @@ export default {
       }
     },
     countChange() {
-      this.newForm.amountUpdate = _.round(_.multiply(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0, this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
+      // this.newForm.amountUpdate = _.round(_.multiply(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0, this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
+      this.newForm.amountTaxUpdate=_.round(Number(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0) * (Number(this.newForm.taxRateUpdate ? this.newForm.taxRateUpdate : 0) / 100) * Number(this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
+      this.newForm.amountUpdate = _.round(Number(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0) * (1 + Number(this.newForm.taxRateUpdate ? this.newForm.taxRateUpdate : 0) / 100) * Number(this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
     },
     dicChange(name, row) {
       if (name == 'corpTypeUpdate') {

+ 84 - 106
src/views/billM/expenseCenter/index.vue

@@ -1,81 +1,64 @@
 <template>
   <basic-container>
-    <avue-crud ref="crud"
-               id="out-table"
-               v-model="form"
-               :before-open="beforeOpen"
-               :data="data"
-               :option="option"
-               :page.sync="page"
-               :permission="permissionList"
-               :table-loading="loading"
-               :search.sync="query"
-               :header-cell-class-name="headerClassName"
-               @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 310)"
-               @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 310)"
-               @row-update="rowUpdate"
-               @row-save="rowSave"
-               @row-del="rowDel"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @selection-change="selectionChange"
-               @current-change="currentChange"
-               @size-change="sizeChange"
-               @refresh-change="refreshChange"
-               @on-load="onLoad">
-<!--      <template slot="search" slot-scope="{row,size}">-->
-<!--        <el-form ref="form" :model="row" label-width="80px">-->
-<!--          <el-row>-->
-<!--            <el-col :span="6">-->
-<!--              <el-form-item label="客户名称">-->
-<!--                <el-select-->
-<!--                  v-model="query.corpCnName"-->
-<!--                  filterable-->
-<!--                  remote-->
-<!--                  clearable-->
-<!--                  style="width:100%"-->
-<!--                  placeholder="请输入关键词"-->
-<!--                  :remote-method="remoteMethod"-->
-<!--                  :loading="loading">-->
-<!--                  <el-option-->
-<!--                    v-for="item in corpCnNameList"-->
-<!--                    :key="item.cnName"-->
-<!--                    :label="item.cnName"-->
-<!--                    :value="item.cnName">-->
-<!--                  </el-option>-->
-<!--                </el-select>-->
-<!--              </el-form-item>-->
-<!--            </el-col>-->
-<!--            <el-col :span="6">-->
-<!--              <el-form-item label="MB/L NO">-->
-<!--                <el-input v-model="query.mblno"></el-input>-->
-<!--              </el-form-item>-->
-<!--            </el-col>-->
-<!--            <el-col :span="6">-->
-<!--              <el-form-item label="HB/L NO">-->
-<!--                <el-input v-model="query.hblno"></el-input>-->
-<!--              </el-form-item>-->
-<!--            </el-col>-->
-<!--            <el-col :span="6">-->
-<!--              <el-form-item label="船名">-->
-<!--                <el-input v-model="query.vesselCnName"></el-input>-->
-<!--              </el-form-item>-->
-<!--            </el-col>-->
-<!--            <el-col :span="6">-->
-<!--              <el-form-item label="航次">-->
-<!--                <el-input v-model="query.voyageNo"></el-input>-->
-<!--              </el-form-item>-->
-<!--            </el-col>-->
-<!--            <el-col :span="6">-->
-<!--              <el-form-item label="ETD">-->
-<!--                <el-input v-model="query.etd"></el-input>-->
-<!--              </el-form-item>-->
-<!--            </el-col>-->
-<!--          </el-row>-->
-<!--        </el-form>-->
-<!--      </template>-->
-<!--      <template slot="searchMenu"  slot-scope="{row,size}">-->
-<!--      </template>-->
+    <avue-crud ref="crud" id="out-table" v-model="form" :before-open="beforeOpen" :data="data" :option="option"
+      :page.sync="page" :permission="permissionList" :table-loading="loading" :search.sync="query"
+      :header-cell-class-name="headerClassName" @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 310)"
+      @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 310)" @row-update="rowUpdate" @row-save="rowSave"
+      @row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <!--      <template slot="search" slot-scope="{row,size}">-->
+      <!--        <el-form ref="form" :model="row" label-width="80px">-->
+      <!--          <el-row>-->
+      <!--            <el-col :span="6">-->
+      <!--              <el-form-item label="客户名称">-->
+      <!--                <el-select-->
+      <!--                  v-model="query.corpCnName"-->
+      <!--                  filterable-->
+      <!--                  remote-->
+      <!--                  clearable-->
+      <!--                  style="width:100%"-->
+      <!--                  placeholder="请输入关键词"-->
+      <!--                  :remote-method="remoteMethod"-->
+      <!--                  :loading="loading">-->
+      <!--                  <el-option-->
+      <!--                    v-for="item in corpCnNameList"-->
+      <!--                    :key="item.cnName"-->
+      <!--                    :label="item.cnName"-->
+      <!--                    :value="item.cnName">-->
+      <!--                  </el-option>-->
+      <!--                </el-select>-->
+      <!--              </el-form-item>-->
+      <!--            </el-col>-->
+      <!--            <el-col :span="6">-->
+      <!--              <el-form-item label="MB/L NO">-->
+      <!--                <el-input v-model="query.mblno"></el-input>-->
+      <!--              </el-form-item>-->
+      <!--            </el-col>-->
+      <!--            <el-col :span="6">-->
+      <!--              <el-form-item label="HB/L NO">-->
+      <!--                <el-input v-model="query.hblno"></el-input>-->
+      <!--              </el-form-item>-->
+      <!--            </el-col>-->
+      <!--            <el-col :span="6">-->
+      <!--              <el-form-item label="船名">-->
+      <!--                <el-input v-model="query.vesselCnName"></el-input>-->
+      <!--              </el-form-item>-->
+      <!--            </el-col>-->
+      <!--            <el-col :span="6">-->
+      <!--              <el-form-item label="航次">-->
+      <!--                <el-input v-model="query.voyageNo"></el-input>-->
+      <!--              </el-form-item>-->
+      <!--            </el-col>-->
+      <!--            <el-col :span="6">-->
+      <!--              <el-form-item label="ETD">-->
+      <!--                <el-input v-model="query.etd"></el-input>-->
+      <!--              </el-form-item>-->
+      <!--            </el-col>-->
+      <!--          </el-row>-->
+      <!--        </el-form>-->
+      <!--      </template>-->
+      <!--      <template slot="searchMenu"  slot-scope="{row,size}">-->
+      <!--      </template>-->
       <template slot="corpCnName" slot-scope="scope">
         <avue-text-ellipsis :text="scope.row.corpCnName" :height="30" use-tooltip placement="top">
           <small slot="more">...</small>
@@ -87,23 +70,23 @@
         </avue-text-ellipsis>
       </template>
       <template slot="menuLeft">
-<!--        v-if="permission.feecenter_delete"-->
-        <el-button
+        <!--        v-if="permission.feecenter_delete"-->
+        <!-- <el-button
                    icon="el-icon-delete"
                    plain
                    size="small"
                    type="danger"
                    @click="handleDelete">删 除
-        </el-button>
+        </el-button> -->
       </template>
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
-import {feecenterList, feecenterRemove} from "@/api/iosBasicData/feecenter";
+import { feecenterList, feecenterRemove } from "@/api/iosBasicData/feecenter";
 import { getBcorpsList } from "@/api/iosBasicData/bcorps";
-import {mapGetters} from "vuex";
+import { mapGetters } from "vuex";
 
 export default {
   data() {
@@ -123,12 +106,13 @@ export default {
         calcHeight: 30,
         tip: false,
         searchShow: true,
-        searchMenuSpan: 6,
+        searchMenuSpan: 24,
         border: true,
         index: true,
         viewBtn: true,
         selection: true,
         dialogClickModal: false,
+        menu: false,
         column: [
           {
             label: "客户名称",
@@ -139,6 +123,7 @@ export default {
           {
             label: "费用简称",
             prop: "feeCnName",
+            search: true,
             width: "180"
           },
           {
@@ -149,11 +134,11 @@ export default {
             label: "收付",
             search: true,
             type: 'select',
-            dicData:[{
-              label:'收',
+            dicData: [{
+              label: '收',
               value: 'D'
-            },{
-              label:'付',
+            }, {
+              label: '付',
               value: 'C'
             }],
             prop: "dc"
@@ -227,24 +212,23 @@ export default {
             width: "180",
             prop: "voyageNo"
           },
+          // {
+          //   label: "ETD",
+          //   prop: "etd",
+          //   width: "180"
+          // },
           {
             label: "ETD",
             prop: "etd",
-            width: "180"
-          },
-          {
-            label: "ETD",
+            width: "180",
             search: true,
-            type: 'daterange',
-            hide: true,
-            format:'yyyy-MM-dd',
-            valueFormat:'yyyy-MM-dd',
+            type: 'date',
+            searchProp: 'etdList',
             searchRange: true,
-            prop: "etdList"
+            searchDefaultTime: ["00:00:00", "23:59:59"],
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
           },
-
-
-
           // [
           //
           // {
@@ -1285,7 +1269,7 @@ export default {
       return ids.join(",");
     }
   },
-  async created () {
+  async created() {
     this.option = await this.getColumnData(this.getColumnName(310), this.optionBack);
     getBcorpsList(1, 10).then(res => {
       const data = res.data.data;
@@ -1295,7 +1279,7 @@ export default {
   },
   methods: {
     remoteMethod(cnName) {
-      getBcorpsList(1, 10, {cnName}).then(res => {
+      getBcorpsList(1, 10, { cnName }).then(res => {
         const data = res.data.data;
         this.corpCnNameList = data.records;
       });
@@ -1402,12 +1386,6 @@ export default {
     },
     onLoad(page, params = {}) {
       this.loading = true;
-      if (this.query.etdList) {
-        var etdList = []
-        etdList[0] = this.query.etdList[0] + ' 00:00'
-        etdList[1] = this.query.etdList[1] + ' 23:59'
-        this.query.etdList = etdList;
-      }
       feecenterList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
         const data = res.data.data;
         this.page.total = data.total;

+ 1 - 1
src/views/boxManagement/agentBox/detailsPage.vue

@@ -1140,7 +1140,7 @@ export default {
           //   }],
           // },
           {
-            label: '审核状态',
+            label: '费用状态',
             prop: 'auditStatus',
             overHidden: true,
             width: 80,

+ 1 - 1
src/views/boxManagement/boxAdjustment/detailsPage.vue

@@ -1012,7 +1012,7 @@ export default {
           //   }],
           // },
           {
-            label: '审核状态',
+            label: '费用状态',
             prop: 'auditStatus',
             overHidden: true,
             width: 80,

+ 2 - 2
src/views/boxManagement/boxCost/detailsPage.vue

@@ -1160,7 +1160,7 @@ export default {
           //   }],
           // },
           {
-            label: '审核状态',
+            label: '费用状态',
             prop: 'auditStatus',
             overHidden: true,
             width: 80,
@@ -1446,7 +1446,7 @@ export default {
           //   }],
           // },
           {
-            label: '审核状态',
+            label: '费用状态',
             prop: 'auditStatus',
             overHidden: true,
             width: 80,

+ 1 - 1
src/views/boxManagement/boxExit/detailsPage.vue

@@ -1058,7 +1058,7 @@ export default {
           //   }],
           // },
           {
-            label: '审核状态',
+            label: '费用状态',
             prop: 'auditStatus',
             overHidden: true,
             width: 80,

+ 1 - 1
src/views/boxManagement/buyContainer/detailsPage.vue

@@ -967,7 +967,7 @@ export default {
           //   }],
           // },
           {
-            label: '审核状态',
+            label: '费用状态',
             prop: 'auditStatus',
             overHidden: true,
             width: 80,

+ 33 - 4
src/views/boxManagement/enterRecord/index.vue

@@ -12,6 +12,8 @@
           </el-button>
           <el-button type="success" size="small" icon="el-icon-upload" @click="allClick('edi导入')">edi导入
           </el-button>
+          <el-button type="success" size="small" icon="el-icon-upload" @click="allClick('ftp导入')">ftp导入
+          </el-button>
           <!-- <el-button type="warning" size="small"  disabled @click="outExport">导 出
           </el-button> -->
         </template>
@@ -93,7 +95,7 @@ export default {
               res: "data"
             },
             tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/blade-los/boxdynamicsrecord/importExcel?type=CC"
+            action: "/api/blade-los/boxdynamicsrecord/importExcel?type=JC"
           }
         ]
       },
@@ -226,14 +228,14 @@ export default {
         if (row) {
           this.excelOption.column.forEach(item => {
             if (item.prop == 'excelFile') {
-              item.action = "/api/blade-los/ftp/ftpFileImport?type=OUT&corpId=" + row.id
+              item.action = "/api/blade-los/ftp/ftpFileImport?type=IN&corpId=" + row.id
             }
           })
         } else {
           this.excelForm.corpCnName = null
           this.excelOption.column.forEach(item => {
             if (item.prop == 'excelFile') {
-              item.action = "/api/blade-los/ftp/ftpFileImport?type=OUT"
+              item.action = "/api/blade-los/ftp/ftpFileImport?type=IN"
             }
           })
         }
@@ -244,6 +246,18 @@ export default {
     },
     allClick(name) {
       if (name == 'excel导入') {
+        this.excelForm = {}
+        this.excelOption.column.forEach(item => {
+          if (item.prop == 'corpCnName') {
+            item.display = false
+          }
+          if (item.prop == 'excelTemplate') {
+            item.display = true
+          }
+          if (item.prop == 'excelFile') {
+            item.action = "/api/blade-los/boxdynamicsrecord/importExcel?type=JC"
+          }
+        })
         this.excelBox = true;
       }
       if (name == 'edi导入') {
@@ -297,6 +311,21 @@ export default {
           }
         })
       }
+      if (name == 'ftp导入') {
+        this.excelForm = {}
+        this.excelOption.column.forEach(item => {
+          if (item.prop == 'corpCnName') {
+            item.display = true
+          }
+          if (item.prop == 'excelTemplate') {
+            item.display = false
+          }
+          if (item.prop == 'excelFile') {
+            item.action = "/api/blade-los/ftp/ftpFileImport?type=IN"
+          }
+        })
+        this.excelBox = true;
+      }
     },
     uploadBefore(file, done, loading) {
       done();
@@ -304,7 +333,7 @@ export default {
     },
     // 上传成功
     onSuccess(res, done, loading, column) {
-      if (res == '操作成功'||res.msg=='操作成功') {
+      if (res == '操作成功' || res.msg == '操作成功') {
         this.$message.success("上传成功!");
       }
       this.excelBox = false;

+ 1 - 1
src/views/boxManagement/rentalBox/detailsPage.vue

@@ -1173,7 +1173,7 @@ export default {
           //   }],
           // },
           {
-            label: '审核状态',
+            label: '费用状态',
             prop: 'auditStatus',
             overHidden: true,
             width: 80,

+ 109 - 47
src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue

@@ -56,7 +56,8 @@
                         <span>{{ $t("sea118n.debit") }}</span>
                     </div>
                     <el-button v-if="isFeeEditD" type="danger" plain size="small"
-                        :disabled="!selectionDList.length || disabled" @click="batchDelete('D')"> {{ $t("btn118n.deleted") }}
+                        :disabled="!selectionDList.length || disabled" @click="batchDelete('D')"> {{
+                            $t("btn118n.deleted") }}
                     </el-button>
                     <!-- <el-button v-if="isFeeEditD" type="success" plain size="small"
                         :disabled="!selectionDList.length || disabled || pleasereviewType"
@@ -66,19 +67,21 @@
                         :disabled="!selectionDList.length || disabled || pleasereviewType"
                         @click="RevokingBillsfun('D')">撤销账单
                     </el-button> -->
-                    <el-button type="primary" plain size="small" @click="printingCostsfun('D')">{{ $t("btn118n.printBill") }}</el-button>
+                    <el-button type="primary" plain size="small" @click="printingCostsfun('D')">{{
+                        $t("btn118n.printBill") }}</el-button>
                     <el-button v-if="isFeeEditD" type="success" plain size="small"
-                        :disabled="!this.assemblyForm.id || disabled || pleasereviewType"
-                        @click="templateClick('D')">{{$t("btn118n.debitTemplate") }}</el-button>
+                        :disabled="!this.assemblyForm.id || disabled || pleasereviewType" @click="templateClick('D')">{{
+                            $t("btn118n.debitTemplate") }}</el-button>
                     <el-button v-if="isFeeEditD" type="info" plain size="small" :disabled="disabled"
                         @click="feecenterSubmitListfun">{{ $t("btn118n.save") }}</el-button>
                     <el-button v-if="isFeeEditD" type="info" plain size="small" :disabled="disabled"
                         @click="feecenterEditfun('D')">{{ $t("btn118n.edit") }}
                     </el-button>
                     <el-button v-if="isFeeEditC" type="primary" plain size="small"
-                        :disabled="disabled || pleasereviewType" @click="copyfun('D')">{{ $t("btn118n.toCredit")}}</el-button>
-                    <el-button v-if="isFeeEditD" type="primary" plain size="small"
-                        @click="allClick('发票申请', 'D')">{{$t("btn118n.applyInvoice") }}</el-button>
+                        :disabled="disabled || pleasereviewType" @click="copyfun('D')">{{
+                            $t("btn118n.toCredit") }}</el-button>
+                    <el-button v-if="isFeeEditD" type="primary" plain size="small" @click="allClick('发票申请', 'D')">{{
+                        $t("btn118n.applyInvoice") }}</el-button>
                     <el-button type="primary" plain size="small" :disabled="disabled || selectionDList.length == 0"
                         @click="allClick('D费用申请')">{{ $t("btn118n.applyFee") }}</el-button>
                     <el-button type="danger" plain size="small" :disabled="disabled || selectionDList.length == 0"
@@ -110,7 +113,7 @@
                 <template slot="corpCnName" slot-scope="{ row,index }">
                     <dic-select v-if="row.edit" :key="updateSearchKey" v-model="row.shortName" placeholder="结算单位"
                         label="shortName" res="records" :slotRight="true" rightLabel="code"
-                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + (row.corpType?row.corpType:null)"
+                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + (row.corpType ? row.corpType : null)"
                         :filterable="true" :remote="true" dataName="shortName"
                         @selectChange="rowDicChange('shortName', $event, row)"></dic-select>
                     <span v-else>{{ row.shortName }}</span>
@@ -182,14 +185,19 @@
                 </template>
                 <template slot="price" slot-scope="{ row }">
                     <el-input-number v-if="row.edit" v-model="row.price" size="small" :controls="false" :precision="3"
-                        placeholder="请输入" @blur="priceinputfun($event, row)"></el-input-number>
+                        placeholder="请输入" @change="calculateTotal(row)"></el-input-number>
                     <span v-else>{{ row.price }}</span>
                 </template>
                 <template slot="quantity" slot-scope="{ row }">
                     <el-input-number v-if="row.edit" v-model="row.quantity" size="small" :controls="false"
-                        :precision="3" placeholder="请输入" @blur="quantityinputfun(row)"></el-input-number>
+                        :precision="3" placeholder="请输入" @change="calculateTotal(row)"></el-input-number>
                     <span v-else>{{ row.quantity }}</span>
                 </template>
+                <template slot="taxRate" slot-scope="{ row }">
+                    <el-input-number v-if="row.edit" v-model="row.taxRate" size="small" :controls="false" :precision="3"
+                        placeholder="请输入" @change="calculateTotal(row)" style="width: 100%;"></el-input-number>
+                    <span v-else>{{ row.taxRate }}</span>
+                </template>
                 <template slot="remarks" slot-scope="{ row }">
                     <el-input v-if="row.edit" v-model="row.remarks" size="small" placeholder="请输入"></el-input>
                     <span v-else>{{ row.remarks }}</span>
@@ -215,7 +223,9 @@
                         <span>{{ $t("sea118n.credit") }}</span>
                     </div>
                     <el-button v-if="isFeeEditC" type="danger" plain size="small"
-                        :disabled="!selectionCList.length || disabled" @click="batchDelete('C')">{{$t("btn118n.deleted") }}
+                        :disabled="!selectionCList.length || disabled" @click="batchDelete('C')">{{
+                            $t("btn118n.deleted")
+                        }}
                     </el-button>
                     <!-- <el-button v-if="isFeeEditC" type="primary" plain size="small"
                         :disabled="!selectionCList.length || disabled || pleasereviewType"
@@ -225,10 +235,11 @@
                         :disabled="!selectionCList.length || disabled || pleasereviewType"
                         @click="RevokingBillsfun('C')">撤销账单
                     </el-button> -->
-                    <el-button type="primary" plain size="small" @click="printingCostsfun('C')">{{$t("btn118n.printBill") }}</el-button>
+                    <el-button type="primary" plain size="small" @click="printingCostsfun('C')">{{
+                        $t("btn118n.printBill") }}</el-button>
                     <el-button v-if="isFeeEditC" type="success" plain size="small"
-                        :disabled="!this.assemblyForm.id || disabled || pleasereviewType"
-                        @click="templateClick('C')">{{ $t("btn118n.creditTemplate") }}
+                        :disabled="!this.assemblyForm.id || disabled || pleasereviewType" @click="templateClick('C')">{{
+                            $t("btn118n.creditTemplate") }}
                     </el-button>
                     <el-button v-if="isFeeEditC" type="info" plain size="small" :disabled="disabled"
                         @click="feecenterSubmitListfun">{{ $t("btn118n.save") }}
@@ -240,7 +251,7 @@
                         :disabled="disabled || pleasereviewType" @click="copyfun('C')">{{ $t("btn118n.toDebit") }}
                     </el-button>
                     <el-button type="info" plain size="small" @click="allClick('付费申请', 'C')">
-                        {{ $t("btn118n.applyPay")}}
+                        {{ $t("btn118n.applyPay") }}
                     </el-button>
                     <el-button type="primary" plain size="small" :disabled="disabled || selectionCList.length == 0"
                         @click="allClick('C费用申请')">{{ $t("btn118n.applyFee") }}</el-button>
@@ -286,7 +297,7 @@
                 <template slot="corpCnName" slot-scope="{ row,index }">
                     <dic-select v-if="row.edit" :key="updateSearchKey" v-model="row.shortName" placeholder="结算单位"
                         label="shortName" res="records" :slotRight="true" rightLabel="code"
-                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + (row.corpType?row.corpType:null)"
+                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + (row.corpType ? row.corpType : null)"
                         :filterable="true" :remote="true" dataName="shortName"
                         @selectChange="rowDicChange('shortNameC', $event, row)"></dic-select>
                     <span v-else>{{ row.shortName }}</span>
@@ -340,14 +351,19 @@
                 </template>
                 <template slot="price" slot-scope="{ row }">
                     <el-input-number v-if="row.edit" v-model="row.price" size="small" :controls="false" :precision="2"
-                        placeholder="请输入" @blur="priceinputfun($event, row)"></el-input-number>
+                        placeholder="请输入" @change="calculateTotal(row)"></el-input-number>
                     <span v-else>{{ row.price }}</span>
                 </template>
                 <template slot="quantity" slot-scope="{ row }">
                     <el-input-number v-if="row.edit" v-model="row.quantity" size="small" :controls="false"
-                        :precision="3" placeholder="请输入" @blur="quantityinputfun(row)"></el-input-number>
+                        :precision="3" placeholder="请输入" @change="calculateTotal(row)"></el-input-number>
                     <span v-else>{{ row.quantity }}</span>
                 </template>
+                <template slot="taxRate" slot-scope="{ row }">
+                    <el-input-number v-if="row.edit" v-model="row.taxRate" size="small" :controls="false" :precision="3"
+                        placeholder="请输入" @change="calculateTotal(row)" style="width: 100%;"></el-input-number>
+                    <span v-else>{{ row.taxRate }}</span>
+                </template>
                 <template slot="remarks" slot-scope="{ row }">
                     <el-input v-if="row.edit" v-model="row.remarks" size="small" placeholder="请输入"></el-input>
                     <span v-else>{{ row.remarks }}</span>
@@ -1064,12 +1080,12 @@ export default {
                     width: "55",
                     headerslot: true,
                 },
-/*                {
-                    label: "账单",
-                    prop: "accStatus",
-                    width: "60",
-                    overHidden: true,
-                },*/
+                /*                {
+                                    label: "账单",
+                                    prop: "accStatus",
+                                    width: "60",
+                                    overHidden: true,
+                                },*/
                 {
                     label: this.$t("sea118n.feeStatus"),
                     prop: 'auditStatus',
@@ -1145,12 +1161,24 @@ export default {
                     overHidden: true,
                 },
                 {
+                    label: "税率",
+                    prop: "taxRate",
+                    width: "80",
+                    overHidden: true,
+                },
+                {
                     label: this.$t("sea118n.quantity"),
                     prop: "quantity",
                     width: "80",
                     overHidden: true,
                 },
                 {
+                    label: "税额",
+                    prop: "amountTax",
+                    width: "80",
+                    overHidden: true,
+                },
+                {
                     label: this.$t("sea118n.localCurrency"),
                     prop: "rmbAmount",
                     width: "80",
@@ -1254,12 +1282,12 @@ export default {
                     width: "55",
                     headerslot: true,
                 },
-/*                {
-                    label: "账单",
-                    prop: "accStatus",
-                    width: "60",
-                    overHidden: true,
-                },*/
+                /*                {
+                                    label: "账单",
+                                    prop: "accStatus",
+                                    width: "60",
+                                    overHidden: true,
+                                },*/
                 {
                     label: this.$t("sea118n.feeStatus"),
                     prop: 'auditStatus',
@@ -1329,12 +1357,24 @@ export default {
                     overHidden: true,
                 },
                 {
+                    label: "税率",
+                    prop: "taxRate",
+                    width: "80",
+                    overHidden: true,
+                },
+                {
                     label: this.$t("sea118n.quantity"),
                     prop: "quantity",
                     width: "80",
                     overHidden: true,
                 },
                 {
+                    label: "税额",
+                    prop: "amountTax",
+                    width: "80",
+                    overHidden: true,
+                },
+                {
                     label: this.$t("sea118n.localCurrency"),
                     prop: "rmbAmount",
                     width: "80",
@@ -1605,8 +1645,8 @@ export default {
         this.roleName = localStorage.getItem('roleName').split(',') // 获取角色数据
         console.log("roleName", this.roleName)
         this.isAdmin = this.roleName.indexOf('admin') >= 0;
-        this.isFeeViewD = this.isAdmin || this.roleName.indexOf('应收查看') >= 0|| this.roleName.indexOf('国外费用') >= 0;
-        this.isFeeViewC = this.isAdmin || this.roleName.indexOf('应付查看') >= 0|| this.roleName.indexOf('国外费用') >= 0;
+        this.isFeeViewD = this.isAdmin || this.roleName.indexOf('应收查看') >= 0 || this.roleName.indexOf('国外费用') >= 0;
+        this.isFeeViewC = this.isAdmin || this.roleName.indexOf('应付查看') >= 0 || this.roleName.indexOf('国外费用') >= 0;
         this.isFeeView = this.isAdmin || this.isFeeViewD || this.isFeeViewC;
         this.isFeeEditD = this.isAdmin || this.isFeeViewD && this.roleName.indexOf('应收修改') >= 0;
         this.isFeeEditC = this.isAdmin || this.isFeeViewC && this.roleName.indexOf('应付修改') >= 0;
@@ -2096,7 +2136,7 @@ export default {
                 if (this.assemblyForm.feeCenterListD.length != 0) {
                     obj.branchId = this.assemblyForm.branchId
                     obj.branchName = this.assemblyForm.branchName
-                    obj.corpType=this.assemblyForm.feeCenterListD[this.assemblyForm.feeCenterListD.length - 1].corpType
+                    obj.corpType = this.assemblyForm.feeCenterListD[this.assemblyForm.feeCenterListD.length - 1].corpType
                     // 结算单位
                     obj.corpId = this.assemblyForm.feeCenterListD[this.assemblyForm.feeCenterListD.length - 1]
                         .corpId
@@ -2206,7 +2246,7 @@ export default {
                 if (this.assemblyForm.feeCenterListC.length != 0) {
                     obj.branchId = this.assemblyForm.branchId
                     obj.branchName = this.assemblyForm.branchName
-                    obj.corpType=this.assemblyForm.feeCenterListC[this.assemblyForm.feeCenterListC.length - 1].corpType
+                    obj.corpType = this.assemblyForm.feeCenterListC[this.assemblyForm.feeCenterListC.length - 1].corpType
                     // 结算单位
                     obj.corpId = this.assemblyForm.feeCenterListC[this.assemblyForm.feeCenterListC.length - 1]
                         .corpId
@@ -2726,19 +2766,20 @@ export default {
                         }
                         this.$set(row, 'curCode', item.code)
                         this.$set(row, 'exrate', this.getExchangeRate(item.code, dc, 1))
-                        this.$set(row, 'amount', Number(row.price ? row.price : 0) * Number(row.quantity ? row
-                            .quantity : 0))
-                        if (row.curCode == this.getLocalCurrency()) {
-                            this.$set(row, 'rmbAmount', row.amount.toFixed(2))
-                            this.$set(row, 'usdAmount', '')
-                            this.$set(row, 'rmbAmountNet', row.amount.toFixed(2))
-                            this.$set(row, 'usdAmountNet', '')
-                        } else {
-                            this.$set(row, 'usdAmount', row.amount.toFixed(2))
-                            this.$set(row, 'rmbAmount', '')
-                            this.$set(row, 'usdAmountNet', row.amount.toFixed(2))
-                            this.$set(row, 'rmbAmountNet', '')
-                        }
+                        // this.$set(row, 'amount', Number(row.price ? row.price : 0) * Number(row.quantity ? row
+                        //     .quantity : 0))
+                        // if (row.curCode == this.getLocalCurrency()) {
+                        //     this.$set(row, 'rmbAmount', row.amount.toFixed(2))
+                        //     this.$set(row, 'usdAmount', '')
+                        //     this.$set(row, 'rmbAmountNet', row.amount.toFixed(2))
+                        //     this.$set(row, 'usdAmountNet', '')
+                        // } else {
+                        //     this.$set(row, 'usdAmount', row.amount.toFixed(2))
+                        //     this.$set(row, 'rmbAmount', '')
+                        //     this.$set(row, 'usdAmountNet', row.amount.toFixed(2))
+                        //     this.$set(row, 'rmbAmountNet', '')
+                        // }
+                        this.calculateTotal(row)
                     }
                 }
             } else {
@@ -2746,6 +2787,27 @@ export default {
             }
 
         },
+        calculateTotal(row) {
+            this.$set(row, 'amountTax', Number(Number(row.price ? row.price : 0) * (Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0)).toFixed(2))
+            this.$set(row, 'amount', Number(row.price ? row.price : 0) * (1 + Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0))
+            // 判断是否有币种
+            if (!row.curCode) {
+                return
+            }
+            // this.$set(row, 'amountTax', Number(row.price ? row.price : 0) * (Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0))
+            // this.$set(row, 'amount', Number(row.price ? row.price : 0) * (1 + Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0))
+            if (row.curCode == this.getLocalCurrency()) {
+                this.$set(row, 'rmbAmount', row.amount.toFixed(2))
+                this.$set(row, 'usdAmount', '')
+                this.$set(row, 'rmbAmountNet', row.amount.toFixed(2))
+                this.$set(row, 'usdAmountNet', '')
+            } else {
+                this.$set(row, 'usdAmount', row.amount.toFixed(2))
+                this.$set(row, 'rmbAmount', '')
+                this.$set(row, 'usdAmountNet', row.amount.toFixed(2))
+                this.$set(row, 'rmbAmountNet', '')
+            }
+        },
         // 单价
         priceinputfun(value, row) {
             let price = Number(row.price ? row.price : 0), qty = Number(row.quantity ? row.quantity : 0)

+ 81 - 25
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -81,7 +81,7 @@
                         :disabled="disabled || pleasereviewType" @click="copyfun('D')">{{ $t("btn118n.toCredit")
                         }}</el-button>
                     <el-button v-if="isFeeEditD" type="primary" plain size="small" @click="allClick('发票申请', 'D')">
-                        {{$t("btn118n.applyInvoice") }}</el-button>
+                        {{ $t("btn118n.applyInvoice") }}</el-button>
                     <el-button type="primary" plain size="small" :disabled="disabled || selectionDList.length == 0"
                         @click="allClick('D费用申请')">{{ $t("btn118n.applyFee") }}</el-button>
                     <el-button type="danger" plain size="small" :disabled="disabled || selectionDList.length == 0"
@@ -113,7 +113,7 @@
                 <template slot="corpCnName" slot-scope="{ row,index }">
                     <dic-select v-if="row.edit" :key="updateSearchKey" v-model="row.shortName" placeholder="结算单位"
                         label="shortName" res="records" :slotRight="true" rightLabel="code"
-                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + (row.corpType?row.corpType:null)"
+                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + (row.corpType ? row.corpType : null)"
                         :filterable="true" :remote="true" dataName="shortName"
                         @selectChange="rowDicChange('shortName', $event, row)"></dic-select>
                     <span v-else>{{ row.shortName }}</span>
@@ -185,15 +185,20 @@
                 </template>
                 <template slot="price" slot-scope="{ row }">
                     <el-input-number v-if="row.edit" v-model="row.price" size="small" :controls="false" :precision="3"
-                        placeholder="请输入" @blur="priceinputfun($event, row)" style="width: 100%;"></el-input-number>
+                        placeholder="请输入" @change="calculateTotal(row)" style="width: 100%;"></el-input-number>
                     <span v-else>{{ row.price }}</span>
                 </template>
                 <template slot="quantity" slot-scope="{ row }">
                     <el-input-number v-if="row.edit" v-model="row.quantity" size="small" :controls="false"
-                        :precision="3" placeholder="请输入" @blur="quantityinputfun(row)"
+                        :precision="3" placeholder="请输入" @change="calculateTotal(row)"
                         style="width: 100%;"></el-input-number>
                     <span v-else>{{ row.quantity }}</span>
                 </template>
+                <template slot="taxRate" slot-scope="{ row }">
+                    <el-input-number v-if="row.edit" v-model="row.taxRate" size="small" :controls="false" :precision="3"
+                        placeholder="请输入" @change="calculateTotal(row)" style="width: 100%;"></el-input-number>
+                    <span v-else>{{ row.taxRate }}</span>
+                </template>
                 <template slot="remarks" slot-scope="{ row }">
                     <el-input v-if="row.edit" v-model="row.remarks" size="small" placeholder="请输入"></el-input>
                     <span v-else>{{ row.remarks }}</span>
@@ -247,7 +252,7 @@
                         :disabled="disabled || pleasereviewType" @click="copyfun('C')">{{ $t("btn118n.toDebit") }}
                     </el-button>
                     <el-button type="info" plain size="small" @click="allClick('付费申请', 'C')">
-                        {{ $t("btn118n.applyPay")}}
+                        {{ $t("btn118n.applyPay") }}
                     </el-button>
                     <el-button type="primary" plain size="small" :disabled="disabled || selectionCList.length == 0"
                         @click="allClick('C费用申请')">{{ $t("btn118n.applyFee") }}</el-button>
@@ -293,7 +298,7 @@
                 <template slot="corpCnName" slot-scope="{ row,index }">
                     <dic-select v-if="row.edit" :key="updateSearchKey" v-model="row.shortName" placeholder="结算单位"
                         label="shortName" res="records" :slotRight="true" rightLabel="code"
-                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + (row.corpType?row.corpType:null)"
+                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + (row.corpType ? row.corpType : null)"
                         :filterable="true" :remote="true" dataName="shortName"
                         @selectChange="rowDicChange('shortNameC', $event, row)"></dic-select>
                     <span v-else>{{ row.shortName }}</span>
@@ -347,15 +352,20 @@
                 </template>
                 <template slot="price" slot-scope="{ row }">
                     <el-input-number v-if="row.edit" v-model="row.price" size="small" :controls="false" :precision="2"
-                        placeholder="请输入" @blur="priceinputfun($event, row)" style="width: 100%;"></el-input-number>
+                        placeholder="请输入" @change="calculateTotal(row)" style="width: 100%;"></el-input-number>
                     <span v-else>{{ row.price }}</span>
                 </template>
                 <template slot="quantity" slot-scope="{ row }">
                     <el-input-number v-if="row.edit" v-model="row.quantity" size="small" :controls="false"
-                        :precision="3" placeholder="请输入" @blur="quantityinputfun(row)"
+                        :precision="3" placeholder="请输入" @change="calculateTotal(row)"
                         style="width: 100%;"></el-input-number>
                     <span v-else>{{ row.quantity }}</span>
                 </template>
+                <template slot="taxRate" slot-scope="{ row }">
+                    <el-input-number v-if="row.edit" v-model="row.taxRate" size="small" :controls="false" :precision="3"
+                        placeholder="请输入" @change="calculateTotal(row)" style="width: 100%;"></el-input-number>
+                    <span v-else>{{ row.taxRate }}</span>
+                </template>
                 <template slot="remarks" slot-scope="{ row }">
                     <el-input v-if="row.edit" v-model="row.remarks" size="small" placeholder="请输入"></el-input>
                     <span v-else>{{ row.remarks }}</span>
@@ -1124,12 +1134,24 @@ export default {
                         overHidden: true,
                     },
                     {
+                        label: "税率",
+                        prop: "taxRate",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
                         label: this.$t("sea118n.quantity"),
                         prop: "quantity",
                         width: "80",
                         overHidden: true,
                     },
                     {
+                        label: "税额",
+                        prop: "amountTax",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
                         label: this.$t("sea118n.localCurrency"),
                         prop: "rmbAmount",
                         width: "80",
@@ -1322,12 +1344,24 @@ export default {
                         overHidden: true,
                     },
                     {
+                        label: "税率",
+                        prop: "taxRate",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
                         label: this.$t("sea118n.quantity"),
                         prop: "quantity",
                         width: "80",
                         overHidden: true,
                     },
                     {
+                        label: "税额",
+                        prop: "amountTax",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
                         label: this.$t("sea118n.localCurrency"),
                         prop: "rmbAmount",
                         width: "80",
@@ -1603,8 +1637,8 @@ export default {
         this.roleName = localStorage.getItem('roleName').split(',') // 获取角色数据
         console.log("roleName", this.roleName)
         this.isAdmin = this.roleName.indexOf('admin') >= 0;
-        this.isFeeViewD = this.isAdmin || this.roleName.indexOf('应收查看') >= 0|| this.roleName.indexOf('国外费用') >= 0;
-        this.isFeeViewC = this.isAdmin || this.roleName.indexOf('应付查看') >= 0|| this.roleName.indexOf('国外费用') >= 0;
+        this.isFeeViewD = this.isAdmin || this.roleName.indexOf('应收查看') >= 0 || this.roleName.indexOf('国外费用') >= 0;
+        this.isFeeViewC = this.isAdmin || this.roleName.indexOf('应付查看') >= 0 || this.roleName.indexOf('国外费用') >= 0;
         this.isFeeView = this.isAdmin || this.isFeeViewD || this.isFeeViewC;
         this.isFeeEditD = this.isAdmin || this.isFeeViewD && this.roleName.indexOf('应收修改') >= 0;
         this.isFeeEditC = this.isAdmin || this.isFeeViewC && this.roleName.indexOf('应付修改') >= 0;
@@ -2104,7 +2138,7 @@ export default {
                 if (this.assemblyForm.feeCenterListD.length != 0) {
                     obj.branchId = this.assemblyForm.branchId
                     obj.branchName = this.assemblyForm.branchName
-                    obj.corpType=this.assemblyForm.feeCenterListD[this.assemblyForm.feeCenterListD.length - 1].corpType
+                    obj.corpType = this.assemblyForm.feeCenterListD[this.assemblyForm.feeCenterListD.length - 1].corpType
                     // 结算单位
                     obj.corpId = this.assemblyForm.feeCenterListD[this.assemblyForm.feeCenterListD.length - 1].corpId
                     obj.corpCnName = this.assemblyForm.feeCenterListD[this.assemblyForm.feeCenterListD.length - 1].corpCnName
@@ -2207,7 +2241,7 @@ export default {
                     obj.branchId = this.assemblyForm.branchId
                     obj.branchName = this.assemblyForm.branchName
                     // 结算单位
-                    obj.corpType=this.assemblyForm.feeCenterListC[this.assemblyForm.feeCenterListC.length - 1].corpType
+                    obj.corpType = this.assemblyForm.feeCenterListC[this.assemblyForm.feeCenterListC.length - 1].corpType
                     obj.corpId = this.assemblyForm.feeCenterListC[this.assemblyForm.feeCenterListC.length - 1].corpId
                     obj.corpCnName = this.assemblyForm.feeCenterListC[this.assemblyForm.feeCenterListC.length - 1].corpCnName
                     obj.corpEnName = this.assemblyForm.feeCenterListC[this.assemblyForm.feeCenterListC.length - 1].corpEnName
@@ -2717,18 +2751,19 @@ export default {
                         }
                         this.$set(row, 'curCode', item.code)
                         this.$set(row, 'exrate', this.getExchangeRate(item.code, dc, 1))
-                        this.$set(row, 'amount', Number(row.price ? row.price : 0) * Number(row.quantity ? row.quantity : 0))
-                        if (row.curCode == this.getLocalCurrency()) {
-                            this.$set(row, 'rmbAmount', row.amount.toFixed(2))
-                            this.$set(row, 'usdAmount', '')
-                            this.$set(row, 'rmbAmountNet', row.amount.toFixed(2))
-                            this.$set(row, 'usdAmountNet', '')
-                        } else {
-                            this.$set(row, 'usdAmount', row.amount.toFixed(2))
-                            this.$set(row, 'rmbAmount', '')
-                            this.$set(row, 'usdAmountNet', row.amount.toFixed(2))
-                            this.$set(row, 'rmbAmountNet', '')
-                        }
+                        // this.$set(row, 'amount', Number(row.price ? row.price : 0) * Number(row.quantity ? row.quantity : 0))
+                        // if (row.curCode == this.getLocalCurrency()) {
+                        //     this.$set(row, 'rmbAmount', row.amount.toFixed(2))
+                        //     this.$set(row, 'usdAmount', '')
+                        //     this.$set(row, 'rmbAmountNet', row.amount.toFixed(2))
+                        //     this.$set(row, 'usdAmountNet', '')
+                        // } else {
+                        //     this.$set(row, 'usdAmount', row.amount.toFixed(2))
+                        //     this.$set(row, 'rmbAmount', '')
+                        //     this.$set(row, 'usdAmountNet', row.amount.toFixed(2))
+                        //     this.$set(row, 'rmbAmountNet', '')
+                        // }
+                        this.calculateTotal(row)
                     }
                 }
             } else {
@@ -2737,6 +2772,27 @@ export default {
 
         },
         // 单价
+        calculateTotal(row) {
+            this.$set(row, 'amountTax', Number(Number(row.price ? row.price : 0) * (Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0)).toFixed(2))
+            this.$set(row, 'amount', Number(row.price ? row.price : 0) * (1 + Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0))
+           
+            // 判断是否有币种
+            if (!row.curCode) {
+                return
+            }
+            if (row.curCode == this.getLocalCurrency()) {
+                this.$set(row, 'rmbAmount', row.amount.toFixed(2))
+                this.$set(row, 'usdAmount', '')
+                this.$set(row, 'rmbAmountNet', row.amount.toFixed(2))
+                this.$set(row, 'usdAmountNet', '')
+            } else {
+                this.$set(row, 'usdAmount', row.amount.toFixed(2))
+                this.$set(row, 'rmbAmount', '')
+                this.$set(row, 'usdAmountNet', row.amount.toFixed(2))
+                this.$set(row, 'rmbAmountNet', '')
+            }
+        },
+        // 单价
         priceinputfun(value, row) {
             let price = Number(row.price ? row.price : 0), qty = Number(row.quantity ? row.quantity : 0)
             if (isNaN(price)) {
@@ -2780,7 +2836,7 @@ export default {
                 this.$set(row, 'rmbAmountNet', '')
             }
         },
-        // 数量
+        // // 数量
         quantityinputfun(row) {
             let price = Number(row.price ? row.price : 0), qty = Number(row.quantity ? row.quantity : 0)
             if (isNaN(price)) {

+ 19 - 3
src/views/iosBasicData/financialManagement/finstlbills/index.vue

@@ -78,7 +78,7 @@ export default {
         calcHeight: 30,
         tip: false,
         searchShow: true,
-        searchMenuSpan: 6,
+        searchMenuSpan: 24,
         searchIcon: true,
         searchIndex: 3,
         border: true,
@@ -277,6 +277,22 @@ export default {
             ],
           },
           {
+            label: "币别",
+            prop: "curCode",
+            width: 60,
+            search: true,
+            type: 'select',
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bcurrency/page?current=1&size=5&corpTypeName=箱东&shortName={{key}}",
+            props: {
+              label: 'code',
+              value: 'code',
+              res: 'data.records'
+            },
+            overHidden: true
+          },
+          {
             label: "本币应收",
             prop: "amountDr",
             width: "160"
@@ -590,7 +606,7 @@ export default {
     this.saberUserInfo = JSON.parse(localStorage.getItem('saber-userInfo')).content
     this.option = await this.getColumnData(this.getColumnName(314), this.optionBack);
     if (this.saberUserInfo.role_name.indexOf('admin') != -1 || this.saberUserInfo.role_name.indexOf('总部') != -1) {
-      this.option.searchMenuSpan = 24
+      this.option.searchMenuSpan = 18
       this.option.column.forEach(item => {
         if (item.prop == 'branchId') {
           item.search = true
@@ -888,7 +904,7 @@ export default {
       this[option] = this[optionBack];
       const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
       if (this.saberUserInfo.role_name.indexOf('admin') != -1 || this.saberUserInfo.role_name.indexOf('总部') != -1) {
-        this.option.searchMenuSpan = 24
+        this.option.searchMenuSpan = 18
         this.option.column.forEach(item => {
           if (item.prop == 'branchId') {
             item.search = true

+ 6 - 8
src/views/iosBasicData/loloTemplate/feesTemplateItems.vue

@@ -312,14 +312,12 @@ export default {
                         prop: 'curCode',
                         overHidden: true,
                         cell: true,
-                        type: 'select',
-                        dicData: [{
-                            label: 'CNY',
-                            value: 'CNY'
-                        }, {
-                            label: 'USD',
-                            value: 'USD'
-                        }],
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
+                        props: {
+                            label: "dictValue",
+                            value: "dictValue"
+                        },
                     },
 
                 ]

+ 27 - 18
src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue

@@ -246,27 +246,25 @@ export default {
                         controls: false,
                         overHidden: true,
                     },
-                    //{
-                    //  label: '成本价',
-                    //  prop: 'costPrice',
-                    //  cell: true,
-                    //  type: 'number',
-                    //  controls: false,
-                    // overHidden: true,
-                    //},
+                    {
+                        label: '税率',
+                        prop: 'taxRate',
+                        cell: true,
+                        type: 'number',
+                        controls: false,
+                        overHidden: true,
+                    },
                     {
                         label: '币种',
                         prop: 'curCode',
                         overHidden: true,
                         cell: true,
-                        type: 'select',
-                        dicData: [{
-                            label: 'CNY',
-                            value: 'CNY'
-                        }, {
-                            label: 'USD',
-                            value: 'USD'
-                        }],
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
+                        props: {
+                            label: "dictValue",
+                            value: "dictValue"
+                        },
                     },
 
                 ]
@@ -532,6 +530,16 @@ export default {
                         //     trigger: "blur"
                         // }]
                     },
+
+                    {
+                        label: '税率',
+                        prop: 'taxRate',
+                        width: "80",
+                        cell: true,
+                        type: 'number',
+                        controls: false,
+                        overHidden: true,
+                    },
                     {
                         label: "计量单位",
                         prop: "unitNo",
@@ -862,6 +870,7 @@ export default {
                 curCode: this.feestemplateForm.curCode,
                 salesPrice: 0,
                 costPrice: 0,
+                taxRate: 0,
                 $cellEdit: true
             })
         },
@@ -1132,8 +1141,8 @@ export default {
                             cancelButtonText: '取消',
                             type: 'warning'
                         }).then(() => {
-                         
-                        this.losbfeestemplateSubmitfun()
+
+                            this.losbfeestemplateSubmitfun()
                         })
                     } else {
                         this.losbfeestemplateSubmitfun()

+ 14 - 1
src/views/iosBasicData/podStation/index.vue

@@ -48,7 +48,7 @@ export default {
       podOption: {
         menuBtn: false,
         span: 24,
-        labelWidth:120,
+        labelWidth: 120,
         disabled: false,
         column: [
           {
@@ -61,6 +61,19 @@ export default {
             }],
           },
           {
+            label: '还箱日期',
+            prop: 'returnEmptyTime',
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd 00:00:00",
+            span: 24,
+            rules: [{
+              required: true,
+              message: " ",
+              trigger: "blur"
+            }],
+          },
+          {
             label: '目的港场站地址',
             prop: 'podCyAddress',
             disabled: false

+ 6 - 8
src/views/iosBasicData/podTemplate/feesTemplateItems.vue

@@ -244,14 +244,12 @@ export default {
                         prop: 'curCode',
                         overHidden: true,
                         cell: true,
-                        type: 'select',
-                        dicData: [{
-                            label: 'CNY',
-                            value: 'CNY'
-                        }, {
-                            label: 'USD',
-                            value: 'USD'
-                        }],
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
+                        props: {
+                            label: "dictValue",
+                            value: "dictValue"
+                        },
                     },
 
                 ]

+ 6 - 8
src/views/iosBasicData/polTemplate/feesTemplateItems.vue

@@ -244,14 +244,12 @@ export default {
                         prop: 'curCode',
                         overHidden: true,
                         cell: true,
-                        type: 'select',
-                        dicData: [{
-                            label: 'CNY',
-                            value: 'CNY'
-                        }, {
-                            label: 'USD',
-                            value: 'USD'
-                        }],
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
+                        props: {
+                            label: "dictValue",
+                            value: "dictValue"
+                        },
                     },
 
                 ]

+ 81 - 38
src/views/iosBasicData/seamends/assembly/amendsCostdetails.vue

@@ -81,14 +81,19 @@
             </template>
             <template slot="price" slot-scope="{ row }">
                 <el-input-number v-if="row.editType" v-model="row.price" size="small" placeholder="请输入单价"
-                    @blur="priceinputfun($event, row)" :controls="false"></el-input-number>
+                    @blur="calculateTotal(row)" :controls="false"></el-input-number>
                 <span v-else>{{ row.price }}</span>
             </template>
             <template slot="quantity" slot-scope="{ row }">
                 <el-input-number v-if="row.editType" v-model="row.quantity" size="small" :min="1" placeholder="请输入数量"
-                    @blur="quantityinputfun(row)" :controls="false"></el-input-number>
+                    @blur="calculateTotal(row)" :controls="false"></el-input-number>
                 <span v-else>{{ row.quantity }}</span>
             </template>
+            <template slot="taxRate" slot-scope="{ row }">
+                <el-input-number v-if="row.editType" v-model="row.taxRate" size="small" :controls="false" :precision="3"
+                    placeholder="请输入" @change="calculateTotal(row)" style="width: 100%;"></el-input-number>
+                <span v-else>{{ row.taxRate }}</span>
+            </template>
             <template slot="remarks" slot-scope="{ row }">
                 <el-input v-if="row.editType" v-model="row.remarks" size="small" placeholder="请输入备注"></el-input>
                 <span v-else>{{ row.remarks }}</span>
@@ -259,11 +264,23 @@ export default {
                         width: "120",
                     },
                     {
+                        label: "税率",
+                        prop: "taxRate",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
                         label: "数量",
                         prop: "quantity",
                         width: "120",
                     },
                     {
+                        label: "税额",
+                        prop: "amountTax",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
                         label: "本币",
                         prop: "rmbAmount",
                         width: "100",
@@ -504,18 +521,19 @@ export default {
                         //     }
                         // })
                         // 计算金额
-                        this.$set(row, 'amount', Number(row.price) * Number(row.quantity ? row.quantity : 0))
-                        if (row.curCode == this.getLocalCurrency()) {
-                            this.$set(row, 'rmbAmount', row.amount)
-                            this.$set(row, 'usdAmount', '')
-                            this.$set(row, 'rmbAmountNet', row.amount)
-                            this.$set(row, 'usdAmountNet', '')
-                        } else {
-                            this.$set(row, 'usdAmount', row.amount)
-                            this.$set(row, 'rmbAmount', '')
-                            this.$set(row, 'usdAmountNet', row.amount)
-                            this.$set(row, 'rmbAmountNet', '')
-                        }
+                        // this.$set(row, 'amount', Number(row.price) * Number(row.quantity ? row.quantity : 0))
+                        // if (row.curCode == this.getLocalCurrency()) {
+                        //     this.$set(row, 'rmbAmount', row.amount)
+                        //     this.$set(row, 'usdAmount', '')
+                        //     this.$set(row, 'rmbAmountNet', row.amount)
+                        //     this.$set(row, 'usdAmountNet', '')
+                        // } else {
+                        //     this.$set(row, 'usdAmount', row.amount)
+                        //     this.$set(row, 'rmbAmount', '')
+                        //     this.$set(row, 'usdAmountNet', row.amount)
+                        //     this.$set(row, 'rmbAmountNet', '')
+                        // }
+                        this.calculateTotal(row)
                     }
                 }
             } else if (name == 'unitNo') {
@@ -552,18 +570,20 @@ export default {
                         }
                     }
                 }
-                this.$set(row, 'amount', Number(row.price ? row.price : 0) * Number(row.quantity ? row.quantity : 0))
-                if (row.curCode == this.getLocalCurrency()) {
-                    this.$set(row, 'rmbAmount', row.amount)
-                    this.$set(row, 'usdAmount', '')
-                    this.$set(row, 'rmbAmountNet', row.amount)
-                    this.$set(row, 'usdAmountNet', '')
-                } else {
-                    this.$set(row, 'usdAmount', row.amount)
-                    this.$set(row, 'rmbAmount', '')
-                    this.$set(row, 'usdAmountNet', row.amount)
-                    this.$set(row, 'rmbAmountNet', '')
-                }
+                // this.$set(row, 'amount', Number(row.price ? row.price : 0) * Number(row.quantity ? row.quantity : 0))
+                // if (row.curCode == this.getLocalCurrency()) {
+                //     this.$set(row, 'rmbAmount', row.amount)
+                //     this.$set(row, 'usdAmount', '')
+                //     this.$set(row, 'rmbAmountNet', row.amount)
+                //     this.$set(row, 'usdAmountNet', '')
+                // } else {
+                //     this.$set(row, 'usdAmount', row.amount)
+                //     this.$set(row, 'rmbAmount', '')
+                //     this.$set(row, 'usdAmountNet', row.amount)
+                //     this.$set(row, 'rmbAmountNet', '')
+                // }
+
+                this.calculateTotal(row)
             } else if (name == 'curCode') {
                 if (row.feeCnName == 'PS') {
                     this.$set(row, 'curCode', '')
@@ -586,18 +606,20 @@ export default {
                         this.curCodeData = this.getCheckRate()
                         this.$set(row, 'curCode', item.code)
                         this.$set(row, 'exrate', this.getExchangeRate(item.code, row.dc, 1))
-                        this.$set(row, 'amount', Number(row.price) * Number(row.quantity ? row.quantity : 0))
-                        if (row.curCode == this.getLocalCurrency()) {
-                            this.$set(row, 'rmbAmount', row.amount)
-                            this.$set(row, 'usdAmount', '')
-                            this.$set(row, 'rmbAmountNet', row.amount)
-                            this.$set(row, 'usdAmountNet', '')
-                        } else {
-                            this.$set(row, 'usdAmount', row.amount)
-                            this.$set(row, 'rmbAmount', '')
-                            this.$set(row, 'usdAmountNet', row.amount)
-                            this.$set(row, 'rmbAmountNet', '')
-                        }
+                        // this.$set(row, 'amount', Number(row.price) * Number(row.quantity ? row.quantity : 0))
+                        // if (row.curCode == this.getLocalCurrency()) {
+                        //     this.$set(row, 'rmbAmount', row.amount)
+                        //     this.$set(row, 'usdAmount', '')
+                        //     this.$set(row, 'rmbAmountNet', row.amount)
+                        //     this.$set(row, 'usdAmountNet', '')
+                        // } else {
+                        //     this.$set(row, 'usdAmount', row.amount)
+                        //     this.$set(row, 'rmbAmount', '')
+                        //     this.$set(row, 'usdAmountNet', row.amount)
+                        //     this.$set(row, 'rmbAmountNet', '')
+                        // }
+
+                        this.calculateTotal(row)
                     }
                 }
             } else {
@@ -679,6 +701,27 @@ export default {
 
         },
         // 单价
+        calculateTotal(row) {
+            this.$set(row, 'amountTax', Number(Number(row.price ? row.price : 0) * (Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0)).toFixed(2))
+            this.$set(row, 'amount', Number(row.price ? row.price : 0) * (1 + Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0))
+
+            // 判断是否有币种
+            if (!row.curCode) {
+                return
+            }
+            if (row.curCode == this.getLocalCurrency()) {
+                this.$set(row, 'rmbAmount', row.amount.toFixed(2))
+                this.$set(row, 'usdAmount', '')
+                this.$set(row, 'rmbAmountNet', row.amount.toFixed(2))
+                this.$set(row, 'usdAmountNet', '')
+            } else {
+                this.$set(row, 'usdAmount', row.amount.toFixed(2))
+                this.$set(row, 'rmbAmount', '')
+                this.$set(row, 'usdAmountNet', row.amount.toFixed(2))
+                this.$set(row, 'rmbAmountNet', '')
+            }
+        },
+        // 单价
         priceinputfun(value, row) {
             // if (Number(value) <= 0) {
             //     this.$message({

+ 2 - 0
src/views/iosBasicData/seamends/assembly/billgenerated.vue

@@ -36,7 +36,9 @@
             <el-table-column label="币种" prop="curCode" width="120px" />
             <el-table-column label="汇率" prop="exrate" width="100px" />
             <el-table-column label="单价" prop="price" width="120px" />
+            <el-table-column label="税率" prop="taxRate" width="120px" />
             <el-table-column label="数量" prop="quantity" width="120px" />
+            <el-table-column label="税额" prop="amountTax" width="120px" />
             <el-table-column label="本币" prop="rmbAmount" width="100px" />
             <el-table-column label="外币" prop="usdAmount" width="100px" />
             <!-- <el-table-column label="CNY(净额)" prop="rmbAmountNet" width="100px" />

+ 78 - 38
src/views/iosBasicData/siamends/assembly/amendsCostdetails.vue

@@ -91,14 +91,19 @@
             </template>
             <template slot="price" slot-scope="{ row }">
                 <el-input-number v-if="row.editType" v-model="row.price" size="small" placeholder="请输入单价"
-                    @blur="priceinputfun($event, row)" :controls="false"></el-input-number>
+                    @blur="calculateTotal(row)" :controls="false"></el-input-number>
                 <span v-else>{{ row.price }}</span>
             </template>
             <template slot="quantity" slot-scope="{ row }">
                 <el-input-number v-if="row.editType" v-model="row.quantity" size="small" :min="1" placeholder="请输入数量"
-                    @blur="quantityinputfun(row)" :controls="false"></el-input-number>
+                    @blur="calculateTotal(row)" :controls="false"></el-input-number>
                 <span v-else>{{ row.quantity }}</span>
             </template>
+            <template slot="taxRate" slot-scope="{ row }">
+                <el-input-number v-if="row.editType" v-model="row.taxRate" size="small" :controls="false" :precision="3"
+                    placeholder="请输入" @change="calculateTotal(row)" style="width: 100%;"></el-input-number>
+                <span v-else>{{ row.taxRate }}</span>
+            </template>
             <template slot="remarks" slot-scope="{ row }">
                 <el-input v-if="row.editType" v-model="row.remarks" size="small" placeholder="请输入备注"></el-input>
                 <span v-else>{{ row.remarks }}</span>
@@ -252,12 +257,24 @@ export default {
                         prop: "price",
                         width: "120",
                     },
+                      {
+                        label: "税率",
+                        prop: "taxRate",
+                        width: "80",
+                        overHidden: true,
+                    },
                     {
                         label: "数量",
                         prop: "quantity",
                         width: "120",
                     },
                     {
+                        label: "税额",
+                        prop: "amountTax",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
                         label: "本币",
                         prop: "rmbAmount",
                         width: "100",
@@ -498,18 +515,19 @@ export default {
                         //     }
                         // })
                         // 计算金额
-                        this.$set(row, 'amount', Number(row.price) * Number(row.quantity ? row.quantity : 0))
-                        if (row.curCode == this.getLocalCurrency()) {
-                            this.$set(row, 'rmbAmount', row.amount)
-                            this.$set(row, 'usdAmount', '')
-                            this.$set(row, 'rmbAmountNet', row.amount)
-                            this.$set(row, 'usdAmountNet', '')
-                        } else {
-                            this.$set(row, 'usdAmount', row.amount)
-                            this.$set(row, 'rmbAmount', '')
-                            this.$set(row, 'usdAmountNet', row.amount)
-                            this.$set(row, 'rmbAmountNet', '')
-                        }
+                        // this.$set(row, 'amount', Number(row.price) * Number(row.quantity ? row.quantity : 0))
+                        // if (row.curCode == this.getLocalCurrency()) {
+                        //     this.$set(row, 'rmbAmount', row.amount)
+                        //     this.$set(row, 'usdAmount', '')
+                        //     this.$set(row, 'rmbAmountNet', row.amount)
+                        //     this.$set(row, 'usdAmountNet', '')
+                        // } else {
+                        //     this.$set(row, 'usdAmount', row.amount)
+                        //     this.$set(row, 'rmbAmount', '')
+                        //     this.$set(row, 'usdAmountNet', row.amount)
+                        //     this.$set(row, 'rmbAmountNet', '')
+                        // }
+                        this.calculateTotal(row)
                     }
                 }
             } else if (name == 'unitNo') {
@@ -546,18 +564,19 @@ export default {
                         }
                     }
                 }
-                this.$set(row, 'amount', Number(row.price ? row.price : 0) * Number(row.quantity ? row.quantity : 0))
-                if (row.curCode == this.getLocalCurrency()) {
-                    this.$set(row, 'rmbAmount', row.amount)
-                    this.$set(row, 'usdAmount', '')
-                    this.$set(row, 'rmbAmountNet', row.amount)
-                    this.$set(row, 'usdAmountNet', '')
-                } else {
-                    this.$set(row, 'usdAmount', row.amount)
-                    this.$set(row, 'rmbAmount', '')
-                    this.$set(row, 'usdAmountNet', row.amount)
-                    this.$set(row, 'rmbAmountNet', '')
-                }
+                // this.$set(row, 'amount', Number(row.price ? row.price : 0) * Number(row.quantity ? row.quantity : 0))
+                // if (row.curCode == this.getLocalCurrency()) {
+                //     this.$set(row, 'rmbAmount', row.amount)
+                //     this.$set(row, 'usdAmount', '')
+                //     this.$set(row, 'rmbAmountNet', row.amount)
+                //     this.$set(row, 'usdAmountNet', '')
+                // } else {
+                //     this.$set(row, 'usdAmount', row.amount)
+                //     this.$set(row, 'rmbAmount', '')
+                //     this.$set(row, 'usdAmountNet', row.amount)
+                //     this.$set(row, 'rmbAmountNet', '')
+                // }
+                this.calculateTotal(row)
             } else if (name == 'curCode') {
                 if (row.feeCnName == 'PS') {
                     this.$set(row, 'curCode', '')
@@ -580,18 +599,19 @@ export default {
                         this.curCodeData = this.getCheckRate()
                         this.$set(row, 'curCode', item.code)
                         this.$set(row, 'exrate', this.getExchangeRate(item.code, row.dc, 1))
-                        this.$set(row, 'amount', Number(row.price) * Number(row.quantity ? row.quantity : 0))
-                        if (row.curCode == this.getLocalCurrency()) {
-                            this.$set(row, 'rmbAmount', row.amount)
-                            this.$set(row, 'usdAmount', '')
-                            this.$set(row, 'rmbAmountNet', row.amount)
-                            this.$set(row, 'usdAmountNet', '')
-                        } else {
-                            this.$set(row, 'usdAmount', row.amount)
-                            this.$set(row, 'rmbAmount', '')
-                            this.$set(row, 'usdAmountNet', row.amount)
-                            this.$set(row, 'rmbAmountNet', '')
-                        }
+                        // this.$set(row, 'amount', Number(row.price) * Number(row.quantity ? row.quantity : 0))
+                        // if (row.curCode == this.getLocalCurrency()) {
+                        //     this.$set(row, 'rmbAmount', row.amount)
+                        //     this.$set(row, 'usdAmount', '')
+                        //     this.$set(row, 'rmbAmountNet', row.amount)
+                        //     this.$set(row, 'usdAmountNet', '')
+                        // } else {
+                        //     this.$set(row, 'usdAmount', row.amount)
+                        //     this.$set(row, 'rmbAmount', '')
+                        //     this.$set(row, 'usdAmountNet', row.amount)
+                        //     this.$set(row, 'rmbAmountNet', '')
+                        // }
+                        this.calculateTotal(row)
                     }
                 }
             } else {
@@ -672,6 +692,26 @@ export default {
             })
 
         },
+        calculateTotal(row) {
+            this.$set(row, 'amountTax', Number(Number(row.price ? row.price : 0) * (Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0)).toFixed(2))
+            this.$set(row, 'amount', Number(row.price ? row.price : 0) * (1 + Number(row.taxRate ? row.taxRate : 0) / 100) * Number(row.quantity ? row.quantity : 0))
+
+            // 判断是否有币种
+            if (!row.curCode) {
+                return
+            }
+            if (row.curCode == this.getLocalCurrency()) {
+                this.$set(row, 'rmbAmount', row.amount.toFixed(2))
+                this.$set(row, 'usdAmount', '')
+                this.$set(row, 'rmbAmountNet', row.amount.toFixed(2))
+                this.$set(row, 'usdAmountNet', '')
+            } else {
+                this.$set(row, 'usdAmount', row.amount.toFixed(2))
+                this.$set(row, 'rmbAmount', '')
+                this.$set(row, 'usdAmountNet', row.amount.toFixed(2))
+                this.$set(row, 'rmbAmountNet', '')
+            }
+        },
         // 单价
         priceinputfun(value, row) {
             // if (Number(value) <= 0) {

+ 2 - 0
src/views/iosBasicData/siamends/assembly/billgenerated.vue

@@ -29,7 +29,9 @@
             <el-table-column label="币种" prop="curCode" width="120px" />
             <el-table-column label="汇率" prop="exrate" width="100px" />
             <el-table-column label="单价" prop="price" width="120px" />
+            <el-table-column label="税率" prop="taxRate" width="120px" />
             <el-table-column label="数量" prop="quantity" width="120px" />
+            <el-table-column label="税额" prop="amountTax" width="120px" />
             <el-table-column label="CNY(含税)" prop="rmbAmount" width="100px" />
             <el-table-column label="USD(含税)" prop="usdAmount" width="100px" />
             <el-table-column label="CNY(净额)" prop="rmbAmountNet" width="100px" />

+ 2 - 2
src/views/ow/owPut/detailsPage.vue

@@ -1742,7 +1742,7 @@ export default {
         //   }],
         // },
         {
-          label: '审核状态',
+          label: '费用状态',
           prop: 'auditStatus',
           overHidden: true,
           width: 80,
@@ -1997,7 +1997,7 @@ export default {
         //   }],
         // },
         {
-          label: '审核状态',
+          label: '费用状态',
           prop: 'auditStatus',
           overHidden: true,
           width: 80,

+ 297 - 60
src/views/ow/owTask/detailsPage.vue

@@ -47,12 +47,17 @@
           <trade-card title="基础信息">
             <avue-form :option="optionForm" v-model="form" ref="form">
               <tempalte slot="purchaseCompanyName">
-                <dic-select v-model="form.purchaseCompanyName" placeholder="provider" key="id" label="shortName"
-                  res="records" @selectChange="dicChange('purchaseCompanyName', $event)"
-                  :disabled="editDisabled || (fixData && form.whetherEnable == '是')"
-                  url="/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=箱东" :filterable="true"
-                  :remote="true" dataName="shortName" :slotRight="true" rightLabel="code">
-                </dic-select>
+                <span style="display: flex;">
+                  <dic-select v-model="form.purchaseCompanyName" placeholder="provider" key="id" label="shortName"
+                    res="records" @selectChange="dicChange('purchaseCompanyName', $event)"
+                    :disabled="editDisabled || (fixData && form.whetherEnable == '是')"
+                    url="/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=箱东" :filterable="true"
+                    :remote="true" dataName="shortName" :slotRight="true" rightLabel="code">
+                  </dic-select>
+                  <el-tooltip class="item" effect="dark" content="导入OW合约" placement="top">
+                    <el-button v-show="form.purchaseCompanyName" icon="el-icon-search" @click.stop="inOwhy" />
+                  </el-tooltip>
+                </span>
               </tempalte>
               <tempalte slot="ownerName">
                 <dic-select v-model="form.ownerName" placeholder="owner" key="id" label="enName" res="records"
@@ -241,6 +246,8 @@
               <el-button type="danger" plain size="small" :disabled="selecPickList.length == 0"
                 @click="allClick('撤销生成')">撤销生成费用</el-button>
               <el-button type="warning" plain size="small" @click="allClick('批量导入费用')">批量导入费用</el-button>
+              <el-button type="danger" plain size="small" :disabled="selecPickList.length == 0"
+                @click="allClick('撤销导入')">撤销导入</el-button>
             </template>
           </avue-crud>
         </el-tab-pane>
@@ -631,6 +638,20 @@
         <el-button type="primary" @click.stop="podSubmit" size="mini">确 定</el-button>
       </span>
     </el-dialog>
+    <el-dialog append-to-body title="导入OW合约" :visible.sync="owhyDialog" width="60%" v-dialog-drag>
+      <span>
+        <avue-crud v-if="owhyDialog" :option="owOption" :data="owList" id="out-table" ref="owCrud" :search.sync="query" :page.sync="page"
+          @search-change="owSearchChange" @search-reset="owSearchReset" :header-cell-class-name="headerClassName"
+          @current-change="currentChange" @size-change="sizeChange" :row-style="{ height: '20px', padding: '0px' }"
+          :cell-style="{ height: '20px', padding: '0px' }" @on-load="getOwList"
+          @current-row-change="handleCurrentRowChange">
+        </avue-crud>
+      </span>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="owhyDialog = false" size="mini">取 消</el-button>
+        <el-button type="primary" @click.stop="owhySubmit" size="mini">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -659,8 +680,10 @@ import {
   feeList,
   bfeesList,
   mergeGenerateCost,
-  revokeMergeGenerateCost
+  revokeMergeGenerateCost,
+  revokePickUpCost
 } from "@/api/boxManagement/buyContainer";
+import { getList as getOwList } from "@/api/boxManagement/buyContainer/index.js";
 import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/boxManagement/businessReports.vue";
@@ -674,6 +697,7 @@ export default {
   name: "detailsPage",
   data() {
     return {
+      owhyDialog: false,
       saberUserInfo: JSON.parse(localStorage.getItem('saber-userInfo')).content, // 当前登录人个人信息
       selecPickList: [],
       selecPerList: [],
@@ -684,6 +708,124 @@ export default {
       perData: [],
       podDialog: false,
       podForm: {},
+      query: {},
+      owRow: {},
+      page: {
+        total: 0,
+        currentPage: 1,
+        pageSize: 10
+      },
+      owList: [],
+      owOption: {
+        menu: false,
+        span: 24,
+        header: false,
+        searchShow: true,
+        searchMenuSpan: 18,
+        searchIcon: true,
+        highlightCurrentRow: true,
+        align: 'center',
+        searchIndex: 3,
+        column: [
+          {
+            label: 'provider',
+            prop: 'purchaseCompanyName',
+            width: 150,
+            overHidden: true,
+          },
+          {
+            label: '系统号',
+            prop: 'sysNo',
+            width: 100,
+            overHidden: true,
+          },
+          {
+            label: '箱型',
+            prop: 'boxTypeQuantityOne',
+            width: 80,
+            overHidden: true,
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bcntrtypes/list?status=0&size=20&current=1&cnName={{key}}",
+            props: {
+              label: "cnName",
+              value: "cnName",
+              res: "data.records"
+            }
+          },
+          {
+            label: '箱量',
+            prop: 'boxNumber',
+            width: 80,
+            overHidden: true,
+          },
+
+          {
+            label: 'Pickup fee',
+            prop: 'pickupFee',
+            width: 80,
+            overHidden: true,
+          },
+          {
+            label: '收/付',
+            prop: 'dc',
+            width: 80,
+            overHidden: true,
+            type: 'select',
+            dicData: [{
+              label: '收',
+              value: 'd',
+            }, {
+              label: '付',
+              value: 'c',
+            }],
+          },
+          {
+            label: 'Condition',
+            prop: 'conditions',
+            width: 80,
+            overHidden: true,
+          },
+          {
+            label: 'Free day',
+            prop: 'freeDay',
+            width: 80,
+            overHidden: true,
+          },
+          {
+            label: 'LOLO-POL',
+            prop: 'loloPol',
+            width: 90,
+            overHidden: true,
+          },
+          {
+            label: 'LOLO-POD',
+            prop: 'loloPod',
+            width: 90,
+            overHidden: true,
+          },
+          {
+            label: 'DRV',
+            prop: 'drv',
+            width: 80,
+            overHidden: true,
+          },
+          {
+            label: 'DPP',
+            prop: 'dpp',
+            width: 80,
+            overHidden: true,
+          },
+          {
+            label: 'The rest as per our agreement',
+            prop: 'agreement',
+            width: 200,
+            overHidden: true,
+          }
+        ]
+      },
       podOption: {
         menuBtn: false,
         span: 24,
@@ -700,6 +842,11 @@ export default {
             }],
           },
           {
+            label: '收箱号',
+            prop: 'offhireReference',
+            disabled: false
+          },
+          {
             label: '目的港场站地址',
             prop: 'podCyAddress',
             disabled: false
@@ -919,10 +1066,49 @@ export default {
             disabled: false
           },
           {
+            label: '起运港场站地址',
+            prop: 'polCyAddress',
+            disabled: false
+          },
+          {
+            label: '起运港场站联系人',
+            prop: 'polCyContact',
+            disabled: false
+          },
+          {
+            label: '起运港场站邮箱',
+            prop: 'polCyEmail',
+            disabled: false
+          },
+          {
+            label: '起运港场站电话',
+            prop: 'polCyTel',
+            disabled: false
+          },
+          {
+            label: '目的港场站地址',
+            prop: 'podCyAddress',
+            disabled: false
+          },
+          {
+            label: '目的港场站联系人',
+            prop: 'podCyContact',
+            disabled: false
+          },
+          {
+            label: '目的港场站邮箱',
+            prop: 'podCyEmail',
+            disabled: false
+          },
+          {
+            label: '目的港场站电话',
+            prop: 'podCyTel',
+            disabled: false
+          },
+          {
             label: '箱型',
             prop: 'boxTypeQuantityOne',
             disabled: false,
-            span: 5,
             rules: [{
               required: true,
               message: "",
@@ -933,7 +1119,6 @@ export default {
             label: '箱量',
             prop: 'boxNumber',
             disabled: false,
-            span: 5,
             rules: [{
               required: true,
               message: "",
@@ -943,22 +1128,24 @@ export default {
           {
             label: '已提箱',
             prop: 'suitcaseNum',
-            span: 5,
             disabled: true,
           },
           {
             label: '未提箱',
             prop: 'notSuitcaseNum',
-            span: 5,
             disabled: true,
           },
           {
+            label: '收箱号',
+            prop: 'offhireReference',
+            disabled: false
+          },
+          {
             label: '启用日期',
             prop: 'activationDate',
             type: "date",
             format: "yyyy-MM-dd",
             valueFormat: "yyyy-MM-dd HH:mm:ss",
-            span: 4,
             disabled: true,
           },
           {
@@ -1027,6 +1214,12 @@ export default {
             disabled: false
           },
           {
+            label: 'Per Diem after free days',
+            prop: 'perDiemAfterFreeDays',
+            disabled: false,
+            labelWidth: 150,
+          },
+          {
             label: 'LOLO-POL',
             prop: 'loloPol',
             type: 'select',
@@ -1059,12 +1252,6 @@ export default {
             }]
           },
           {
-            label: 'Per Diem after free days',
-            prop: 'perDiemAfterFreeDays',
-            disabled: false,
-            labelWidth: 150,
-          },
-          {
             label: 'DRV',
             prop: 'drv',
             disabled: false
@@ -1085,46 +1272,7 @@ export default {
             prop: 'internalContainerNumber',
             disabled: true
           },
-          {
-            label: '起运港场站地址',
-            prop: 'polCyAddress',
-            disabled: false
-          },
-          {
-            label: '起运港场站联系人',
-            prop: 'polCyContact',
-            disabled: false
-          },
-          {
-            label: '起运港场站邮箱',
-            prop: 'polCyEmail',
-            disabled: false
-          },
-          {
-            label: '起运港场站电话',
-            prop: 'polCyTel',
-            disabled: false
-          },
-          {
-            label: '目的港场站地址',
-            prop: 'podCyAddress',
-            disabled: false
-          },
-          {
-            label: '目的港场站联系人',
-            prop: 'podCyContact',
-            disabled: false
-          },
-          {
-            label: '目的港场站邮箱',
-            prop: 'podCyEmail',
-            disabled: false
-          },
-          {
-            label: '目的港场站电话',
-            prop: 'podCyTel',
-            disabled: false
-          },
+
           {
             label: '备注',
             prop: 'remarks',
@@ -1598,7 +1746,7 @@ export default {
           //   }],
           // },
           {
-            label: '审核状态',
+            label: '费用状态',
             prop: 'auditStatus',
             overHidden: true,
             width: 80,
@@ -2056,7 +2204,7 @@ export default {
             headerslot: true,
           },
           {
-            label: '审核状态',
+            label: '费用状态',
             prop: 'auditStatus',
             overHidden: true,
             width: 80,
@@ -2409,6 +2557,72 @@ export default {
 
   },
   methods: {
+    inOwhy() {
+      this.owhyDialog = true
+    },
+    owhySubmit() {
+      delete this.owRow.id
+      delete this.owRow.buxStaus
+      delete this.owRow.createUser
+      delete this.owRow.createUserName
+      delete this.owRow.createTime
+      delete this.owRow.updateUser
+      delete this.owRow.updateUserName
+      delete this.owRow.updateTime
+      delete this.owRow.type
+      delete this.owRow.containerNumber
+      this.form = {
+        ...this.owRow,
+        rentTermList: [
+          { curCode: 'USD', $cellEdit: true },
+          { curCode: 'USD', $cellEdit: true },
+          { curCode: 'USD', $cellEdit: true },
+          { curCode: 'USD', $cellEdit: true }
+        ],
+        tradingBoxItemsList: [],
+        feeCenterList: [],
+        tradingBoxFilesList: [],
+      }
+      this.owhyDialog = false
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    owSearchReset() {
+      this.query = this.$options.data().query;
+      this.onLoad(this.page);
+    },
+    // 搜索按钮点击
+    owSearchChange(params, done) {
+      this.page.currentPage = 1;
+      this.getOwList(this.page, this.query);
+      done();
+    },
+    getOwList(page, params = {}) {
+      let obj = {}
+      obj = {
+        ...Object.assign(this.query),
+        purchaseCompanyName: this.form.purchaseCompanyName
+      }
+      const loading = this.$loading({
+        lock: true,
+        text: '加载中',
+        spinner: 'el-icon-loading',
+        background: 'rgba(255,255,255,0.7)'
+      });
+      getOwList(page.currentPage, page.pageSize, obj).then(res => {
+        this.owList = res.data.data.records;
+        this.page.total = res.data.data.total;
+      }).finally(() => {
+        loading.close();
+      })
+    },
+    handleCurrentRowChange(val) {
+      this.owRow = val
+    },
     verifyChange(name, row) {
       if (row[name]) {
         row[name] = row[name].replace(/\s+/g, '')
@@ -3817,6 +4031,25 @@ export default {
           this.getPick()
         })
       }
+      if (name == '撤销导入') {
+        let ids = []
+        for (let item of this.selecPickList) {
+          if (item.whetherGenerateCost == 0) {
+            return this.$message.error("请选择要撤销的明细");
+          }
+          ids.push(item.id)
+        }
+
+        let obj = {
+          id: this.form.id,
+          itemIds: ids.join(',')
+        }
+        revokePickUpCost(obj).then(res => {
+          this.$message.success("操作成功");
+          this.getDetail(this.form.id)
+          this.getPick()
+        })
+      }
       if (name == '合并生成2') {
         for (let item of this.selecPerList) {
           if (item.whetherGenerateCost == 1) {
@@ -4177,6 +4410,10 @@ export default {
   padding: 4px !important;
 }
 
+::v-deep .el-dialog__body {
+  padding: 0px 20px !important;
+}
+
 .disabledBox {
   display: flex;
   align-items: center;