浏览代码

仓储出入库和凯合新增船舶动态

wengyuwen 4 年之前
父节点
当前提交
a934729002

+ 90 - 0
src/api/kaihe/shipDynamics/vessel.js

@@ -0,0 +1,90 @@
+// 查询航线详情列表
+import request from '@/utils/request'
+
+export function listCorps(query) {
+  return request({
+    url: '/shipping/address/selectStockDump',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询港口详情详细
+export function getCorps(fId) {
+  return request({
+    url: '/shipping/address/' + fId,
+    method: 'get'
+  })
+}
+
+// 新增
+export function addyard(data) {
+  return request({
+    url: '/shipping/address',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改航线详情
+export function updateCorps(data) {
+  return request({
+    url: '/shipping/address/edit',
+    method: 'put',
+    data: data
+  })
+}
+// 状态修改
+export function changeCorpsStatus(fId, fStatus) {
+  const data = {
+    fId,
+    fStatus
+  }
+  return request({
+    url: '/shipping/route',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除客户详情
+export function delCorps(fIds) {
+  return request({
+    url: '/shipping/address/' + fIds,
+    method: 'delete'
+  })
+}
+
+// 导出客户详情
+export function exportCorps(query) {
+  return request({
+    url: '/shipping/route/export',
+    method: 'get',
+    params: query
+  })
+}
+
+//查询港口名称
+export function getyard(query) {
+  return request({
+    url: '/shipping/address/selectStorageName',
+    method: 'get',
+    params: query
+  })
+}
+//编号唯一
+export function getyardNo(query) {
+  return request({
+    url: '/shipping/address/selectAddressFno',
+    method: 'post',
+    data: query
+  })
+}
+//名称唯一
+export function getyardName(query) {
+  return request({
+    url: '/shipping/address/selectAddressFName',
+    method: 'post',
+    data: query
+  })
+}

+ 2 - 2
src/views/kaihe/basicdata/transport/index.vue

@@ -160,8 +160,8 @@
     <el-table v-loading="loading" :data="corpsList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column type="index" width="55" label="行号" align="center" />
-      <el-table-column label="堆场编号" align="center" prop="fNo" width="100px"/>
-      <el-table-column :show-overflow-tooltip="true" label="堆场全称" align="center" prop="fName" width="100px"
+      <el-table-column label="编号" align="center" prop="fNo" width="100px"/>
+      <el-table-column :show-overflow-tooltip="true" label="全称" align="center" prop="fName" width="100px"
       />
       <el-table-column :show-overflow-tooltip="true" label="英文全称" align="center" width="100px" prop="fEname" />
       <el-table-column :show-overflow-tooltip="true" label="状态" align="center" prop="fStatus" />

+ 50 - 24
src/views/kaihe/containerNews/modifyPage/index.vue

@@ -360,7 +360,7 @@
 
       <span>
         <el-button type="primary" style="margin-top: 20px;" @click="save">确定</el-button>
-        <el-button type="primary" style="margin-top: 20px;" @click="dialogVisible = false , relevantAttachments = []">取消</el-button>
+        <el-button type="primary" style="margin-top: 20px;" @click="dialogVisible = false , relevantAttachments = [], file = []">取消</el-button>
       </span>
     </el-dialog>
   </div>
@@ -521,6 +521,7 @@
         }
       },
       uploadFile(row){
+        this.file = []
         this.row = row
         this.dialogVisible = true
         if(row.accessoryList !== null){
@@ -642,52 +643,77 @@
       },
       //地点带入
       bringIn(value,row){
-        for(let item in this.select){
-          for(let li in this.addressOptions){
-            if(this.queryParams.fUpdateaddress == this.addressOptions[li].fId){
-              this.$set(this.select[item],'foldSite',this.addressOptions[li].fName)
-              this.$set(this.select[item],'fold',this.queryParams.fUpdateaddress)
+        if(this.select.length === 0){
+          this.$message.error("请选择行")
+          this.queryParams.fUpdateaddress = ''
+        }else{
+          for(let item in this.select){
+            for(let li in this.addressOptions){
+              if(this.queryParams.fUpdateaddress == this.addressOptions[li].fId){
+                this.$set(this.select[item],'foldSite',this.addressOptions[li].fName)
+                this.$set(this.select[item],'fold',this.queryParams.fUpdateaddress)
+              }
             }
+            // this.select[item].foldSite = value
           }
-          // this.select[item].foldSite = value
+
         }
       },
       //空重带入选中列表
       changeUpdateEF(){
-        for(let item in this.select){
-          for(let li in this.updateEFOptions){
-            if(this.queryParams.fUpdateEF == this.updateEFOptions[li].dictValue){
-              this.$set(this.select[item],'foldFUpdateef',this.updateEFOptions[li].dictLabel)
-              this.$set(this.select[item],'FUpdateef',this.queryParams.fUpdateEF)
+        if(this.select.length === 0){
+          this.$message.error("请选择行")
+          this.queryParams.fUpdateEF = ''
+        }else {
+          for (let item in this.select) {
+            for (let li in this.updateEFOptions) {
+              if (this.queryParams.fUpdateEF == this.updateEFOptions[li].dictValue) {
+                this.$set(this.select[item], 'foldFUpdateef', this.updateEFOptions[li].dictLabel)
+                this.$set(this.select[item], 'FUpdateef', this.queryParams.fUpdateEF)
+              }
             }
           }
         }
       },
       //调箱动作带入选中列表
       changeAction(){
-        for(let item in this.select){
-          for(let li in this.boxActionOptions){
-            if(this.queryParams.fOpctnstatus == this.boxActionOptions[li].dictValue){
-              this.$set(this.select[item],'fOpctnstatus',this.boxActionOptions[li].dictLabel)
-              this.$set(this.select[item],'boxAdjustmentAction',this.queryParams.fOpctnstatus)
+        if(this.select.length === 0){
+          this.$message.error("请选择行")
+          this.queryParams.fOpctnstatus = ''
+        }else {
+          for (let item in this.select) {
+            for (let li in this.boxActionOptions) {
+              if (this.queryParams.fOpctnstatus == this.boxActionOptions[li].dictValue) {
+                this.$set(this.select[item], 'fOpctnstatus', this.boxActionOptions[li].dictLabel)
+                this.$set(this.select[item], 'boxAdjustmentAction', this.queryParams.fOpctnstatus)
+              }
             }
           }
         }
       },
       //状态带入选中列表
       changeStatus(){
-        for(let item in this.select) {
-          for (let li in this.cntrstatusOptions) {
-            if(this.queryParams.fStatus == this.cntrstatusOptions[li].dictValue)
-            this.$set(this.select[item], 'foldFCntrstatus', this.cntrstatusOptions[li].dictLabel)
-            this.$set(this.select[item], 'FCntrstatus', this.queryParams.fStatus)
+        if(this.select.length === 0){
+          this.$message.error("请选择行")
+          this.queryParams.fStatus = ''
+        }else {
+          for (let item in this.select) {
+            for (let li in this.cntrstatusOptions) {
+              if (this.queryParams.fStatus == this.cntrstatusOptions[li].dictValue)
+                this.$set(this.select[item], 'foldFCntrstatus', this.cntrstatusOptions[li].dictLabel)
+              this.$set(this.select[item], 'FCntrstatus', this.queryParams.fStatus)
+            }
           }
         }
       },
       //时间带入选列表
       changeDate(){
-        for(let item in this.select){
-          this.$set(this.select[item],'foldtime',this.queryParams.fBdate)
+        if(this.select.length === 0){
+          this.$message.error("请选择行")
+        }else {
+          for (let item in this.select) {
+            this.$set(this.select[item], 'foldtime', this.queryParams.fBdate)
+          }
         }
       },
       //多选框选中

+ 632 - 0
src/views/kaihe/shipDynamics/vesselDetail/index.vue

@@ -0,0 +1,632 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-row>
+          <el-form-item label="代码" prop="fNo">
+            <el-input
+              v-model="queryParams.fNo"
+              style="width:200px"
+              placeholder="请输入编号"
+              clearable
+              size="small"
+            />
+          </el-form-item>
+        <el-form-item label="中文名" prop="fName">
+          <el-input
+            v-model="queryParams.fName"
+            style="width:200px"
+            placeholder="请输入编号"
+            clearable
+            size="small"
+          />
+        </el-form-item>
+          <el-form-item label="英文名" prop="fEname">
+            <el-input
+              v-model="queryParams.fEname"
+              style="width: 200px"
+              placeholder="请选择状态"
+              clearable
+              size="small"
+              @keyup.enter.native="handleQuery"
+            >
+            </el-input>
+          </el-form-item>
+
+        <el-form-item label="呼号" prop="fImo">
+          <el-input
+            v-model="queryParams.fImo"
+            style="width: 200px"
+            placeholder="请选择状态"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          >
+          </el-input>
+        </el-form-item>
+      </el-row>
+      <div v-show="queryParamsHidden">
+        <el-row>
+          <el-form-item label="船东" prop="fOwer">
+            <el-input
+              v-model="queryParams.fOwer"
+              style="width: 200px"
+              placeholder="请选择状态"
+              clearable
+              size="small"
+              @keyup.enter.native="handleQuery"
+            >
+            </el-input>
+          </el-form-item>
+          <el-form-item label="国家代码" prop="fEname">
+            <el-input
+              v-model="queryParams.fEname"
+              style="width: 200px"
+              placeholder="请选择状态"
+              clearable
+              size="small"
+              @keyup.enter.native="handleQuery"
+            >
+            </el-input>
+          </el-form-item>
+
+          <el-form-item label="备注">
+            <el-input
+              v-model="queryParams.remark"
+              type="textarea"
+              style="width: 200px"
+              clearable
+              size="small"
+            />
+          </el-form-item>
+
+        </el-row>
+      </div>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['shipping:address:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['shipping:address:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['shipping:address:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['basicdata:yard:import']"
+        >导入</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['shipping:address:export']"
+        >导出</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['basicdata:yard:list']"
+        >取消</el-button>
+      </el-col>
+      <el-col  style="position: absolute;left:75%" :span="5" >
+        <el-button  size="small" @click="queryParamsHidden ? (queryParamsHidden = false) : (queryParamsHidden = true)">{{ queryParamsHidden ? '隐藏' : '更多' }}</el-button>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="corpsList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column type="index" width="55" label="行号" align="center" />
+      <el-table-column label="编号" align="center" prop="fNo" width="100px"/>
+      <el-table-column :show-overflow-tooltip="true" label="名称" align="center" prop="fName" width="100px"
+      />
+      <el-table-column :show-overflow-tooltip="true" label="英文全称" align="center" width="100px" prop="fEname" />
+      <el-table-column :show-overflow-tooltip="true" label="国家代码" align="center" prop="fNationality" />
+      <el-table-column :show-overflow-tooltip="true" label="船舶呼号" align="center" prop="fImo" />
+      <el-table-column :show-overflow-tooltip="true" label="状态" align="center" prop="fStatus" />
+      <el-table-column :show-overflow-tooltip="true" label="备注" align="center" prop="remark" />
+
+      <el-table-column label="录入人" align="center" prop="createBy" />
+      <el-table-column label="录入时间" align="center" prop="createTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="最新修改人" align="center" prop="updateBy" width="100px"/>
+      <el-table-column label="最新修改时间" align="center" prop="updateTime" width="100px">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" width="120px">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >查看</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >移除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改客户详情对话框 -->
+    <el-dialog
+      v-dialogDrag
+      :fullscreen="dialogFull"
+      :title="title"
+      :visible.sync="open"
+      close-on-click-modal="false"
+      width="60%"
+      :close-on-click-modal="false"
+      append-to-body>
+      <template slot="title">
+        <div class="avue-crud__dialog__header">
+            <span class="el-dialog__title">
+            <span style="display:inline-block;width:3px;height:20px;margin-right:5px; float: left;margin-top:2px"></span>
+            </span>
+          <div class="avue-crud__dialog__menu enlarge" @click="full">
+            <i  style="cursor: pointer;display: block;width:12px;height:12px;border:1px solid #909399;border-top:3px solid #909399;margin-top: -3px;"></i>
+          </div>
+        </div>
+      </template>
+
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="编号" prop="fNo">
+              <el-input
+                v-model="form.fNo"
+                style="width: 80%"
+                placeholder="请输入编号"
+                :disabled="doNot"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="全称" prop="fName">
+              <el-input
+                v-model="form.fName"
+                style="width: 80%"
+                placeholder="请输入全称"
+                :disabled="doNot"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="英文名" prop="fEname">
+              <el-input v-model="form.fEname" style="width: 80%" placeholder="请输入英文名" :disabled="doNot"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row>
+
+          <el-col :span="12">
+            <el-form-item label="状态" prop="fStatus">
+              <el-select v-model="form.fStatus" style="width: 80%" placeholder="请输入英文名称" :disabled="doNot">
+                <el-option label="正常" value="T"/>
+                <el-option label="停用" value="F"/>
+              </el-select>
+            </el-form-item>
+          </el-col>
+<!--          <el-col :span="12">-->
+<!--            <el-form-item label="类型" prop="fTypes">-->
+<!--              <el-select-->
+<!--                style="width: 80%"-->
+<!--                v-model="form.fTypes"-->
+<!--                disabled-->
+<!--              >-->
+<!--                <el-option-->
+<!--                  v-for="(dict, index) in fTypesOptions"-->
+<!--                  :key="index.dictValue"-->
+<!--                  :label="dict.dictLabel"-->
+<!--                  :value="dict.dictValue"/>-->
+<!--              </el-select>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="备注" prop="remark">
+              <el-input
+                v-model="form.remark"
+                style="width: 100%" placeholder=""
+                :disabled="doNot"
+                type="textarea"
+                :autosize="{ minRows: 2}"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info" round @click="doNot = false">修 改</el-button>
+        <el-button type="success" round @click="submitForm" :disabled="doNot">保 存</el-button>
+        <el-button @click="cancel" round>关 闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import { getyard,listCorps, getCorps, delCorps, addyard,getyardNo, getyardName, changeCorpsStatus,exportCorps } from "@/api/kaihe/shipDynamics/vessel";
+  import {queryUserVal} from "@/api/system/user";
+  import { isArray } from '@/utils/validate'
+  import Vue from 'vue'
+  import { getportinformation } from '@/api/kaihe/basicdata/portinformation'
+  import { getroute } from '@/api/kaihe/basicdata/route'
+  Vue.directive('dialogDrag', {
+    bind(el, binding, vnode, oldVnode) {
+      const dialogHeaderEl = el.querySelector('.el-dialog__header')
+      const dragDom = el.querySelector('.el-dialog')
+      const enlarge = el.querySelector('.enlarge')
+      dialogHeaderEl.style.cursor = 'move'
+
+      // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
+      const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null)
+      if(enlarge){
+        enlarge.onclick = (e) => {
+          dragDom.style.top = '0px'
+          dragDom.style.left = '0px'
+        }
+      }
+      dialogHeaderEl.onmousedown = (e) => {
+        // 鼠标按下,计算当前元素距离可视区的距离
+        const disX = e.clientX - dialogHeaderEl.offsetLeft
+        const disY = e.clientY - dialogHeaderEl.offsetTop
+
+        // 获取到的值带px 正则匹配替换
+        let styL, styT
+
+        // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
+        if (sty.left.includes('%')) {
+          styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100)
+          styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100)
+        } else {
+          styL = +sty.left.replace(/\px/g, '')
+          styT = +sty.top.replace(/\px/g, '')
+        }
+
+        document.onmousemove = function(e) {
+          // 通过事件委托,计算移动的距离
+          const l = e.clientX - disX
+          const t = e.clientY - disY
+
+          // 移动当前元素
+
+          if ((t + styT) >= 0){
+            dragDom.style.top = `${t + styT}px`
+          }
+          dragDom.style.left = `${l + styL}px`
+          // 将此时的位置传出去
+          // binding.value({x:e.pageX,y:e.pageY})
+        }
+
+        document.onmouseup = function(e) {
+          document.onmousemove = null
+          document.onmouseup = null
+        }
+      }
+    }
+  })
+
+  export default {
+    name: "yard",
+    components: {
+    },
+    data() {
+      return {
+        //默认显示第一行
+        queryParamsHidden:false,
+        //查看置灰
+        doNot:true,
+        //模糊查询港口名称
+        portNameOptions:[],
+        //港口类型字典表
+        fTypesOptions:[],
+        //模糊查询堆场名称
+        yardOptions:[],
+
+        //全屏放大
+        dialogFull:false,
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 客户详情表格数据
+        corpsList: [],
+        // 弹出层标题
+        title: "",
+        // 状态数据字典
+        statusOptions: [],
+        // 是否显示弹出层
+        open: false,
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+          portName:null,
+          fName:null,
+          fStatus:null,
+          createBy:null,
+          fBsdate:null,
+          remark:null,
+        },
+        // 表单参数
+        form: {
+          fNo:null,
+          fName:null,
+          fEname:null,
+          fStatus:'T',
+          fTypes:'3',
+          remark:null,
+        },
+        // 表单校验
+        rules: {
+           fTypeid: [
+            { required: true, message: "客户类别不能为空", trigger: "blur" }
+          ],
+          fNo: [
+            { required: true, message: "编号不能为空", trigger: "blur" }
+          ],
+          fName: [
+            { required: true, message: "名称不能为空", trigger: "blur" }
+          ],
+          fEname: [
+            {
+              validator: function(rule, value, callback) {
+                //  校验英文的正则
+                if (/[a-zA-z]$/.test(value) == false) {
+                  callback(new Error("请输入英文字母"));
+                } else {
+                  //校验通过
+                  callback();
+                }
+              },
+              trigger: "blur"
+            }
+          ],
+          fCname:[
+            { required: true, message: "简称不能为空", trigger: "blur" }
+          ],
+          fStatus: [
+            { required: true, message: "状态默认 T ,正常T 停用F 下拉选择不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    created() {
+      this.getList();
+      this.getDicts("f_types").then(response => {
+        this.fTypesOptions = response.data;
+      });
+      this.portRemoteMethod()
+      this.yardRemoteMethod()
+    },
+    methods: {
+      //模糊查询航线名称
+      yardRemoteMethod(){
+        let queryParams = { pageNum: 1,};
+        getyard(queryParams).then((response) => {
+          this.yardOptions = response.rows;
+        });
+      },
+      //模糊查询港口名称
+      portRemoteMethod(){
+        let queryParams = { pageNum: 1,};
+        getportinformation(queryParams).then(response =>{
+          this.portNameOptions = response.rows
+        })
+      },
+      full(){
+        this.dialogFull = !this.dialogFull
+      },
+      /** 查询客户详情列表 */
+      getList() {
+        this.loading = true;
+        listCorps(this.queryParams).then(response => {
+          this.corpsList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          fNo:null,
+          fName:null,
+          fEname:null,
+          fStatus:'T',
+          remark:null,
+          fTypes:'3'
+        };
+        this.resetForm("form");
+      },
+      // 状态修改
+      handleStatusChange(row) {
+        let text = row.fStatus === "0" ? "启用" : "停用";
+        this.$confirm('确认要"' + text + '""' + row.fName + '"吗?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return changeCorpsStatus(row.fId, row.fStatus);
+        }).then(() => {
+          this.msgSuccess(text + "成功");
+        }).catch(function() {
+          row.fStatus = row.fStatus === "0" ? "1" : "0";
+        });
+      },
+      /** 搜索按钮操作 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 重置按钮操作 */
+      resetQuery() {
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 多选框选中数据
+      handleSelectionChange(selection) {
+        this.ids = selection.map(item => item.fId)
+        this.single = selection.length!==1
+        this.multiple = !selection.length
+      },
+      /** 新增按钮操作 */
+      handleAdd() {
+        this.doNot = false
+        this.reset();
+        this.open = true;
+        this.title = "添加客户详情";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.doNot = true
+        this.reset();
+        const fId = row.fId || this.ids
+        getCorps(fId).then(response => {
+          this.form = response.data;
+          this.open = true;
+          this.title = "修改客户详情";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+              addyard(this.form).then(response => {
+                this.msgSuccess("操作成功");
+                this.open = false;
+                this.getList();
+              })
+            }
+          })
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const fIds = row.fId || this.ids;
+        this.$confirm('是否确认删除客户详情编号为"' + fIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delCorps(fIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有客户详情数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCorps(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      }
+    }
+  };
+</script>
+<style lang="scss" scoped>
+.avue-crud__dialog__header {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
+  -webkit-box-pack: justify;
+  -ms-flex-pack: justify;
+  justify-content: space-between;
+}
+.el-dialog__title {
+  color: rgba(0,0,0,.85);
+  font-weight: 500;
+  word-wrap: break-word;
+}
+.avue-crud__dialog__menu {
+  padding-right: 20px;
+  float: left;
+}
+.avue-crud__dialog__menu i {
+  color: #909399;
+  font-size: 15px;
+}
+.el-icon-full-screen{
+  cursor: pointer;
+}
+.el-icon-full-screen:before {
+  content: "\e719";
+}
+</style>

+ 623 - 0
src/views/kaihe/shipDynamics/vesselList/index.vue

@@ -0,0 +1,623 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-row>
+          <el-form-item label="编号" prop="fNo">
+            <el-input
+              v-model="queryParams.fNo"
+              style="width:200px"
+              placeholder="请输入编号"
+              clearable
+              size="small"
+            />
+          </el-form-item>
+        <el-form-item label="名称" prop="fName">
+          <el-input
+            v-model="queryParams.fName"
+            style="width:200px"
+            placeholder="请输入编号"
+            clearable
+            size="small"
+          />
+        </el-form-item>
+          <el-form-item label="状态" prop="fStatus">
+            <el-select
+              v-model="queryParams.fStatus"
+              style="width: 200px"
+              placeholder="请选择状态"
+              clearable
+              size="small"
+              @keyup.enter.native="handleQuery"
+            >
+              <el-option label="正常" value="T"/>
+              <el-option label="停用" value="F"/>
+            </el-select>
+          </el-form-item>
+
+        <el-form-item label="录入区间" prop="cLoadDate">
+          <el-date-picker
+            v-model="queryParams.cLoadDate"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            style="width: 250px"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-row>
+      <div v-show="queryParamsHidden">
+        <el-row>
+            <el-form-item label="录入人" prop="createBy">
+              <el-input
+                v-model="queryParams.createBy"
+                style="width: 200px"
+                placeholder="请输入录入人"
+                clearable
+                size="small"
+                @keyup.enter.native="handleQuery"
+              />
+            </el-form-item>
+
+          <el-form-item label="备注">
+            <el-input
+              v-model="queryParams.remark"
+              type="textarea"
+              style="width: 200px"
+              clearable
+              size="small"
+            />
+          </el-form-item>
+
+        </el-row>
+      </div>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['shipping:address:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['shipping:address:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['shipping:address:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['basicdata:yard:import']"
+        >导入</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['shipping:address:export']"
+        >导出</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['basicdata:yard:list']"
+        >取消</el-button>
+      </el-col>
+      <el-col  style="position: absolute;left:75%" :span="5" >
+        <el-button  size="small" @click="queryParamsHidden ? (queryParamsHidden = false) : (queryParamsHidden = true)">{{ queryParamsHidden ? '隐藏' : '更多' }}</el-button>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="corpsList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column type="index" width="55" label="行号" align="center" />
+      <el-table-column label="编号" align="center" prop="fNo" width="100px"/>
+      <el-table-column :show-overflow-tooltip="true" label="名称" align="center" prop="fName" width="100px"
+      />
+      <el-table-column :show-overflow-tooltip="true" label="英文全称" align="center" width="100px" prop="fEname" />
+      <el-table-column :show-overflow-tooltip="true" label="国家代码" align="center" prop="fNationality" />
+      <el-table-column :show-overflow-tooltip="true" label="船舶呼号" align="center" prop="fImo" />
+      <el-table-column :show-overflow-tooltip="true" label="状态" align="center" prop="fStatus" />
+      <el-table-column :show-overflow-tooltip="true" label="备注" align="center" prop="remark" />
+
+      <el-table-column label="录入人" align="center" prop="createBy" />
+      <el-table-column label="录入时间" align="center" prop="createTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="最新修改人" align="center" prop="updateBy" width="100px"/>
+      <el-table-column label="最新修改时间" align="center" prop="updateTime" width="100px">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" width="120px">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >查看</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >移除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改客户详情对话框 -->
+    <el-dialog
+      v-dialogDrag
+      :fullscreen="dialogFull"
+      :title="title"
+      :visible.sync="open"
+      close-on-click-modal="false"
+      width="60%"
+      :close-on-click-modal="false"
+      append-to-body>
+      <template slot="title">
+        <div class="avue-crud__dialog__header">
+            <span class="el-dialog__title">
+            <span style="display:inline-block;width:3px;height:20px;margin-right:5px; float: left;margin-top:2px"></span>
+            </span>
+          <div class="avue-crud__dialog__menu enlarge" @click="full">
+            <i  style="cursor: pointer;display: block;width:12px;height:12px;border:1px solid #909399;border-top:3px solid #909399;margin-top: -3px;"></i>
+          </div>
+        </div>
+      </template>
+
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="编号" prop="fNo">
+              <el-input
+                v-model="form.fNo"
+                style="width: 80%"
+                placeholder="请输入编号"
+                :disabled="doNot"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="全称" prop="fName">
+              <el-input
+                v-model="form.fName"
+                style="width: 80%"
+                placeholder="请输入全称"
+                :disabled="doNot"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="英文名" prop="fEname">
+              <el-input v-model="form.fEname" style="width: 80%" placeholder="请输入英文名" :disabled="doNot"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row>
+
+          <el-col :span="12">
+            <el-form-item label="状态" prop="fStatus">
+              <el-select v-model="form.fStatus" style="width: 80%" placeholder="请输入英文名称" :disabled="doNot">
+                <el-option label="正常" value="T"/>
+                <el-option label="停用" value="F"/>
+              </el-select>
+            </el-form-item>
+          </el-col>
+<!--          <el-col :span="12">-->
+<!--            <el-form-item label="类型" prop="fTypes">-->
+<!--              <el-select-->
+<!--                style="width: 80%"-->
+<!--                v-model="form.fTypes"-->
+<!--                disabled-->
+<!--              >-->
+<!--                <el-option-->
+<!--                  v-for="(dict, index) in fTypesOptions"-->
+<!--                  :key="index.dictValue"-->
+<!--                  :label="dict.dictLabel"-->
+<!--                  :value="dict.dictValue"/>-->
+<!--              </el-select>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="备注" prop="remark">
+              <el-input
+                v-model="form.remark"
+                style="width: 100%" placeholder=""
+                :disabled="doNot"
+                type="textarea"
+                :autosize="{ minRows: 2}"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="info" round @click="doNot = false">修 改</el-button>
+        <el-button type="success" round @click="submitForm" :disabled="doNot">保 存</el-button>
+        <el-button @click="cancel" round>关 闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import { getyard,listCorps, getCorps, delCorps, addyard,getyardNo, getyardName, changeCorpsStatus,exportCorps } from "@/api/kaihe/shipDynamics/vessel";
+  import {queryUserVal} from "@/api/system/user";
+  import { isArray } from '@/utils/validate'
+  import Vue from 'vue'
+  import { getportinformation } from '@/api/kaihe/basicdata/portinformation'
+  import { getroute } from '@/api/kaihe/basicdata/route'
+  Vue.directive('dialogDrag', {
+    bind(el, binding, vnode, oldVnode) {
+      const dialogHeaderEl = el.querySelector('.el-dialog__header')
+      const dragDom = el.querySelector('.el-dialog')
+      const enlarge = el.querySelector('.enlarge')
+      dialogHeaderEl.style.cursor = 'move'
+
+      // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
+      const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null)
+      if(enlarge){
+        enlarge.onclick = (e) => {
+          dragDom.style.top = '0px'
+          dragDom.style.left = '0px'
+        }
+      }
+      dialogHeaderEl.onmousedown = (e) => {
+        // 鼠标按下,计算当前元素距离可视区的距离
+        const disX = e.clientX - dialogHeaderEl.offsetLeft
+        const disY = e.clientY - dialogHeaderEl.offsetTop
+
+        // 获取到的值带px 正则匹配替换
+        let styL, styT
+
+        // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
+        if (sty.left.includes('%')) {
+          styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100)
+          styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100)
+        } else {
+          styL = +sty.left.replace(/\px/g, '')
+          styT = +sty.top.replace(/\px/g, '')
+        }
+
+        document.onmousemove = function(e) {
+          // 通过事件委托,计算移动的距离
+          const l = e.clientX - disX
+          const t = e.clientY - disY
+
+          // 移动当前元素
+
+          if ((t + styT) >= 0){
+            dragDom.style.top = `${t + styT}px`
+          }
+          dragDom.style.left = `${l + styL}px`
+          // 将此时的位置传出去
+          // binding.value({x:e.pageX,y:e.pageY})
+        }
+
+        document.onmouseup = function(e) {
+          document.onmousemove = null
+          document.onmouseup = null
+        }
+      }
+    }
+  })
+
+  export default {
+    name: "yard",
+    components: {
+    },
+    data() {
+      return {
+        //默认显示第一行
+        queryParamsHidden:false,
+        //查看置灰
+        doNot:true,
+        //模糊查询港口名称
+        portNameOptions:[],
+        //港口类型字典表
+        fTypesOptions:[],
+        //模糊查询堆场名称
+        yardOptions:[],
+
+        //全屏放大
+        dialogFull:false,
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 客户详情表格数据
+        corpsList: [],
+        // 弹出层标题
+        title: "",
+        // 状态数据字典
+        statusOptions: [],
+        // 是否显示弹出层
+        open: false,
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+          portName:null,
+          fName:null,
+          fStatus:null,
+          createBy:null,
+          fBsdate:null,
+          remark:null,
+        },
+        // 表单参数
+        form: {
+          fNo:null,
+          fName:null,
+          fEname:null,
+          fStatus:'T',
+          fTypes:'3',
+          remark:null,
+        },
+        // 表单校验
+        rules: {
+           fTypeid: [
+            { required: true, message: "客户类别不能为空", trigger: "blur" }
+          ],
+          fNo: [
+            { required: true, message: "编号不能为空", trigger: "blur" }
+          ],
+          fName: [
+            { required: true, message: "名称不能为空", trigger: "blur" }
+          ],
+          fEname: [
+            {
+              validator: function(rule, value, callback) {
+                //  校验英文的正则
+                if (/[a-zA-z]$/.test(value) == false) {
+                  callback(new Error("请输入英文字母"));
+                } else {
+                  //校验通过
+                  callback();
+                }
+              },
+              trigger: "blur"
+            }
+          ],
+          fCname:[
+            { required: true, message: "简称不能为空", trigger: "blur" }
+          ],
+          fStatus: [
+            { required: true, message: "状态默认 T ,正常T 停用F 下拉选择不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    created() {
+      this.getList();
+      this.getDicts("f_types").then(response => {
+        this.fTypesOptions = response.data;
+      });
+      this.portRemoteMethod()
+      this.yardRemoteMethod()
+    },
+    methods: {
+      //模糊查询航线名称
+      yardRemoteMethod(){
+        let queryParams = { pageNum: 1,};
+        getyard(queryParams).then((response) => {
+          this.yardOptions = response.rows;
+        });
+      },
+      //模糊查询港口名称
+      portRemoteMethod(){
+        let queryParams = { pageNum: 1,};
+        getportinformation(queryParams).then(response =>{
+          this.portNameOptions = response.rows
+        })
+      },
+      full(){
+        this.dialogFull = !this.dialogFull
+      },
+      /** 查询客户详情列表 */
+      getList() {
+        this.loading = true;
+        listCorps(this.queryParams).then(response => {
+          this.corpsList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          fNo:null,
+          fName:null,
+          fEname:null,
+          fStatus:'T',
+          remark:null,
+          fTypes:'3'
+        };
+        this.resetForm("form");
+      },
+      // 状态修改
+      handleStatusChange(row) {
+        let text = row.fStatus === "0" ? "启用" : "停用";
+        this.$confirm('确认要"' + text + '""' + row.fName + '"吗?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return changeCorpsStatus(row.fId, row.fStatus);
+        }).then(() => {
+          this.msgSuccess(text + "成功");
+        }).catch(function() {
+          row.fStatus = row.fStatus === "0" ? "1" : "0";
+        });
+      },
+      /** 搜索按钮操作 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 重置按钮操作 */
+      resetQuery() {
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 多选框选中数据
+      handleSelectionChange(selection) {
+        this.ids = selection.map(item => item.fId)
+        this.single = selection.length!==1
+        this.multiple = !selection.length
+      },
+      /** 新增按钮操作 */
+      handleAdd() {
+        this.doNot = false
+        this.reset();
+        this.open = true;
+        this.title = "添加客户详情";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.doNot = true
+        this.reset();
+        const fId = row.fId || this.ids
+        getCorps(fId).then(response => {
+          this.form = response.data;
+          this.open = true;
+          this.title = "修改客户详情";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+              addyard(this.form).then(response => {
+                this.msgSuccess("操作成功");
+                this.open = false;
+                this.getList();
+              })
+            }
+          })
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const fIds = row.fId || this.ids;
+        this.$confirm('是否确认删除客户详情编号为"' + fIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delCorps(fIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有客户详情数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCorps(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      }
+    }
+  };
+</script>
+<style lang="scss" scoped>
+.avue-crud__dialog__header {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
+  -webkit-box-pack: justify;
+  -ms-flex-pack: justify;
+  justify-content: space-between;
+}
+.el-dialog__title {
+  color: rgba(0,0,0,.85);
+  font-weight: 500;
+  word-wrap: break-word;
+}
+.avue-crud__dialog__menu {
+  padding-right: 20px;
+  float: left;
+}
+.avue-crud__dialog__menu i {
+  color: #909399;
+  font-size: 15px;
+}
+.el-icon-full-screen{
+  cursor: pointer;
+}
+.el-icon-full-screen:before {
+  content: "\e719";
+}
+</style>

+ 2 - 1
src/views/warehouseBusiness/cargoClearance/index.vue

@@ -5976,7 +5976,8 @@ export default {
   },
 };
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
+@import 'src/assets/styles/element-variables.scss';
 .juzhong > th {
   text-align: center;
 }

+ 2 - 1
src/views/warehouseBusiness/goodsTransfer/index.vue

@@ -3859,7 +3859,8 @@
     }
   }
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
+@import 'src/assets/styles/element-variables.scss';
   .juzhong > th {
     text-align: center;
   }

+ 48 - 24
src/views/warehouseBusiness/inStock/index.vue

@@ -4589,28 +4589,41 @@ export default {
       if (this.form.fDriverIdCar) {
         fDriverIdCar = this.form.fDriverIdCar
       }
-      this.dataList.push({
-        fBsdate: this.form.fBsdate,
-        fGoodsid: this.form.fGoodsid,
-        fCntrtype: null,
-        fCntqty: 1,
-        fNetweight: this.planningList.fPlannetweight,
-        fPlanvolumn: 0,
-        fGrossweight: this.planningList.fPlangrossweight,
-        fQty: this.planningList.fPlanqty,
-        fPackagespecs: null,
-        fWarehouselocid: null,
-        fBoxno: null,
-        fMarks: null,
-        fGoodsval: null,
-        fTruckno: fTruckno,
-        fDriverTel: fDriverTel,
-        fDriverName: fDriverName,
-        fDriverIdCar: fDriverIdCar,
-        remark: null,
-        fBillstatus: 10,
-        fMblno:this.form.fMblno
-      });
+        for (let item in this.goodsOptions){
+          if (this.form.fGoodsid == this.goodsOptions[item].fId){
+            this.dataList.push({
+              fBsdate: this.form.fBsdate,
+              fGoodsid: this.form.fGoodsid,
+              fGoodsids:this.goodsOptions[item].fName,
+              fCntrtype: null,
+              fCntqty: 1,
+              fNetweight: this.planningList.fPlannetweight,
+              fPlanvolumn: 0,
+              fGrossweight: this.planningList.fPlangrossweight,
+              fQty: this.planningList.fPlanqty,
+              fPackagespecs: null,
+              fWarehouselocid: null,
+              fBoxno: null,
+              fMarks: null,
+              fGoodsval: null,
+              fTruckno: fTruckno,
+              fDriverTel: fDriverTel,
+              fDriverName: fDriverName,
+              fDriverIdCar: fDriverIdCar,
+              remark: null,
+              fBillstatus: 10,
+              fMblno:this.form.fMblno
+            });
+          }
+      }
+      if(this.dataList[0].fGoodsid){
+        for(let item in this.goodsOptions){
+          if(this.goodsOptions[item].fId == this.dataList[0].fGoodsid){
+            console.log("111")
+            this.form.fProductName = this.goodsOptions[item].fName
+          }
+        }
+      }
       this.weightList = false;
       // this.contrOl = true
       // 查询库区下 所有库位
@@ -5746,7 +5759,9 @@ export default {
         if (this.dataList[li].fMarks) {
           fMarks.push(this.dataList[li].fMarks)
         }
-        fGoodsid.push(this.dataList[li].fGoodsids)
+        if (this.dataList[li].fGoodsids){
+          fGoodsid.push(this.dataList[li].fGoodsids)
+        }
       }
       this.$set(this.form, 'fMarks', Array.from(new Set(fMarks)).join(","))
       this.$set(this.form, 'fProductName', Array.from(new Set(fGoodsid)).join(","))
@@ -6204,7 +6219,8 @@ export default {
   },
 };
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
+@import 'src/assets/styles/element-variables.scss';
 .tabSetting {
   display: flex;
   justify-content: flex-end;
@@ -6294,4 +6310,12 @@ export default {
 .el-icon-full-screen:before {
   content: "\e719";
 }
+
+.el-table__fixed {
+  height: auto !important; // 让固定列的高自适应,且设置!important覆盖ele-ui的默认样式
+  bottom: 17px; // 固定列默认设置了定位,    position: absolute;top: 0;left: 0;只需要再设置一下bottom的值,让固定列和父元素的底部出现距离即可
+  position: absolute;
+  top: 0;
+  left: 0;
+}
 </style>

+ 2 - 1
src/views/warehouseBusiness/outStock/index.vue

@@ -5950,7 +5950,8 @@ export default {
   },
 };
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
+@import 'src/assets/styles/element-variables.scss';
 .juzhong > th {
   text-align: center;
 }

+ 2 - 1
src/views/warehouseBusiness/stockTransfer/index.vue

@@ -5942,7 +5942,8 @@ export default {
   },
 };
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
+@import 'src/assets/styles/element-variables.scss';
 .juzhong > th {
   text-align: center;
 }

+ 22 - 1
src/views/warehouseBusiness/storageFeeCalculation/index.vue

@@ -2085,7 +2085,28 @@
     }
   };
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
+@import 'src/assets/styles/element-variables.scss';
+.tabSetting {
+  display: flex;
+  justify-content: flex-end;
+}
+.listStyle {
+  display: flex;
+  border-top: 1px solid #dcdfe6;
+  border-left: 1px solid #dcdfe6;
+  border-right: 1px solid #dcdfe6;
+}
+.listStyle:last-child {
+  border-bottom: 1px solid #dcdfe6;
+}
+.progress {
+  display: flex;
+  align-items: center;
+  padding: 2px;
+  background-color: rgba(0, 0, 0, 0.05);
+  height: 100%;
+}
   .juzhong > th {
     text-align: center;
   }