caojunjie 2 éve
szülő
commit
80cbdc3556

+ 13 - 0
src/router/views/index.js

@@ -2194,5 +2194,18 @@ export default [{
     },
     component: () => import( /* webpackChunkName: "views" */ '@/views/purchase/importDeclaration/index')
   }]
+}, {
+  path: '/purchase/exportDeclaration/index',
+  component: Layout,
+  hidden: true,
+  children: [{
+    path: '/purchase/exportDeclaration/index',
+    name: '出口报关',
+    meta: {
+      i18n: '/purchase/exportDeclaration/index',
+      keepAlive: true,
+    },
+    component: () => import( /* webpackChunkName: "views" */ '@/views/purchase/exportDeclaration/index')
+  }]
 }
 ]

+ 4 - 9
src/views/basicData/customerInformation/detailsPageEdit.vue

@@ -909,9 +909,7 @@ export default {
         this.oldaddressLatLng = this.deepClone(JSON.parse(this.form.addressLatLng));
         this.oldaddressData = this.deepClone(this.form.corpsAddrList);
         if (this.form.belongtoarea) {
-          this.form.belongtoarea = this.form.belongtoarea
-            .split(",")
-            .map(item => item.split("/"));
+          this.form.belongtoarea = this.form.belongtoarea.split(",").map(item => item.split("/"));
         }
         delete this.form.corpsAttnList;
         delete this.form.corpsBankList;
@@ -938,8 +936,7 @@ export default {
       this.userList = res.data.data;
     });
     this.getWorkDicts("currency").then(res => {
-      this.findObject(this.bankOfDeposit.column, "fcyno").dicData =
-        res.data.data;
+      this.findObject(this.bankOfDeposit.column, "fcyno").dicData = res.data.data;
     });
   },
   methods: {
@@ -1266,7 +1263,7 @@ export default {
                 type: "error"
               });
             } else {
-              detail(this.detailData.id).then(res => {
+              detail(res.data.data.id).then(res => {
                 if (res.data.data.adminProfiles) {
                   res.data.data.adminProfiles = res.data.data.adminProfiles.split(",");
                 }
@@ -1286,9 +1283,7 @@ export default {
                 this.oldaddressLatLng = this.deepClone(JSON.parse(this.form.addressLatLng));
                 this.oldaddressData = this.deepClone(this.form.corpsAddrList);
                 if (this.form.belongtoarea) {
-                  this.form.belongtoarea = this.form.belongtoarea
-                      .split(",")
-                      .map(item => item.split("/"));
+                  this.form.belongtoarea = this.form.belongtoarea.split(",").map(item => item.split("/"));
                 }
                 delete this.form.corpsAttnList;
                 delete this.form.corpsBankList;

+ 8 - 1
src/views/maintenance/salesPolicy/detailsPageEdit.vue

@@ -409,6 +409,7 @@ export default {
             label: "状态",
             prop: "status",
             type: "select",
+            disabled:true,
             dicData: [
               {
                 label: "正常",
@@ -580,7 +581,8 @@ export default {
       this.queryData(this.detailData.id);
     } else {
       this.form = {
-        type:'正常'
+        type:'正常',
+        status:1
       };
       this.contactsData = [];
     }
@@ -613,6 +615,11 @@ export default {
               if (this.roleName.indexOf('admin') !== -1){
                 this.findObject(this.basicData.column, "status").disabled = false
               }
+            }else {
+              this.findObject(this.basicData.column, "status").disabled = true
+              if (this.roleName.indexOf('admin') !== -1){
+                this.findObject(this.basicData.column, "status").disabled = false
+              }
             }
             this.getItemdetail();
             this.openFullScreen(true);

+ 1335 - 0
src/views/purchase/exportDeclaration/detailsPage.vue

@@ -0,0 +1,1335 @@
+<template>
+  <div>
+    <div class="customer-head">
+      <div class="customer-back">
+        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+                   @click="backToList(0)">返回列表
+        </el-button>
+        <el-button v-if="detailData.id" type="danger" style="border: none;background: none;color: red"
+                   icon="el-icon-arrow-left"
+                   @click="backToList(1)">返回审核列表
+        </el-button>
+      </div>
+      <div class="add-customer-btn">
+        <el-button class="el-button--small-yh" style="margin-right: 10px" type="primary" size="small"
+                   :disabled="form.status>0"
+                   @click="confirmEdit" v-if="optionForm.disabled === true">编辑
+        </el-button>
+        <el-dropdown style="margin-right: 10px">
+          <el-button type="primary" size="small">
+            审核处理<i class="el-icon-arrow-down el-icon--right"></i>
+          </el-button>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item @click.native="pleaseCheck" :disabled="!(form.status === 0 || form.status === 4)">请核数据</el-dropdown-item>
+            <el-dropdown-item @click.native="checkScheduleDialog = true,checkId = form.id">审核进度</el-dropdown-item>
+            <el-dropdown-item @click.native="repealCancel" :disabled="!(form.status === 1 || form.status === 5)"
+                              v-if="!detailData.id">撤销请核
+            </el-dropdown-item>
+            <!--            <el-dropdown-item @click.native="changeApproveOpen">特殊审批</el-dropdown-item>-->
+          </el-dropdown-menu>
+        </el-dropdown>
+        <el-button class="el-button--small-yh" type="primary" size="small" :disabled="form.status>0"
+                   @click="editCustomer">
+          保存数据
+        </el-button>
+      </div>
+    </div>
+    <trade-card title="基础资料" style="margin-top: 50px">
+      <avue-form :option="optionForm" v-model="form" ref="form">
+        <!--        <template slot="purchaseCompanyId" slot-scope="scope">-->
+        <!--          <crop-select v-model="form.purchaseCompanyId"-->
+        <!--                       @getCorpData="(row)=>{getGSData(row,['form','purchaseCompanyName'])}" :disabled="scope.disabled"-->
+        <!--                       corpType="KH"/>-->
+        <!--        </template>-->
+        <template slot="domesticNo" slot-scope="scope">
+          <crop-select v-model="form.domesticNo"
+                       label="code"
+                       :disabled="scope.disabled"
+                       @getCorpData="(row)=>{getGSData(row,['form','domesticName','domesticCustomsNo'])}"
+                       corpType="KH"/>
+        </template>
+        <template slot="abroadNo" slot-scope="scope">
+          <crop-select v-model="form.abroadNo"
+                       label="code"
+                       :disabled="scope.disabled"
+                       @getCorpData="(row)=>{getGSData(row,['form','abroadName','abroadCustomsNo'])}"
+                       corpType="KH"/>
+        </template>
+        <template slot="consumptionUnitNo" slot-scope="scope">
+          <crop-select v-model="form.consumptionUnitNo"
+                       label="code"
+                       :disabled="scope.disabled"
+                       @getCorpData="(row)=>{getGSData(row,['form','consumptionUnitName','consumptionUnitCustomsNo'])}"
+                       corpType="KH"/>
+        </template>
+        <template slot="applicantNo" slot-scope="scope">
+          <crop-select v-model="form.applicantNo"
+                       label="code"
+                       :disabled="scope.disabled"
+                       @getCorpData="(row)=>{getGSData(row,['form','applicantName','applicantCustomsNo'])}"
+                       corpType="KH"/>
+        </template>
+        <template slot="countryOriginId" slot-scope="scope">
+          <port-info v-model="form.countryOriginId" type="id" @balabalaTow="(row)=>{balabala(row,['form','countryOriginName'])}" :search="{typeName: '国家'}" :disabled="scope.disabled"/>
+        </template>
+        <template slot="tradeCountryId" slot-scope="scope">
+          <port-info v-model="form.tradeCountryId" type="id" @balabalaTow="(row)=>{balabala(row,['form','tradeCountryName'])}" :search="{typeName: '国家'}" :disabled="scope.disabled"/>
+        </template>
+        <template slot="stopOverHarborId" slot-scope="scope">
+          <port-info v-model="form.stopOverHarborId" type="id" @balabalaTow="(row)=>{balabala(row,['form','stopOverHarborName'])}" :search="{typeName: '港口'}" :disabled="scope.disabled"/>
+        </template>
+        <template slot="portDepartureId" slot-scope="scope">
+          <port-info v-model="form.portDepartureId" type="id" @balabalaTow="(row)=>{balabala(row,['form','portDepartureName'])}" :search="{typeName: '港口'}" :disabled="scope.disabled"/>
+        </template>
+        <template slot="portEntryId" slot-scope="scope">
+          <port-info v-model="form.portEntryId" type="id" @balabalaTow="(row)=>{balabala(row,['form','portEntryName'])}" :search="{typeName: '港口'}" :disabled="scope.disabled"/>
+        </template>
+      </avue-form>
+    </trade-card>
+    <trade-card title="商品信息">
+      <avue-crud
+          :option="option"
+          :data="dataList"
+          v-model="formTwo"
+          ref="crud"
+          :key="key"
+          :before-open="beforeOpen"
+          @row-save="rowSave"
+          @row-update="rowUpdate"
+          @resetColumn="resetColumnTwo('crud','option','optionBack',246.1)"
+          @saveColumn="saveColumnTwo('crud','option','optionBack',246.1)">
+        <template slot-scope="{type,size,row,index,disabled}" slot="menu">
+          <el-button icon="el-icon-edit" :size="size" :disabled="disabled" :type="type"
+                     @click="$refs.crud.rowEdit(row,index)">编辑
+          </el-button>
+          <el-button icon="el-icon-delete" :size="size" :disabled="disabled" :type="type"
+                     @click="rowDel(row,index,'SP')">删除
+          </el-button>
+        </template>
+        <!--        <template slot="boxMakingCompanyForm" slot-scope="scope">-->
+        <!--          <crop-select v-model="formTwo.boxMakingCompanyId" :disabled="scope.disabled" :refresh="false"-->
+        <!--                       @getCorpData="(row)=>{getGSData(row,['formTwo','boxMakingCompany'])}" corpType="GS"/>-->
+        <!--        </template>-->
+        <template slot="originatedCountriesIdForm" slot-scope="scope">
+          <port-info v-model="formTwo.originatedCountriesId" type="id" @balabalaTow="(row)=>{balabala(row,['formTwo','originatedCountriesName'])}" :search="{typeName: '国家'}" :disabled="scope.disabled"/>
+        </template>
+        <template slot="finalDestinationCountryIdForm" slot-scope="scope">
+          <port-info v-model="formTwo.finalDestinationCountryId" type="id" @balabalaTow="(row)=>{balabala(row,['formTwo','finalDestinationCountryName'])}" :search="{typeName: '国家'}" :disabled="scope.disabled"/>
+        </template>
+      </avue-crud>
+    </trade-card>
+    <trade-card title="集装箱">
+      <avue-crud
+          :option="optionTwo"
+          :data="containerList"
+          v-model="formTwoTwo"
+          ref="crudTwo"
+          :key="key"
+          :before-open="beforeOpen"
+          @row-save="rowSave"
+          @row-update="rowUpdate"
+          @resetColumn="resetColumnTwo('crudTwo','optionTwo','optionTwoBack',246.2)"
+          @saveColumn="saveColumnTwo('crudTwo','optionTwo','optionTwoBack',246.2)">
+        <template slot-scope="{type,size,row,index,disabled}" slot="menu">
+          <el-button icon="el-icon-edit" :size="size" :disabled="disabled" :type="type"
+                     @click="$refs.crudTwo.rowEdit(row,index)">编辑
+          </el-button>
+          <el-button icon="el-icon-delete" :size="size" :disabled="disabled" :type="type"
+                     @click="rowDel(row,index,'JZX')">删除
+          </el-button>
+        </template>
+      </avue-crud>
+    </trade-card>
+    <trade-card title="单证">
+      <avue-crud
+          :option="optionThree"
+          :data="documentsList"
+          v-model="formTwoThree"
+          ref="crudThree"
+          :key="key"
+          :before-open="beforeOpen"
+          @row-save="rowSave"
+          @row-update="rowUpdate"
+          @resetColumn="resetColumnTwo('crudThree','optionThree','optionThreeBack',246.21)"
+          @saveColumn="saveColumnTwo('crudThree','optionThree','optionThreeBack',246.21)">
+        <template slot-scope="{type,size,row,index,disabled}" slot="menu">
+          <el-button icon="el-icon-edit" :size="size" :disabled="disabled" :type="type"
+                     @click="$refs.crudThree.rowEdit(row,index)">编辑
+          </el-button>
+          <el-button icon="el-icon-delete" :size="size" :disabled="disabled" :type="type"
+                     @click="rowDel(row,index,'DZ')">删除
+          </el-button>
+        </template>
+      </avue-crud>
+    </trade-card>
+    <!--费用信息组件-->
+    <box-cost v-model="dataListTwo" activeName="second" ref="first" type="BG" @resetTrigger="resetTrigger" url="/api/blade-box-tube/declareCustomsFees/remove"></box-cost>
+    <trade-card title="附件明细">
+      <c-upload
+          basic
+          :data="tradingBoxFilesList"
+          :disabled="disabled"
+          deleteUrl="/api/blade-box-tube/declareCustomsFiles/remove"
+          :enumerationValue="246.3"
+          display
+      />
+    </trade-card>
+    <el-dialog
+        append-to-body
+        title="审批进度"
+        class="el-dialogDeep"
+        :visible.sync="checkScheduleDialog"
+        width="40%"
+        :close-on-click-modal="false"
+        :destroy-on-close="true"
+        :close-on-press-escape="false"
+        v-dialog-drag
+    >
+      <check-schedule
+          :checkId="checkId"
+          :batchNo="batchNo"
+          @choceScheduleFun="choceScheduleFun"
+      ></check-schedule>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  detail,
+  submit,
+  tradingBoxFiles,
+  selectArchivesList,
+  tradingBoxItem,
+  tradingBoxFees,
+  containerItem,
+  documentsItem,
+  pleaseCheck,
+  repealCancel
+} from "@/api/importTrade/importDeclaration.js";
+
+import checkSchedule from "@/components/check/checkSchedule";
+import {selectByName} from "@/api/boxManagement";
+
+export default {
+  name: "detailsPage",
+  props: {
+    onLoad: Object,
+    detailData: Object
+  },
+  components: {checkSchedule},
+  data() {
+    return {
+      key: 0,
+      formTwoTwo:{},
+      formTwoThree:{},
+      containerList:[],
+      documentsList:[],
+      checkScheduleDialog: false,
+      checkId: '',
+      batchNo: '',
+      breakConfiguration: {
+        multipleChoices: false,
+        multiple: false,
+        disabled: false,
+        searchShow: true,
+        collapseTags: false,
+        clearable: true,
+        placeholder: "请点击右边按钮选择",
+        dicData: []
+      },
+      form: {},
+      formTwo: {},
+      optionForm: {
+        menuBtn: false,
+        span: 6,
+        column: [{
+          label: '申报地海关',
+          prop: 'customsDeclarationPlace',
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=customs",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '申报状态',
+          prop: 'declareStatus',
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=declare_status",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '统一编号',
+          prop: 'unifiedNumbering'
+        }, {
+          label: '预录入编号',
+          prop: 'preEntryNo'
+        }, {
+          label: '海关编号',
+          prop: 'customsNo'
+        }, {
+          label: '出境关别',
+          prop: 'exitCustoms',
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=customs",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '已实施防御性防疫',
+          prop: 'whetherEpidemicPrevention',
+          labelWidth:115,
+          overHidden: true,
+          filterable: true,
+          type: 'select',
+          dicData:[{
+            label:'是',
+            value:1
+          },{
+            label:'否',
+            value:0
+          }]
+        }, {
+          label: '备案号',
+          prop: 'filingNo'
+        }, {
+          label: '合同协议号',
+          prop: 'contractAgreementNo'
+        }, {
+          label: '出口日期',
+          prop: 'importExportDate',
+          type: "date",
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss"
+        }, {
+          label: '启运日期',
+          prop: 'shipmentDate',
+          type: "date",
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss"
+        }, {
+          label: '申报日期',
+          prop: 'declareDate',
+          type: "date",
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss"
+        }, {
+          label: '境内收发货人',
+          prop: 'domesticConsigneeShipper'
+        }, {
+          label: '编码',
+          prop: 'domesticNo'
+        }, {
+          label: '海关号',
+          prop: 'domesticCustomsNo'
+        }, {
+          label: '名称',
+          prop: 'domesticName'
+        }, {
+          label: '境外收发货人',
+          prop: 'abroadConsigneeShipper'
+        }, {
+          label: '编码',
+          prop: 'abroadNo'
+        }, {
+          label: '海关号',
+          prop: 'abroadCustomsNo'
+        }, {
+          label: '名称',
+          prop: 'abroadName'
+        }, {
+          label: '生产销售单位',
+          prop: 'consumptionUnit'
+        }, {
+          label: '编码',
+          prop: 'consumptionUnitNo'
+        }, {
+          label: '海关号',
+          prop: 'consumptionUnitCustomsNo'
+        }, {
+          label: '名称',
+          prop: 'consumptionUnitName'
+        }, {
+          label: '申报单位',
+          prop: 'applicant'
+        }, {
+          label: '编码',
+          prop: 'applicantNo'
+        }, {
+          label: '海关号',
+          prop: 'applicantCustomsNo'
+        }, {
+          label: '名称',
+          prop: 'applicantName'
+        }, {
+          label: '运输方式',
+          prop: 'transportType',
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=mode_transport",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '运输工具名称',
+          prop: 'conveyanceName'
+        }, {
+          label: '航次号',
+          prop: 'voyageNo'
+        }, {
+          label: '提运单号',
+          prop: 'deliveryNumbers'
+        }, {
+          label: '监管方式',
+          prop: 'superviseMode',
+          span: 8,
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=supervise_mode",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '征免性质',
+          prop: 'expropriationExemptionNature',
+          span: 8,
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=expropriation_nature",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '许可证号',
+          prop: 'licenseKey',
+          span: 8
+        }, {
+          label: '启运国',
+          prop: 'countryOriginId',
+          span: 8
+        }, {
+          label: '经停港',
+          prop: 'stopOverHarborId',
+          span: 8
+        }, {
+          label: '成交方式',
+          prop: 'transactionMode',
+          span: 8,
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=transaction_mode",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '运费',
+          prop: 'freight',
+          type: 'number',
+          controls: false,
+          precision:2
+        }, {
+          label: '方式',
+          prop: 'freightMethod',
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=method",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '金额',
+          prop: 'freightAmount',
+          type: 'number',
+          controls: false,
+          precision:2
+        }, {
+          label: '币别',
+          prop: 'freightCurrency',
+          overHidden: true,
+          filterable: true,
+          type: "select",
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          },
+        }, {
+          label: '保险',
+          prop: 'insurance',
+          type: 'number',
+          controls: false,
+          precision:2
+        }, {
+          label: '方式',
+          prop: 'insuranceMethod',
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=method",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '金额',
+          prop: 'insuranceAmount',
+          type: 'number',
+          controls: false,
+          precision:2
+        }, {
+          label: '币别',
+          prop: 'insuranceCurrency',
+          overHidden: true,
+          filterable: true,
+          type: "select",
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          },
+        }, {
+          label: '杂费',
+          prop: 'sundryFees',
+          type: 'number',
+          controls: false,
+          precision:2
+        }, {
+          label: '方式',
+          prop: 'sundryFeesMethod',
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=method",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '金额',
+          prop: 'sundryFeesAmount',
+          type: 'number',
+          controls: false,
+          precision:2
+        }, {
+          label: '币别',
+          prop: 'sundryFeesCurrency',
+          overHidden: true,
+          filterable: true,
+          type: "select",
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          },
+        }, {
+          label: '件数',
+          prop: 'number',
+          type: 'number',
+          controls: false,
+          precision:2
+        }, {
+          label: '包装',
+          prop: 'packing',
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=packing",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '毛重(kg)',
+          prop: 'grossWeight',
+          type: 'number',
+          controls: false,
+          precision:2
+        }, {
+          label: '净重(kg)',
+          prop: 'netWeight'
+        }, {
+          label: '贸易国别(地区)',
+          prop: 'tradeCountryId',
+          labelWidth:100
+        }, {
+          label: '集装箱数',
+          prop: 'containersNumber',
+          type: 'number',
+          controls: false,
+          precision:2
+        }, {
+          label: '随附单证',
+          prop: 'documentsAttached'
+        }, {
+          label: '入境口岸',
+          prop: 'portEntryId'
+        }, {
+          label: '货物存放地点',
+          prop: 'storagePlaceGoods'
+        }, {
+          label: '启运港',
+          prop: 'portDepartureId'
+        }, {
+          label: '报关单类型',
+          prop: 'customsDeclarationType',
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=declaration_type",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '备注',
+          prop: 'remark',
+          type: 'textarea',
+          minRows: 3,
+          span: 12
+        }, {
+          label: '唛头',
+          prop: 'shippingMark',
+          type: 'textarea',
+          minRows: 3,
+          span: 12
+        }]
+      },
+      option: {},
+      optionBack: {
+        align: 'center',
+        index: true,
+        addBtnText: "录入明细",
+        refreshBtn: false,
+        addBtn: true,
+        span: 8,
+        addRowBtn: false,
+        cellBtn: false,
+        editBtn: false,
+        delBtn: false,
+        menuWidth: 140,
+        dialogTop: 25,
+        dialogWidth: "80%",
+        showSummary: true,
+        sumColumnList: [{
+          name: 'amount',
+          type: 'sum',
+          decimals: 2
+        }],
+        column: [{
+          label: '备案编号',
+          prop: 'goodsFilingNo',
+          width: 100,
+          overHidden: true
+        }, {
+          label: '商品编号',
+          prop: 'commodityNo',
+          width: 100,
+        }, {
+          label: '检验检疫名称',
+          prop: 'quarantineName',
+          width: 100
+        }, {
+          label: '商品名称',
+          prop: 'commodityName',
+          width: 100
+        }, {
+          label: '规格型号',
+          prop: 'specificationModel',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '成交数量',
+          prop: 'transactionsNumber',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '单位',
+          prop: 'dealUnitMeasurement',
+          overHidden: true,
+          width: 100,
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=deal_unit",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '单价',
+          prop: 'price',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '总价',
+          prop: 'totalPrice',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '币制',
+          prop: 'currencySystem',
+          overHidden: true,
+          width: 100,
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '法定第一数量',
+          prop: 'statutoryFirstQuantity',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '法定第一计量单位',
+          prop: 'statutoryFirstMeasurement',
+          labelWidth: 120,
+          overHidden: true,
+          width: 120,
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=deal_unit",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '加工成品单耗版本号',
+          prop: 'versionNo',
+          labelWidth:125,
+          overHidden: true,
+          width: 130
+        }, {
+          label: '货号',
+          prop: 'articleNo',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '最终目的国',
+          prop: 'finalDestinationCountryId',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '法定第二数量',
+          prop: 'legalSecondQuantity',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '法定第二计量单位',
+          prop: 'legalSecondMeasurement',
+          labelWidth: 120,
+          overHidden: true,
+          width: 120,
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=deal_unit",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }, {
+          label: '原产国',
+          prop: 'originatedCountriesId',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '原产地区',
+          prop: 'regionOrigin',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '境内目的地',
+          prop: 'domesticDestination',
+          overHidden: true,
+          width: 100
+        }, {
+          label: '征免方式',
+          prop: 'expropriationExemptionType',
+          overHidden: true,
+          width: 100,
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=expropriation_type",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          }
+        }]
+      },
+      optionTwo:{},
+      optionTwoBack: {
+        align: 'center',
+        index: true,
+        addBtnText: "录入明细",
+        refreshBtn: false,
+        addBtn: true,
+        span: 8,
+        addRowBtn: false,
+        cellBtn: false,
+        editBtn: false,
+        delBtn: false,
+        menuWidth: 140,
+        dialogTop: 25,
+        dialogWidth: "80%",
+        showSummary: true,
+        sumColumnList: [{
+          name: 'amount',
+          type: 'sum',
+          decimals: 2
+        }],
+        column: [{
+          label: '箱号',
+          prop: 'caseNo',
+          overHidden: true,
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "blur"
+          }]
+        }, {
+          label: '箱类型',
+          prop: 'boxType',
+          overHidden: true
+        }, {
+          label: '拼箱标识',
+          prop: 'lclSign',
+          overHidden: true,
+          filterable: true,
+          type: 'select',
+          dicData:[{
+            label:'是',
+            value:1
+          },{
+            label:'否',
+            value:0
+          }]
+        }]
+      },
+      optionThree:{},
+      optionThreeBack: {
+        align: 'center',
+        index: true,
+        addBtnText: "录入明细",
+        refreshBtn: false,
+        addBtn: true,
+        span: 8,
+        addRowBtn: false,
+        cellBtn: false,
+        editBtn: false,
+        delBtn: false,
+        menuWidth: 140,
+        dialogTop: 25,
+        dialogWidth: "80%",
+        showSummary: true,
+        sumColumnList: [{
+          name: 'amount',
+          type: 'sum',
+          decimals: 2
+        }],
+        column: [{
+          label: '单证代码',
+          prop: 'documentCode',
+          overHidden: true
+        },{
+          label: '单证编码',
+          prop: 'documentNo',
+          overHidden: true
+        }]
+      },
+      dataList: [],
+      dataListTwo: [],
+      tradingBoxFilesList: [],
+      disabled: false,
+      costData: {}
+    }
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(246.1), this.optionBack);
+    this.optionTwo = await this.getColumnData(this.getColumnName(246.2), this.optionTwoBack);
+    this.optionThree = await this.getColumnData(this.getColumnName(246.21), this.optionThreeBack);
+    selectByName("买箱费").then(res => {
+      this.costData = res.data.data
+    })
+    //下拉箱号带出对应信息
+    // this.findObject(this.option.column, "code").change = ({value, column}) => {
+    //   selectArchivesList({code: value}).then(res => {
+    //     for (let item of res.data.data) {
+    //       if (value == item.code) {
+    //         this.formTwo = {
+    //           boxSource: item.boxSource,
+    //           boxStatus: item.boxStatus,
+    //           emptyWeight: item.emptyWeight,
+    //           grossWeight: item.gorssWeight,
+    //           tare: item.tare,
+    //           loadingWeight: item.loadingWeight,
+    //           volume: item.volume,
+    //         }
+    //       }
+    //     }
+    //   })
+    // }
+    this.key++
+    if (this.onLoad.id && this.detailData.id) {
+      this.refresh(this.onLoad.id, true)
+    } else if (this.onLoad.id) {
+      this.refresh(this.onLoad.id, true)
+    }
+  },
+  methods: {
+    confirmEdit() {
+      if (this.form.status > 0) {
+        //基础资料
+        this.$set(this.optionForm, "disabled", true)
+        //箱信息
+        this.$set(this.option, "disabled", true)
+        this.$set(this.option, "addBtn", false)
+        this.$set(this.option, "menu", false)
+        //费用信息
+        this.$set(this.$refs.boxCost.option, "disabled", true)
+        this.$set(this.$refs.boxCost.option, "addBtn", false)
+        this.$set(this.$refs.boxCost.option, "menu", false)
+        //集装箱
+        this.$set(this.optionTwo, "disabled", true)
+        this.$set(this.optionTwo, "addBtn", false)
+        this.$set(this.optionTwo, "menu", false)
+        //单证
+        this.$set(this.optionThree, "disabled", true)
+        this.$set(this.optionThree, "addBtn", false)
+        this.$set(this.optionThree, "menu", false)
+        //附件和顶部按钮
+        this.disabled = true
+      } else {
+        //基础资料
+        this.$set(this.optionForm, "disabled", false)
+        //箱信息
+        this.$set(this.option, "disabled", false)
+        this.$set(this.option, "addBtn", true)
+        this.$set(this.option, "menu", true)
+        //集装箱
+        this.$set(this.optionTwo, "disabled", false)
+        this.$set(this.optionTwo, "addBtn", true)
+        this.$set(this.optionTwo, "menu", true)
+        //单证
+        this.$set(this.optionThree, "disabled", false)
+        this.$set(this.optionThree, "addBtn", true)
+        this.$set(this.optionThree, "menu", true)
+        //费用信息
+        this.$set(this.$refs.boxCost.option, "disabled", false)
+        this.$set(this.$refs.boxCost.option, "addBtn", true)
+        this.$set(this.$refs.boxCost.option, "menu", true)
+        //附件和顶部按钮
+        this.disabled = false
+      }
+    },
+    // 明细删除
+    rowDel(row, index, type) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+            if (row.id) {
+              if (type == "SP"){
+                tradingBoxItem(row.id).then(res => {
+                  if (res.data.success) {
+                    this.$message.success("操作成功!");
+                    this.dataList.splice(index, 1);
+                  }
+                });
+              }
+              if (type == "JZX"){
+                containerItem(row.id).then(res => {
+                  if (res.data.success) {
+                    this.$message.success("操作成功!");
+                    this.containerList.splice(index, 1);
+                  }
+                });
+              }
+              if (type == "DZ"){
+                documentsItem(row.id).then(res => {
+                  if (res.data.success) {
+                    this.$message.success("操作成功!");
+                    this.documentsList.splice(index, 1);
+                  }
+                });
+              }
+            } else {
+              if (type == "DZ"){
+                this.dataList.splice(index, 1);
+              }
+              if (type == "JZX"){
+                this.containerList.splice(index, 1);
+              }
+              if (type == "DZ"){
+                this.documentsList.splice(index, 1);
+              }
+              this.$message.success("操作成功!");
+            }
+          }
+      )
+      ;
+    },
+    balabala(row,type) {
+      this[type[0]][type[1]] = row.cname
+    },
+    //选择费用名称
+    selectValue(value) {
+      this.formThree.itemName = value.cname
+    },
+    //撤销
+    repealCancel() {
+      this.$confirm("您确定撤回此次申请吗?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        const data = {
+          id: this.form.id,
+          pageLabel: "出口报关",
+          importExportSigns: "BGCK"
+        }
+        const loading = this.$loading({
+          lock: true,
+          text: '加载中',
+          spinner: 'el-icon-loading',
+          background: 'rgba(255,255,255,0.7)'
+        });
+        repealCancel(data).then(res => {
+          loading.close();
+          this.$message.success('撤回成功')
+          this.refresh(this.form.id)
+        }).catch(() => {
+          loading.close();
+        })
+      })
+    },
+    // 请核
+    pleaseCheck() {
+      this.$confirm("您确定提交请核申请吗?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        this.$refs["form"].validate((valid, done) => {
+          done()
+          if (valid) {
+            if (this.dataList.length === 0) {
+              return this.$message.error("商品信息不能为空")
+            }
+            if (this.$refs.boxCost.dataList.length === 0) {
+              return this.$message.error("费用信息不能为空")
+            } else {
+              for (let item of this.$refs.boxCost.dataList) {
+                if (!item.id) {
+                  return this.$message.error("费用信息未保存")
+                }
+              }
+            }
+            let data = {
+              ...this.form,
+              itemList: this.dataList,
+              feesList: this.dataListTwo,
+              fileList: this.tradingBoxFilesList,
+              containerList:this.containerList,
+              documentsList:this.documentsList,
+              importExportSigns: "BGCK",
+            }
+            const loading = this.$loading({
+              lock: true,
+              text: '加载中',
+              spinner: 'el-icon-loading',
+              background: 'rgba(255,255,255,0.7)'
+            });
+            submit(data).then(res => {
+              const data = {
+                id: res.data.data.id,
+                url: '/purchase/exportDeclaration/index',
+                pageStatus: "this.$store.getters.domSaleStatus",
+                pageLabel: "出口报关",
+                checkFlag: 1,
+              }
+              pleaseCheck({
+                ...data,
+                importExportSigns: "BGCK"
+              }).then(rest => {
+                loading.close();
+                this.$message.success('请核成功')
+                this.refresh(res.data.data.id)
+              }).catch(() => {
+                loading.close();
+              })
+            }).catch(() => {
+              loading.close();
+            })
+          }
+        });
+      })
+    },
+    //审核关闭
+    choceScheduleFun() {
+      this.checkScheduleDialog = false
+    },
+    refresh(id, type) {
+      const loading = this.$loading({
+        lock: true,
+        text: '加载中',
+        spinner: 'el-icon-loading',
+        background: 'rgba(255,255,255,0.7)'
+      });
+      detail({id: id}).then(res => {
+        this.form = res.data.data
+        this.dataList = res.data.data.itemList
+        this.dataListTwo = res.data.data.feesList
+        this.tradingBoxFilesList = res.data.data.fileList
+        this.containerList = res.data.data.containerList
+        this.documentsList = res.data.data.documentsList
+        delete this.form.containerList
+        delete this.form.documentsList
+        delete this.form.itemList
+        delete this.form.feesList
+        delete this.form.fileList
+        loading.close();
+        if (type) {
+          //基础资料
+          this.$set(this.optionForm, "disabled", true)
+          //箱信息
+          this.$set(this.option, "disabled", true)
+          this.$set(this.option, "addBtn", false)
+          this.$set(this.option, "menu", false)
+          //集装箱
+          this.$set(this.optionTwo, "disabled", true)
+          this.$set(this.optionTwo, "addBtn", false)
+          this.$set(this.optionTwo, "menu", false)
+          //单证
+          this.$set(this.optionThree, "disabled", true)
+          this.$set(this.optionThree, "addBtn", false)
+          this.$set(this.optionThree, "menu", false)
+          //费用信息
+          this.$set(this.$refs.boxCost.option, "disabled", true)
+          this.$set(this.$refs.boxCost.option, "addBtn", false)
+          this.$set(this.$refs.boxCost.option, "menu", false)
+          //附件和顶部按钮
+          this.disabled = true
+        } else {
+          if (this.form.status > 0) {
+            //基础资料
+            this.$set(this.optionForm, "disabled", true)
+            //箱信息
+            this.$set(this.option, "disabled", true)
+            this.$set(this.option, "addBtn", false)
+            this.$set(this.option, "menu", false)
+            //集装箱
+            this.$set(this.optionTwo, "disabled", true)
+            this.$set(this.optionTwo, "addBtn", false)
+            this.$set(this.optionTwo, "menu", false)
+            //单证
+            this.$set(this.optionThree, "disabled", true)
+            this.$set(this.optionThree, "addBtn", false)
+            this.$set(this.optionThree, "menu", false)
+            //费用信息
+            this.$set(this.$refs.boxCost.option, "disabled", true)
+            this.$set(this.$refs.boxCost.option, "addBtn", false)
+            this.$set(this.$refs.boxCost.option, "menu", false)
+            //附件和顶部按钮
+            this.disabled = true
+          } else {
+            //基础资料
+            this.$set(this.optionForm, "disabled", false)
+            //箱信息
+            this.$set(this.option, "disabled", false)
+            this.$set(this.option, "addBtn", true)
+            this.$set(this.option, "menu", true)
+            //集装箱
+            this.$set(this.optionTwo, "disabled", false)
+            this.$set(this.optionTwo, "addBtn", true)
+            this.$set(this.optionTwo, "menu", true)
+            //单证
+            this.$set(this.optionThree, "disabled", false)
+            this.$set(this.optionThree, "addBtn", true)
+            this.$set(this.optionThree, "menu", true)
+            //费用信息
+            this.$set(this.$refs.boxCost.option, "disabled", false)
+            this.$set(this.$refs.boxCost.option, "addBtn", true)
+            this.$set(this.$refs.boxCost.option, "menu", true)
+            //附件和顶部按钮
+            this.disabled = false
+          }
+        }
+      })
+    },
+    //新增修改
+    editCustomer() {
+      this.$refs["form"].validate((valid, done) => {
+        done()
+        if (valid) {
+          let data = {
+            ...this.form,
+            itemList: this.dataList,
+            feesList: this.dataListTwo,
+            fileList: this.tradingBoxFilesList,
+            containerList:this.containerList,
+            documentsList:this.documentsList,
+            importExportSigns: "BGCK"
+          }
+          const loading = this.$loading({
+            lock: true,
+            text: '加载中',
+            spinner: 'el-icon-loading',
+            background: 'rgba(255,255,255,0.7)'
+          });
+          submit(data).then(res => {
+            if (this.form.id) {
+              this.$message.success("修改成功")
+            } else {
+              this.$message.success("新增成功")
+            }
+            loading.close();
+            this.refresh(res.data.data.id)
+          }).catch(() => {
+            loading.close();
+          })
+        }
+      });
+    },
+    rowSave(form, done, loading) {
+      done(form)
+    },
+    rowUpdate(form, index, done, loading) {
+      done(form)
+    },
+    //打开表单前
+    beforeOpen(done, type) {
+      done();
+    },
+    getGSData(row, type) {
+      // this[type[0]][type[1]] = row.cname
+      if (type[1] === "domesticName" || type[1] === "abroadName" || type[1] === "consumptionUnitName" || type[1] === "applicantName"){
+        this[type[0]][type[1]] = row.cname
+        this[type[0]][type[2]] = row.customsNo
+      }
+    },
+    backToList(type) {
+      if (type == 0) {
+        if (this.detailData.id) {
+          this.$router.push({
+            path: '/purchase/exportDeclaration/index'
+          });
+        }
+        this.$emit("backToList", type);
+      } else if (type == 1) {
+        this.$router.push({
+          path: '/approveData/index'
+        });
+        this.$emit("backToList", type);
+      }
+    },
+    //自定义列保存
+    async saveColumnTwo(ref, option, optionBack, code) {
+      /**
+       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+       */
+      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    },
+    resetTrigger() {
+      if (this.optionForm.disabled == true) {
+        if (this.form.status > 0) {
+          //基础资料
+          this.$set(this.optionForm, "disabled", true)
+          //箱信息
+          this.$set(this.option, "disabled", true)
+          this.$set(this.option, "addBtn", false)
+          this.$set(this.option, "menu", false)
+          //集装箱
+          this.$set(this.optionTwo, "disabled", true)
+          this.$set(this.optionTwo, "addBtn", false)
+          this.$set(this.optionTwo, "menu", false)
+          //单证
+          this.$set(this.optionThree, "disabled", true)
+          this.$set(this.optionThree, "addBtn", false)
+          this.$set(this.optionThree, "menu", false)
+          //费用信息
+          this.$set(this.$refs.boxCost.option, "disabled", true)
+          this.$set(this.$refs.boxCost.option, "addBtn", false)
+          this.$set(this.$refs.boxCost.option, "menu", false)
+          //附件和顶部按钮
+          this.disabled = true
+        } else {
+          //基础资料
+          this.$set(this.optionForm, "disabled", false)
+          //箱信息
+          this.$set(this.option, "disabled", false)
+          this.$set(this.option, "addBtn", true)
+          this.$set(this.option, "menu", true)
+          //集装箱
+          this.$set(this.optionTwo, "disabled", false)
+          this.$set(this.optionTwo, "addBtn", true)
+          this.$set(this.optionTwo, "menu", true)
+          //单证
+          this.$set(this.optionThree, "disabled", false)
+          this.$set(this.optionThree, "addBtn", true)
+          this.$set(this.optionThree, "menu", true)
+          //费用信息
+          this.$set(this.$refs.boxCost.option, "disabled", false)
+          this.$set(this.$refs.boxCost.option, "addBtn", true)
+          this.$set(this.$refs.boxCost.option, "menu", true)
+          //附件和顶部按钮
+          this.disabled = false
+        }
+      } else {
+        //基础资料
+        this.$set(this.optionForm, "disabled", false)
+        //箱信息
+        this.$set(this.option, "disabled", false)
+        this.$set(this.option, "addBtn", true)
+        this.$set(this.option, "menu", true)
+        //集装箱
+        this.$set(this.optionTwo, "disabled", false)
+        this.$set(this.optionTwo, "addBtn", true)
+        this.$set(this.optionTwo, "menu", true)
+        //单证
+        this.$set(this.optionThree, "disabled", false)
+        this.$set(this.optionThree, "addBtn", true)
+        this.$set(this.optionThree, "menu", true)
+        //费用信息
+        this.$set(this.$refs.boxCost.option, "disabled", false)
+        this.$set(this.$refs.boxCost.option, "addBtn", true)
+        this.$set(this.$refs.boxCost.option, "menu", true)
+        //附件和顶部按钮
+        this.disabled = false
+      }
+    },
+    //自定义列重置
+    async resetColumnTwo(ref, option, optionBack, code) {
+      this[option] = this[optionBack];
+      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+      if (inSave) {
+        this.resetTrigger()
+        this.$message.success("重置成功");
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+::v-deep .el-form-item {
+  margin-bottom: 8px;
+}
+</style>

+ 254 - 0
src/views/purchase/exportDeclaration/index.vue

@@ -0,0 +1,254 @@
+<template>
+  <div>
+    <basic-container v-show="!detailsOpen">
+      <avue-crud
+          :option="option"
+          :search.sync="search"
+          v-model="form"
+          :table-loading="loading"
+          :data="dataList"
+          ref="crud"
+          :key="key"
+          @on-load="onLoad"
+          @search-change="searchChange"
+          @row-del="rowDel"
+          @refresh-change="refreshChange"
+          @resetColumn="resetColumnTwo('crud','option','optionList',246)"
+          @saveColumn="saveColumnTwo('crud','option','optionList',246)"
+          :page.sync="page">
+        <template slot-scope="{type,size,row,$index}" slot="menu">
+          <el-button icon="el-icon-view" :size="size" :type="type" @click="check(row)">查看</el-button>
+          <el-button icon="el-icon-delete" :size="size" v-if="row.status == 0" :type="type" @click="$refs.crud.rowDel(row,$index)">删除
+          </el-button>
+        </template>
+        <template slot-scope="{type,size,row,$index}" slot="menuLeft">
+          <el-button icon="el-icon-plus" type="primary" :size="size" @click="detailsOpen = true">创建单据</el-button>
+          <el-button class="el-icon-document-copy" type="success" size="small">复制单据</el-button>
+          <el-button class="el-icon-download" type="warning" size="small">导出</el-button>
+        </template>
+      </avue-crud>
+    </basic-container>
+  <detailsPage v-if="detailsOpen" :onLoad="form" :detailData="detailData" @backToList="backToList"></detailsPage>
+  </div>
+</template>
+
+<script>
+import {getList, remove} from "@/api/importTrade/importDeclaration.js";
+import detailsPage from "./detailsPage"
+
+export default {
+  name: "index",
+  components: {
+    detailsPage
+  },
+  data() {
+    return {
+      detailsOpen: false,
+      loading: false,
+      search: {},
+      form: {},
+      dataList: [],
+      detailData: {},
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      key:0,
+      option: {},
+      optionList: {
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        addBtn: false,
+        index: true,
+        span: 8,
+        border: true,
+        height:"auto",
+        searchMenuPosition: "right",
+        align: "center",
+        menuWidth:140,
+        searchSpan: 8,
+        searchIcon: true,
+        searchIndex: 2,
+        highlightCurrentRow: true,
+        dialogWidth: "70%",
+        column: [{
+          label: '申报日期',
+          prop: 'declareDate',
+          searchProp: 'declareDateList',
+          width: 120,
+          search: true,
+          overHidden: true,
+          type: "date",
+          searchRange: true,
+          searchDefaultTime: ["00:00:00", "23:59:59"],
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss"
+        }, {
+          label: '统一编号',
+          prop: 'unifiedNumbering',
+          width: 170,
+          search: true,
+          overHidden: true,
+        }, {
+          label: '预录入编号',
+          prop: 'preEntryNo',
+          search: true,
+          overHidden: true,
+          width: 170
+        }, {
+          label: '海关编号',
+          prop: 'customsNo',
+          width: 200,
+          search: true,
+          overHidden: true,
+        }, {
+          label: '提运单号',
+          prop: 'deliveryNumbers',
+          width: 120,
+          search: true,
+          overHidden: true,
+        }, {
+          label: '申报地海关',
+          prop: 'customsDeclarationPlace',
+          width: 120,
+          filterable: true,
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=customs",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          },
+          overHidden: true,
+          search: true,
+        }, {
+          label: '状态',
+          prop: 'status',
+          width: 140,
+          search: true,
+          overHidden: true,
+          filterable: true,
+          type: 'select',
+          dataType: 'number',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=declaration_status",
+          props: {
+            label: "dictValue",
+            value: "dictKey"
+          }
+        }]
+      }
+    }
+  },
+  activated() {
+    if (this.$route.query.check) {
+      this.detailsOpen = false
+      this.detailData = {
+        id: this.$route.query.check.billId,
+        check: this.$route.query.check,
+      };
+      this.form = {
+        id:this.$route.query.check.billId
+      }
+      this.detailsOpen = true
+      this.$router.$avueRouter.closeTag(window.location.hash.slice(1))
+    }
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(246), this.optionList);
+    this.key++
+    let i = 0;
+    this.option.column.forEach(item => {
+      if (item.search) i++
+    })
+    if (i % 3 !== 0) {
+      const num = 3 - Number(i % 3)
+      this.option.searchMenuSpan = num * 8;
+      this.option.searchMenuPosition = "right";
+    }
+  },
+  methods: {
+    check(row){
+      this.form = row
+      this.detailsOpen = true
+    },
+    backToList(type) {
+      this.form = {}
+      this.detailsOpen = false
+      if (type === 0){
+        this.detailData = {}
+      }
+      this.onLoad(this.page,this.search)
+    },
+    //刷新
+    refreshChange() {
+      this.onLoad(this.page, this.search)
+    },
+    rowDel(form, index) {
+      this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        remove(form.id).then(res => {
+          this.$message({
+            type: 'success',
+            message: '删除成功!'
+          });
+        })
+      }).catch(() => {
+      });
+    },
+    searchChange(params, done) {
+      done();
+      this.onLoad(this.page, params)
+    },
+    onLoad(page, params = {}) {
+      params = {
+        ...params,
+        current: page.currentPage,
+        size: page.pageSize,
+        importExportSigns: "BGCK",
+        ...Object.assign(params, this.search)
+      }
+      this.loading = true
+      getList(params).then(res => {
+        this.dataList = res.data.data.records
+        this.page.total = res.data.data.total
+        this.loading = false
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+
+//自定义列保存
+    async saveColumnTwo(ref, option, optionBack, code) {
+      /**
+       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+       */
+      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    },
+//自定义列重置
+    async resetColumnTwo(ref, option, optionBack, code) {
+      this[option] = this[optionBack];
+      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+      if (inSave) {
+        this.$message.success("重置成功");
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 2 - 2
src/views/purchase/importDeclaration/detailsPage.vue

@@ -20,9 +20,9 @@
             审核处理<i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item @click.native="pleaseCheck" :disabled="form.status>0">请核数据</el-dropdown-item>
+            <el-dropdown-item @click.native="pleaseCheck" :disabled="!(form.status === 0 || form.status === 4)">请核数据</el-dropdown-item>
             <el-dropdown-item @click.native="checkScheduleDialog = true,checkId = form.id">审核进度</el-dropdown-item>
-            <el-dropdown-item @click.native="repealCancel" :disabled="form.status === 0 || !form.status"
+            <el-dropdown-item @click.native="repealCancel" :disabled="!(form.status === 1 || form.status === 5)"
                               v-if="!detailData.id">撤销请核
             </el-dropdown-item>
             <!--            <el-dropdown-item @click.native="changeApproveOpen">特殊审批</el-dropdown-item>-->