浏览代码

货代10.9

caojunjie 1 年之前
父节点
当前提交
f3a6710ede

+ 5 - 0
src/views/iosBasicData/bcntrtypes/index.vue

@@ -152,6 +152,7 @@
             {
               label: "箱型 ISO 代码",
               prop: "code",
+                search: true,
                 width: 100,
               rules: [{
                 required: true,
@@ -162,6 +163,7 @@
             {
               label: "箱型 95 码",
               prop: "code95",
+                search: true,
               rules: [{
                 required: true,
                 message: "请输入箱型 95 码,22G1, 45R1 etc.",
@@ -171,6 +173,7 @@
             {
               label: "海关代码",
               prop: "customsCode",
+                search: true,
               rules: [{
                 required: true,
                 message: "请输入海关代码",
@@ -198,6 +201,7 @@
             {
               label: "中文名称",
               prop: "cnName",
+                search: true,
               rules: [{
                 required: true,
                 message: "请输入中文名称",
@@ -207,6 +211,7 @@
             {
               label: "英文名称",
               prop: "enName",
+                search: true,
               rules: [{
                 required: true,
                 message: "请输入英文名称",

+ 8 - 2
src/views/iosBasicData/blines/index.vue

@@ -76,7 +76,10 @@
                          @click="extendedDataAdd">新增
               </el-button>
               <el-table
+                  stripe
                   :data="form.extendedDataArr"
+                  id="out-table"
+                  :header-cell-class-name="headerClassName"
                   style="width: 100%">
                   <el-table-column
                       prop="name"
@@ -151,7 +154,7 @@
           calcHeight: 30,
           tip: false,
           searchShow: true,
-          searchMenuSpan: 6,
+          searchMenuSpan: 24,
           border: true,
           index: true,
           viewBtn: true,
@@ -161,6 +164,7 @@
             {
               label: "航线编码",
               prop: "code",
+                search: true,
               rules: [{
                 required: true,
                 message: "请输入航线编码",
@@ -170,6 +174,7 @@
             {
               label: "中文名称",
               prop: "cnName",
+                search: true,
               rules: [{
                 required: true,
                 message: "请输入中文名称",
@@ -179,6 +184,7 @@
             {
               label: "英文名称",
               prop: "enName",
+                search: true,
               rules: [{
                 required: true,
                 message: "请输入英文名称",
@@ -300,7 +306,7 @@
                 type: 'textarea',
                 width: "180",
                 slot: true,
-
+                minRows: 3,
             },
           ]
         },

+ 125 - 101
src/views/iosBasicData/bports/index.vue

@@ -1,121 +1,131 @@
 <!--港口-->
 <template>
-  <basic-container>
-    <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               :page.sync="page"
-               :permission="permissionList"
-               id="out-table"
-               :header-cell-class-name="headerClassName"
-               :before-open="beforeOpen"
-               v-model="form"
-               ref="crud"
-               @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"
-               @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 298)"
-               @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 298)"
-               @on-load="onLoad">
-      <template slot="menuLeft">
-        <el-button type="danger"
-                   size="small"
-                   icon="el-icon-delete"
-                   plain
-                   @click="handleDelete">删 除
-        </el-button>
-      </template>
-        <template slot="remarks" slot-scope="scope">
-            <avue-text-ellipsis :text="scope.row.remarks" :height="30" use-tooltip placement="top">
-                <small slot="more">...</small>
-            </avue-text-ellipsis>
-        </template>
-        <template slot="extendedDataArr" slot-scope="scope">
+  <div>
+      <basic-container v-if="isShow">
+          <avue-crud :option="option"
+                     :table-loading="loading"
+                     :data="data"
+                     :page.sync="page"
+                     :permission="permissionList"
+                     id="out-table"
+                     :header-cell-class-name="headerClassName"
+                     :before-open="beforeOpen"
+                     v-model="form"
+                     ref="crud"
+                     @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"
+                     @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 298)"
+                     @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 298)"
+                     @on-load="onLoad">
+              <template slot-scope="scope" slot="menuLeft">
+                  <el-button type="primary"
+                             size="small"
+                             icon="el-icon-plus"
+                             @click="addbtnfun()">新增
+                  </el-button>
+                  <el-button type="danger"
+                             size="small"
+                             icon="el-icon-delete"
+                             plain
+                             @click="handleDelete">删 除
+                  </el-button>
+              </template>
+              <template slot="remarks" slot-scope="scope">
+                  <avue-text-ellipsis :text="scope.row.remarks" :height="30" use-tooltip placement="top">
+                      <small slot="more">...</small>
+                  </avue-text-ellipsis>
+              </template>
+              <template slot="extendedDataArr" slot-scope="scope">
          <span style="color: #1e9fff" @click="extendedDataview(scope.row)">
                 {{scope.row.extendedDataArr.length}}
          </span>
-        </template>
-        <template slot-scope="{type,disabled,row}" slot="extendedDataArrForm">
-            <el-button type="primary"
-                       size="small"
-                       @click="dialogVisible = true">EDI CODE
-            </el-button>
-        </template>
+              </template>
+              <template slot-scope="{type,disabled,row}" slot="extendedDataArrForm">
+                  <el-button type="primary"
+                             size="small"
+                             @click="dialogVisible = true">EDI CODE
+                  </el-button>
+              </template>
 
-    </avue-crud>
+          </avue-crud>
 
-      <el-dialog
-          title="EDI CODE"
-          :visible.sync="dialogVisible"
-          width="50%"
-          append-to-body
-          :destroy-on-close="true"
-          :modal-append-to-body="false"
-          :before-close="handleClose">
-          <div>
-              <el-button type="primary"
-                         size="small"
-                         :disabled="extendedDisabled"
-                         @click="extendedDataAdd">新增
-              </el-button>
-              <el-table
-                  stripe
-                  :data="form.extendedDataArr"
-                  id="out-table"
-                  :header-cell-class-name="headerClassName"
-                  style="width: 100%">
-                  <el-table-column
-                      prop="name"
-                      label="名称">
-                      <template slot-scope="{row}">
-                          <el-input v-if="row.edit" size="mini" v-model="row.name" placeholder="请输入名称"></el-input>
-                          <span v-else>{{row.name}}</span>
-                      </template>
-                  </el-table-column>
-                  <el-table-column
-                      prop="value"
-                      label="键值">
-                      <template slot-scope="{row}">
-                          <el-input v-if="row.edit" size="mini" v-model="row.value" placeholder="请输入键值"></el-input>
-                          <span v-else>{{row.value}}</span>
-                      </template>
-                  </el-table-column>
-                  <el-table-column label="操作">
-                      <template slot-scope="scope">
-                          <el-button
-                              type="text"
-                              size="mini"
-                              :disabled="extendedDisabled"
-                              @click="extendedDataEdit(scope.$index, scope.row)">{{scope.row.edit?'保存':'编辑'}}</el-button>
-                          <el-button
-                              size="mini"
-                              type="text"
-                              :disabled="extendedDisabled"
-                              @click="extendedDataDelete(scope.$index, scope.row)">删除</el-button>
-                      </template>
-                  </el-table-column>
-              </el-table>
-          </div>
-          <span slot="footer" class="dialog-footer">
+          <el-dialog
+              title="EDI CODE"
+              :visible.sync="dialogVisible"
+              width="50%"
+              append-to-body
+              :destroy-on-close="true"
+              :modal-append-to-body="false"
+              :before-close="handleClose">
+              <div>
+                  <el-button type="primary"
+                             size="small"
+                             :disabled="extendedDisabled"
+                             @click="extendedDataAdd">新增
+                  </el-button>
+                  <el-table
+                      stripe
+                      :data="form.extendedDataArr"
+                      id="out-table"
+                      :header-cell-class-name="headerClassName"
+                      style="width: 100%">
+                      <el-table-column
+                          prop="name"
+                          label="名称">
+                          <template slot-scope="{row}">
+                              <el-input v-if="row.edit" size="mini" v-model="row.name" placeholder="请输入名称"></el-input>
+                              <span v-else>{{row.name}}</span>
+                          </template>
+                      </el-table-column>
+                      <el-table-column
+                          prop="value"
+                          label="键值">
+                          <template slot-scope="{row}">
+                              <el-input v-if="row.edit" size="mini" v-model="row.value" placeholder="请输入键值"></el-input>
+                              <span v-else>{{row.value}}</span>
+                          </template>
+                      </el-table-column>
+                      <el-table-column label="操作">
+                          <template slot-scope="scope">
+                              <el-button
+                                  type="text"
+                                  size="mini"
+                                  :disabled="extendedDisabled"
+                                  @click="extendedDataEdit(scope.$index, scope.row)">{{scope.row.edit?'保存':'编辑'}}</el-button>
+                              <el-button
+                                  size="mini"
+                                  type="text"
+                                  :disabled="extendedDisabled"
+                                  @click="extendedDataDelete(scope.$index, scope.row)">删除</el-button>
+                          </template>
+                      </el-table-column>
+                  </el-table>
+              </div>
+              <span slot="footer" class="dialog-footer">
                 <el-button @click="dialogVisible = false;extendedDisabled = false">取 消</el-button>
                 <el-button type="primary" @click="dialogVisible = false;extendedDisabled = false">确 定</el-button>
           </span>
-      </el-dialog>
+          </el-dialog>
 
-  </basic-container>
+      </basic-container>
+      <ports-terms ref="portsterms" v-if="!isShow"></ports-terms>
+  </div>
 </template>
 
 <script>
   import {bportsList, bportsDetail, bportsSubmit, bportsRemove} from "@/api/iosBasicData/bports";
   import {mapGetters} from "vuex";
+  import portsTerms from "@/views/iosBasicData/bports/portsTerms.vue";
 
   export default {
+      components: {portsTerms},
     data() {
       return {
           // 扩展数据弹窗
@@ -124,6 +134,7 @@
         form: {
             extendedDataArr:[]
         },
+          isShow:true, // 详情和列表切换
         query: {},
         loading: true,
         page: {
@@ -360,7 +371,7 @@
       ...mapGetters(["permission"]),
       permissionList() {
         return {
-          // addBtn: this.vaildData(this.permission.bports_add, false),
+          addBtn: this.vaildData(this.permission.bports_add, false),
           // viewBtn: this.vaildData(this.permission.bports_view, false),
           // delBtn: this.vaildData(this.permission.bports_delete, false),
           // editBtn: this.vaildData(this.permission.bports_edit, false)
@@ -410,6 +421,17 @@
             this.form.extendedDataArr.splice(index,1)
         },
 
+        // 添加弹窗开启
+        addbtnfun(){
+            this.isShow = false
+            this.$nextTick(()=>{
+                // console.log(this.$refs.portsterms)
+                // console.log(this.$refs.portsterms.bportsDetailfun())
+            })
+
+            // rowAdd
+        },
+        // 添加确认
       rowSave(row, done, loading) {
           row.extendedDataArr.map(item=>{
               delete item.edit
@@ -428,6 +450,7 @@
           window.console.log(error);
         });
       },
+        // 编辑确认
       rowUpdate(row, index, done, loading) {
           row.extendedDataArr.map(item=>{
               delete item.edit
@@ -485,6 +508,7 @@
             this.$refs.crud.toggleSelection();
           });
       },
+        // 详情
       beforeOpen(done, type) {
         if (["edit", "view"].includes(type)) {
           bportsDetail(this.form.id).then(res => {

+ 311 - 0
src/views/iosBasicData/bports/portsTerms.vue

@@ -0,0 +1,311 @@
+<!--港口详情-->
+<template>
+    <div class="borderless" v-loading="pageLoading">
+        <div class="customer-head">
+            <div class="customer-back">
+                <!--        <i class="back-icon el-icon-arrow-left"></i><i style="font-style:normal">返回管理列表</i>-->
+                <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+                           @click="backToList">返回列表
+                </el-button>
+            </div>
+            <div class="add-customer-btn">
+                <el-button  size="small" type="primary" style="margin-right: 8px"
+                           :loading="saveLoading">编 辑
+                </el-button>
+            </div>
+            <div class="customer-main">
+                <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
+                    <containerTitle title="基础资料"></containerTitle>
+                    <basic-container :showBtn="true">
+                        <el-row>
+                            <el-col v-for="(item, index) in basicData.column" :key="index" :span="item.span ? item.span : 8"
+                                    :class="{ isShow: item.display }" >
+                                <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+                                    <el-select v-if="item.type == 'select'"  v-model="form[item.prop]" placeholder="请选择" clearable
+                                               filterable style="width: 100%" size="small"
+                                               :disabled="item.disabled">
+                                        <el-option v-for="(ite, inde) in item.dicData" :key="inde" :label="ite.label"
+                                                   :value="ite.value"></el-option>
+                                    </el-select>
+                                    <el-input type="textarea" v-else-if="item.type === 'textarea'" v-model.trim="form[item.prop]" size="small"
+                                              autocomplete="off" :disabled="item.disabled"></el-input>
+                                    <el-input v-else type="age" style="width: 100%;" v-model.trim="form[item.prop]" size="small" autocomplete="off"
+                                              :disabled="item.disabled" clearable></el-input>
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                    </basic-container>
+                </el-form>
+            </div>
+
+
+            <div class="customer-main">
+                <containerTitle title="扩展数据"></containerTitle>
+                <basic-container>
+                    <el-button type="primary"
+                               size="small"
+                               @click="extendedDataAdd">新增数据
+                    </el-button>
+                    <el-table
+                        stripe
+                        :data="form.extendedDataArr"
+                        id="out-table"
+                        :header-cell-class-name="headerClassName"
+                        style="width: 100%">
+                        <el-table-column
+                            prop="name"
+                            label="名称">
+                            <template slot-scope="{row}">
+                                <el-input v-if="row.edit" size="small" v-model="row.name" placeholder="请输入名称"></el-input>
+                                <span v-else>{{row.name}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column
+                            prop="value"
+                            label="键值">
+                            <template slot-scope="{row}">
+                                <el-input v-if="row.edit" size="small" v-model="row.value" placeholder="请输入键值"></el-input>
+                                <span v-else>{{row.value}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="操作">
+                            <template slot-scope="scope">
+                                <el-button
+                                    type="text"
+                                    size="small"
+                                    @click="extendedDataEdit(scope.$index, scope.row)">{{scope.row.edit?'保存':'编辑'}}</el-button>
+                                <el-button
+                                    size="small"
+                                    type="text"
+                                    @click="extendedDataDelete(scope.$index, scope.row)">删除</el-button>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                </basic-container>
+            </div>
+
+        </div>
+    </div>
+</template>
+
+<script>
+import {bportsDetail, bportsSubmit} from "@/api/iosBasicData/bports";
+
+    export default {
+        data(){
+            return {
+                pageLoading:false,
+                saveLoading:true,
+
+                // 获取到的数据
+                form:{
+                    extendedDataArr:[],
+                },
+                // 基础资料数据
+                basicData:{
+                    column:[
+                        {
+                            label: "港口编码",
+                            prop: "code",
+                            rules: [{
+                                required: true,
+                                message: "请输入港口编码",
+                                trigger: "blur"
+                            }]
+                        },
+                        {
+                            label: "国际编码",
+                            prop: "unCode",
+                            rules: [{
+                                required: true,
+                                message: "请输入国际编码",
+                                trigger: "blur"
+                            }]
+                        },
+                        {
+                            label: "中文名称",
+                            prop: "cnName",
+                            rules: [{
+                                required: true,
+                                message: "请输入中文名称",
+                                trigger: "blur"
+                            }]
+                        },
+                        {
+                            label: "英文名称",
+                            prop: "enName",
+                            rules: [{
+                                required: true,
+                                message: "请输入英文名称",
+                                trigger: "blur"
+                            }]
+                        },
+                        {
+                            label: "国家代码",
+                            prop: "cntyCode",
+                            rules: [{
+                                required: true,
+                                message: "请输入国家代码",
+                                trigger: "blur"
+                            }]
+                        },
+                        {
+                            label: "国家名称",
+                            prop: "cntyName",
+                            rules: [{
+                                required: true,
+                                message: "请输入国家名称",
+                                trigger: "blur"
+                            }]
+                        },
+                        {
+                            label: "是否海港",
+                            prop: "isSeaPort",
+                            type:'select',
+                            dicData:[{
+                                label:'否',
+                                value:0
+                            },{
+                                label:'是',
+                                value:1
+                            }],
+                            rules: [{
+                                required: true,
+                                message: "请输入是否海港",
+                                trigger: "blur"
+                            }]
+                        },
+                        {
+                            label: "是否空港",
+                            prop: "isAirPort",
+                            type:'select',
+                            dicData:[{
+                                label:'否',
+                                value:0
+                            },{
+                                label:'是',
+                                value:1
+                            }],
+                            rules: [{
+                                required: true,
+                                message: "请输入是否空港",
+                                trigger: "blur"
+                            }]
+                        },
+                        {
+                            label: "是否内陆港",
+                            prop: "isInlandPort",
+                            width:100,
+                            type:'select',
+                            dicData:[{
+                                label:'否',
+                                value:0
+                            },{
+                                label:'是',
+                                value:1
+                            }],
+                            rules: [{
+                                required: true,
+                                message: "请输入是否内陆港",
+                                trigger: "blur"
+                            }]
+                        },
+                        {
+                            label: "状态",
+                            prop: "status",
+                            type:'select',
+                            dicData:[{
+                                label:'启用',
+                                value:0
+                            },{
+                                label:'停用',
+                                value:1
+                            }],
+                        },
+                        {
+                            label: "备注",
+                            prop: "remarks",
+                            span:24,
+                            type: 'textarea',
+                            minRows: 3,
+                        },
+
+                    ]
+                }
+            }
+        },
+        methods:{
+            // 获取详情数据
+            bportsDetailfun(id){
+                bportsDetail(id).then(res => {
+                    this.form = res.data.data;
+                });
+            },
+            // 添加保存接口
+            bportsSubmitfun(){
+                bportsSubmit().then(()=>{
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                })
+            },
+            // 扩展数据添加
+            extendedDataAdd(){
+                this.form.extendedDataArr.map(item=>{
+                    item.edit = false
+                })
+                this.form.extendedDataArr.push({
+                    edit:true
+                })
+            },
+            // 扩展数据编辑
+            extendedDataEdit(index,row) {
+                row.edit = !row.edit
+            },
+            // 扩展数据删除
+            extendedDataDelete(index,row) {
+                this.form.extendedDataArr.splice(index,1)
+            },
+            //返回列表
+            backToList() {
+
+            },
+            // 更改表格颜色
+            headerClassName(tab){
+                //颜色间隔
+                let back = ""
+                if (tab.columnIndex >= 0 && tab.column.level === 1) {
+                    if (tab.columnIndex % 2 === 0) {
+                        back = "back-one"
+                    } else if (tab.columnIndex % 2 === 1) {
+                        back = "back-two"
+                    }
+                }
+                return back;
+            },
+        }
+    }
+</script>
+
+<style scoped>
+::v-deep#out-table .back-one {
+    background: #ecf5ff !important;
+}
+::v-deep#out-table .back-two {
+    background: #ecf5ff !important;
+}
+.borderless {
+
+}
+    .customer-main {
+        margin-top: 20px;
+        width: calc(100% - 140px);
+    }
+::v-deep.el-form-item {
+    margin-bottom: 0;
+}
+    .isShow {
+        display: none;
+    }
+</style>

+ 4 - 2
src/views/iosBasicData/bvessels/index.vue

@@ -431,8 +431,10 @@
               label: "备注",
               prop: "remarks",
               type: 'textarea',
-              width: "180",
-              slot: true
+              width: 180,
+              slot: true,
+                minRows: 3,
+                span:24,
             },
           ]
         },