Browse Source

完善海运出口功能 画海运进口页面整理字段

Qukatie 9 months ago
parent
commit
bb2eb9e5fa

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

@@ -252,3 +252,35 @@ export const listFeeCountByCorp = (data) => {
     params: data
   })
 }
+// 物流提交
+export const logisticsSubmission = (data) => {
+  return request({
+    url: '/api/blade-los/bills/logisticsSubmission',
+    method: 'post',
+    data: data
+  })
+}
+// 物流撤销提交
+export const logisticsRevokeSubmission = (data) => {
+  return request({
+    url: '/api/blade-los/bills/logisticsRevokeSubmission',
+    method: 'post',
+    data: data
+  })
+}
+// 转单
+export const transferOrder = (data) => {
+  return request({
+    url: '/api/blade-los/bills/transferOrder',
+    method: 'post',
+    data: data
+  })
+}
+// 物流撤销提交
+export const revokeTransferOrder = (data) => {
+  return request({
+    url: '/api/blade-los/bills/revokeTransferOrder',
+    method: 'post',
+    data: data
+  })
+}

+ 4 - 0
src/enums/column-name.js

@@ -1446,6 +1446,10 @@ const columnName = [{
     code: 309.7,
     name: '货运代理-海运出口-主单列表'
   },
+    {
+    code: 309.15,
+    name: '货运代理-海运出口-委托详情-箱型'
+  },
   {
     code: 310,
     name: '货运代理-账单管理-费用中心'

File diff suppressed because it is too large
+ 525 - 171
src/views/iosBasicData/OceanFreightImport/bills/assembly/EntrustmentLnformation.vue


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

@@ -4,8 +4,8 @@
             :data="assemblyForm.preContainersList" :page.sync="page" :permission="permissionList"
             :before-open="beforeOpen" v-model="form" ref="crud" :cell-style="{ padding: '0px', textAlign: 'center' }"
             @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel" @selection-change="selectionChange"
-            @refresh-change="refreshChange" @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 309.1)"
-            @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309.1)">
+            @refresh-change="refreshChange" @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 309.15)"
+            @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309.15)">
             <template slot="menuLeft">
                 <el-button type="primary" size="small" :disabled="seeDisabled" @click.stop="addfun">新 增</el-button>
                 <el-button type="danger" size="small" plain :disabled="seeDisabled||assemblyForm.preContainersList.length==0" @click.stop="handleDelete">一键删除
@@ -127,8 +127,8 @@ export default {
                 saveBtn: false,
                 cancelBtn: false,
                 cellBtn: true, // 行编辑
-                menuWidth: 140,
-                menu: false,
+                menuWidth: 80,
+                menu: true,
                 column: [
                     {
                         label: "尺码箱型",
@@ -349,7 +349,7 @@ export default {
         }
     },
     async created() {
-        this.option = await this.getColumnData(this.getColumnName(309.1), this.optionBack);
+        this.option = await this.getColumnData(this.getColumnName(309.15), this.optionBack);
     },
     methods: {
         onclickEdit() {

File diff suppressed because it is too large
+ 683 - 173
src/views/iosBasicData/OceanFreightImport/bills/assembly/formbottom.vue


File diff suppressed because it is too large
+ 518 - 306
src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue


+ 12 - 11
src/views/iosBasicData/OceanFreightImport/bills/index.vue

@@ -332,11 +332,13 @@
                             <el-tab-pane label="接单" name="0">
                                 <span slot="label">接单</span>
                             </el-tab-pane>
-                            <el-tab-pane label="退舱" name="1">
-                                <span slot="label" style="color: #d86363">退舱</span>
+                            <el-tab-pane label="到港" name="1">
+                                <span slot="label" style="color: #d86363">到港</span>
                             </el-tab-pane>
-                            <el-tab-pane label="完成" name="3"></el-tab-pane>
-                            <el-tab-pane label="全部" name="4"></el-tab-pane>
+                            <el-tab-pane label="返空" name="2"></el-tab-pane>
+                            <el-tab-pane label="换单" name="3"></el-tab-pane>
+                            <el-tab-pane label="通关" name="4"></el-tab-pane>
+                            <el-tab-pane label="全部" name="7"></el-tab-pane>
                         </el-tabs>
                     </div>
                 </template>
@@ -360,7 +362,6 @@
                             {{ item.dictValue }}
                         </span>
                     </div>
-
                 </temolate>
                 <template slot="accountStatus" slot-scope="{ row }">
                     <div>
@@ -1471,25 +1472,25 @@ export default {
     },
     methods: {
         rowStyle({ row, column, rowIndex, columnIndex }) {
-            if (row.status ==2) {
+            if (row.status == 2) {
                 return {
                     // color: '#fff',
                     backgroundColor: '#fbd26a',
-                    
+
                 }
             }
-            if (row.status ==3) {
+            if (row.status == 3) {
                 return {
                     // color: '#fff',
                     backgroundColor: '#ced094',
-                    
+
                 }
             }
-            if (row.status ==4) {
+            if (row.status == 4) {
                 return {
                     // color: '#fff',
                     backgroundColor: '#fbc4c4',
-                    
+
                 }
             }
         },

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

@@ -387,11 +387,11 @@
                                     <div>
                                         <el-col :span="16">
                                             <search-query :datalist="foreignAgencyData"
-                                                :selectValue="assemblyForm.detail.foreignAgencyCnName" :filterable="true"
+                                                :selectValue="assemblyForm.foreignAgencyCnName" :filterable="true"
                                                 :clearable="true" :remote="true" :addIf="true" :tableIf="false"
                                                 :disabled="detailData.seeDisabled" :joinData="true"
                                                 :forParameter="{ key: 'id', short: 'code', label: 'cnName', value: 'cnName' }"
-                                                placeholder="请选择发货人" @addJump="addJump('foreignAgency')"
+                                                placeholder="请选择国外代理" @addJump="addJump('foreignAgency')"
                                                 @remoteMethod="remoteMethod($event, 'foreignAgency')"
                                                 @corpChange="corpChange($event, 'foreignAgency')"
                                                 @corpFocus="remoteMethod($event, 'foreignAgency')">
@@ -399,17 +399,18 @@
                                         </el-col>
                                         <el-col :span="8">
                                             <el-input type="age" style="width: 100%;"
-                                                v-model="assemblyForm.detail.hshipperCntyName" size="small"
-                                                autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                                placeholder="发货人国家代码"></el-input>
+                                                v-model="assemblyForm.foreignCntyName" size="small" autocomplete="off"
+                                                :disabled="detailData.seeDisabled" clearable
+                                                placeholder="国外代理国家代码"></el-input>
                                         </el-col>
                                     </div>
                                 </el-form-item>
                                 <div style="margin-top: 4px">
                                     <el-input type="textarea" style="width: 100%;"
-                                        v-model="assemblyForm.detail.hshipperDetails" size="small" autocomplete="off"
+                                        v-model="assemblyForm.foreignAgencyDetails" size="small" autocomplete="off"
                                         :disabled="detailData.seeDisabled" :rows="textareaNumber" clearable
-                                        placeholder="请输入发货人提单描述" @change="textareaBlur('hshipperDetails')"></el-input>
+                                        placeholder="请输入国外代理提单描述"
+                                        @change="textareaBlur('foreignAgencyDetails')"></el-input>
                                 </div>
                             </div>
                             <div style="margin-top: 4px">
@@ -741,8 +742,8 @@
                                 <span style="color: #4c9e44;cursor: pointer;text-decoration: underline"
                                     @click="emailJump('cy')">POD场站</span>
                             </span>
-                            <search-query :datalist="cyData" :selectValue="assemblyForm.podCyCnName" :filterable="true"
-                                :clearable="true" :remote="true"
+                            <search-query :datalist="podCyData" :selectValue="assemblyForm.podCyCnName"
+                                :filterable="true" :clearable="true" :remote="true"
                                 :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }" placeholder="请选择场站"
                                 @remoteMethod="remoteMethod($event, 'podCyCnName')"
                                 @corpChange="corpChange($event, 'podCyCnName')"
@@ -759,7 +760,7 @@
                             <!--          size="small" autocomplete="off"-->
                             <!--          :disabled="detailData.seeDisabled || generateBillsfalse"-->
                             <!--          clearable placeholder="请输入联系人" ></el-input>-->
-                            <search-query :datalist="cyContactsData" :selectValue="assemblyForm.podCyContacts"
+                            <search-query :datalist="podCyCnNameData" :selectValue="assemblyForm.podCyContacts"
                                 :filterable="true" :clearable="true"
                                 :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.podCyCnName"
                                 :buttonIf="false" :forParameter="{ key: 'id', label: 'cname', value: 'cname' }"
@@ -776,8 +777,8 @@
                         </span>
                         <el-input type="age" style="width: 100%;" v-model="assemblyForm.podCyAddress" size="small"
                             autocomplete="off"
-                            :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.podCyCnName" clearable
-                            placeholder="地址"></el-input>
+                            :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.podCyCnName"
+                            clearable placeholder="地址"></el-input>
                     </el-form-item>
                 </el-col>
             </el-row>
@@ -1027,11 +1028,12 @@ export default {
                 }
             },
             emailhash: emailhash, // 邮箱跳转地址
-            foreignAgencyData:[],
+            foreignAgencyData: [],
             // 场站
             cyData: [],
             podCyData: [],
             cyContactsData: [], // 场站联系人
+            podCyCnNameData:[],
             // 多选的数据
             tabsMultipleChoice: [],
             // 发货人数据
@@ -1245,7 +1247,7 @@ export default {
         },
         // 远程搜索
         remoteMethod(value, name) {
-            let arr = ['hshipper', 'hconsignee', 'hnotify', 'hnotify2', 'bookingAgent','foreignAgency']
+            let arr = ['hshipper', 'hconsignee', 'hnotify', 'hnotify2', 'bookingAgent', 'foreignAgency']
             let portArr = ['placeReceipt', 'pol', 'pod', 'destination', 'placeDelivery', 'pot']
             if (arr.indexOf(name) != -1) {
                 this[name + 'BcorpsListfun'](value)
@@ -1258,7 +1260,7 @@ export default {
             else if (name == 'cy') {
                 this.cyBcorpslistByType(value)
             }
-            else if (name == 'cy') {
+            else if (name == 'podCyCnName') {
                 this.cyBcorpslistByType2(value)
             }
             // 场站联系人
@@ -1293,7 +1295,7 @@ export default {
         // 选择框的回调
         corpChange(value, name) {
             console.log('corpChange', value, name)
-            let arr = ['hshipper', 'hconsignee', 'hnotify', 'hnotify2','foreignAgency']
+            let arr = ['hshipper', 'hconsignee', 'hnotify', 'hnotify2']
             let portArr = ['placeReceipt', 'destination', 'placeDelivery']
             let cnPorArr = ['pol', 'pod', 'pot']
             if (arr.indexOf(name) != -1) {
@@ -1325,7 +1327,7 @@ export default {
                     }
                 }
             }
-            // 有中文名称的港口
+        // 有中文名称的港口
             else if (cnPorArr.indexOf(name) != -1) {
                 if (!value) {
                     this.$set(this.assemblyForm, name + 'Id', '')
@@ -1336,7 +1338,6 @@ export default {
                 }
                 for (let item of this[name + 'Data']) {
                     if (item.enName == value) {
-                        console.log(item)
                         this.$set(this.assemblyForm, name + 'Id', item.id)
                         this.$set(this.assemblyForm, name + 'CnName', item.cnName)
                         this.$set(this.assemblyForm, name + 'EnName', item.enName)
@@ -1357,6 +1358,35 @@ export default {
                     }
                 }
             }
+            else if (name == 'foreignAgency') {
+                if (!value) {
+                    // this.$set(this.assemblyForm.detail, name + 'Id', '')
+                    this.$set(this.assemblyForm, name + 'Id', '')
+                    this.$set(this.assemblyForm, name + 'CnName', '')
+                    this.$set(this.assemblyForm, name + 'EnName', '')
+                    this.$set(this.assemblyForm, name + 'Code', '')
+                    this.$set(this.assemblyForm, name + 'Details', '')
+                    this.$set(this.assemblyForm, name + 'CntyName', '')
+                    this.$set(this.assemblyForm, name + 'CntyCode', '')
+                }
+                for (let item of this[name + 'Data']) {
+                    if (item.cnName == value) {
+                        console.log(item.cntyCode, 1231231)
+                        this.$set(this.assemblyForm, name + 'Id', item.id)
+                        this.$set(this.assemblyForm, name + 'CnName', item.cnName)
+                        this.$set(this.assemblyForm, name + 'EnName', item.enName)
+                        this.$set(this.assemblyForm, name + 'Code', item.code)
+                        // this.$set(this.assemblyForm,name + 'Details',item.details)
+                        if (!this.assemblyForm[name + 'Details']) {
+                            this.$set(this.assemblyForm, name + 'Details', item.details)
+                        }
+                        // 国家名称
+                        this.$set(this.assemblyForm, name + 'CntyName', item.cntyName)
+                        // 国家代码
+                        this.$set(this.assemblyForm, name + 'CntyCode', item.cntyCode)
+                    }
+                }
+            }
             // 没有中文名的港口
             else if (portArr.indexOf(name) != -1) {
                 console.log(name)
@@ -1666,7 +1696,7 @@ export default {
             //         type: 'warning'
             //     });
             // }
-            let arr = ['hshipperDetails', 'hconsigneeDetails', 'hnotifyDetails', 'hnotify2Details']
+            let arr = ['hshipperDetails', 'hconsigneeDetails', 'hnotifyDetails', 'hnotify2Details', 'foreignAgencyDetails']
             if (arr.indexOf(name) != -1) {
                 this.assemblyForm.detail[name] = _.toUpper(this.assemblyForm.detail[name])
 
@@ -1775,6 +1805,11 @@ export default {
                 this.cyContactsData = res.data.data.records
             })
         },
+        cyBcorpsattnListfun2() {
+            getBcorpsattnList(1, 20, { pid: this.assemblyForm.podCyId }).then(res => {
+                this.podCyCnNameData = res.data.data.records
+            })
+        },
         foreignAgencyBcorpsListfun(cnName) {
             let corpTypeName = '国内同行及代理,国外同行及代理'
             getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {

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

@@ -1,10 +1,10 @@
 <template>
     <basic-container>
-        <avue-crud  :option="option" :table-loading="loading"
-            :data="assemblyForm.preContainersList" :page.sync="page" :permission="permissionList"
-            :before-open="beforeOpen" v-model="form" :cell-style="{ padding: '0px', textAlign: 'center' }" ref="crud"
-            @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel" @selection-change="selectionChange"
-            @refresh-change="refreshChange" @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 309.1)"
+        <avue-crud :option="option" :table-loading="loading" :data="assemblyForm.preContainersList" :page.sync="page"
+            :permission="permissionList" :before-open="beforeOpen" v-model="form"
+            :cell-style="{ padding: '0px', textAlign: 'center' }" ref="crud" @row-update="rowUpdate" @row-save="rowSave"
+            @row-del="rowDel" @selection-change="selectionChange" @refresh-change="refreshChange"
+            @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 309.1)"
             @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309.1)">
             <template slot="menuLeft">
                 <el-button type="primary" size="small" :disabled="seeDisabled" @click.stop="addfun">新 增</el-button>
@@ -19,17 +19,20 @@
                     :disabled="seeDisabled || assemblyForm.preContainersList.length == 0" @click="onclickEdit">一键编辑
                 </el-button>
             </template>
-            <template slot-scope="{row,index}" slot="menu">
-                <el-button size="mini" type="text" @click.stop="pick(row)" :disabled="seeDisabled">
+            <!-- <template slot-scope="{row,index}" slot="menu">
+                <el-button v-if="row.id && row.containerNumberStatus == '录入'" size="mini" type="text"
+                    @click.stop="pick(row)" :disabled="seeDisabled">
                     选择
                 </el-button>
-                <el-button size="mini" type="text" @click.stop="rowRevoke(row)" :disabled="seeDisabled">
+                <el-button v-if="row.id && row.containerNumberStatus == '已选择'" size="mini" type="text"
+                    @click.stop="rowRevoke(row)" :disabled="seeDisabled">
                     撤销
                 </el-button>
-                <el-button size="mini" type="text" @click.stop="rowView(row)" :disabled="seeDisabled">
+                <el-button v-if="row.id && row.containerNumberStatus == '已选择'" size="mini" type="text"
+                    @click.stop="rowView(row)" :disabled="seeDisabled">
                     查看放箱号
                 </el-button>
-            </template>
+            </template> -->
             <template slot-scope="{row}" slot="cntrTypeCodeForm">
                 <search-query :datalist="cntrTypeCodeData" :selectValue="row.cntrTypeCode" :filterable="true"
                     :clearable="true" :remote="true" :buttonIf="false"
@@ -57,12 +60,16 @@
         <el-dialog title="查看放箱号" :visible.sync="dialogVisible" width="50%" :before-close="handleClose" append-to-body>
             <span>
                 <avue-crud :option="containerOption" :data="containerNumberItemList">
-
+                    <template slot="occupyNum" slot-scope="{ row }">
+                        <el-input-number v-if="!row.id" v-model="row.occupyNum" :min="0" :max="row.remainingNum"
+                            placeholder="请输入占用箱量" size="small" :controls="false" style="width: 100%;"></el-input-number>
+                        <span v-else>{{ row.occupyNum }}</span>
+                    </template>
                 </avue-crud>
             </span>
             <span slot="footer" class="dialog-footer">
-                <el-button @click="dialogVisible = false" size="samll">取 消</el-button>
-                <el-button type="primary" @click="dialogVisible = false" size="samll">确 定</el-button>
+                <el-button @click="dialogVisible = false" size="mini">{{ editStatus ? '取 消' : '关 闭' }}</el-button>
+                <el-button v-if="editStatus" type="primary" @click="submit" size="mini">确 定</el-button>
             </span>
         </el-dialog>
 
@@ -107,10 +114,11 @@ export default {
     },
     data() {
         return {
+            editStatus: false,
             dialogVisible: false,
             // 集装箱尺码箱型
             cntrTypeCodeData: [],
-            containerNumberItemList:[],
+            containerNumberItemList: [],
             form: {},
             query: {},
             loading: false,
@@ -125,7 +133,7 @@ export default {
                 maxHeight: '150px',
                 // calcHeight: 30,
                 calcHeight: 30,
-                menuWidth: 160,
+                menuWidth: 120,
                 tip: false,
                 border: true,
                 addBtn: false,
@@ -135,7 +143,7 @@ export default {
                 refreshBtn: false,
                 selection: true,
                 align: 'center',
-                menu: true,
+                menu: false,
                 index: true,
                 column: [
                     {
@@ -336,7 +344,7 @@ export default {
             },
             data: [],
             containerOption: {
-                height: '150',
+                height: '500',
                 // calcHeight: 30,
                 calcHeight: 30,
                 menuWidth: 160,
@@ -352,7 +360,7 @@ export default {
                 menu: false,
                 columnBtn: false,
                 index: true,
-                header:false,
+                header: false,
                 column: [
                     {
                         label: "放箱号",
@@ -436,15 +444,61 @@ export default {
         this.option = await this.getColumnData(this.getColumnName(309.1), this.optionBack);
     },
     methods: {
-        pick(row){
-
+        submit() {
+            // let obj = {
+            //     containerNumberItemList: 
+            // }
+            selectedContainerNumber(this.containerNumberItemList).then(res => {
+                this.$message.success("操作成功!");
+                this.dialogVisible = false
+                this.$emit('billsDetailfun')
+            })
         },
-        rowRevoke(row){
+        pick(row) {
+            this.containerNumberItemList = []
+            if (!this.assemblyForm.polId) {
+                return this.$message.error("请选择装货港");
+            }
+            if (!this.assemblyForm.podId) {
+                return this.$message.error("请选择卸货港");
+            }
+            let obj = {
+                boxType: row.cntrTypeCode,
+                polId: this.assemblyForm.polId,
+                podId: this.assemblyForm.podId,
+                cabinType: this.assemblyForm.cabinType,
+                airlineId: this.assemblyForm.airlineId
+            }
+            getItemListHY(obj).then(res => {
+                if (res.data.data) {
+                    res.data.data.forEach(item => {
+                        item.pid = this.assemblyForm.id
+                    })
+                    this.editStatus = true
+                    this.containerNumberItemList = res.data.data
+                }
+            })
+            this.dialogVisible = true
 
         },
+        rowRevoke(row) {
+            let obj = {
+                boxType: row.cntrTypeCode,
+                billId: this.assemblyForm.id
+            }
+            revokeSelectedContainerNumber(obj).then(res => {
+                this.$message.success("操作成功!");
+                this.$emit('billsDetailfun')
+            })
+        },
         rowView(row) {
+            this.containerNumberItemList = []
+            this.editStatus = false
             this.dialogVisible = true
-            this.containerNumberItemList=[]
+            this.containerNumberItemList = this.assemblyForm.containerNumberItemList.filter(item => row.cntrTypeCode == item.boxType)
+        },
+        handleClose() {
+            this.editStatus = false
         },
         onclickEdit() {
             for (let item of this.assemblyForm.preContainersList) {
@@ -909,4 +963,8 @@ export default {
 };
 </script>
 
-<style scoped></style>
+<style scoped lang="scss">
+::v-deep .el-dialog__body {
+    padding: 0px 10px !important;
+}
+</style>

+ 105 - 48
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -44,9 +44,7 @@
             </el-form>
         </div>
         <!--显示 admin,应收修改,应收查看,应收查看只有打印账单一个功能 -->
-        <el-card
-            v-show="isFeeViewD"
-            class="box-card">
+        <el-card v-show="isFeeViewD" class="box-card">
             <avue-crud :option="optionD" :table-loading="loadingD" :data="assemblyForm.feeCenterListD" v-model="formD"
                 id="out-table" :header-cell-class-name="headerClassName" ref="crudD" :row-style="{ height: '20px' }"
                 :cell-style="{ padding: '0px' }" @selection-change="handleSelectionChange($event, 'D')"
@@ -57,39 +55,35 @@
                         <i class="el-icon-coin"></i>
                         <span>应收费用</span>
                     </div>
-                    <el-button v-if="isFeeEditD" type="danger"
-                        plain size="small" :disabled="!selectionDList.length || disabled || pleasereviewType"
+                    <el-button v-if="isFeeEditD" type="danger" plain size="small"
+                        :disabled="!selectionDList.length || disabled || pleasereviewType"
                         @click="batchDelete('D')">一键删除
                     </el-button>
-                    <el-button v-if="isFeeEditD" type="success"
-                        plain size="small" :disabled="!selectionDList.length || disabled || pleasereviewType"
+                    <el-button v-if="isFeeEditD" type="success" plain size="small"
+                        :disabled="!selectionDList.length || disabled || pleasereviewType"
                         @click="GenerateBillsfun('D')">生成账单
                     </el-button>
-                    <el-button v-if="isFeeEditD" type="danger"
-                        plain size="small" :disabled="!selectionDList.length || disabled || pleasereviewType"
+                    <el-button v-if="isFeeEditD" type="danger" plain size="small"
+                        :disabled="!selectionDList.length || disabled || pleasereviewType"
                         @click="RevokingBillsfun('D')">撤销账单
                     </el-button>
                     <el-button type="primary" plain size="small" @click="printingCostsfun('D')">打印账单</el-button>
-                    <el-button v-if="isFeeEditD" type="success"
-                        plain size="small" :disabled="!this.assemblyForm.id || disabled || pleasereviewType"
+                    <el-button v-if="isFeeEditD" type="success" plain size="small"
+                        :disabled="!this.assemblyForm.id || disabled || pleasereviewType"
                         @click="templateClick('D')">应收模板</el-button>
-                    <el-button v-if="isFeeEditD" type="info"
-                        plain size="small" :disabled="disabled || pleasereviewType"
+                    <el-button v-if="isFeeEditD" type="info" plain size="small" :disabled="disabled || pleasereviewType"
                         @click="feecenterSubmitListfun">一键保存</el-button>
-                    <el-button v-if="isFeeEditD" type="info"
-                        plain size="small" :disabled="disabled || pleasereviewType" @click="feecenterEditfun('D')">一键编辑
+                    <el-button v-if="isFeeEditD" type="info" plain size="small" :disabled="disabled || pleasereviewType"
+                        @click="feecenterEditfun('D')">一键编辑
                     </el-button>
-                    <el-button v-if="isFeeEditD" type="primary"
-                        plain size="small" :disabled="disabled || pleasereviewType"
-                        @click="copyfun('D')">生成应付</el-button>
-                    <el-button v-if="isFeeEditD" type="primary"
-                        plain size="small" :disabled="disabled || pleasereviewType"
-                        @click="allClick('发票申请', 'D')">发票申请</el-button>
+                    <el-button v-if="isFeeEditD" type="primary" plain size="small"
+                        :disabled="disabled || pleasereviewType" @click="copyfun('D')">生成应付</el-button>
+                    <el-button v-if="isFeeEditD" type="primary" plain size="small"
+                        :disabled="disabled || pleasereviewType" @click="allClick('发票申请', 'D')">发票申请</el-button>
                 </template>
                 <template slot="indexHeader" slot-scope="scope">
-                    <el-button v-if="isFeeEditD" type="primary"
-                        size="small" icon="el-icon-plus" circle :disabled="disabled || pleasereviewType"
-                        @click="addDfun"></el-button>
+                    <el-button v-if="isFeeEditD" type="primary" size="small" icon="el-icon-plus" circle
+                        :disabled="disabled || pleasereviewType" @click="addDfun"></el-button>
                 </template>
                 <template slot="index" slot-scope="scope">
                     <span>{{ scope.index + 1 }}</span>
@@ -97,7 +91,22 @@
                 <template slot="accStatus" slot-scope="{row,size}">
                     <span>{{ row.accStatus ? '是' : '否' }}</span>
                 </template>
-                <template slot="corpCnName" slot-scope="{ row }">
+                <template slot="corpType" slot-scope="{row,index}">
+                    <dic-select v-if="row.edit" v-model="row.corpType" key="id" label="cnName" res="records"
+                        url="/blade-los/bcorpstypedefine/list?status=0&current=1&size=20" :filterable="true"
+                        :remote="true" dataName="cnName"
+                        @selectChange="rowDicChange('corpType', $event, row, index)"></dic-select>
+                    <span v-else>{{ row.corpType }}</span>
+                </template>
+                <template slot="corpCnName" slot-scope="{ row,index }">
+                    <dic-select v-if="row.edit" :key="updateSearchKey" v-model="row.corpCnName" placeholder="结算单位"
+                        label="shortName" res="records" :slotRight="true" rightLabel="code"
+                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + row.corpType"
+                        :filterable="true" :remote="true" dataName="shortName"
+                        @selectChange="rowDicChange('corpCnName', $event, row)"></dic-select>
+                    <span v-else>{{ row.corpCnName }}</span>
+                </template>
+                <!-- <template slot="corpCnName" slot-scope="{ row }">
                     <search-query v-if="row.edit" :datalist="corpCnNameData" :selectValue="row.shortName"
                         :filterable="true" :clearable="true" :remote="true" :buttonIf="false"
                         :forParameter="{ key: 'id', label: 'shortName', value: 'shortName' }"
@@ -106,7 +115,7 @@
                         @corpFocus="getBcorpsListfun($event, 'shortName')">
                     </search-query>
                     <span v-else style="color: #1e9fff" @click="corpClick(row)">{{ row.shortName }}</span>
-                </template>
+                </template> -->
                 <template slot="feeCnName" slot-scope="{ row }">
                     <search-query v-if="row.edit" :datalist="feeCnNameData" :selectValue="row.feeCnName"
                         :filterable="true" :clearable="true" :remote="true" :buttonIf="false"
@@ -177,9 +186,7 @@
             </avue-crud>
         </el-card>
         <!--显示 admin,应付修改,应付查看,应付查看只有打印账单一个功能 -->
-        <el-card
-            v-show="isFeeViewC"
-            class="box-card" style="margin: 2px 0">
+        <el-card v-show="isFeeViewC" class="box-card" style="margin: 2px 0">
             <avue-crud :option="optionC" :table-loading="loadingC" :data="assemblyForm.feeCenterListC" v-model="formC"
                 id="out-table" :header-cell-class-name="headerClassName" ref="crudC" :row-style="{ height: '20px' }"
                 :cell-style="{ padding: '0px' }" @selection-change="handleSelectionChange($event, 'C')"
@@ -190,39 +197,38 @@
                         <i class="el-icon-coin"></i>
                         <span>应付费用</span>
                     </div>
-                    <el-button v-if="isFeeEditC" type="danger"
-                        plain size="small" :disabled="!selectionCList.length || disabled || pleasereviewType"
+                    <el-button v-if="isFeeEditC" type="danger" plain size="small"
+                        :disabled="!selectionCList.length || disabled || pleasereviewType"
                         @click="batchDelete('C')">一键删除
                     </el-button>
-                    <el-button v-if="isFeeEditC" type="primary"
-                        plain size="small" :disabled="!selectionCList.length || disabled || pleasereviewType"
+                    <el-button v-if="isFeeEditC" type="primary" plain size="small"
+                        :disabled="!selectionCList.length || disabled || pleasereviewType"
                         @click="GenerateBillsfun('C')">生成账单
                     </el-button>
-                    <el-button v-if="isFeeEditC" type="danger"
-                        plain size="small" :disabled="!selectionCList.length || disabled || pleasereviewType"
+                    <el-button v-if="isFeeEditC" type="danger" plain size="small"
+                        :disabled="!selectionCList.length || disabled || pleasereviewType"
                         @click="RevokingBillsfun('C')">撤销账单
                     </el-button>
                     <el-button type="primary" plain size="small" @click="printingCostsfun('C')">打印账单</el-button>
-                    <el-button v-if="isFeeEditC" type="success"
-                        plain size="small" :disabled="!this.assemblyForm.id || disabled || pleasereviewType"
+                    <el-button v-if="isFeeEditC" type="success" plain size="small"
+                        :disabled="!this.assemblyForm.id || disabled || pleasereviewType"
                         @click="templateClick('C')">应付模板
                     </el-button>
-                    <el-button v-if="isFeeEditC" type="info"
-                        plain size="small" :disabled="disabled || pleasereviewType" @click="feecenterSubmitListfun">一键保存
+                    <el-button v-if="isFeeEditC" type="info" plain size="small" :disabled="disabled || pleasereviewType"
+                        @click="feecenterSubmitListfun">一键保存
                     </el-button>
-                    <el-button v-if="isFeeEditC" type="info"
-                        plain size="small" :disabled="disabled || pleasereviewType" @click="feecenterEditfun('C')">一键编辑
+                    <el-button v-if="isFeeEditC" type="info" plain size="small" :disabled="disabled || pleasereviewType"
+                        @click="feecenterEditfun('C')">一键编辑
                     </el-button>
-                    <el-button v-if="isFeeEditC" type="primary"
-                        plain size="small" :disabled="disabled || pleasereviewType" @click="copyfun('C')">生成应收
+                    <el-button v-if="isFeeEditC" type="primary" plain size="small"
+                        :disabled="disabled || pleasereviewType" @click="copyfun('C')">生成应收
                     </el-button>
                     <el-button type="info" plain size="small" :disabled="disabled"
                         @click="allClick('付费申请', 'C')">付费申请</el-button>
                 </template>
                 <template slot="indexHeader" slot-scope="scope">
-                    <el-button v-if="isFeeEditC" type="primary"
-                        size="small" icon="el-icon-plus" circle :disabled="disabled || pleasereviewType"
-                        @click="addCfun">
+                    <el-button v-if="isFeeEditC" type="primary" size="small" icon="el-icon-plus" circle
+                        :disabled="disabled || pleasereviewType" @click="addCfun">
                     </el-button>
                 </template>
                 <template slot="index" slot-scope="scope">
@@ -231,7 +237,7 @@
                 <template slot="accStatus" slot-scope="{row,size}">
                     <span>{{ row.accStatus ? '是' : '否' }}</span>
                 </template>
-                <template slot="corpCnName" slot-scope="{ row }">
+                <!-- <template slot="corpCnName" slot-scope="{ row }">
                     <search-query v-if="row.edit" :datalist="corpCnNameData" :selectValue="row.shortName"
                         :filterable="true" :clearable="true" :remote="true" :buttonIf="false"
                         :forParameter="{ key: 'id', label: 'shortName', value: 'shortName' }"
@@ -240,6 +246,21 @@
                         @corpFocus="getBcorpsListfun($event, 'shortName')">
                     </search-query>
                     <span v-else style="color: #1e9fff" @click="corpClick(row)">{{ row.shortName }}</span>
+                </template> -->
+                <template slot="corpType" slot-scope="{row,index}">
+                    <dic-select v-if="row.edit" v-model="row.corpType" key="id" label="cnName" res="records"
+                        url="/blade-los/bcorpstypedefine/list?status=0&current=1&size=20" :filterable="true"
+                        :remote="true" dataName="cnName"
+                        @selectChange="rowDicChange('corpType', $event, row, index)"></dic-select>
+                    <span v-else>{{ row.corpType }}</span>
+                </template>
+                <template slot="corpCnName" slot-scope="{ row,index }">
+                    <dic-select v-if="row.edit" :key="updateSearchKey" v-model="row.corpCnName" placeholder="结算单位"
+                        label="shortName" res="records" :slotRight="true" rightLabel="code"
+                        :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + row.corpType"
+                        :filterable="true" :remote="true" dataName="shortName"
+                        @selectChange="rowDicChange('corpCnName', $event, row)"></dic-select>
+                    <span v-else>{{ row.corpCnName }}</span>
                 </template>
                 <template slot="feeCnName" slot-scope="{ row }">
                     <search-query v-if="row.edit" :datalist="feeCnNameData" :selectValue="row.feeCnName"
@@ -585,9 +606,11 @@ import { dateFormat } from "@/util/date";
 import { regularBurdenfloating } from "@/util/regularJudgment";
 import { isProcurement } from "@/api/basicData/configuration";
 import { getToken } from "@/util/auth";
+
+import dicSelect from "@/components/dicSelect/main";
 import _ from "lodash";
 export default {
-    components: { reportContainer, SearchQuery, reportformsList },
+    components: { dicSelect, reportContainer, SearchQuery, reportformsList },
     props: {
         pid: {
 
@@ -927,6 +950,12 @@ export default {
                         overHidden: true,
                     },
                     {
+                        label: "类别",
+                        prop: "corpType",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
                         label: "结算单位",
                         prop: "corpCnName",
                         width: "160",
@@ -1086,6 +1115,12 @@ export default {
                         overHidden: true,
                     },
                     {
+                        label: "类别",
+                        prop: "corpType",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
                         label: "结算单位",
                         prop: "corpCnName",
                         width: "160",
@@ -1387,6 +1422,7 @@ export default {
             isFeeEditC: false, // 当前登录人是否有应付费用修改角色
             isProfitView: false, // 当前登录人是否有利润查看角色
             idArr: [],
+            updateSearchKey: new Date().getTime(),
         }
     },
     async created() {
@@ -1418,6 +1454,27 @@ export default {
         this.paymodeWorkDictsfun() // 获取预付/到付数据
     },
     methods: {
+        rowDicChange(name, row, el) {
+            if (name == 'corpCnName') {
+                if (row) {
+                    el.corpId = row.id
+                    el.shortName = row.shortName
+                    el.corpEnName = row.enName
+                } else {
+                    el.corpId = null
+                    el.shortName = null
+                    el.corpCnName = null
+                    el.corpEnName = null
+                }
+            }
+            if (name == 'corpType') {
+                el.corpId = null
+                el.shortName = null
+                el.corpCnName = null
+                el.corpEnName = null
+                this.updateSearchKey = new Date().getTime()
+            }
+        },
         getSum() {
             let sumArr = []
             let corpArr = []

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

@@ -13,17 +13,6 @@
                         </search-query>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
-                    <el-form-item label="单据类型" prop="billType">
-                        <span slot="label">
-                            <span style="color: #1e9fff">单据类型</span>
-                        </span>
-                        <search-query :datalist="billTypeData" :selectValue="assemblyForm.billType" :filterable="true"
-                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
-                            placeholder="请选择单据类型" @corpChange="corpChange($event, 'billType')">
-                        </search-query>
-                    </el-form-item>
-                </el-col> -->
                 <el-col :span="6">
                     <el-form-item label="截单时间" prop="cyTrailerTime">
                         <span slot="label">
@@ -52,8 +41,8 @@
                             <span style="color: #1e9fff">应结日期</span>
                         </span>
                         <el-date-picker v-model="assemblyForm.dueDate" type="date" style="width: 100%;"
-                            value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
-                            placeholder="请选择截港时间">
+                            value-format="yyyy-MM-dd HH:mm:ss" size="small" :disabled="detailData.seeDisabled"
+                            placeholder="请选择应结日期">
                         </el-date-picker>
                     </el-form-item>
                 </el-col>
@@ -333,7 +322,8 @@
                         </span>
                         <el-col :span="12">
                             <dic-select v-model="assemblyForm.cabinType" placeholder="舱位类型" key="id" label="dictValue"
-                                url="/blade-system/dict-biz/dictionary?code=cabinType" :disabled="detailData.seeDisabled"
+                                url="/blade-system/dict-biz/dictionary?code=cabinType"
+                                :disabled="detailData.seeDisabled"
                                 @selectChange="dicChange('cabinType', $event)"></dic-select>
                         </el-col>
                         <el-col :span="11" :offset="1">
@@ -377,6 +367,62 @@
                             style="width: 100%;"></el-input>
                     </el-form-item>
                 </el-col>
+                <el-col :span="6">
+                    <el-form-item label="单据类型" prop="billType">
+                        <span slot="label">
+                            <span style="color: #1e9fff">单据类型</span>
+                        </span>
+                        <search-query :datalist="billTypeData" :selectValue="assemblyForm.billType" :filterable="true"
+                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                            placeholder="请选择单据类型" @corpChange="corpChange($event, 'billType')">
+                        </search-query>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                    <el-form-item label="" prop="billNo">
+                        <span slot="label">
+                            <span style="color: #1e9fff">单据编号</span>
+                        </span>
+                        <el-input v-model="assemblyForm.billNo" size="small" placeholder="请输入单据编号" style="width: 100%;"
+                            disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="4">
+                    <el-form-item label="" prop="createUserName">
+                        <span slot="label">
+                            <span style="color: #1e9fff">制单人</span>
+                        </span>
+                        <el-input v-model="assemblyForm.createUserName" size="small" placeholder="请输入单据编号"
+                            style="width: 100%;" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                    <el-form-item label="" prop="createTime">
+                        <span slot="label">
+                            <span style="color: #1e9fff">制单日期</span>
+                        </span>
+                        <el-input v-model="assemblyForm.createTime" size="small" placeholder="请输入单据编号"
+                            style="width: 100%;" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="4">
+                    <el-form-item label="" prop="updateUserName">
+                        <span slot="label">
+                            <span style="color: #1e9fff">修改人</span>
+                        </span>
+                        <el-input v-model="assemblyForm.updateUserName" size="small" placeholder="请输入单据编号"
+                            style="width: 100%;" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                    <el-form-item label="" prop="updateTime">
+                        <span slot="label">
+                            <span style="color: #1e9fff">修改日期</span>
+                        </span>
+                        <el-input v-model="assemblyForm.updateTime" size="small" placeholder="请输入单据编号"
+                            style="width: 100%;" disabled></el-input>
+                    </el-form-item>
+                </el-col>
             </el-row>
             <!-- <el-row>
                 <el-col :span="6">

+ 256 - 8
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -31,7 +31,7 @@
                         </el-dropdown-item>
                     </el-dropdown-menu>
                 </el-dropdown>
-                <el-dropdown style="line-height: 0">
+                <!-- <el-dropdown style="line-height: 0">
                     <el-button size="small" type="success" style="margin-right: 8px" :loading="saveLoading"
                         :disabled="!form.id || showLock">
                         发送 SO EDI<i class="el-icon-arrow-down el-icon--right"></i>
@@ -52,11 +52,23 @@
                             @click.native="editypesSendingEdifun(item)">{{ item.cnName }}
                         </el-dropdown-item>
                     </el-dropdown-menu>
-                </el-dropdown>
+                </el-dropdown> -->
 
                 <el-button size="small" style="margin-right: 8px" :loading="saveLoading" :disabled="!form.id"
                     @click="previewDialogfun">预 览
                 </el-button>
+                <el-button v-if="form.id && form.logisticsStatus == '录入'" size="small" type="success"
+                    @click.stop="allClick('物流提交')">物流提交
+                </el-button>
+                <el-button v-if="form.id && form.logisticsStatus == '已提交'" size="small" type="danger"
+                    @click.stop="allClick('物流撤销提交')">撤销物流
+                </el-button>
+                <el-button v-if="form.id && form.transferOrderStatus == '录入'" size="small" type="info"
+                    @click.stop="allClick('转单')">转单
+                </el-button>
+                <el-button v-if="form.id && form.transferOrderStatus == '已转单'" 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">撤销单据请核
                 </el-button>
@@ -85,7 +97,9 @@
                             <containerTitle title="基础资料"></containerTitle>
                             <basic-container>
                                 <el-row :gutter="60">
-                                    <el-col v-for="(item, index) in basicData.column" :key="index" :span="8">
+                                    <el-col
+                                        v-for="(item, index) in basicData.column.filter(item => item.display == true)"
+                                        :key="index" :span="8">
                                         <!--数组-->
                                         <div v-if="item instanceof Array"
                                             style="display: flex;align-items: center;justify-content: space-between">
@@ -248,10 +262,10 @@
                                     <reports :id="form.id" :assemblyForm="form"
                                         :disabled="detailData.seeDisabled || showLock" businessValue="HYCK"></reports>
                                 </el-tab-pane>
-                                <el-tab-pane label="EDI 及其他" name="sixth">
+                                <!-- <el-tab-pane label="EDI 及其他" name="sixth">
                                     <edicode :assemblyForm="form" :detailData="detailData" :disabled="showLock">
                                     </edicode>
-                                </el-tab-pane>
+                                </el-tab-pane> -->
                                 <el-tab-pane label="文件中心" name="seventh">
                                     <filescenter ref="filescenter" :assemblyForm="form" :pid="form.id"
                                         :detailData="detailData" :showLock="showLock"></filescenter>
@@ -302,6 +316,43 @@
             <business-reports :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%"
+            :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
+            <span>
+                <avue-form ref="logisticsForm" :option="logisticsOption" v-model="logisticsForm">
+                    <tempalte slot="shippingStaffName">
+                        <dic-select v-model="logisticsForm.shippingStaffName" placeholder="船务员工" key="id"
+                            label="realName" res="records" url="/blade-user/page" :filterable="true" :remote="true"
+                            dataName="realName" @selectChange="dicChange('shippingStaffName', $event)"></dic-select>
+                    </tempalte>
+                </avue-form>
+            </span>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="logisticsDialog = false" size="mini">取 消</el-button>
+                <el-button type="primary" @click="logisticsSubmit" size="mini">确 定</el-button>
+            </span>
+        </el-dialog>
+        <el-dialog append-to-body title="转单信息" class="el-dialogDeep" :visible.sync="transferDialog" width="30%"
+            :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
+            <span>
+                <avue-form ref="transferForm" :option="transferOption" v-model="transferForm">
+                    <tempalte slot="podCompanyName">
+                        <dic-select v-model="transferForm.podCompanyName" placeholder="目的港公司" key="id" label="deptName"
+                            url="/blade-system/dept/lazy-list?parentId=0" :filterable="true"
+                            @selectChange="dicChange('podCompanyName', $event)"></dic-select>
+                    </tempalte>
+                    <tempalte slot="podStaffName">
+                        <dic-select v-model="transferForm.podStaffName" placeholder="目的港员工" label="realName"
+                            res="records" url="/blade-user/page" :filterable="true" :remote="true" dataName="realName"
+                            @selectChange="dicChange('podStaffName', $event)"></dic-select>
+                    </tempalte>
+                </avue-form>
+            </span>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="transferDialog = false" size="mini">取 消</el-button>
+                <el-button type="primary" @click="transferSubmit" size="mini">确 定</el-button>
+            </span>
+        </el-dialog>
     </div>
 </template>
 
@@ -318,6 +369,7 @@ import { getList as userGetList } from '@/api/system/user'
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
 import TreeSelect from "@/components/iosbasic-data/TreeSelect.vue";
 import bcorps from "@/views/iosBasicData/bcorps/index.vue";
+import dicSelect from "@/components/dicSelect/main";
 import bcorpstypedefine from "@/views/iosBasicData/bcorps/bcorpstypedefine.vue";
 import SplitList from "@/views/iosBasicData/SeafreightExportF/bills/assembly/SplitList.vue";
 import { getLazylist } from "@/api/basicData/agreement";
@@ -334,6 +386,10 @@ import {
     billsSubmit,
     billsAdd,
     deptGetDetailPol, postSelectByUser,
+    logisticsSubmission,
+    logisticsRevokeSubmission,
+    transferOrder,
+    revokeTransferOrder
 } from '@/api/iosBasicData/bills'
 import { dateFormat } from "@/util/date";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
@@ -367,6 +423,7 @@ export default {
         DocumentCenter,
         businessReports,
         editypes,
+        dicSelect
     },
     props: {
         detailData: {
@@ -375,6 +432,55 @@ export default {
     },
     data() {
         return {
+            transferForm: {},
+            transferOption: {
+                menuBtn: false,
+                disabled: false,
+                column: [
+                    {
+                        label: '目的港公司',
+                        prop: "podCompanyName",
+                        disabled: false,
+                        span: 24,
+                        rules: [{
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: '目的港员工',
+                        prop: "podStaffName",
+                        disabled: false,
+                        span: 24,
+                        rules: [{
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }]
+                    }
+                ]
+            },
+            transferDialog: false,
+            logisticsForm: {},
+            logisticsOption: {
+                menuBtn: false,
+                disabled: false,
+                column: [
+                    {
+                        label: '船务员工',
+                        prop: "shippingStaffName",
+                        disabled: false,
+                        span: 24,
+                        rules: [{
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }]
+                    },
+                ]
+            },
+            logisticsDialog: false,
             verifySymbolStatus: 0,
             showLock: false,
             ediData: [], // edi 列表数据
@@ -486,6 +592,7 @@ export default {
                         buttonIf: true,
                         joinData: true,
                         slot: 'bcorps',
+                        display: true,
                         forParameter: {
                             key: 'id',
                             label: 'cnName',
@@ -503,12 +610,21 @@ export default {
                         text: "请输入booking NO",
                         prop: "bookingNo",
                         disabled: false,
+                        display: true,
+                    },
+                    {
+                        label: "HB/L NO",
+                        text: "请输入MB/L NO",
+                        prop: "hblno",
+                        disabled: false,
+                        display: false,
                     },
                     {
                         label: "MB/L NO",
                         text: "请输入MB/L NO",
                         prop: "mblno",
                         disabled: false,
+                        display: true,
                     },
                     // [
                     //     {
@@ -641,9 +757,26 @@ export default {
         'form.billType': {
             // 执行方法
             handler(oldValue, newValue) {
-                // if (oldValue == 'MM') {
-                //     this.form.hblno = ''
-                // }
+
+                if (oldValue == 'MH') {
+                    this.basicData.column.forEach(item => {
+                        if (item.prop == 'bookingNo') {
+                            item.display = false
+                        }
+                        if (item.prop == 'hblno') {
+                            item.display = true
+                        }
+                    })
+                } else {
+                    this.basicData.column.forEach(item => {
+                        if (item.prop == 'bookingNo') {
+                            item.display = true
+                        }
+                        if (item.prop == 'hblno') {
+                            item.display = false
+                        }
+                    })
+                }
                 // 只有分单不能编辑
                 // if (oldValue == 'MH') {
                 //     this.columnforfun('hblno').disabled = true
@@ -694,6 +827,9 @@ export default {
         isProcurement({ "param": "verify.symbol" }).then(res => {
             this.verifySymbolStatus = res.data.data
         })
+        if (this.detailData.billType) {
+            this.form.billType = this.detailData.billType
+        }
         // 判断是否员id, 有id 就不显示
         if (!this.form.id) {
             this.deptGetDetailPolfun() // 收货地 装货港 当前登录人的默认
@@ -862,6 +998,117 @@ export default {
                 done();
             }
         },
+        allClick(name) {
+            if (name == '物流提交') {
+                this.logisticsDialog = true
+            }
+            if (name == '转单') {
+                this.transferDialog = true
+            }
+            if (name == '物流撤销提交') {
+                this.$confirm('是否撤销物流?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    logisticsRevokeSubmission(this.form).then(res => {
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!"
+                        })
+                        this.logisticsDialog = false
+                        this.billsDetailfun(this.form.id)
+                    })
+                })
+
+            }
+            if (name == '撤销转单') {
+                this.$confirm('是否撤销转单?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    revokeTransferOrder(this.form).then(res => {
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!"
+                        })
+                        this.logisticsDialog = false
+                        this.billsDetailfun(this.form.id)
+                    })
+                })
+            }
+        },
+        dicChange(name, row) {
+            if (name == 'shippingStaffName') {
+                if (row) {
+                    this.logisticsForm.shippingStaffId = row.id
+                } else {
+                    this.logisticsForm.shippingStaffId = null
+                    this.logisticsForm.shippingStaffName = null
+                }
+            }
+            if (name == 'podStaffName') {
+                if (row) {
+                    this.transferForm.podStaffId = row.id
+                } else {
+                    this.transferForm.podStaffId = null
+                    this.transferForm.podStaffName = null
+                }
+            }
+            if (name == 'podCompanyName') {
+                if (row) {
+                    this.transferForm.podCompanyId = row.id
+                } else {
+                    this.transferForm.podCompanyId = null
+                    this.transferForm.podCompanyName = null
+                }
+            }
+        },
+        logisticsSubmit() {
+            this.$refs["logisticsForm"].validate((valid, done) => {
+                done();
+                if (valid) {
+                    let obj = {
+                        ...this.form,
+                        ...this.logisticsForm
+                    }
+                    logisticsSubmission(obj).then(res => {
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!"
+                        })
+                        this.logisticsDialog = false
+                        this.billsDetailfun(this.form.id)
+                    })
+                } else {
+                    return false;
+                }
+            });
+
+        },
+        transferSubmit() {
+            this.$refs["transferForm"].validate((valid, done) => {
+                done();
+                if (valid) {
+                    let obj = {
+                        ...this.form,
+                        ...this.transferForm
+                    }
+                    transferOrder(obj).then(res => {
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!"
+                        })
+                        this.transferDialog = false
+                        this.billsDetailfun(this.form.id)
+                    })
+                } else {
+                    return false;
+                }
+            });
+
+        },
         // 获取EDI列表数据
         editypesListfun() {
             editypesList(1, 1000).then(res => {
@@ -2390,6 +2637,7 @@ export default {
     margin: 0 05px;
 }
 
+
 .isShow {
     display: none;
 }

+ 30 - 16
src/views/iosBasicData/SeafreightExportF/bills/index.vue

@@ -6,7 +6,7 @@
                 v-model="form" ref="crud" :search.sync="query" @row-update="rowUpdate" @row-save="rowSave"
                 @row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
                 @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
-                @refresh-change="refreshChange" @on-load="onLoad" @expand-change="expandChange" :row-style="rowStyle"
+                @refresh-change="refreshChange" @on-load="onLoad" :row-style="rowStyle"
                 @resetColumn="resetColumnTwo('crud', 309)" @saveColumn="saveColumnTwo('crud', optionBack, 309)">
                 <template slot-scope="{disabled,size}" slot="billSortSearch">
                     <el-radio-group v-model="query.billSort">
@@ -310,7 +310,11 @@
                 <!--#endregion-->
 
                 <template slot="menuLeft">
-                    <el-button type="primary" size="small" @click="addbtnfun()">新建业务
+                    <el-button type="primary" size="small" @click="addbtnfun('MM')">新建主单
+                    </el-button>
+                    <el-button type="success" size="small" @click="addbtnfun('MH')">新建分单
+                    </el-button>
+                    <el-button type="warning" size="small" @click="addbtnfun('DD')">新建直单
                     </el-button>
                     <el-button type="primary" size="small" plain @click="CopyDocumentsfun">复制单据
                     </el-button>
@@ -326,7 +330,7 @@
                     </el-button>
                     <el-button type="warning" size="small" @click="outExport">导 出
                     </el-button>
-                    <el-dropdown style="line-height: 0">
+                    <!-- <el-dropdown style="line-height: 0">
                         <el-button size="small" type="success" style="margin-right: 8px"
                             :disabled="selectionList.length == 0">
                             发送 SO EDI<i class="el-icon-arrow-down el-icon--right"></i>
@@ -347,17 +351,26 @@
                                 @click.native="editypesSendingEdifun(item)">{{ item.cnName }}
                             </el-dropdown-item>
                         </el-dropdown-menu>
-                    </el-dropdown>
+                    </el-dropdown> -->
                     <div style="margin-top: 10px">
                         <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
                             <el-tab-pane label="接单" name="0">
                                 <span slot="label">接单</span>
                             </el-tab-pane>
+                            <el-tab-pane label="出号" name="4">
+                                <span slot="label">出号</span>
+                            </el-tab-pane>
+                                      <el-tab-pane label="开船" name="5">
+                                <span slot="label">开船</span>
+                            </el-tab-pane>
+                            <el-tab-pane label="到港" name="6">
+                                <span slot="label">到港</span>
+                            </el-tab-pane>
                             <el-tab-pane label="退舱" name="1">
                                 <span slot="label" style="color: #d86363">退舱</span>
                             </el-tab-pane>
                             <el-tab-pane label="完成" name="3"></el-tab-pane>
-                            <el-tab-pane label="全部" name="4"></el-tab-pane>
+                            <el-tab-pane label="全部" name="7"></el-tab-pane>
                         </el-tabs>
                     </div>
                 </template>
@@ -368,11 +381,11 @@
                     </el-button>
                 </template>
 
-                <template slot="expand" slot-scope="{row}">
+                <!-- <template slot="expand" slot-scope="{row}">
                     <SplitList :typeMenu="true" :data="row.billsListAllData" :loading="SplitLoading"
                         @corpfun="rowCellfun">
                     </SplitList>
-                </template>
+                </template> -->
                 <temolate slot="billStatus" slot-scope="{row}">
                     <div>
                         <span v-if="row.billStatus == item.dictKey" v-for="(item, index) in billStatusData" :key="index"
@@ -667,8 +680,8 @@ export default {
                 //     // 禁用主单
                 //     return row.billType != 'MM'
                 // },
-                expand: true,
-                expandRowKeys: [],
+                // expand: true,
+                // expandRowKeys: [],
                 rowKey: 'id',
                 height: 500,
                 calcHeight: 30,
@@ -1620,25 +1633,25 @@ export default {
     },
     methods: {
         rowStyle({ row, column, rowIndex, columnIndex }) {
-            if (row.status ==2) {
+            if (row.status == 2) {
                 return {
                     // color: '#fff',
                     backgroundColor: '#fbd26a',
-                    
+
                 }
             }
-            if (row.status ==3) {
+            if (row.status == 3) {
                 return {
                     // color: '#fff',
                     backgroundColor: '#ced094',
-                    
+
                 }
             }
-            if (row.status ==4) {
+            if (row.status == 4) {
                 return {
                     // color: '#fff',
                     backgroundColor: '#fbc4c4',
-                    
+
                 }
             }
         },
@@ -1946,8 +1959,9 @@ export default {
             this.$store.commit("OUT_SEAFE_DETAIL");
         },
         // 新增弹窗开启
-        addbtnfun() {
+        addbtnfun(type) {
             this.detailData.seeDisabled = false
+            this.detailData.billType=type
             this.isShow = false
             this.$store.commit("IN_SEAFE_DETAIL");
         },

+ 2 - 3
vue.config.js

@@ -45,15 +45,14 @@ module.exports = {
   },
   //开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
   devServer: {
-    port: 1024,
+    port: 1025,
     proxy: {
       '/api': {
         //本地服务接口地址
         // target: 'http://192.168.3.64:1080',
-        // target: 'http://192.168.8.113:1080',
+        // target: 'http://192.168.8.104:1080',
         // target: 'http://127.0.0.1:1080',
         // 打包地址
-        // target: 'http://121.37.83.47:10004',//服务器ip
         target: 'http://139.9.191.155:10004',//服务器ip
         // target: 'http://192.168.161.11:10004',//服务器ip
         //  target: 'http://127.0.0.1:10004',

Some files were not shown because too many files changed in this diff