Procházet zdrojové kódy

1.箱轨迹 新加检索条件 修改箱动态下拉
2.放箱号 新加列表页字段
3.退租 新加检索条件
4.海运进出口 配箱信息 调整样式
5.海运出口 费用模板 存为模板 重新画弹窗 加字段
6.OW 取消箱量 箱管备注标红显示
7.租箱条款第一条费率 不需要校验

qukaidi před 8 hodinami
rodič
revize
db03746ba7

+ 54 - 17
src/views/boxManagement/boxTrack/index.vue

@@ -34,7 +34,7 @@
 </template>
 
 <script>
-import { getList, remove, update, updateTrajectoryStatus,getRecordlist } from "@/api/boxManagement/boxTrack/index.js";
+import { getList, remove, update, updateTrajectoryStatus, getRecordlist } from "@/api/boxManagement/boxTrack/index.js";
 import detailsPage from "./detailsPage";
 
 export default {
@@ -54,7 +54,7 @@ export default {
         align: "center",
         menu: false,
         header: false,
-        border:true,
+        border: true,
         column: [
           {
             label: "操作类型",
@@ -146,13 +146,28 @@ export default {
             label: "箱动态",
             prop: "boxDynamics",
             width: 80,
-            search: true,
+            // search: true,
+            // type: "select",
+            // dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxDynamics",
+            // props: {
+            //   label: "dictValue",
+            //   value: "dictValue"
+            // },
             type: "select",
-            dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxDynamics",
-            props: {
-              label: "dictValue",
-              value: "dictValue"
-            },
+            dicData: [
+              {
+                label: "进场",
+                value: "进场"
+              },
+              {
+                label: "出场",
+                value: "出场"
+              },
+              {
+                label: "其他",
+                value: "其他"
+              }
+            ],
             overHidden: true
           },
           {
@@ -178,12 +193,34 @@ export default {
             label: "港口",
             prop: "portCname",
             width: 140,
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bports/list?status=0&size=5&current=1&cnName={{key}}",
+            props: {
+              label: "cnName",
+              value: "cnName",
+              desc: "code",
+              res: "data.records"
+            },
             overHidden: true
           },
           {
             label: "场站",
             prop: "stationCname",
             width: 80,
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bcorps/selectList?status=0&corpTypeName=场站&size=5&current=1&cnName={{key}}",
+            props: {
+              label: "cnName",
+              value: "cnName",
+              desc: "code",
+              res: "data.records"
+            },
             overHidden: true
           },
           {
@@ -203,7 +240,7 @@ export default {
           {
             label: "是否还箱",
             prop: "whetherStillBox",
-            hide:true,
+            hide: true,
             width: 80,
             search: true,
             type: "select",
@@ -259,11 +296,11 @@ export default {
             label: "POL提箱进场时间",
             prop: "polPreAppearanceDate",
             width: 140,
-            searchLabelWidth: 110,
-            search: true,
-            searchProp: "entryDateList",
+            // searchLabelWidth: 110,
+            // search: true,
+            // searchProp: "entryDateList",
             type: "date",
-            searchRange: true,
+            // searchRange: true,
             searchDefaultTime: ["00:00:00", "23:59:59"],
             format: "yyyy-MM-dd HH:mm:ss",
             valueFormat: "yyyy-MM-dd HH:mm:ss",
@@ -273,11 +310,11 @@ export default {
             label: "POL场站空箱出场日期",
             prop: "polStationEmptyContainerExitDate",
             width: 140,
-            searchLabelWidth: 140,
-            search: true,
-            searchProp: "appearDateList",
+            // searchLabelWidth: 140,
+            // search: true,
+            // searchProp: "appearDateList",
             type: "date",
-            searchRange: true,
+            // searchRange: true,
             searchDefaultTime: ["00:00:00", "23:59:59"],
             format: "yyyy-MM-dd HH:mm:ss",
             valueFormat: "yyyy-MM-dd HH:mm:ss",

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

@@ -955,7 +955,7 @@ export default {
             disabled: false
           },
           {
-            label: "箱管备注",
+            label: "OW备注",
             prop: "boxTubeRemarks",
             type: "textarea",
             minRows: 2,

+ 6 - 0
src/views/boxManagement/containerNumber/index.vue

@@ -189,6 +189,12 @@ export default {
             width: 80
           },
           {
+            label: "OW备注",
+            prop: "boxTubeRemarks",
+            overHidden: true,
+            width: 100
+          },
+          {
             label: "箱号",
             prop: "code",
             width: 100,

+ 8 - 1
src/views/boxManagement/moveOut/index.vue

@@ -77,7 +77,7 @@ export default {
         menuWidth: 140,
         tip: false,
         searchShow: true,
-        searchMenuSpan: 18,
+        searchMenuSpan: 6,
         border: true,
         index: true,
         addBtn: false,
@@ -177,6 +177,13 @@ export default {
             label: "出场类型",
             prop: "appearanceType",
             width: 80,
+            search: true,
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=appearanceType",
+            props: {
+              label: "dictValue",
+              value: "dictValue"
+            },
             overHidden: true
           },
           {

+ 7 - 1
src/views/iosBasicData/OceanFreightImport/bills/assembly/DistributionBox/containers.vue

@@ -928,7 +928,7 @@ export default {
 };
 </script>
 
-<style scoped>
+<style scoped lang="scss">
 ::v-deep#out-table .back-one {
   background: #ecf5ff !important;
   text-align: center;
@@ -940,4 +940,10 @@ export default {
   text-align: center;
   padding: 4px 0;
 }
+::v-deep .el-table .cell {
+  padding: 0 2px !important;
+}
+::v-deep .el-input__inner {
+  padding-left: 5px !important;
+}
 </style>

+ 41 - 0
src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue

@@ -2621,6 +2621,11 @@ export default {
           return;
         }
       }
+      for (let item of selection) {
+        if (item.automaticGenerated == 1) {
+          return this.$message.error("系统生成的数据不允许生成");
+        }
+      }
       let arr = selection.map(item => {
         let obj = {};
         if (dc == "C") {
@@ -3122,6 +3127,9 @@ export default {
     batchDelete(dc) {
       if (dc == "D") {
         for (let item of this.selectionDList) {
+          if (item.automaticGenerated == 1) {
+            return this.$message.error("系统生成的费用不允许删除");
+          }
           if (item.accStatus == 1 || item.auditStatus > 0) {
             this.$message.warning("请选择没有生成账单或提交审核的数据");
             return;
@@ -3129,6 +3137,9 @@ export default {
         }
       } else {
         for (let item of this.selectionCList) {
+          if (item.automaticGenerated == 1) {
+            return this.$message.error("系统生成的费用不允许删除");
+          }
           if (item.accStatus == 1 || item.auditStatus > 0) {
             this.$message.warning("请选择没有生成账单或提交审核的数据");
             return;
@@ -4003,6 +4014,9 @@ export default {
         if (this.selectionCList.length != this.selectionCList.filter(e => e.corpId == this.selectionCList[0].corpId).length) {
           return this.$message.error("请选择相同的结算单位");
         }
+        if (this.selectionCList.filter(item => item.automaticGenerated == 1 && item.feeCnName == "超期箱使费").length) {
+          return this.$message.error("系统生成的超期箱使费不允许申请");
+        }
         if (this.$store.getters.payAppStatus) {
           this.$alert("付费申请页面已存在,请关闭付费申请再进行操作", "温馨提示", {
             confirmButtonText: "确定",
@@ -4027,6 +4041,9 @@ export default {
           return this.$message.error("请选择相同的结算单位");
         }
         if (this.selectionDList.filter(e => e.auditStatus != 4).length) return this.$message.error("请选择审核通过的费用");
+        if (this.selectionDList.filter(item => item.automaticGenerated == 1 && item.feeCnName == "超期箱使费").length) {
+          return this.$message.error("系统生成的超期箱使费不允许申请");
+        }
         if (this.$store.getters.finappStatus) {
           this.$alert("发票申请页面已存在,请关闭发票申请再进行操作", "温馨提示", {
             confirmButtonText: "确定",
@@ -4058,6 +4075,12 @@ export default {
           if (row.stlPid && row.auditStatus != 0) {
             return this.$message.error("已申请费用,不允许重复申请");
           }
+          if (row.automaticGenerated == 1 && row.feeCnName == "改单费") {
+            return this.$message.error("系统生成的费用不允许申请");
+          }
+          if (row.automaticGenerated == 1 && row.feeCnName == "超期箱使费") {
+            return this.$message.error("系统生成的超期箱使费不允许申请");
+          }
           if ((row.curCode == this.getLocalCurrency() && row.rmbAmount == 0) || (row.curCode != this.getLocalCurrency() && row.usdAmount == 0)) {
             textZore.push(row.feeCnName);
           }
@@ -4164,6 +4187,12 @@ export default {
           if (row.auditStatus > 2 && this.expenseApplication == 1) {
             return this.$message.error("费用已经审核通过,请使用申请修改和删除功能!");
           }
+          if (row.automaticGenerated == 1 && row.feeCnName == "改单费") {
+            return this.$message.error("系统生成的费用不允许撤销");
+          }
+          if (row.automaticGenerated == 1 && row.feeCnName == "超期箱使费") {
+            return this.$message.error("系统生成的超期箱使费不允许撤销");
+          }
         }
         this.$confirm("确定撤销请核?", {
           confirmButtonText: "确定",
@@ -4208,6 +4237,12 @@ export default {
           if (row.stlPid && row.auditStatus != 0) {
             return this.$message.error("已申请费用,不允许重复申请");
           }
+          if (row.automaticGenerated == 1 && row.feeCnName == "改单费") {
+            return this.$message.error("系统生成的费用不允许申请");
+          }
+          if (row.automaticGenerated == 1 && row.feeCnName == "超期箱使费") {
+            return this.$message.error("系统生成的超期箱使费不允许申请");
+          }
           if ((row.curCode == this.getLocalCurrency() && row.rmbAmount == 0) || (row.curCode != this.getLocalCurrency() && row.usdAmount == 0)) {
             textZore.push(row.feeCnName);
           }
@@ -4318,6 +4353,12 @@ export default {
           if (row.auditStatus > 2 && this.expenseApplication == 1) {
             return this.$message.error("费用已经审核通过,请使用申请修改和删除功能!");
           }
+          if (row.automaticGenerated == 1 && row.feeCnName == "改单费") {
+            return this.$message.error("系统生成的费用不允许撤销");
+          }
+          if (row.automaticGenerated == 1 && row.feeCnName == "超期箱使费") {
+            return this.$message.error("系统生成的超期箱使费不允许撤销");
+          }
         }
         this.$confirm("确定撤销请核?", {
           confirmButtonText: "确定",

+ 8 - 1
src/views/iosBasicData/SeafreightExportF/bills/assembly/DistributionBox/containers.vue

@@ -1539,7 +1539,7 @@ export default {
 };
 </script>
 
-<style scoped>
+<style scoped lang="scss">
 ::v-deep#out-table .back-one {
   background: #ecf5ff !important;
   text-align: center;
@@ -1551,4 +1551,11 @@ export default {
   text-align: center;
   padding: 4px 0;
 }
+
+::v-deep .el-table .cell {
+  padding: 0 2px !important;
+}
+::v-deep .el-input__inner {
+  padding-left: 5px !important;
+}
 </style>

+ 188 - 0
src/views/iosBasicData/SeafreightExportF/bills/assembly/components/costTemplate.vue

@@ -0,0 +1,188 @@
+<template>
+  <div>
+    <el-dialog title="费用模板" :visible.sync="dialogVisible" append-to-body width="30%" :before-close="handleClose">
+      <avue-form v-if="dialogVisible" :option="optionForm" v-model="form" ref="form">
+        <tempalte slot="shippingCompanyCname">
+          <dic-select
+            v-model="form.shippingCompanyCname"
+            placeholder="港口"
+            key="id"
+            label="cnName"
+            url="/blade-los/bcorps/listAll?status=0&corpTypeName=船公司"
+            :filterable="true"
+            dataName="cnName"
+            :multiple="true"
+            :collapseTags="true"
+            dataType="string"
+            @selectChange="dicChange('shippingCompanyCname', $event)"
+            :multipleStrings="true"
+          ></dic-select>
+        </tempalte>
+        <tempalte slot="branchName">
+          <dic-select
+            v-model="form.branchName"
+            placeholder="所属公司"
+            key="id"
+            label="deptName"
+            url="/blade-system/dept/top-list"
+            :filterable="true"
+            :multiple="true"
+            :collapseTags="true"
+            dataType="string"
+            @selectChange="dicChange('branchName', $event)"
+            :multipleStrings="true"
+          ></dic-select>
+        </tempalte>
+      </avue-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="mini">取 消</el-button>
+        <el-button type="primary" @click="submit" size="mini">保 存</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import dicSelect from "@/components/dicSelect/main";
+export default {
+   components: { dicSelect},
+  props: {},
+  data() {
+    return {
+      data: [],
+      form: {},
+      dialogVisible: false,
+      loading: false,
+      optionForm: {
+        menuBtn: false,
+        span: 8,
+        disabled: false,
+        labelWidth: 100,
+        column: [
+          {
+            label: "模版编号",
+            span: 24,
+            prop: "code",
+            rules: [
+              {
+                required: true,
+                message: "请输入模版编号",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "模版中文名称",
+            span: 24,
+            prop: "cnName",
+            rules: [
+              {
+                required: true,
+                message: "请输入模版中文名称",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "模版英文名称",
+            span: 24,
+            prop: "enName",
+            rules: [
+              {
+                required: true,
+                message: "请输入模版英文名称",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "船公司",
+            prop: "shippingCompanyCname",
+            span: 24,
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: "请选择船公司",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "所属公司",
+            prop: "branchName",
+            span: 24,
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: "请选择所属公司",
+                trigger: "blur"
+              }
+            ]
+          }
+        ]
+      }
+    };
+  },
+  async created() {},
+  methods: {
+    openDialog(val, type) {
+      this.dialogVisible = true;
+      this.form = {};
+      this.data = [];
+    },
+    dicChange(name, row) {
+      if (name == "shippingCompanyCname") {
+        let codes = [];
+        for (let item of row.multipleData) {
+          codes.push(item.code);
+        }
+        if (row) {
+          this.form.shippingCompanyId = row.ids;
+          this.form.shippingCompanyCname = row.names;
+          this.form.shippingCompanyCode = codes.join(",");
+        } else {
+          this.form.shippingCompanyId = null;
+          this.form.shippingCompanyCode = null;
+          this.form.shippingCompanyCname = null;
+        }
+      }
+      if (name == "branchName") {
+        if (row) {
+          this.form.branchId = row.ids;
+          this.form.branchName = row.names;
+        } else {
+          this.form.branchId = null;
+          this.form.branchName = null;
+        }
+      }
+    },
+    submit() {
+      this.$refs["form"].validate((valid, done) => {
+        done();
+        if (valid) {
+          // const loading = this.$loading({
+          //   lock: true,
+          //   text: "加载中",
+          //   spinner: "el-icon-loading",
+          //   background: "rgba(255,255,255,0.7)"
+          // });
+          // submit(this.form)
+          //   .then(res => {
+          //     this.$message.success("保存成功");
+          //     this.getDetail(res.data.data.id);
+          //   })
+          //   .finally(() => {
+          //     loading.close();
+          //   });
+        } else {
+          return false;
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style scoped></style>

+ 0 - 3
src/views/iosBasicData/SeafreightExportF/bills/assembly/components/splitOrder.vue

@@ -1,9 +1,6 @@
 <template>
   <div>
     <el-dialog title="拆单" :visible.sync="dialogVisible" append-to-body width="50%" :before-close="handleClose">
-      <!-- <div style="display: flex;justify-content: flex-end;">
-        <el-button type="success" size="small" plain @click="getList">查询</el-button>
-      </div> -->
       <avue-crud
         v-if="dialogVisible"
         :option="option"

+ 112 - 65
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -176,7 +176,14 @@
             >{{ $t("btn118n.unAplly") }}</el-button
           >
           <el-button plain size="small" :disabled="disabled || isFeedDisabled" @click="allClick('同步结算单位', 'D')">同步收费对象</el-button>
-          <el-button type="success" plain size="small" :disabled="selectionDList.length == 0" @click="allClick('存为模板', 'D')">存为模板</el-button>
+          <el-button
+            type="success"
+            plain
+            size="small"
+            :disabled="assemblyForm.feeCenterListD.filter(item => item.id).length == 0"
+            @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" @click="addDfun"></el-button>
@@ -523,7 +530,14 @@
           >
           <el-button plain size="small" :disabled="disabled || isFeecDisabled" @click="allClick('同步结算单位', 'C')">同步付费对象</el-button>
 
-          <el-button type="success" plain size="small" :disabled="selectionCList.length == 0" @click="allClick('存为模板', 'C')">存为模板</el-button>
+          <el-button
+            type="success"
+            plain
+            size="small"
+            :disabled="assemblyForm.feeCenterListC.filter(item => item.id).length == 0"
+            @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" @click="addCfun"> </el-button>
@@ -1076,6 +1090,7 @@
     ></fee-modify>
     <fee-modify-view ref="feeModifyView" :form="assemblyForm"></fee-modify-view>
     <sysn-corpName ref="sysnCorpName" @update="getData"></sysn-corpName>
+    <cost-template ref="costTemplate"></cost-template>
   </div>
 </template>
 
@@ -1120,9 +1135,21 @@ import { getListTemplate, getListTemplatelist } from "@/api/iosBasicData/losbfee
 import feeModify from "@/components/feeModify/main.vue";
 import feeModifyView from "@/components/feeModify/view.vue";
 import sysnCorpName from "./sysnCorpName";
+import costTemplate from "./components/costTemplate.vue";
 import _ from "lodash";
 export default {
-  components: { extractionCost, dicSelect, reportContainer, SearchQuery, reportformsList, mailComponent, feeModify, feeModifyView, sysnCorpName },
+  components: {
+    extractionCost,
+    dicSelect,
+    reportContainer,
+    SearchQuery,
+    reportformsList,
+    mailComponent,
+    feeModify,
+    feeModifyView,
+    sysnCorpName,
+    costTemplate
+  },
   props: {
     pid: {},
     assemblyForm: {
@@ -2658,6 +2685,11 @@ export default {
           return;
         }
       }
+      for (let item of selection) {
+        if (item.automaticGenerated == 1) {
+          return this.$message.error("系统生成的数据不允许生成");
+        }
+      }
       let arr = selection.map(item => {
         let obj = {};
         if (dc == "C") {
@@ -3909,63 +3941,64 @@ export default {
     },
     allClick(name, type) {
       if (name == "存为模板") {
-        this.$DialogForm.show({
-          title: "费用模板",
-          width: "30%",
-          menuPosition: "right",
-          submitText: "保存",
-          option: {
-            submitText: "确定",
-            emptyText: "取消",
-            labelWidth: 130,
-            column: [
-              {
-                label: "模版编号",
-                span: 24,
-                prop: "code",
-                rules: [
-                  {
-                    required: true,
-                    message: "请选择日期",
-                    trigger: "blur"
-                  }
-                ]
-              },
-              {
-                label: "模版中文名称",
-                span: 24,
-                prop: "cnName",
-                rules: [
-                  {
-                    required: true,
-                    message: "请输入模版中文名称",
-                    trigger: "blur"
-                  }
-                ]
-              },
-              {
-                label: "模版英文名称",
-                span: 24,
-                prop: "enName",
-                rules: [
-                  {
-                    required: true,
-                    message: "请输入模版英文名称",
-                    trigger: "blur"
-                  }
-                ]
-              }
-            ]
-          },
-          beforeClose: done => {
-            done();
-          },
-          callback: res => {
-            res.done();
-            let obj = {};
-            res.close();
-          }
-        });
+        this.$refs.costTemplate.openDialog(this.assemblyForm, type);
+        // this.$DialogForm.show({
+        //   title: "费用模板",
+        //   width: "30%",
+        //   menuPosition: "right",
+        //   submitText: "保存",
+        //   option: {
+        //     submitText: "确定",
+        //     emptyText: "取消",
+        //     labelWidth: 130,
+        //     column: [
+        //       {
+        //         label: "模版编号",
+        //         span: 24,
+        //         prop: "code",
+        //         rules: [
+        //           {
+        //             required: true,
+        //             message: "请选择日期",
+        //             trigger: "blur"
+        //           }
+        //         ]
+        //       },
+        //       {
+        //         label: "模版中文名称",
+        //         span: 24,
+        //         prop: "cnName",
+        //         rules: [
+        //           {
+        //             required: true,
+        //             message: "请输入模版中文名称",
+        //             trigger: "blur"
+        //           }
+        //         ]
+        //       },
+        //       {
+        //         label: "模版英文名称",
+        //         span: 24,
+        //         prop: "enName",
+        //         rules: [
+        //           {
+        //             required: true,
+        //             message: "请输入模版英文名称",
+        //             trigger: "blur"
+        //           }
+        //         ]
+        //       }
+        //     ]
+        //   },
+        //   beforeClose: done => {
+        //     done();
+        //   },
+        //   callback: res => {
+        //     res.done();
+        //     let obj = {};
+        //     res.close();
+        //   }
+        // });
       }
       if (name == "同步结算单位") {
         this.$refs.sysnCorpName.openDialog(this.assemblyForm.id, type);
@@ -3976,6 +4009,9 @@ export default {
         if (this.selectionCList.length != this.selectionCList.filter(e => e.corpId == this.selectionCList[0].corpId).length) {
           return this.$message.error("请选择相同的结算单位");
         }
+        if (this.selectionCList.filter(item => item.automaticGenerated == 1 && item.feeCnName == "超期箱使费").length) {
+          return this.$message.error("系统生成的超期箱使费不允许申请");
+        }
         if (this.$store.getters.payAppStatus) {
           this.$alert("付费申请页面已存在,请关闭付费申请再进行操作", "温馨提示", {
             confirmButtonText: "确定",
@@ -3996,15 +4032,13 @@ export default {
       }
       if (name == "发票申请") {
         if (this.selectionDList.length == 0) return this.$message.error("请选择费用");
-        console.log(
-          this.selectionDList,
-          this.selectionDList.filter(e => e.corpId == this.selectionDList[0].corpId)
-        );
         if (this.selectionDList.length != this.selectionDList.filter(e => e.corpId == this.selectionDList[0].corpId).length) {
           return this.$message.error("请选择相同的结算单位");
         }
-
         if (this.selectionDList.filter(e => e.auditStatus != 4).length) return this.$message.error("请选择审核通过的费用");
+        if (this.selectionDList.filter(item => item.automaticGenerated == 1 && item.feeCnName == "超期箱使费").length) {
+          return this.$message.error("系统生成的超期箱使费不允许申请");
+        }
         if (this.$store.getters.finappStatus) {
           this.$alert("发票申请页面已存在,请关闭发票申请再进行操作", "温馨提示", {
             confirmButtonText: "确定",
@@ -4046,6 +4080,9 @@ export default {
           if (row.automaticGenerated == 1 && row.feeCnName == "改单费") {
             return this.$message.error("系统生成的费用不允许申请");
           }
+          if (row.automaticGenerated == 1 && row.feeCnName == "超期箱使费") {
+            return this.$message.error("系统生成的超期箱使费不允许申请");
+          }
           if ((row.curCode == this.getLocalCurrency() && row.rmbAmount == 0) || (row.curCode != this.getLocalCurrency() && row.usdAmount == 0)) {
             textZore.push(row.feeCnName);
           }
@@ -4146,6 +4183,9 @@ export default {
           if (row.automaticGenerated == 1 && row.feeCnName == "改单费") {
             return this.$message.error("系统生成的费用不允许撤销");
           }
+          if (row.automaticGenerated == 1 && row.feeCnName == "超期箱使费") {
+            return this.$message.error("系统生成的超期箱使费不允许撤销");
+          }
         }
         this.$confirm("确定撤销请核?", {
           confirmButtonText: "确定",
@@ -4318,6 +4358,10 @@ export default {
           if (row.automaticGenerated == 1 && row.feeCnName == "改单费") {
             return this.$message.error("系统生成的费用不允许申请");
           }
+          
+          if (row.automaticGenerated == 1 && row.feeCnName == "超期箱使费") {
+            return this.$message.error("系统生成的超期箱使费不允许申请");
+          }
           if ((row.curCode == this.getLocalCurrency() && row.rmbAmount == 0) || (row.curCode != this.getLocalCurrency() && row.usdAmount == 0)) {
             textZore.push(row.feeCnName);
           }
@@ -4421,6 +4465,9 @@ export default {
           if (row.automaticGenerated == 1 && row.feeCnName == "改单费") {
             return this.$message.error("系统生成的费用不允许撤销");
           }
+          if (row.automaticGenerated == 1 && row.feeCnName == "超期箱使费") {
+            return this.$message.error("系统生成的超期箱使费不允许撤销");
+          }
         }
         this.$confirm("确定撤销请核?", {
           confirmButtonText: "确定",

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 438 - 349
src/views/ow/contract/detailsPage.vue


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

@@ -214,7 +214,7 @@
                 <el-input-number
                   v-model="form.boxNumber"
                   :disabled="editDisabled || (fixData && form.whetherEnable == '是')"
-                  :min="form.suitcaseNum||1"
+                  :min="form.suitcaseNum || 1"
                   :controls="false"
                   placeholder="请输入 箱量"
                   style="width: 100%;"
@@ -1185,7 +1185,7 @@
             type="primary"
             size="mini"
             icon="el-icon-plus"
-            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0"
+            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0||perData.length"
             circle
             @click="rtAddRow()"
           >
@@ -1200,7 +1200,7 @@
             icon="el-icon-edit"
             type="text"
             @click="rowEdit(row, index)"
-            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0"
+            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0||perData.length"
             >{{ row.$cellEdit ? "保存" : "编辑" }}</el-button
           >
           <el-button
@@ -1208,7 +1208,7 @@
             icon="el-icon-delete"
             type="text"
             @click="rowDel(row, index)"
-            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0"
+            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0||perData.length"
             >删除</el-button
           >
         </template>
@@ -3496,7 +3496,7 @@ export default {
     dicChange(name, row) {
       if (name == "containerNumber") {
         if (row) {
-          this.form.srcContainerNumberId=row.id;
+          this.form.srcContainerNumberId = row.id;
           this.form.containerNumber = row.containerNumber;
           this.form.boxCondition = row.boxCondition;
           this.form.polId = row.polId;
@@ -3811,18 +3811,18 @@ export default {
       });
     },
     rtSubmit() {
-      for (let row of this.form.rentTermList) {
-        if (Number(row.riseDays) == 0) {
-          return this.$message.error("起必须大于0");
+      for (let [index, row] of this.form.rentTermList.entries()) {
+        if (!row.riseDays || Number(row.riseDays) == 0) {
+          return this.$message.error(`第${index + 1}行起必须大于0`);
         }
-        if (Number(row.stopDays) == 0) {
-          return this.$message.error("止必须大于0");
+        if (!row.stopDays || Number(row.stopDays) == 0) {
+          return this.$message.error(`第${index + 1}行止必须大于0`);
         }
         if (!row.curCode) {
-          return this.$message.error("请完善币别");
+          return this.$message.error(`请完善第${index + 1}行币别`);
         }
         if (this.form.rentTermList[0].curCode != row.curCode) {
-          return this.$message.error("币别要保持一致");
+          return this.$message.error(`币别要保持一致`);
         }
       }
       const loading = this.$loading({
@@ -5154,8 +5154,8 @@ export default {
       this.$refs["form"].validate((valid, done) => {
         done();
         if (valid) {
-          if(!this.form.srcContainerNumberId){
-              return this.$message.error("请重新选择自有放箱号");
+          if (!this.form.srcContainerNumberId) {
+            return this.$message.error("请重新选择自有放箱号");
           }
           for (let row of this.form.tradingBoxItemsList) {
             if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxEastName || !row.boxCategory || !row.boxStatus || !row.boxCondition) {
@@ -5181,7 +5181,7 @@ export default {
           if (!this.form.actualBoxNumber) {
             this.form.actualBoxNumber = 0;
           }
-          if (this.form.rentTermList.filter(item => !item.rate||item.rate==0).length) {
+          if (this.form.rentTermList.filter((item, index) => index != 0 && (!item.rate || item.rate == 0)).length) {
             this.$confirm("租金条款存在费率为0或空的数据,是否继续保存?", "提示", {
               confirmButtonText: "确定",
               cancelButtonText: "取消",

+ 41 - 11
src/views/ow/owTask/detailsPage.vue

@@ -275,6 +275,9 @@
                   style="width: 100%;"
                 ></el-input-number>
               </template>
+              <template slot-scope="{}" slot="cancelNumberLabel">
+                <span style="color: #F56C6C;">取消箱量:</span>
+              </template>
               <template slot="cancelNumber">
                 <el-input-number
                   v-model="form.cancelNumber"
@@ -285,8 +288,23 @@
                   :controls="false"
                   placeholder="请输入 取消箱量"
                   style="width: 100%;"
+                  class="error-input"
                 ></el-input-number>
               </template>
+              <template slot-scope="{}" slot="boxTubeRemarksLabel">
+                <span style="color: #F56C6C;">箱管备注:</span>
+              </template>
+              <template slot="boxTubeRemarks">
+                <el-input
+                  v-model="form.boxTubeRemarks"
+                  :disabled="fixData || (fixData && form.whetherEnable == '是')"
+                  type="textarea"
+                  :autosize="{ minRows: 2, maxRows: 4 }"
+                  placeholder="请输入 箱管备注"
+                  style="width: 100%;"
+                  class="error-input"
+                ></el-input>
+              </template>
             </avue-form>
           </trade-card>
           <trade-card title="箱明细">
@@ -1261,7 +1279,7 @@
             type="primary"
             size="mini"
             icon="el-icon-plus"
-            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0"
+            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0 || perData.length"
             circle
             @click="rtAddRow()"
           >
@@ -1276,7 +1294,7 @@
             icon="el-icon-edit"
             type="text"
             @click="rowEdit(row, index)"
-            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0"
+            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0 || perData.length"
             >{{ row.$cellEdit ? "保存" : "编辑" }}</el-button
           >
           <el-button
@@ -1284,7 +1302,7 @@
             icon="el-icon-delete"
             type="text"
             @click="rowDel(row, index)"
-            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0"
+            :disabled="editDisabled || feeCenterListD.filter(item => item.feeCnName == '租箱费').length > 0 || perData.length"
             >删除</el-button
           >
         </template>
@@ -4318,18 +4336,18 @@ export default {
       });
     },
     rtSubmit() {
-      for (let row of this.form.rentTermList) {
-        if (Number(row.riseDays) == 0) {
-          return this.$message.error("起必须大于0");
+      for (let [index, row] of this.form.rentTermList.entries()) {
+        if (!row.riseDays || Number(row.riseDays) == 0) {
+          return this.$message.error(`第${index + 1}行起必须大于0`);
         }
-        if (Number(row.stopDays) == 0) {
-          return this.$message.error("止必须大于0");
+        if (!row.stopDays || Number(row.stopDays) == 0) {
+          return this.$message.error(`第${index + 1}行止必须大于0`);
         }
         if (!row.curCode) {
-          return this.$message.error("请完善币别");
+          return this.$message.error(`请完善第${index + 1}行币别`);
         }
         if (this.form.rentTermList[0].curCode != row.curCode) {
-          return this.$message.error("币别要保持一致");
+          return this.$message.error(`币别要保持一致`);
         }
       }
       const loading = this.$loading({
@@ -5808,7 +5826,7 @@ export default {
           if (!this.form.actualBoxNumber) {
             this.form.actualBoxNumber = 0;
           }
-          if (this.form.rentTermList.filter(item => !item.rate||item.rate==0).length) {
+          if (this.form.rentTermList.filter((item, index) => index != 0 && (!item.rate || item.rate == 0)).length) {
             this.$confirm("租金条款存在费率为0或空的数据,是否继续保存?", "提示", {
               confirmButtonText: "确定",
               cancelButtonText: "取消",
@@ -6064,4 +6082,16 @@ export default {
   font-size: 16px;
   color: #54bcbd;
 }
+::v-deep .error-input .el-input.is-disabled .el-input__inner {
+  color: #f56c6c !important;
+}
+::v-deep .error-input .el-textarea .is-disabled .el-textarea__inner {
+  color: #f56c6c !important;
+}
+::v-deep .error-input .el-input__inner {
+  color: #f56c6c !important;
+}
+::v-deep .error-input .el-textarea__inner {
+  color: #f56c6c !important;
+}
 </style>

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů