فهرست منبع

1.海运进出口 按钮新加角色权限
2.首页调整页面
3.海运出口 查看放箱号只查看大于0的数据
4.海运进出口 请核 去掉核算要素校验
5.海运进出口 费用明细 一键删除和一键编辑限制规则
6.海运进出口 判断分单的时候隐藏部分按钮和限制部分字段不允许改
7.海运进出口 列表页和付费明细 新加提取成本功能 联调接口

Qukatie 7 ماه پیش
والد
کامیت
d1c694ab39

+ 16 - 0
src/api/iosBasicData/bills.js

@@ -347,4 +347,20 @@ export const checkBillsBatch = (data) => {
     method: 'get',
     params: data
   })
+}
+// 海运进出口提取成本列表
+export const extractCost = (data) => {
+  return request({
+    url: '/api/blade-los/routecost/extractCost',
+    method: 'get',
+    params: data
+  })
+}
+// 海运费成本导入
+export const costImportBatch = (data) => {
+  return request({
+    url: '/api/blade-los/feecenter/costImportBatch',
+    method: 'get',
+    params: data
+  })
 }

+ 242 - 0
src/components/extractionCost/main.vue

@@ -0,0 +1,242 @@
+<template>
+    <!-- 中文下拉 -->
+    <div>
+        <el-dialog append-to-body title="提取成本" :visible.sync="dialogVisible" width="60%">
+            <span>
+                <el-row>
+                    <el-col :span="14">
+                        <avue-crud :data="dataList" :option="option" @current-row-change="handleRowClick"></avue-crud>
+                    </el-col>
+                    <el-col :span="9" :offset="1">
+                        <avue-crud :data="detailsList" :option="templateOption">
+                            <template slot="feeName" slot-scope="{ row }">
+                                <span>
+                                    海运费
+                                </span>
+                            </template>
+                        </avue-crud>
+                    </el-col>
+                </el-row>
+            </span>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="dialogVisible = false" size="mini">取 消</el-button>
+                <el-button type="primary" @click="submit" size="mini">导 入</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { extractCost, costImportBatch } from "@/api/iosBasicData/bills";
+export default {
+    data() {
+        return {
+            billsIds: null,
+            selectedRowIndex: null,
+            dialogVisible: false,
+            treeOption: {
+                nodeKey: "id",
+                addBtn: false,
+                menu: false,
+                size: "small",
+                props: {
+                    labelText: "标题",
+                    label: "cnName",
+                    value: "value",
+                    children: "children"
+                }
+            },
+            templateId: null,
+            treeData: [],
+            dataList: [],
+            detailsList: [],
+            templateOption: {
+                height: 500,
+                menu: false,
+                addBtn: false,
+                editBtn: false,
+                delBtn: false,
+                viewBtn: false,
+                header: false,
+                // index: true,
+                tip: false,
+                // selection: true,
+                column: [
+                    {
+                        label: '箱型',
+                        prop: 'boxType',
+                        overHidden: true,
+                    },
+                    {
+                        label: '币别',
+                        prop: 'curCode',
+                        overHidden: true,
+                    },
+                    {
+                        label: '费用名称',
+                        prop: 'feeName',
+                        overHidden: true,
+                    },
+                    {
+                        label: '金额',
+                        prop: 'oceanFreight',
+                        overHidden: true,
+                    }
+
+                ]
+            },
+            option: {
+                height: 500,
+                menu: false,
+                addBtn: false,
+                editBtn: false,
+                delBtn: false,
+                viewBtn: false,
+                header: false,
+                index: true,
+                tip: false,
+                // selection: true,
+                highlightCurrentRow: true,
+                column: [
+                    {
+                        label: '系统号',
+                        prop: 'businessNo',
+                        overHidden: true,
+                    },
+                    {
+                        label: '运输条款',
+                        prop: 'transportationTerms',
+                        overHidden: true,
+                    },
+                    {
+                        label: '舱位类型',
+                        prop: 'cabinType',
+                        overHidden: true,
+                    },
+                    {
+                        label: '航班类型',
+                        prop: 'flightType',
+                        overHidden: true,
+                    },
+                    {
+                        label: '转船类型',
+                        prop: 'changeShipType',
+                        overHidden: true,
+                    },
+                    {
+                        label: '有效期起',
+                        prop: 'effectiveStartDate',
+                        overHidden: true,
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                    },
+                    {
+                        label: '有效期止',
+                        prop: 'effectiveEndDate',
+                        overHidden: true,
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                    }
+
+                ]
+            },
+        }
+    },
+    created() {
+    },
+    methods: {
+        submit() {
+            if (!this.dataList.length) {
+                return this.$message.error("暂无模板数据,请先维护");
+            }
+               if (!this.templateId) {
+                return this.$message.error("请选择数据");
+            }
+            let obj = {
+                billsIds: this.billsIds,
+                costId: this.templateId
+            }
+            const loading = this.$loading({
+                lock: true,
+                text: '加载中',
+                spinner: 'el-icon-loading',
+                background: 'rgba(255,255,255,0.7)'
+            });
+            costImportBatch(obj).then(res => {
+                this.$message.success("操作成功!");
+                this.dialogVisible = false
+                this.$emit('getData')
+            }).finally(() => {
+                loading.close();
+            })
+        },
+        inTemplate(obj, billsIds) {
+            // let obj = {}
+            // if (Array.isArray(val)) {
+            //     let podId = []
+            //     let destinationId = []
+            //     let airlineId = []
+            //     let shipNameId = []
+            //     let shippingCompanyId = []
+            //     let voyag = []
+            //     for (let item of val) {
+            //         podId.push(item.podId)
+            //         destinationId.push(item.destinationId)
+            //         airlineId.push(item.lineId)
+            //         shipNameId.push(item.vesselId)
+            //         shippingCompanyId.push(item.carrierId)
+            //         voyag.push(item.voyageNo)
+            //     }
+            //     obj = {
+            //         podId: podId.join(","),
+            //         destinationId: destinationId.join(","),
+            //         airlineId: airlineId.join(","),
+            //         shipNameId: shipNameId.join(","),
+            //         shippingCompanyId: shippingCompanyId.join(","),
+            //         voyag: voyag.join(","),
+            //     }
+            // } else {
+            //     obj = {
+            //         podId: val.podId,
+            //         destinationId: val.destinationId,
+            //         airlineId: val.lineId,
+            //         shipNameId: val.vesselId,
+            //         shippingCompanyId: val.carrierId,
+            //         voyag: val.voyageNo,
+            //     }
+            // }
+            this.billsIds = billsIds
+            this.templateId = null
+            this.dataList = []
+            this.detailsList = []
+            this.dialogVisible = true
+            const loading = this.$loading({
+                lock: true,
+                text: '加载中',
+                spinner: 'el-icon-loading',
+                background: 'rgba(255,255,255,0.7)'
+            });
+            extractCost(obj).then(res => {
+                this.dataList = res.data.data
+                // this.detailsList = res.data.data.costItemList
+            }).finally(() => {
+                loading.close();
+            })
+        },
+        // 左侧选择
+        handleRowClick(row, index) {
+            this.templateId = row.id
+            this.detailsList = row.costItemList
+        },
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.highlight-row {
+    background-color: #35721499 !important;
+    /* 自定义的背景色 */
+}
+</style>

+ 11 - 11
src/views/iosBasicData/OceanFreightImport/bills/assembly/EntrustmentLnformation.vue

@@ -17,7 +17,7 @@
                                 <el-col :span="10">
                                     <search-query :datalist="polData" :selectValue="assemblyForm.polEnName"
                                         :filterable="true" :clearable="true" :remote="true" :joinData="true"
-                                        :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
+                                        :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                                         placeholder="请选择装货港"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
                                         @remoteMethod="remoteMethod($event, 'pol')"
@@ -29,7 +29,7 @@
                                     <span style="padding-left: 20px"></span>
                                     <el-input type="age" style="width: 100%;" v-model="assemblyForm.polNamePrint"
                                         size="small" autocomplete="off"
-                                        :disabled="detailData.seeDisabled || generateBillsfalse" clearable
+                                        :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" clearable
                                         placeholder="装货港" @change="textareaBlur('polNamePrint')"></el-input>
                                 </el-col>
                             </el-row>
@@ -49,7 +49,7 @@
                                 <el-col :span="10">
                                     <search-query :datalist="podData" :selectValue="assemblyForm.podEnName"
                                         :filterable="true" :clearable="true" :remote="true" :joinData="true"
-                                        :disabled="detailData.seeDisabled" :buttonIf="false" placeholder="请选择卸货港"
+                                        :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false" placeholder="请选择卸货港"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
                                         @remoteMethod="remoteMethod($event, 'pod')"
                                         @corpChange="corpChange($event, 'pod')"
@@ -59,7 +59,7 @@
                                 <el-col :span="13">
                                     <span style="padding-left: 20px"></span>
                                     <el-input type="age" style="width: 100%;" v-model="assemblyForm.podNamePrint"
-                                        size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                        size="small" autocomplete="off" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" clearable
                                         placeholder="卸货港" @change="textareaBlur('podNamePrint')"></el-input>
                                 </el-col>
                             </el-row>
@@ -80,7 +80,7 @@
                                     <search-query :datalist="destinationData"
                                         :selectValue="assemblyForm.destinationName" :filterable="true" :clearable="true"
                                         :remote="true" :joinData="true"
-                                        :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
+                                        :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                                         placeholder="请选择目的地"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
                                         @remoteMethod="remoteMethod($event, 'destination')"
@@ -92,7 +92,7 @@
                                     <span style="padding-left: 20px"></span>
                                     <el-input type="age" style="width: 100%;"
                                         v-model="assemblyForm.destinationNamePrint" size="small" autocomplete="off"
-                                        :disabled="detailData.seeDisabled || generateBillsfalse" clearable
+                                        :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" clearable
                                         placeholder="目的地" @change="textareaBlur('destinationNamePrint')"></el-input>
                                 </el-col>
                             </el-row>
@@ -432,7 +432,7 @@
                                 <span style="color: #1e9fff">ATA</span>
                             </span>
                             <el-date-picker v-model="assemblyForm.actualEta" clearable style="width: 100%" type="date"
-                                size="small" :disabled="detailData.seeDisabled || generateBillsfalse"
+                                size="small" :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                                 value-format="yyyy-MM-dd" :picker-options="etdPickerOptions" placeholder="请选择ATA日期"
                                 @change="handlePick">
                             </el-date-picker>
@@ -497,7 +497,7 @@
                                 </span>
                                 <search-query :datalist="vesselData" :selectValue="assemblyForm.vesselEnName"
                                     :filterable="true" :clearable="true" :remote="true" :allowCreate="true"
-                                    :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
+                                    :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                                     placeholder="请选择船名" :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
                                     @remoteMethod="remoteMethod($event, 'vessel')"
                                     @corpChange="corpChange($event, 'vessel')"
@@ -509,7 +509,7 @@
                                     <span style="color: #1e9fff">航次</span>
                                 </span>
                                 <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo" size="small"
-                                    autocomplete="off" :disabled="detailData.seeDisabled || generateBillsfalse"
+                                    autocomplete="off" :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                                     clearable placeholder="请输入航次"></el-input>
                             </el-form-item>
                         </div>
@@ -520,7 +520,7 @@
                                         <span style="color: #1e9fff">ATD</span>
                                     </span>
                                     <el-date-picker style="width: 100%;" v-model="assemblyForm.actualEtd" clearable
-                                        type="date" size="small" :disabled="detailData.seeDisabled"
+                                        type="date" size="small" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                                         value-format="yyyy-MM-dd" placeholder="选择日期">
                                     </el-date-picker>
                                 </el-form-item>
@@ -544,7 +544,7 @@
                                     </span>
                                     <search-query :datalist="carrierData" :selectValue="assemblyForm.carrierCnName"
                                         :filterable="true" :clearable="true" :remote="true" :joinData="true"
-                                        :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
+                                        :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                                         placeholder="请选择船公司"
                                         :forParameter="{ key: 'id', short: 'shortName', label: 'cnName', value: 'cnName' }"
                                         @remoteMethod="remoteMethod($event, 'carrier')"

+ 31 - 8
src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue

@@ -229,6 +229,8 @@
                         @click="allClick('付费申请', 'C')">付费申请</el-button>
                     <el-button type="primary" plain size="small" :disabled="disabled || selectionCList.length == 0"
                         @click="allClick('C费用申请')">请核费用</el-button>
+                    <el-button type="success" plain size="small" :disabled="disabled"
+                        @click="allClick('提取成本')">提取成本</el-button>
                 </template>
                 <template slot="indexHeader" slot-scope="scope">
                     <el-button v-if="isFeeEditC" type="primary" size="small" icon="el-icon-plus" circle
@@ -577,6 +579,7 @@
 
         <!--费用打印-->
         <reportContainer ref="reportContainer"></reportContainer>
+        <extraction-cost ref="extractionCost" @getData="getData" />
     </div>
 </template>
 
@@ -614,11 +617,11 @@ import { dateFormat } from "@/util/date";
 import { regularBurdenfloating } from "@/util/regularJudgment";
 import { isProcurement } from "@/api/basicData/configuration";
 import { getToken } from "@/util/auth";
-
+import extractionCost from "@/components/extractionCost/main.vue";
 import dicSelect from "@/components/dicSelect/main";
 import _ from "lodash";
 export default {
-    components: { dicSelect, reportContainer, SearchQuery, reportformsList },
+    components: { extractionCost, dicSelect, reportContainer, SearchQuery, reportformsList },
     props: {
         pid: {
 
@@ -2236,15 +2239,15 @@ export default {
         batchDelete(dc) {
             if (dc == 'D') {
                 for (let item of this.selectionDList) {
-                    if (item.accStatus == 1) {
-                        this.$message.warning('请选择没有生成账单的数据')
+                    if (item.accStatus == 1 || item.auditStatus > 0) {
+                        this.$message.warning('请选择没有生成账单或提交审核的数据')
                         return
                     }
                 }
             } else {
                 for (let item of this.feeCenterListC) {
-                    if (item.accStatus == 1) {
-                        this.$message.warning('请选择没有生成账单的数据')
+                    if (item.accStatus == 1 || item.auditStatus > 0) {
+                        this.$message.warning('请选择没有生成账单或提交审核的数据')
                         return
                     }
                 }
@@ -2757,14 +2760,14 @@ export default {
         feecenterEditfun(dc) {
             if (dc == 'D') {
                 for (let item of this.assemblyForm.feeCenterListD) {
-                    if (item.accStatus != 1) {
+                    if (item.accStatus != 1 & item.auditStatus == 0) {
                         this.$delete(item, 'edit')
                         this.$set(item, 'edit', true)
                     }
                 }
             } else {
                 for (let item of this.assemblyForm.feeCenterListC) {
-                    if (item.accStatus != 1) {
+                    if (item.accStatus != 1 & item.auditStatus == 0) {
                         this.$delete(item, 'edit')
                         this.$set(item, 'edit', true)
                     }
@@ -3033,6 +3036,26 @@ export default {
                     })
                 });
             }
+            if (name == '提取成本') {
+                if (!this.assemblyForm.polId) {
+                    return this.$message.error("请选择装货港");
+                }
+                if (!this.assemblyForm.podId) {
+                    return this.$message.error("请选择卸货港");
+                }
+                if (!this.assemblyForm.carrierId) {
+                    return this.$message.error("请选择船公司");
+                }
+                let obj = {
+                    podId: this.assemblyForm.polId,
+                    destinationId: this.assemblyForm.podId,
+                    shippingCompanyId: this.assemblyForm.carrierId,
+                }
+                this.$refs.extractionCost.inTemplate(obj, this.assemblyForm.id)
+            }
+        },
+        getData() {
+            this.$emit('billsDetailfun')
         },
         // 预览报表
         handleReportPreview(url, data) {

+ 2 - 2
src/views/iosBasicData/OceanFreightImport/bills/assembly/formbottom.vue

@@ -103,7 +103,7 @@
                             <span style="color: #1e9fff">航线</span>
                         </span>
                         <search-query :datalist="lineData" :selectValue="assemblyForm.lineCnName" :filterable="true"
-                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                             :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }" placeholder="请选择航线"
                             @remoteMethod="remoteMethod($event, 'line')" @corpChange="corpChange($event, 'line')"
                             @corpFocus="remoteMethod($event, 'line')">
@@ -181,7 +181,7 @@
                             label="shortName" res="records"
                             url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=船代" :filterable="true"
                             :remote="true" dataName="shortName" @selectChange="dicChange('shippingAgencyCname', $event)"
-                            :slotRight="true" rightLabel="code" :disabled="detailData.seeDisabled"></dic-select>
+                            :slotRight="true" rightLabel="code" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"></dic-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">

+ 85 - 95
src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue

@@ -78,15 +78,15 @@
                 " size="small" type="danger" @click.stop="allClick('撤销退押')">撤销退押
                 </el-button> -->
                 <el-button size="small" type="warning" :disabled="!form.id || detailData.seeDisabled || showLock"
-                    v-if="form.status == 1" @click.stop="revokeDocumentApproval">撤销单据请核
+                    v-if="form.status == 1&&form.billType != 'MH'" @click.stop="revokeDocumentApproval">撤销单据请核
                 </el-button>
                 <el-button size="small" type="success" :disabled="!form.id || detailData.seeDisabled || showLock"
-                    v-if="form.status == 0 || form.status == 4" @click.stop="DocumentApproval">单据请核
+                    v-if="(form.status == 0 || form.status == 4&&form.billType != 'MH')" @click.stop="DocumentApproval">单据请核
                 </el-button>
                 <el-button size="small" type="primary" style="margin-right: 8px"
                     :disabled="detailData.seeDisabled || showLock" :loading="saveLoading" @click="editCustomer">保 存
                 </el-button>
-                <el-dropdown style="line-height: 0">
+                <el-dropdown style="line-height: 0" v-if="form.billType != 'MH'">
                     <el-button type="warning" :loading="saveLoading" :disabled="!form.id" size="small">
                         审 批<i class="el-icon-arrow-down el-icon--right"></i>
                     </el-button>
@@ -165,29 +165,29 @@
                                                                     .allowCreate ||
                                                                     false
                                                                     " :remote="true" :disabled="detailData.seeDisabled ||
-                                                                            item[0]
-                                                                                .disabled
-                                                                            " :buttonIf="false" :placeholder="`${item[0]
-                                                                            .text ||
-                                                                            ''}`
-                                                                            " :forParameter="item[0]
-                                                                            .forParameter
-                                                                            " @remoteMethod="
-                                                                            remoteMethod(
-                                                                                $event,
-                                                                                item[0].prop
-                                                                            )
-                                                                            " @corpChange="
-                                                                            corpChange(
-                                                                                $event,
-                                                                                item[0].prop
-                                                                            )
-                                                                            " @corpFocus="
-                                                                            remoteMethod(
-                                                                                $event,
-                                                                                item[0].prop
-                                                                            )
-                                                                            ">
+                                                                        item[0]
+                                                                            .disabled
+                                                                        " :buttonIf="false" :placeholder="`${item[0]
+                                                                                .text ||
+                                                                                ''}`
+                                                                                " :forParameter="item[0]
+                                                                                .forParameter
+                                                                                " @remoteMethod="
+                                                                                remoteMethod(
+                                                                                    $event,
+                                                                                    item[0].prop
+                                                                                )
+                                                                                " @corpChange="
+                                                                                corpChange(
+                                                                                    $event,
+                                                                                    item[0].prop
+                                                                                )
+                                                                                " @corpFocus="
+                                                                                remoteMethod(
+                                                                                    $event,
+                                                                                    item[0].prop
+                                                                                )
+                                                                                ">
                                                         </search-query>
                                                         <el-input v-else type="age" style="width: 100%;" v-model="form[
                                                             item[0].prop
@@ -236,26 +236,26 @@
                                                                     item[1]
                                                                         .disabled
                                                                     " :buttonIf="false" :placeholder="`${item[1]
-                                                                            .text ||
-                                                                            ''}`
-                                                                            " :forParameter="item[1]
-                                                                            .forParameter
-                                                                            " @remoteMethod="
-                                                                            remoteMethod(
-                                                                                $event,
-                                                                                item[1].prop
-                                                                            )
-                                                                            " @corpChange="
-                                                                            corpChange(
-                                                                                $event,
-                                                                                item[1].prop
-                                                                            )
-                                                                            " @corpFocus="
-                                                                            remoteMethod(
-                                                                                $event,
-                                                                                item[1].prop
-                                                                            )
-                                                                            ">
+                                                                        .text ||
+                                                                        ''}`
+                                                                        " :forParameter="item[1]
+                                                                                .forParameter
+                                                                                " @remoteMethod="
+                                                                                remoteMethod(
+                                                                                    $event,
+                                                                                    item[1].prop
+                                                                                )
+                                                                                " @corpChange="
+                                                                                corpChange(
+                                                                                    $event,
+                                                                                    item[1].prop
+                                                                                )
+                                                                                " @corpFocus="
+                                                                                remoteMethod(
+                                                                                    $event,
+                                                                                    item[1].prop
+                                                                                )
+                                                                                ">
                                                         </search-query>
 
                                                         <tree-select v-else-if="
@@ -267,8 +267,8 @@
                                                             " :data="item[1].dicData
                                                                 " :props="item[1]
                                                                     .forParameter
-                                                                    " nodeKey="title" size="small"
-                                                            :clearable="false" :disabled="detailData.seeDisabled ||
+                                                                    " nodeKey="title" size="small" :clearable="false"
+                                                            :disabled="detailData.seeDisabled ||
                                                                 item[1]
                                                                     .disabled
                                                                 " :multiple="false" :placeholder="`${item[1]
@@ -328,16 +328,16 @@
                                                                                 item[2].prop
                                                                             )
                                                                             " @corpChange="
-                                                                            corpChange(
-                                                                                $event,
-                                                                                item[2].prop
-                                                                            )
-                                                                            " @corpFocus="
-                                                                            remoteMethod(
-                                                                                $event,
-                                                                                item[2].prop
-                                                                            )
-                                                                            ">
+                                                                                corpChange(
+                                                                                    $event,
+                                                                                    item[2].prop
+                                                                                )
+                                                                                " @corpFocus="
+                                                                                remoteMethod(
+                                                                                    $event,
+                                                                                    item[2].prop
+                                                                                )
+                                                                                ">
                                                         </search-query>
                                                         <el-input v-else type="age" style="width: 100%;" v-model="form[
                                                             item[2].prop
@@ -372,20 +372,20 @@
                                                                         item.prop
                                                                     )
                                                                     " @corpChange="
-                                                                    corpChange(
-                                                                        $event,
-                                                                        item.prop
-                                                                    )
-                                                                    " @corpFocus="
-                                                                    remoteMethod(
-                                                                        $event,
-                                                                        item.prop
-                                                                    )
-                                                                    " @eldialogConfirm="
-                                                                    eldialogConfirm(
-                                                                        item.slot
-                                                                    )
-                                                                    ">
+                                                                        corpChange(
+                                                                            $event,
+                                                                            item.prop
+                                                                        )
+                                                                        " @corpFocus="
+                                                                        remoteMethod(
+                                                                            $event,
+                                                                            item.prop
+                                                                        )
+                                                                        " @eldialogConfirm="
+                                                                        eldialogConfirm(
+                                                                            item.slot
+                                                                        )
+                                                                        ">
                                                     <bcorps v-show="item.slot ==
                                                         'bcorps'
                                                         " ref="bcorps" :eldialog="true" @selectionChange="
@@ -504,7 +504,7 @@
         <!--预览报表弹窗-->
         <el-dialog append-to-body title="预览报表" class="el-dialogDeep" :visible.sync="previewDialog" width="60%"
             :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
-            <business-reports :id="form.id" :classifycode="getReportTypeByBigHandle()"
+            <business-reports v-if='previewDialog' :id="form.id" :classifycode="getReportTypeByBigHandle()"
                 :disabled="detailData.seeDisabled"></business-reports>
         </el-dialog>
     </div>
@@ -1512,6 +1512,7 @@ export default {
         },
         // 报表弹窗
         previewDialogfun() {
+            this.getReportTypeByBigHandle('业务')
             this.previewDialog = true;
         },
         //请核关闭
@@ -2343,13 +2344,11 @@ export default {
                         if (
                             !item.corpId ||
                             !item.feeId ||
-                            !item.elementsId ||
                             !item.curCode
                         ) {
                             msgs.push(
                                 `应收第${item.$index + 1}行${!item.corpId ? " 往来单位" : ""
-                                }${!item.feeId ? " 费用简称" : ""}${!item.elementsId ? " 核算要素" : ""
-                                }${!item.curCode ? " 币种" : ""}`
+                                }${!item.feeId ? " 费用简称" : ""}${!item.curCode ? " 币种" : ""}`
                             );
                         }
                     }
@@ -2357,14 +2356,9 @@ export default {
                         if (
                             !item.corpId ||
                             !item.feeId ||
-                            !item.elementsId ||
                             !item.curCode
                         ) {
-                            msgs.push(
-                                `应付第${item.$index + 1}行${!item.corpId ? " 往来单位" : ""
-                                }${!item.feeId ? " 费用简称" : ""}${!item.elementsId ? " 核算要素" : ""
-                                }${!item.curCode ? " 币种" : ""}`
-                            );
+                            msgs.push(`应付第${item.$index + 1}行${!item.corpId ? " 往来单位" : ""}${!item.feeId ? " 费用简称" : ""}${!item.curCode ? " 币种" : ""}`);
                         }
                     }
                     if (msgs.length > 0) {
@@ -3039,26 +3033,22 @@ export default {
         handleClick(tba, event) { },
         // 大tbas切换
         bigHandleClick() {
-            if (this.bigtabs == "fd") {
+            if (this.bigtabs == 'fd') {
                 if (this.form.id) {
-                    this.billsListAllfun(this.form.id);
+                    this.billsListAllfun(this.form.id)
                 }
             }
-            if (this.bigtabs == "dz") {
+            if (this.bigtabs == 'dz') {
                 if (this.form.id) {
-                    this.$refs.documentCenter.reportslogListfun({
-                        currentPage: 1,
-                        pageSize: 10
-                    });
+                    this.$refs.documentCenter.reportslogListfun({ currentPage: 1, pageSize: 10 })
                 }
+                this.getReportTypeByBigHandle('单证')
             }
+            if (this.bigtabs == 'fy') this.getReportTypeByBigHandle('费用')
+
         },
-        getReportTypeByBigHandle() {
-            var rt = "";
-            if (this.bigtabs == "wt") rt = "业务";
-            if (this.bigtabs == "fy") rt = "费用";
-            if (this.bigtabs == "dz") rt = "单证";
-            return rt;
+        getReportTypeByBigHandle(name) {
+            return name;
         },
         // 获取不分页的分单列表
         billsListAllfun(masterId) {

+ 73 - 7
src/views/iosBasicData/OceanFreightImport/bills/index.vue

@@ -40,13 +40,19 @@
                     </el-button>
                     <el-button type="warning" size="small" @click="outExport">导 出
                     </el-button>
-                    <el-button type="primary" size="small" @click="templateImport('D')"
-                        :disabled="!selectionList.length">费用模板(收)
+                    <el-button
+                        v-if="roleName.indexOf('admin') >= 0 || roleName.indexOf('应付修改') >= 0 || roleName.indexOf('应付查看') >= 0 || roleName.indexOf('应收修改') >= 0 || roleName.indexOf('应收查看') >= 0"
+                        type="primary" size="small" @click="templateImport('D')" :disabled="!selectionList.length">收费模板
                     </el-button>
-                    <el-button type="warning" size="small" @click="templateImport('C')"
-                        :disabled="!selectionList.length">费用模板(付)
+                    <el-button
+                        v-if="roleName.indexOf('admin') >= 0 || roleName.indexOf('应付修改') >= 0 || roleName.indexOf('应付查看') >= 0 || roleName.indexOf('应收修改') >= 0 || roleName.indexOf('应收查看') >= 0"
+                        type="warning" size="small" @click="templateImport('C')" :disabled="!selectionList.length">付费模板
                     </el-button>
-                    <el-button type="success" size="small" @click="checkBills" :disabled="!selectionList.length">单据请核
+                    <el-button type="warning" size="small" @click="outExport">导 出
+                    </el-button>
+                    <el-button
+                        v-if="roleName.indexOf('admin') >= 0 || roleName.indexOf('应付修改') >= 0 || roleName.indexOf('应付查看') >= 0 || roleName.indexOf('应收修改') >= 0 || roleName.indexOf('应收查看') >= 0"
+                        type="success" size="small" @click="checkBills" :disabled="!selectionList.length">单据请核
                     </el-button>
                     <div style="margin-top: 10px">
                         <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
@@ -191,6 +197,7 @@
                 <el-button type="primary" @click="importTemplate" size="mini">导 入</el-button>
             </span>
         </el-dialog>
+        <extraction-cost ref="extractionCost" />
     </div>
 </template>
 
@@ -221,6 +228,7 @@ import {
     getBcorpslistByType,
     getBcorpsDetail
 } from "@/api/iosBasicData/bcorps";
+import extractionCost from "@/components/extractionCost/main.vue";
 import { bportsList } from "@/api/iosBasicData/bports";
 import { blinesList } from "@/api/iosBasicData/blines";
 import TreeSelect from "@/components/iosbasic-data/TreeSelect.vue";
@@ -233,7 +241,8 @@ export default {
         SearchQuery,
         feesTemplateItems,
         billsDetails,
-        SplitList
+        SplitList,
+        extractionCost
     },
     data() {
         return {
@@ -523,6 +532,18 @@ export default {
                         overHidden: true
                     },
                     {
+                        label: "主单号",
+                        prop: "masterBillNo",
+                        width: "100",
+                        overHidden: true
+                    },
+                    {
+                        label: "分单数",
+                        prop: "splitOrderSum",
+                        width: "100",
+                        overHidden: true
+                    },
+                    {
                         label: "单据类型",
                         prop: "billType",
                         type: "select",
@@ -1405,6 +1426,51 @@ export default {
         }
     },
     methods: {
+                costSubmit() {
+            let podId = []
+            let destinationId = []
+            let airlineId = []
+            let shipNameId = []
+            let shippingCompanyId = []
+            let voyag = []
+            let obj = {}
+            let billsIds=[]
+            for (let item of this.selectionList) {
+                if (item.polId) podId.push(item.polId)
+                if (item.podId) destinationId.push(item.podId)
+                if (item.lineId) airlineId.push(item.lineId)
+                if (item.vesselId) shipNameId.push(item.vesselId)
+                if (item.carrierId) shippingCompanyId.push(item.carrierId)
+                if (item.voyageNo) voyag.push(item.voyageNo)
+                billsIds.push(item.id)
+            }
+            if ([...new Set(podId)].length > 1) {
+                return this.$message.error("请选择相同的装货港");
+            }
+            console.log([...new Set(destinationId)])
+            if ([...new Set(destinationId)].length > 1) {
+                return this.$message.error("请选择相同的卸货港");
+            }
+            // if ([...new Set(airlineId)].length > 1) {
+            //     return this.$message.error("请选择相同的航线");
+            // }
+            // if ([...new Set(shipNameId)].length > 1) {
+            //     return this.$message.error("请选择相同的船名");
+            // }
+            console.log([...new Set(shippingCompanyId)])
+            if ([...new Set(shippingCompanyId)].length > 1) {
+                return this.$message.error("请选择相同的船公司");
+            }
+            // if ([...new Set(voyag)].length > 1) {
+            //     return this.$message.error("请选择相同的航次");
+            // }
+            obj = {
+                podId: podId[0],
+                destinationId: destinationId[0],
+                shippingCompanyId: shippingCompanyId[0],
+            }
+            this.$refs.extractionCost.inTemplate(obj,billsIds.join(','))
+        },
         checkBills() {
             for (let item of this.selectionList) {
                 if (item.status != 0) {
@@ -1487,7 +1553,7 @@ export default {
             this.templateDialog = true
             let obj = {
                 status: 0,
-                dc:this.dc,
+                dc: this.dc,
                 type: 'HYJK',
                 shippingCompanyId: this.selectionList[0].carrierId,
             }

+ 11 - 11
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue

@@ -173,7 +173,7 @@
                                 <el-col :span="10">
                                     <search-query :datalist="polData" :selectValue="assemblyForm.polEnName"
                                         :filterable="true" :clearable="true" :remote="true" :joinData="true"
-                                        :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
+                                        :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                                         placeholder="请选择装货港"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
                                         @remoteMethod="remoteMethod($event, 'pol')"
@@ -185,7 +185,7 @@
                                     <span style="padding-left: 20px"></span>
                                     <el-input type="age" style="width: 100%;" v-model="assemblyForm.polNamePrint"
                                         size="small" autocomplete="off"
-                                        :disabled="detailData.seeDisabled || generateBillsfalse" clearable
+                                        :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" clearable
                                         placeholder="装货港" @change="textareaBlur('polNamePrint')"></el-input>
                                 </el-col>
                             </el-row>
@@ -205,7 +205,7 @@
                                 <el-col :span="10">
                                     <search-query :datalist="podData" :selectValue="assemblyForm.podEnName"
                                         :filterable="true" :clearable="true" :remote="true" :joinData="true"
-                                        :disabled="detailData.seeDisabled" :buttonIf="false" placeholder="请选择卸货港"
+                                        :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false" placeholder="请选择卸货港"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
                                         @remoteMethod="remoteMethod($event, 'pod')"
                                         @corpChange="corpChange($event, 'pod')"
@@ -215,7 +215,7 @@
                                 <el-col :span="13">
                                     <span style="padding-left: 20px"></span>
                                     <el-input type="age" style="width: 100%;" v-model="assemblyForm.podNamePrint"
-                                        size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                        size="small" autocomplete="off" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" clearable
                                         placeholder="卸货港" @change="textareaBlur('podNamePrint')"></el-input>
                                 </el-col>
                             </el-row>
@@ -236,7 +236,7 @@
                                     <search-query :datalist="destinationData"
                                         :selectValue="assemblyForm.destinationName" :filterable="true" :clearable="true"
                                         :remote="true" :joinData="true"
-                                        :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
+                                        :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                                         placeholder="请选择目的地"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
                                         @remoteMethod="remoteMethod($event, 'destination')"
@@ -248,7 +248,7 @@
                                     <span style="padding-left: 20px"></span>
                                     <el-input type="age" style="width: 100%;"
                                         v-model="assemblyForm.destinationNamePrint" size="small" autocomplete="off"
-                                        :disabled="detailData.seeDisabled || generateBillsfalse" clearable
+                                        :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" clearable
                                         placeholder="目的地" @change="textareaBlur('destinationNamePrint')"></el-input>
                                 </el-col>
                             </el-row>
@@ -433,7 +433,7 @@
                                 <span style="color: #1e9fff">ETD</span>
                             </span>
                             <el-date-picker v-model="assemblyForm.etd" clearable style="width: 100%" type="date"
-                                size="small" :disabled="detailData.seeDisabled || generateBillsfalse"
+                                size="small" :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                                 value-format="yyyy-MM-dd" :picker-options="etdPickerOptions" placeholder="请选择ETD日期"
                                 @change="handlePick">
                             </el-date-picker>
@@ -453,7 +453,7 @@
                                 </span>
                                 <search-query :datalist="vesselData" :selectValue="assemblyForm.vesselEnName"
                                     :filterable="true" :clearable="true" :remote="true" :allowCreate="true"
-                                    :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
+                                    :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                                     placeholder="请选择船名" :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
                                     @remoteMethod="remoteMethod($event, 'vessel')"
                                     @corpChange="corpChange($event, 'vessel')"
@@ -465,7 +465,7 @@
                                     <span style="color: #1e9fff">航次</span>
                                 </span>
                                 <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo" size="small"
-                                    autocomplete="off" :disabled="detailData.seeDisabled || generateBillsfalse"
+                                    autocomplete="off" :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                                     clearable placeholder="请输入航次"></el-input>
                             </el-form-item>
                         </div>
@@ -486,7 +486,7 @@
                             </span>
                             <search-query :datalist="carrierData" :selectValue="assemblyForm.carrierCnName"
                                 :filterable="true" :clearable="true" :remote="true" :joinData="true"
-                                :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
+                                :disabled="detailData.seeDisabled || generateBillsfalse||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                                 placeholder="请选择船公司"
                                 :forParameter="{ key: 'id', short: 'shortName', label: 'cnName', value: 'cnName' }"
                                 @remoteMethod="remoteMethod($event, 'carrier')"
@@ -634,7 +634,7 @@
                                         <span style="color: #1e9fff">ATD</span>
                                     </span>
                                     <el-date-picker style="width: 100%;" v-model="assemblyForm.actualEtd" clearable
-                                        type="date" size="small" :disabled="detailData.seeDisabled"
+                                        type="date" size="small" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                                         value-format="yyyy-MM-dd" placeholder="选择日期">
                                     </el-date-picker>
                                 </el-form-item>

+ 2 - 2
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation/precontainers.vue

@@ -454,7 +454,7 @@ export default {
             //         return this.$message.error("占用箱量必须大于0!");
             //     }
             // }
-            if(this.containerNumberItemList.filter(item=>item.occupyNum > 0).length==0){
+            if (this.containerNumberItemList.filter(item => item.occupyNum > 0).length == 0) {
                 return this.$message.error("至少有一条占用箱量大于0!");
             }
             selectedContainerNumber(this.containerNumberItemList).then(res => {
@@ -504,7 +504,7 @@ export default {
             this.containerNumberItemList = []
             this.editStatus = false
             this.dialogVisible = true
-            this.containerNumberItemList = this.assemblyForm.containerNumberItemList.filter(item => row.cntrTypeCode == item.boxType)
+            this.containerNumberItemList = this.assemblyForm.containerNumberItemList.filter(item => row.cntrTypeCode == item.boxType && item.occupyNum > 0)
         },
         handleClose() {
             this.editStatus = false

+ 33 - 9
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -229,6 +229,8 @@
                         @click="allClick('付费申请', 'C')">付费申请</el-button>
                     <el-button type="primary" plain size="small" :disabled="disabled || selectionCList.length == 0"
                         @click="allClick('C费用申请')">请核费用</el-button>
+                    <el-button type="success" plain size="small" :disabled="disabled"
+                        @click="allClick('提取成本')">提取成本</el-button>
                 </template>
                 <template slot="indexHeader" slot-scope="scope">
                     <el-button v-if="isFeeEditC" type="primary" size="small" icon="el-icon-plus" circle
@@ -577,6 +579,7 @@
 
         <!--费用打印-->
         <reportContainer ref="reportContainer"></reportContainer>
+        <extraction-cost ref="extractionCost" @getData="getData" />
     </div>
 </template>
 
@@ -615,10 +618,11 @@ import { regularBurdenfloating } from "@/util/regularJudgment";
 import { isProcurement } from "@/api/basicData/configuration";
 import { getToken } from "@/util/auth";
 
+import extractionCost from "@/components/extractionCost/main.vue";
 import dicSelect from "@/components/dicSelect/main";
 import _ from "lodash";
 export default {
-    components: { dicSelect, reportContainer, SearchQuery, reportformsList },
+    components: {extractionCost, dicSelect, reportContainer, SearchQuery, reportformsList },
     props: {
         pid: {
 
@@ -1829,6 +1833,9 @@ export default {
                 this.$message.warning('请先选择要导入的数据')
             }
         },
+        getData() {
+            this.$emit('billsDetailfun')
+        },
         // 模板
         templateClick(dc) {
             if (popupReminder(this.assemblyForm, this.messageData)) {
@@ -2208,15 +2215,15 @@ export default {
         batchDelete(dc) {
             if (dc == 'D') {
                 for (let item of this.selectionDList) {
-                    if (item.accStatus == 1) {
-                        this.$message.warning('请选择没有生成账单的数据')
+                    if (item.accStatus == 1 || item.auditStatus > 0) {
+                        this.$message.warning('请选择没有生成账单或提交审核的数据')
                         return
                     }
                 }
             } else {
                 for (let item of this.feeCenterListC) {
-                    if (item.accStatus == 1) {
-                        this.$message.warning('请选择没有生成账单的数据')
+                    if (item.accStatus == 1 || item.auditStatus > 0) {
+                        this.$message.warning('请选择没有生成账单或提交审核的数据')
                         return
                     }
                 }
@@ -2729,14 +2736,14 @@ export default {
         feecenterEditfun(dc) {
             if (dc == 'D') {
                 for (let item of this.assemblyForm.feeCenterListD) {
-                    if (item.accStatus != 1) {
+                    if (item.accStatus != 1 && item.auditStatus == 0) {
                         this.$delete(item, 'edit')
                         this.$set(item, 'edit', true)
                     }
                 }
             } else {
                 for (let item of this.assemblyForm.feeCenterListC) {
-                    if (item.accStatus != 1) {
+                    if (item.accStatus != 1 && item.auditStatus == 0) {
                         this.$delete(item, 'edit')
                         this.$set(item, 'edit', true)
                     }
@@ -2783,12 +2790,12 @@ export default {
             //     }
             // }
             for (let item of this.assemblyForm.feeCenterListD) {
-                if (!item.corpId || !item.feeId  || !item.curCode) {
+                if (!item.corpId || !item.feeId || !item.curCode) {
                     sum += `应收第${item.$index + 1}行${!item.corpId ? ' 结算单位' : ''}${!item.feeId ? ' 费用简称' : ''}${!item.curCode ? ' 币种' : ''}`
                 }
             }
             for (let item of this.assemblyForm.feeCenterListC) {
-                if (!item.corpId || !item.feeId  || !item.curCode) {
+                if (!item.corpId || !item.feeId || !item.curCode) {
                     sum += `应付第${item.$index + 1}行${!item.corpId ? ' 结算单位' : ''}${!item.feeId ? ' 费用简称' : ''}${!item.curCode ? ' 币种' : ''}`
                 }
             }
@@ -3005,6 +3012,23 @@ export default {
                     })
                 });
             }
+            if (name == '提取成本') {
+                if (!this.assemblyForm.polId) {
+                    return this.$message.error("请选择装货港");
+                }
+                if (!this.assemblyForm.podId) {
+                    return this.$message.error("请选择卸货港");
+                }
+                if (!this.assemblyForm.carrierId) {
+                    return this.$message.error("请选择船公司");
+                }
+                let obj = {
+                    podId: this.assemblyForm.polId,
+                    destinationId: this.assemblyForm.podId,
+                    shippingCompanyId: this.assemblyForm.carrierId,
+                }
+                this.$refs.extractionCost.inTemplate(obj, this.assemblyForm.id)
+            }
         },
         // 预览报表
         handleReportPreview(url, data) {

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

@@ -19,7 +19,7 @@
                             <span style="color: #1e9fff">截单时间</span>
                         </span>
                         <el-date-picker v-model="assemblyForm.cyTrailerTime" type="date" style="width: 100%;"
-                            value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
+                            value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                             placeholder="请选择截单时间">
                         </el-date-picker>
                     </el-form-item>
@@ -30,7 +30,7 @@
                             <span style="color: #1e9fff">截港时间</span>
                         </span>
                         <el-date-picker v-model="assemblyForm.cyReturnTime" type="date" style="width: 100%;"
-                            value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
+                            value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                             placeholder="请选择截港时间">
                         </el-date-picker>
                     </el-form-item>
@@ -52,7 +52,7 @@
                             <span style="color: #1e9fff">订舱日期</span>
                         </span>
                         <el-date-picker v-model="assemblyForm.bookingDate" type="date" style="width: 100%;"
-                            value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
+                            value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                             placeholder="请选择截港时间">
                         </el-date-picker>
                     </el-form-item>
@@ -90,7 +90,7 @@
                             <span style="color: #1e9fff">航线</span>
                         </span>
                         <search-query :datalist="lineData" :selectValue="assemblyForm.lineCnName" :filterable="true"
-                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" :buttonIf="false"
                             :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }" placeholder="请选择航线"
                             @remoteMethod="remoteMethod($event, 'line')" @corpChange="corpChange($event, 'line')"
                             @corpFocus="remoteMethod($event, 'line')">
@@ -136,7 +136,7 @@
                             <span style="color: #1e9fff">ETA</span>
                         </span>
                         <el-date-picker v-model="assemblyForm.eta" type="date" style="width: 100%;"
-                            value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
+                            value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                             placeholder="请选择时间">
                         </el-date-picker>
                     </el-form-item>
@@ -186,7 +186,7 @@
                                 url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=船代" :filterable="true"
                                 :remote="true" dataName="shortName"
                                 @selectChange="dicChange('shippingAgencyCname', $event)" :slotRight="true"
-                                rightLabel="code" :disabled="detailData.seeDisabled"></dic-select>
+                                rightLabel="code" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"></dic-select>
                         </div>
                     </el-form-item>
                 </el-col>
@@ -197,7 +197,7 @@
                         </span>
                         <el-col :span="9">
                             <search-query :datalist="bookingAgentData" :selectValue="assemblyForm.bookingAgentCnName"
-                                :filterable="true" :clearable="true" :remote="true" :disabled="detailData.seeDisabled"
+                                :filterable="true" :clearable="true" :remote="true" :disabled="detailData.seeDisabled||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)"
                                 :buttonIf="false" placeholder="请选择订舱代理"
                                 :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
                                 @remoteMethod="remoteMethod($event, 'bookingAgent')"
@@ -208,7 +208,7 @@
                         <el-col :span="14" :offset="1">
                             <el-input type="age" style="width: 100%;" v-model="assemblyForm.bookingAgentEnName"
                                 size="small" autocomplete="off"
-                                :disabled="detailData.seeDisabled || !assemblyForm.bookingAgentCnName" clearable
+                                :disabled="detailData.seeDisabled || !assemblyForm.bookingAgentCnName||(assemblyForm.billType == 'MH'&&assemblyForm.masterBillNo>0)" clearable
                                 placeholder="订舱代理"></el-input>
                         </el-col>
                     </el-form-item>

+ 24 - 24
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -70,15 +70,15 @@
                     @click.stop="allClick('撤销转单')">撤销转单
                 </el-button>
                 <el-button size="small" type="warning" :disabled="!form.id || detailData.seeDisabled || showLock"
-                    v-if="form.status == 1" @click.stop="revokeDocumentApproval">撤销单据请核
+                    v-if="form.status == 1&&form.billType != 'MH'" @click.stop="revokeDocumentApproval">撤销单据请核
                 </el-button>
                 <el-button size="small" type="success" :disabled="!form.id || detailData.seeDisabled || showLock"
-                    v-if="form.status == 0 || form.status == 4" @click.stop="DocumentApproval">单据请核
+                    v-if="(form.status == 0 || form.status == 4)&&form.billType != 'MH'" @click.stop="DocumentApproval">单据请核
                 </el-button>
                 <el-button size="small" type="primary" style="margin-right: 8px"
                     :disabled="detailData.seeDisabled || showLock" :loading="saveLoading" @click="editCustomer">保 存
                 </el-button>
-                <el-dropdown style="line-height: 0">
+                <el-dropdown style="line-height: 0" v-if="form.billType != 'MH'">
                     <el-button type="warning" :loading="saveLoading" :disabled="!form.id" size="small">
                         审 批<i class="el-icon-arrow-down el-icon--right"></i>
                     </el-button>
@@ -113,7 +113,7 @@
                                                                 }} {{ item[0].label }}
                                                             </span>
                                                             <span v-else style="color: #1e9fff">{{ item[0].label
-                                                            }}</span>
+                                                                }}</span>
                                                         </span>
                                                         <span v-if="item[0].type == 'button'"></span>
                                                         <!--<el-button v-if="item[0].type == 'button'" :disabled="detailData.seeDisabled || item[0].disabled"-->
@@ -312,7 +312,7 @@
         <!--预览报表弹窗-->
         <el-dialog append-to-body title="预览报表" class="el-dialogDeep" :visible.sync="previewDialog" width="60%"
             :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
-            <business-reports :id="form.id" :classifycode="getReportTypeByBigHandle()"
+            <business-reports v-if="previewDialog" :id="form.id" :classifycode="getReportTypeByBigHandle()"
                 :disabled="detailData.seeDisabled"></business-reports>
         </el-dialog>
         <el-dialog append-to-body title="物流信息" class="el-dialogDeep" :visible.sync="logisticsDialog" width="30%"
@@ -321,14 +321,14 @@
                 <avue-form v-if="logisticsDialog" ref="logisticsForm" :option="logisticsOption" v-model="logisticsForm">
                     <tempalte slot="shippingCompany">
                         <dic-select v-model="logisticsForm.shippingCompany" placeholder="船务公司" key="id" label="deptName"
-                            url="/blade-system/dept/getDeptList?isHq=1" :filterable="true" :remote="true" dataName="deptName"
-                            @selectChange="dicChange('shippingCompany', $event)"></dic-select>
+                            url="/blade-system/dept/getDeptList?isHq=1" :filterable="true" :remote="true"
+                            dataName="deptName" @selectChange="dicChange('shippingCompany', $event)"></dic-select>
                     </tempalte>
                     <tempalte slot="shippingStaffName">
                         <dic-select v-model="logisticsForm.shippingStaffName" placeholder="船务员工"
                             :key="logisticsForm.shippingCompanyId" label="realName"
-                            :url="'/blade-user/userListAll?deptId=' + logisticsForm.shippingCompanyId" :filterable="true"
-                            :remote="true" dataName="realName"
+                            :url="'/blade-user/userListAll?deptId=' + logisticsForm.shippingCompanyId"
+                            :filterable="true" :remote="true" dataName="realName"
                             @selectChange="dicChange('shippingStaffName', $event)"></dic-select>
                     </tempalte>
                 </avue-form>
@@ -441,7 +441,7 @@ export default {
     data() {
         return {
             transferForm: {
-                podCompanyId:null
+                podCompanyId: null
             },
             transferOption: {
                 menuBtn: false,
@@ -473,7 +473,7 @@ export default {
             },
             transferDialog: false,
             logisticsForm: {
-                shippingCompanyId:null
+                shippingCompanyId: null
             },
             logisticsOption: {
                 menuBtn: false,
@@ -1001,8 +1001,8 @@ export default {
         },
         allClick(name) {
             if (name == '物流提交') {
-                this.logisticsForm={
-                    shippingCompanyId:null
+                this.logisticsForm = {
+                    shippingCompanyId: null
                 }
                 this.logisticsDialog = true
             }
@@ -1011,7 +1011,7 @@ export default {
                     return this.$message.error('请选择卸货港');
                 }
                 this.transferForm = {
-                    podCompanyId:null
+                    podCompanyId: null
                 }
                 this.transferDialog = true
             }
@@ -1309,6 +1309,7 @@ export default {
         },
         // 报表弹窗
         previewDialogfun() {
+            this.getReportTypeByBigHandle('业务')
             this.previewDialog = true
         },
         //请核关闭
@@ -2014,13 +2015,13 @@ export default {
                         }
                     }
                     for (let item of this.form.feeCenterListD) {
-                        if (!item.corpId || !item.feeId || !item.elementsId || !item.curCode) {
-                            msgs.push(`应收第${item.$index + 1}行${!item.corpId ? ' 往来单位' : ''}${!item.feeId ? ' 费用简称' : ''}${!item.elementsId ? ' 核算要素' : ''}${!item.curCode ? ' 币种' : ''}`)
+                        if (!item.corpId || !item.feeId || !item.curCode) {
+                            msgs.push(`应收第${item.$index + 1}行${!item.corpId ? ' 往来单位' : ''}${!item.feeId ? ' 费用简称' : ''}${!item.curCode ? ' 币种' : ''}`)
                         }
                     }
                     for (let item of this.form.feeCenterListC) {
-                        if (!item.corpId || !item.feeId || !item.elementsId || !item.curCode) {
-                            msgs.push(`应付第${item.$index + 1}行${!item.corpId ? ' 往来单位' : ''}${!item.feeId ? ' 费用简称' : ''}${!item.elementsId ? ' 核算要素' : ''}${!item.curCode ? ' 币种' : ''}`)
+                        if (!item.corpId || !item.feeId || !item.curCode) {
+                            msgs.push(`应付第${item.$index + 1}行${!item.corpId ? ' 往来单位' : ''}${!item.feeId ? ' 费用简称' : ''}${!item.curCode ? ' 币种' : ''}`)
                         }
                     }
                     if (msgs.length > 0) {
@@ -2592,14 +2593,13 @@ export default {
                 if (this.form.id) {
                     this.$refs.documentCenter.reportslogListfun({ currentPage: 1, pageSize: 10 })
                 }
+                this.getReportTypeByBigHandle('单证')
             }
+            if (this.bigtabs == 'fy') this.getReportTypeByBigHandle('费用')
+
         },
-        getReportTypeByBigHandle() {
-            var rt = "";
-            if (this.bigtabs == 'wt') rt = "业务";
-            if (this.bigtabs == 'fy') rt = "费用";
-            if (this.bigtabs == 'dz') rt = "单证";
-            return rt;
+        getReportTypeByBigHandle(name) {
+            return name;
         },
         // 获取不分页的分单列表
         billsListAllfun(masterId) {

+ 106 - 26
src/views/iosBasicData/SeafreightExportF/bills/index.vue

@@ -35,14 +35,21 @@
                     </el-button>
                     <el-button type="warning" size="small" @click="outExport">导 出
                     </el-button>
-                    <el-button type="primary" size="small" @click="templateImport('D')"
-                        :disabled="!selectionList.length">费用模板(收)
+                    <el-button
+                        v-if="roleName.indexOf('admin') >= 0 || roleName.indexOf('应付修改') >= 0 || roleName.indexOf('应付查看') >= 0 || roleName.indexOf('应收修改') >= 0 || roleName.indexOf('应收查看') >= 0"
+                        type="primary" size="small" @click="templateImport('D')" :disabled="!selectionList.length">收费模板
                     </el-button>
-                    <el-button type="warning" size="small" @click="templateImport('C')"
-                        :disabled="!selectionList.length">费用模板(付)
+                    <el-button
+                        v-if="roleName.indexOf('admin') >= 0 || roleName.indexOf('应付修改') >= 0 || roleName.indexOf('应付查看') >= 0 || roleName.indexOf('应收修改') >= 0 || roleName.indexOf('应收查看') >= 0"
+                        type="warning" size="small" @click="templateImport('C')" :disabled="!selectionList.length">付费模板
                     </el-button>
-                    <el-button type="success" size="small" @click="checkBills" :disabled="!selectionList.length">单据请核
+                    <el-button type="primary" plain size="small" @click="costSubmit"
+                        :disabled="!selectionList.length">提取成本</el-button>
+                    <el-button
+                        v-if="roleName.indexOf('admin') >= 0 || roleName.indexOf('应付修改') >= 0 || roleName.indexOf('应付查看') >= 0 || roleName.indexOf('应收修改') >= 0 || roleName.indexOf('应收查看') >= 0"
+                        type="success" size="small" @click="checkBills" :disabled="!selectionList.length">单据请核
                     </el-button>
+                    
                     <!-- <el-dropdown style="line-height: 0">
                         <el-button size="small" type="success" style="margin-right: 8px"
                             :disabled="selectionList.length == 0">
@@ -143,7 +150,7 @@
                 <template slot="eta" slot-scope="scope">
                     <span>{{
                         scope.row.eta ? scope.row.eta.slice(0, 10) : ""
-                        }}</span>
+                    }}</span>
                 </template>
                 <template slot="updateTime" slot-scope="scope">
                     <span>{{
@@ -294,6 +301,7 @@
                 <el-button type="primary" @click="importTemplate" size="mini">导 入</el-button>
             </span>
         </el-dialog>
+        <extraction-cost ref="extractionCost" />
     </div>
 </template>
 
@@ -327,6 +335,7 @@ import {
 import { bportsList } from "@/api/iosBasicData/bports";
 import { blinesList } from "@/api/iosBasicData/blines";
 import TreeSelect from "@/components/iosbasic-data/TreeSelect.vue";
+import extractionCost from "@/components/extractionCost/main.vue";
 import { getDeptTree } from "@/api/system/dept";
 import { getToken } from "@/util/auth";
 import { getListTemplate, getListTemplatelist } from "@/api/iosBasicData/losbfeestemplate";
@@ -336,10 +345,12 @@ export default {
         SearchQuery,
         feesTemplateItems,
         billsDetails,
-        SplitList
+        SplitList,
+        extractionCost
     },
     data() {
         return {
+            roleName: [], // 当前登录人的角色权限
             dcDic: [
                 {
                     label: '收',
@@ -527,7 +538,7 @@ export default {
                 calcHeight: 30,
                 tip: false,
                 searchShow: true,
-                searchMenuSpan: 12,
+                searchMenuSpan: 6,
                 searchLabelWidth: "100",
                 border: true,
                 index: true,
@@ -625,6 +636,18 @@ export default {
                         overHidden: true
                     },
                     {
+                        label: "主单号",
+                        prop: "masterBillNo",
+                        width: "100",
+                        overHidden: true
+                    },
+                    {
+                        label: "分单数",
+                        prop: "splitOrderSum",
+                        width: "100",
+                        overHidden: true
+                    },
+                    {
                         label: "单据类型",
                         prop: "billType",
                         type: "select",
@@ -758,13 +781,37 @@ export default {
                         label: "装货港",
                         prop: "polEnName",
                         width: "120",
-                        overHidden: true
+                        overHidden: true,
+                        type: "select",
+                        filterable: true,
+                        remote: true,
+                        dicUrl: "/api/blade-los/bports/list?enName={{key}}",
+                        props: {
+                            label: "enName",
+                            value: "enName",
+                            res: "data.records"
+                        },
+                        search: true,
+                        span: 6,
+                        searchOrder: 10.3
                     },
                     {
                         label: "卸货港",
                         prop: "podEnName",
                         width: "120",
-                        overHidden: true
+                        overHidden: true,
+                        type: "select",
+                        filterable: true,
+                        remote: true,
+                        dicUrl: "/api/blade-los/bports/list?enName={{key}}",
+                        props: {
+                            label: "enName",
+                            value: "enName",
+                            res: "data.records"
+                        },
+                        search: true,
+                        span: 6,
+                        searchOrder: 10.5
                     },
                     {
                         label: "目的港",
@@ -935,19 +982,6 @@ export default {
                         prop: "bookingAgentCnName",
                         width: "120",
                         overHidden: true,
-                        type: "select",
-                        filterable: true,
-                        remote: true,
-                        dicUrl:
-                            "/api/blade-los/bcorps/listByType?cnName={{key}}",
-                        props: {
-                            label: "cnName",
-                            value: "cnName",
-                            res: "data.records"
-                        },
-                        search: true,
-                        span: 6,
-                        searchOrder: 17
                     },
                     {
                         label: "收货人",
@@ -1492,6 +1526,7 @@ export default {
         }
     },
     created() {
+        this.roleName = localStorage.getItem('roleName').split(',') // 获取角色数据
         // 获取当前登录人个人信息
         this.saberUserInfo = JSON.parse(
             localStorage.getItem("saber-userInfo")
@@ -1511,7 +1546,7 @@ export default {
             );
         }
         if (this.saberUserInfo.role_name.indexOf('admin') != -1 || this.saberUserInfo.role_name.indexOf('总部') != -1) {
-            this.optionBack.searchMenuSpan = 6
+            this.optionBack.searchMenuSpan = 24
             this.optionBack.column.forEach(item => {
                 if (item.prop == 'branchId') {
                     item.search = true
@@ -1538,6 +1573,51 @@ export default {
         }
     },
     methods: {
+        costSubmit() {
+            let podId = []
+            let destinationId = []
+            let airlineId = []
+            let shipNameId = []
+            let shippingCompanyId = []
+            let voyag = []
+            let obj = {}
+            let billsIds=[]
+            for (let item of this.selectionList) {
+                if (item.polId) podId.push(item.polId)
+                if (item.podId) destinationId.push(item.podId)
+                if (item.lineId) airlineId.push(item.lineId)
+                if (item.vesselId) shipNameId.push(item.vesselId)
+                if (item.carrierId) shippingCompanyId.push(item.carrierId)
+                if (item.voyageNo) voyag.push(item.voyageNo)
+                billsIds.push(item.id)
+            }
+            if ([...new Set(podId)].length > 1) {
+                return this.$message.error("请选择相同的装货港");
+            }
+            console.log([...new Set(destinationId)])
+            if ([...new Set(destinationId)].length > 1) {
+                return this.$message.error("请选择相同的卸货港");
+            }
+            // if ([...new Set(airlineId)].length > 1) {
+            //     return this.$message.error("请选择相同的航线");
+            // }
+            // if ([...new Set(shipNameId)].length > 1) {
+            //     return this.$message.error("请选择相同的船名");
+            // }
+            console.log([...new Set(shippingCompanyId)])
+            if ([...new Set(shippingCompanyId)].length > 1) {
+                return this.$message.error("请选择相同的船公司");
+            }
+            // if ([...new Set(voyag)].length > 1) {
+            //     return this.$message.error("请选择相同的航次");
+            // }
+            obj = {
+                podId: podId[0],
+                destinationId: destinationId[0],
+                shippingCompanyId: shippingCompanyId[0],
+            }
+            this.$refs.extractionCost.inTemplate(obj,billsIds.join(','))
+        },
         checkBills() {
             for (let item of this.selectionList) {
                 if (item.status != 0) {
@@ -1622,7 +1702,7 @@ export default {
             let obj = {
                 status: 0,
                 type: 'HYCK',
-                dc:this.dc,
+                dc: this.dc,
                 shippingCompanyId: this.selectionList[0].carrierId,
             }
             const loading = this.$loading({
@@ -2327,7 +2407,7 @@ export default {
             this.optionBack = this.$options.data().optionBack;
             localStorage.removeItem(this.getColumnName(code));
             if (this.saberUserInfo.role_name.indexOf('admin') != -1 || this.saberUserInfo.role_name.indexOf('总部') != -1) {
-                this.optionBack.searchMenuSpan = 6
+                this.optionBack.searchMenuSpan = 24
                 this.optionBack.column.forEach(item => {
                     if (item.prop == 'branchId') {
                         item.search = true

+ 25 - 8
src/views/iosBasicData/bcorps/detailsPage.vue

@@ -108,6 +108,15 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="16">
+            <el-form-item label="所属公司" prop="branchName">
+              <dic-select v-model="formData.branchName" placeholder="所属公司" key="id" label="deptName"
+                url="/blade-system/dept/top-list" :filterable="true" :remote="true" dataName="deptName"
+                @selectChange="dicChange('branchName', $event)"></dic-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
     </el-card>
     <el-card class="box-card">
@@ -1142,7 +1151,7 @@ import losaudit from "@/views/wel/components/losAssembly/losaudit.vue";
 import dicSelect from "@/components/dicSelect/main";
 export default {
   components: {
-    SearchQuery, bcountrys, user, rateManagement, blines,dicSelect
+    SearchQuery, bcountrys, user, rateManagement, blines, dicSelect
   },
   props: {
     detailData: {
@@ -1217,10 +1226,10 @@ export default {
       corpsAttnDialogIndex: null,
       formData: {
         status: 0,
-        corpType:null,
-        corpTypeName:null,
-        accountPeriodType:'票结',
-        corpTypeList:[],
+        corpType: null,
+        corpTypeName: null,
+        accountPeriodType: '票结',
+        corpTypeList: [],
         corpsAttnList: [],
         corpsBankList: [],
         corpsFilesList: [],
@@ -1400,7 +1409,7 @@ export default {
     if (this.detailData.corpType != null) {
       this.formData.corpTypeList = [this.detailData.corpType]
       this.formData.corpType = this.detailData.corpType
-      this.formData.corpTypeName= this.detailData.corpTypeName
+      this.formData.corpTypeName = this.detailData.corpTypeName
     }
     // 查询国家下拉
     bcountrysList(1, 10).then(res => {
@@ -1466,7 +1475,7 @@ export default {
   },
   mounted() { },
   methods: {
-    dicChange(name,row){
+    dicChange(name, row) {
       if (name == 'addressCname') {
         if (row) {
           this.formData.addressId = row.id
@@ -1479,6 +1488,14 @@ export default {
           this.formData.addressCname = null
         }
       }
+      if (name == 'branchName') {
+        if (row) {
+          this.formData.branchId = row.id
+        } else {
+          this.formData.branchId = null
+          this.formData.branchName = null
+        }
+      }
     },
     openPreview(row) {
       this.$ImagePreview([{ url: row.url }], 0, {
@@ -1658,7 +1675,7 @@ export default {
         }
       }
       this.formData.corpType = ids.join(",")
-      this.formData.corpTypeName = arr.join(",")?arr.join(","):this.detailData.corpTypeName
+      this.formData.corpTypeName = arr.join(",") ? arr.join(",") : this.detailData.corpTypeName
     },
     salesChange(id) {
       if (id == null) {

+ 2 - 2
src/views/wel/components/losAssembly/losaudit.vue

@@ -135,7 +135,7 @@
                         </div>
                     </div>
                 </div>
-                <div class="content-item"
+                <!-- <div class="content-item"
                     v-show="menuAll.includes('1725386630748975106') || menuAll.includes('1731517351142129665')">
                     <div class="card" v-show="menuAll.includes('1725386630748975106')">
                         <i class="el-icon-s-order" style="font-size:30px;color:#409EFF"></i>
@@ -151,7 +151,7 @@
                             <span class="card-content-num">{{ form.FPSQ }}</span>
                         </div>
                     </div>
-                </div>
+                </div> -->
             </div>
         </el-card>
     </div>

+ 4 - 4
src/views/wel/components/losAssembly/losleftform.vue

@@ -6,8 +6,8 @@
           <span></span>
           <div class="right">
             <el-radio v-model="type" label="1" @input="init">海运</el-radio>
-            <el-radio v-model="type" label="2" @input="init">空运</el-radio>
-            <el-radio v-model="type" label="3" @input="init" v-if="saberTenantId == '263057'">贸易</el-radio>
+            <el-radio v-model="type" label="2" @input="init">OW(拿)</el-radio>
+            <el-radio v-model="type" label="3" @input="init">OW(放)</el-radio>
             <div class="right_but">
               <div class="right_but_left" :class="{ right_but_active: isActive == 1 }" @click="inDay">本日
               </div>
@@ -50,7 +50,7 @@
 </template>
 
 <script>
-import { monthSales, documentQuantityStatistics, completionRate,boxReturnReminder,withdrawalReminder } from "@/api/wel";
+import { monthSales, documentQuantityStatistics, completionRate, boxReturnReminder, withdrawalReminder } from "@/api/wel";
 import search from "@/page/index/search.vue";
 import { dateFormat, defaultDate2, defaultDate3 } from "@/util/date";
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
@@ -93,7 +93,7 @@ export default {
       completionRate({
         dateStart: this.realDate[0] + ' 00:00:00',
         dateEnd: this.realDate[1] + ' 23:59:59',
-        type:this.type
+        type: this.type
       }).then(res => {
         this.data = res.data.data
       }).finally(() => {

+ 14 - 27
src/views/wel/components/losAssembly/losrealtime.vue

@@ -14,12 +14,13 @@
               本月
             </div>
           </div>
-          <el-date-picker v-model="realDate" type="daterange" size="mini" start-placeholder="开始日期" end-placeholder="结束日期"
-            value-format="yyyy-MM-dd" style="margin-right:10px;width:240px" :clearable="false">
+          <el-date-picker v-model="realDate" type="daterange" size="mini" start-placeholder="开始日期"
+            end-placeholder="结束日期" value-format="yyyy-MM-dd" style="margin-right:10px;width:240px" :clearable="false">
           </el-date-picker>
           <el-button type="primary" size="mini" icon="el-icon-search" style="margin-right:10px;" @click="search"
             circle></el-button>
-          <i class="el-icon-refresh-right" style="cursor: pointer;font-size:20px;line-height: 15px;" @click="refresh"></i>
+          <i class="el-icon-refresh-right" style="cursor: pointer;font-size:20px;line-height: 15px;"
+            @click="refresh"></i>
         </span>
       </div>
       <div style="display: flex;justify-content: center;">
@@ -51,45 +52,31 @@
               </div>
             </div>
           </div>
-          <div class="divider" v-if="saberTenantId != '263057'" />
-          <div class="content-item" v-if="saberTenantId != '263057'">
+          <div class="divider" />
+          <div class="content-item">
             <div class="card">
               <div class="card-title card-title3">
                 <span>
-                  
+                  
                 </span>
               </div>
               <div class="card-content">
-                <span class="card-content-num">{{ data.KYCK }}</span>
-                <span class="card-content-text">空运出口</span>
+                <span class="card-content-num">{{ data.KYCK?data.KYCK:0 }}</span>
+                <span class="card-content-text">OW(拿)</span>
               </div>
             </div>
           </div>
-          <div class="divider" v-if="saberTenantId != '263057'" />
-          <div class="content-item" v-if="saberTenantId != '263057'">
+          <div class="divider" />
+          <div class="content-item">
             <div class="card">
               <div class="card-title card-title4">
                 <span>
-                  空
-                </span>
-              </div>
-              <div class="card-content">
-                <span class="card-content-num">{{ data.KYJK }}</span>
-                <span class="card-content-text">空运进口</span>
-              </div>
-            </div>
-          </div>
-          <div class="divider" v-if="saberTenantId == '263057'" />
-          <div class="content-item" v-if="saberTenantId == '263057'">
-            <div class="card">
-              <div class="card-title card-title3">
-                <span>
-                  贸
+                  放
                 </span>
               </div>
               <div class="card-content">
-                <span class="card-content-num">{{ data.MYDL }}</span>
-                <span class="card-content-text">贸易代理</span>
+                <span class="card-content-num">{{ data.KYJK?data.KYJK:0 }}</span>
+                <span class="card-content-text">OW(放)</span>
               </div>
             </div>
           </div>

+ 28 - 28
src/views/wel/components/losAssembly/losrightform.vue

@@ -2,29 +2,21 @@
     <div class="home-container">
         <el-card class="home-container__card">
             <div class="title">
-                <span>{{(businessType == 1||businessType == 3)?'TEU':'尺码'}}</span>
+                <span>{{ (businessType == 1 || businessType == 3) ? 'TEU' : '尺码' }}</span>
                 <div class="right">
-                    <el-radio v-model="businessType" label="1" @input="init" >海运</el-radio>
-                    <el-radio v-model="businessType" label="2" @input="init" >空运</el-radio>
-                    <el-radio v-model="businessType" label="3" @input="init" v-if="saberTenantId=='263057'">贸易</el-radio>
+                    <el-radio v-model="businessType" label="1" @input="init">海运</el-radio>
+                    <el-radio v-model="businessType" label="2" @input="init">OW(拿)</el-radio>
+                    <el-radio v-model="businessType" label="3" @input="init">OW(放)</el-radio>
                     <div class="content-year">
-                        <el-date-picker
-                            v-model="annual"
-                            type="year"
-                            size="mini"
-                            placeholder="选择年"
-                            value-format="yyyy"
-                            style="margin-right:10px"
-                            :clearable="false"
-                            @change="init"
-                        />
+                        <el-date-picker v-model="annual" type="year" size="mini" placeholder="选择年" value-format="yyyy"
+                            style="margin-right:10px" :clearable="false" @change="init" />
                     </div>
                     <i class="el-icon-refresh-right" style="cursor: pointer;font-size:20px" @click="refresh"></i>
                 </div>
             </div>
-
             <div class="content" v-loading="loading">
-                <div id="polylineData" ref="polylineData" style="width:55vw;height:33vh"/></div>
+                <div id="polylineData" ref="polylineData" style="width:45vw;height:33vh" />
+            </div>
         </el-card>
 
 
@@ -32,18 +24,18 @@
 </template>
 
 <script>
-import {indexStatisticsTrend, salesTrend} from "@/api/wel";
-import {defaultDate2, defaultDate3, getYearDate} from "@/util/date";
+import { indexStatisticsTrend, salesTrend } from "@/api/wel";
+import { defaultDate2, defaultDate3, getYearDate } from "@/util/date";
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
 
 export default {
-    components: {SearchQuery},
-    data(){
+    components: { SearchQuery },
+    data() {
         return {
             loading: false,
             annual: "", // 时间
-            businessType:JSON.parse(localStorage.getItem('saber-tenantId')).content=='263057'?'3':'1', // 业务类型
-            moneyList:[], // 获取的数据
+            businessType: JSON.parse(localStorage.getItem('saber-tenantId')).content == '263057' ? '3' : '1', // 业务类型
+            moneyList: [], // 获取的数据
             saberTenantId: '',
         }
     },
@@ -54,7 +46,7 @@ export default {
     mounted() {
         this.init();
     },
-    methods:{
+    methods: {
         refresh() {
             this.init();
         },
@@ -62,13 +54,13 @@ export default {
             this.indexStatisticsTrendfun()
         },
         // 获取数据
-        indexStatisticsTrendfun(){
+        indexStatisticsTrendfun() {
             this.moneyList = []
             indexStatisticsTrend({
-                date:this.annual,
-                type:this.businessType
-            }).then(res=>{
-                this.moneyList = res.data.data.map(item=>{
+                date: this.annual,
+                type: this.businessType
+            }).then(res => {
+                this.moneyList = res.data.data.map(item => {
                     return item.money
                 })
             }).finally(() => {
@@ -129,26 +121,32 @@ export default {
     padding: 0px 5px 5px 0px;
     box-sizing: border-box;
     height: 100%;
+
     ::v-deep .el-card__body {
         padding: 10px 15px;
         font-size: 14px;
     }
+
     &__card {
         width: 100%;
         height: 100%;
     }
+
     .title {
         display: flex;
         justify-content: space-between;
+
         .right {
             display: flex;
             align-items: center;
+
             &_but {
                 margin: 0 10px;
                 border: 1px solid #409eff;
                 width: 80px;
                 border-radius: 3px;
                 display: flex;
+
                 &_left {
                     width: 40px;
                     text-align: center;
@@ -156,12 +154,14 @@ export default {
                     border-right: 1px solid #409eff;
                     cursor: pointer;
                 }
+
                 &_right {
                     width: 40px;
                     text-align: center;
                     color: #409eff;
                     cursor: pointer;
                 }
+
                 &_active {
                     color: #fff;
                     background-color: #409eff;

+ 1 - 1
src/views/wel/components/losHome.vue

@@ -108,7 +108,7 @@ export default {
         "a a a a a a a a a a"
         "b b b b b b b b b b"
         "c c c c c c c c c c"
-        "d d d d e e e e e e"
+        "d d d d d e e e e e"
         "f f f f f g g g g g";
 }
 </style>