wangqian 1 тиждень тому
батько
коміт
9ec54adc5d

+ 1 - 1
wxjy-wxjy-web/src/App.vue

@@ -28,7 +28,7 @@
               <el-icon>
                 <ScaleToOriginal />
               </el-icon>
-              <span>表头信息</span>
+              <span>危化品组合查询</span>
             </el-menu-item>
           </router-link>
         </el-sub-menu>

+ 29 - 0
wxjy-wxjy-web/src/apis/analyze/goodsEntry.ts

@@ -0,0 +1,29 @@
+import type { AxiosResponse } from 'axios'
+import type { PageInfo, Result } from '@cacp/ui'
+import request from '@/utils/request'
+import download from 'js-file-download'
+
+import type {EntryInfo, Entry, EntryQuery, EntryQuery1} from '@/types/analyze/goodsEntry'
+
+const contextPath = '/analyze/goodsEntry'
+//获取单据
+export async function getEntryHead(entryId: string): Promise<Result<EntryInfo>> {
+  const res: AxiosResponse<Result<EntryInfo>> = await request.get(`${contextPath}/get-entry?entryId=${entryId}`)
+  return res.data
+}
+
+// 查询危险品报关单头列表
+export async function getList(query: EntryQuery): Promise<Result<PageInfo<Entry>>> {
+  const res: AxiosResponse<Result<PageInfo<Entry>>> = await request.post(`${contextPath}/get-list`, query)
+  return res.data
+}
+
+//获取单据列表
+export async function exportList(query: EntryQuery1): Promise<void> {
+  const res: AxiosResponse<Result<any>> = await request.post(`${contextPath}/goods-export`, query, {
+    responseType: 'arraybuffer'
+  })
+  if (res.status === 200) {
+    download(res.request.response, "业务查询.xlsx", 'application/octet-stream')
+  }
+}

+ 19 - 2
wxjy-wxjy-web/src/router/app-router.ts

@@ -58,7 +58,24 @@ const routers: Array<RouteRecordRaw> = [
     component: () => import('@/views/analyze/NewDeclaredGoods.vue'),
     meta: {
       title: '事后通知',
-      permissions:"ANALYZE_NEWDECLAREDGOODS_VIEW_BT"
+      permissions:"NEW_DECLARED_GOODS_VIEW_BT"
+    }
+  },
+  {
+    path: '/analyze/goods-entry',
+    name: 'goodsEntry',
+    component: () => import('@/views/analyze/GoodsEntry.vue'),
+    meta: {
+      title: '表头',
+    }
+  },
+  {
+    path: '/get-goods',
+    component: () => import('@/views/analyze/GoodsEntryDetail.vue'),
+    meta: {
+      title: '报关单详情',
+      keepAlive: false,
+      permissions:"CHECK_VIEW_BT"
     }
   },
   {
@@ -67,7 +84,7 @@ const routers: Array<RouteRecordRaw> = [
     component: () => import('@/views/statReport/CustomMStatF.vue'),
     meta: {
       title: '申报地海关报表',
-      permissions:"STAT_REPORT_CUSTOMMSTATF_VIEW_BT"
+      permissions:"CUSTOMS_STATF_VIEW_BT"
     }
   },
 ]

+ 199 - 0
wxjy-wxjy-web/src/types/analyze/goodsEntry.ts

@@ -0,0 +1,199 @@
+// 危险品报关单头
+export interface Entry {
+  id?: string
+  entryId?: string
+  mainStatus?: string
+  passMode?: string
+  trafMode?: string
+  ieFlag?: string
+  iePort?: string
+  declPort?: string
+  customsCode?: string
+  ieDate?: string
+  declDate?: string
+  declAdvanceFlag?: string
+  acceptDate?: string
+  exInPortDate?: string
+  consignScc?: string
+  consignCode?: string
+  consignName?: string
+  frnConsignCode?: string
+  frnConsignName?: string
+  tradeMode?: string
+  tradeCountry?: string
+  grossWt?: string
+  netWt?: string
+  rmbPrice?: string
+  usdPrice?: string
+  container?: string
+  declMode?: string
+  declStatus?: string
+  orderReceiveDate?: string
+  orderReceiveCost?: string
+  certRlsDate?: string
+  preReleaseDate?: string
+  agentCode?: string
+  agentName?: string
+  noteS?: string
+  ownerCode?: string
+  ownerName?: string
+  examDate?: string
+  checkDate?: string
+  compEleDate?: string
+  releaseDate?: string
+  cuCost?: string
+  totalCost?: string
+  beforeDeclCost?: string
+  profVerifyFlag?: string
+  newTwoStepFlag?: string
+  eleDeclDate?: string
+  assessStartDate?: string
+  assessEndDate?: string
+  refundDate?: string
+  refundFlag?: string
+  manCreateTime?: string
+  manChkTimeStart?: string
+  manChkTimeEnd?: string
+  checkCustomsCode?: string
+  checkFlag?: string
+  manProcResult?: string
+  manProcIdea?: string
+  gno?: number
+  codeTs?: string
+  iqCode?: string
+  gname?: string
+  gmodel?: string
+  qty1?: number
+  rmbPriceList?: number
+  usdPriceList?: number
+  codeTsShort?: string
+  gCertFlag?: string
+  ungid?: string
+  ungFlag?: string
+  ungModel?: string
+  ungClassify?: string
+  ungGName?: string
+  productCharCode?: string
+  goodsType?: string
+}
+
+export interface Head {
+  entryId?: string
+  mainStatus?: string
+  passMode?: string
+  trafMode?: string
+  ieFlag?: string
+  iePort?: string
+  declPort?: string
+  customsCode?: string
+  ieDate?: string
+  declDate?: string
+  declAdvanceFlag?: string
+  acceptDate?: string
+  exInPortDate?: string
+  consignScc?: string
+  consignCode?: string
+  consignName?: string
+  frnConsignCode?: string
+  frnConsignName?: string
+  tradeMode?: string
+  tradeCountry?: string
+  grossWt?: string
+  netWt?: string
+  rmbPrice?: string
+  usdPrice?: string
+  container?: string
+  declMode?: string
+  declStatus?: string
+  orderReceiveDate?: string
+  orderReceiveCost?: string
+  certRlsDate?: string
+  preReleaseDate?: string
+  agentCode?: string
+  agentName?: string
+  noteS?: string
+  ownerCode?: string
+  ownerName?: string
+  examDate?: string
+  checkDate?: string
+  compEleDate?: string
+  releaseDate?: string
+  cuCost?: string
+  totalCost?: string
+  beforeDeclCost?: string
+  profVerifyFlag?: string
+  newTwoStepFlag?: string
+  eleDeclDate?: string
+  assessStartDate?: string
+  assessEndDate?: string
+  refundDate?: string
+  refundFlag?: string
+  manCreateTime?: string
+  manChkTimeStart?: string
+  manChkTimeEnd?: string
+  checkCustomsCode?: string
+  checkFlag?: string
+  manProcResult?: string
+  manProcIdea?: string
+}
+
+export interface List {
+  id?: string
+  entryId?: string
+  gno?: number
+  codeTs?: string
+  iqCode?: string
+  gname?: string
+  gmodel?: string
+  qty1?: number
+  rmbPriceList?: number
+  usdPriceList?: number
+  codeTsShort?: string
+  gCertFlag?: string
+  ungid?: string
+  ungFlag?: string
+  ungModel?: string
+  ungClassify?: string
+  ungGName?: string
+  productCharCode?: string
+  goodsType?: string
+}
+
+// 危险品报关单头查询参数
+export interface EntryQuery {
+  entryId?: string
+  passMode?: string
+  trafMode?: string
+  ieFlag?: string
+  iePort?: string
+  customsCode?: string
+  tradeMode?: string
+  declMode?: string
+  checkFlag?: string
+  beginReleaseDate?: string
+  endReleaseDate?: string
+  goodsType?: string
+  pageIndex?: number
+  pageSize?: number
+}
+
+export interface EntryQuery1 {
+  entryId?: string
+  passMode?: string
+  trafMode?: string
+  ieFlag?: string
+  iePort?: string
+  customsCode?: string
+  tradeMode?: string
+  declMode?: string
+  checkFlag?: string
+  beginReleaseDate?: string
+  endReleaseDate?: string
+  goodsType?: string
+}
+
+
+export interface EntryInfo {
+  info: Head
+  list: List[]
+}

+ 506 - 0
wxjy-wxjy-web/src/views/analyze/GoodsEntry.vue

@@ -0,0 +1,506 @@
+<template>
+  <cacp-search-layout>
+    <template #search>
+      <cacp-search-panel-layout
+          :model="state.queryData"
+          ref="formRef"
+          :rules="rules"
+          label-position="left"
+          label-width="auto"
+          :gutter="30"
+          :colSpan="6"
+      >
+        <el-form-item label="报关单号" prop="entryId">
+          <el-input v-model="state.queryData.entryId" clearable />
+        </el-form-item>
+        <el-form-item label="通关模式" prop="passMode">
+          <el-select v-model="state.queryData.passMode" clearable>
+            <el-option
+                v-for="item in dict.pass_mode"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="运输方式" prop="trafMode">
+          <el-select v-model="state.queryData.trafMode" filterable clearable>
+            <el-option
+                v-for="item in trafMode"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              <span style="float: left">{{ item.label }}</span>
+              <span style="float: right;color: var(--el-text-color-secondary);font-size: 13px;">
+                {{ item.value }}
+                  </span>
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="进出口标识" prop="ieFlag">
+          <el-select v-model="state.queryData.ieFlag" clearable>
+            <el-option
+                v-for="item in dict.ie_flag"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+            />
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="进出境口岸" prop="iePort">
+          <el-select v-model="state.queryData.iePort" filterable
+                     clearable>
+            <el-option
+                v-for="item in iePort"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+            >
+              <span style="float: left">{{ item.label }}</span>
+              <span style="float: right;color: var(--el-text-color-secondary);font-size: 13px;">
+                {{ item.value }}
+                  </span>
+            </el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="隶属海关" prop="customsCode" v-if="state.isSelect">
+          <el-select v-model="state.queryData.customsCode"
+                     clearable>
+            <el-option
+                v-for="item in dict.affiliation_customs_info"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="监管方式" prop="tradeMode">
+          <el-select v-model="state.queryData.tradeMode" clearable>
+            <el-option
+                v-for="item in tradeMode"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              <span style="float: left">{{ item.label }}</span>
+              <span style="float: right;color: var(--el-text-color-secondary);font-size: 13px;">
+                {{ item.value }}
+                  </span>
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="报关模式" prop="declMode">
+          <el-select v-model="state.queryData.declMode"
+                     clearable>
+            <el-option
+                v-for="item in dict.decl_mode"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否查验" prop="checkFlag">
+          <el-select v-model="state.queryData.checkFlag"
+                     clearable>
+            <el-option
+                v-for="item in dict.yes_no"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+            />
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="结关开始时间" prop="beginReleaseDate">
+          <el-date-picker v-model="state.queryData.beginReleaseDate" clearable />
+        </el-form-item>
+        <el-form-item label="结关结束时间" prop="endReleaseDate">
+          <el-date-picker v-model="state.queryData.endReleaseDate" clearable />
+        </el-form-item>
+        <template #buttonGroup>
+          <el-button type="primary" @click="onSearch">查询</el-button>
+          <el-button type="info" @click="onReset">重置</el-button>
+        </template>
+      </cacp-search-panel-layout>
+    </template>
+    <cacp-complex-table
+        :actions="actions"
+        :data="tableData"
+        :pagination="tablePagination"
+        :actionsWidth="50"
+        @on-page-change="onPageChange"
+        @on-size-change="onSizeChange"
+        :loading="loading"
+    >
+      <el-table-column property="entryId" label="报关单号" sortable  width="160" />
+      <el-table-column property="passMode" label="通关模式" width="80">
+        <template #default="scope">
+          <dict-tag :options="dict.pass_mode" :dictValue="scope.row.passMode"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="trafMode" label="运输方式" width="80">
+        <template #default="scope">{{ formatTrafMode(scope.row.trafMode) }}</template>
+      </el-table-column>
+      <el-table-column property="ieFlag" label="出入境标志" width="90" >
+        <template #default="scope">
+          <dict-tag :options="dict.ie_flag" :dictValue="scope.row.ieFlag"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="iePort" label="进出境口岸" width="100" >
+        <template #default="scope">{{ formatIePort(scope.row.iePort) }}</template>
+      </el-table-column>
+      <el-table-column property="customsCode" label="主管海关" width="100">
+        <template #default="scope">
+          <dict-tag :options="dict.affiliation_customs_info" :dictValue="scope.row.customsCode"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="tradeMode" label="监管方式" width="80" >
+        <template #default="scope">{{ formatTradeMode(scope.row.tradeMode) }}</template>
+      </el-table-column>
+      <el-table-column property="declMode" label="报关模式" width="80" >
+        <template #default="scope">
+          <dict-tag :options="dict.decl_mode" :dictValue="scope.row.declMode"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="tradeCountry" label="贸易国别" width="80" >
+        <template #default="scope">{{ formatCountryIso(scope.row.tradeCountry) }}</template>
+      </el-table-column>
+      <el-table-column property="ieDate" label="进出口时间" sortable width="150">
+        <template #default="scope">{{ scope.row.ieDate ? dayjs(scope.row.ieDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="declDate" label="申报时间" sortable width="150">
+        <template #default="scope">{{ scope.row.declDate ? dayjs(scope.row.declDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="declAdvanceFlag" label="是否提前申报" width="80" >
+        <template #default="scope">
+          <dict-tag :options="dict.yes_no" :dictValue="scope.row.declAdvanceFlag"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="acceptDate" label="自动受理时间" sortable width="150">
+        <template #default="scope">{{ scope.row.acceptDate ? dayjs(scope.row.acceptDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="exInPortDate" label="货物进港时间" sortable width="150">
+        <template #default="scope">{{ scope.row.exInPortDate ? dayjs(scope.row.exInPortDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="consignCode" label="境内收发货人代码" width="130"/>
+      <el-table-column property="consignName" label="境内收发货人名称" :show-overflow-tooltip="true" min-width="200">
+      </el-table-column>
+      <el-table-column property="frnConsignCode" label="境外收发货人代码" width="130"/>
+      <el-table-column property="frnConsignName" label="境外收发货人名称(中文)" :show-overflow-tooltip="true" min-width="200">
+      </el-table-column>
+      <el-table-column property="grossWt" label="货运量毛重" width="100"/>
+      <el-table-column property="netWt" label="货运量净重" width="100"/>
+      <el-table-column property="rmbPrice" label="货运值人民币(总)" width="130"/>
+      <el-table-column property="usdPrice" label="货运值美元(总)" width="130"/>
+      <el-table-column property="orderReceiveDate" label="现场接单时间" sortable width="150">
+        <template #default="scope">{{ scope.row.orderReceiveDate ? dayjs(scope.row.orderReceiveDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="orderReceiveCost" label="接单耗时(小时)" width="130"/>
+      <el-table-column property="certRlsDate" label="单证放行时间" sortable width="150">
+        <template #default="scope">{{ scope.row.certRlsDate ? dayjs(scope.row.certRlsDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="preReleaseDate" label="担保放行时间" sortable width="150">
+        <template #default="scope">{{ scope.row.preReleaseDate ? dayjs(scope.row.preReleaseDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="agentCode" label="申报单位代码" width="130"/>
+      <el-table-column property="agentName" label="申报单位名称" :show-overflow-tooltip="true" min-width="200">
+      </el-table-column>
+      <el-table-column property="noteS" label="备注" :show-overflow-tooltip="true" min-width="200"/>
+      <el-table-column property="ownerCode" label="生产销售单位代码" width="130"/>
+      <el-table-column property="ownerName" label="生产销售单位名称" :show-overflow-tooltip="true" min-width="200">
+      </el-table-column>
+      <el-table-column property="examDate" label="转关数据发送时间" sortable width="150">
+        <template #default="scope">{{ scope.row.examDate ? dayjs(scope.row.examDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="checkDate" label="转关数据核销时间" sortable width="150">
+        <template #default="scope">{{ scope.row.checkDate ? dayjs(scope.row.checkDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="releaseDate" label="结关时间" sortable width="150">
+        <template #default="scope">{{ scope.row.releaseDate ? dayjs(scope.row.releaseDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="cuCost" label="海关通关时间(小时)" width="130"/>
+      <el-table-column property="totalCost" label="整体通关时间(小时)" width="130"/>
+      <el-table-column property="beforeDeclCost" label="申报前准备时间(小时)" width="130"/>
+      <el-table-column property="profVerifyFlag" label="是否专业审单" width="80" >
+        <template #default="scope">
+          <dict-tag :options="dict.yes_no" :dictValue="scope.row.profVerifyFlag"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="newTwoStepFlag" label="是否新两步申报" width="80" >
+        <template #default="scope">
+          <dict-tag :options="dict.yes_no" :dictValue="scope.row.newTwoStepFlag"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="assessStartDate" label="现场验估时间" sortable width="150">
+        <template #default="scope">{{ scope.row.assessStartDate ? dayjs(scope.row.assessStartDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="assessEndDate" label="验估处置完毕时间" sortable width="150">
+        <template #default="scope">{{ scope.row.assessEndDate ? dayjs(scope.row.assessEndDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="checkFlag" label="是否查验" width="80" >
+        <template #default="scope">
+          <dict-tag :options="dict.yes_no" :dictValue="scope.row.checkFlag"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="checkCustomsCode" label="查验海关" width="100">
+        <template #default="scope">
+          <dict-tag :options="dict.affiliation_customs_info" :dictValue="scope.row.checkCustomsCode"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="manCreateTime" label="查验指令下达时间" sortable width="150">
+        <template #default="scope">{{ scope.row.manCreateTime ? dayjs(scope.row.manCreateTime).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="manChkTimeStart" label="查验开始时间" sortable width="150">
+        <template #default="scope">{{ scope.row.manChkTimeStart ? dayjs(scope.row.manChkTimeStart).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="manChkTimeEnd" label="查验结束时间" sortable width="150">
+        <template #default="scope">{{ scope.row.manChkTimeEnd ? dayjs(scope.row.manChkTimeEnd).format('YYYY-MM-DD HH:mm:ss'):'' }}</template>
+      </el-table-column>
+      <el-table-column property="manProcResult" label="处理结果" width="100">
+        <template #default="scope">
+          <dict-tag :options="dict.affiliation_customs_info" :dictValue="scope.row.manProcResult"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="manProcIdea" label="处理意见" width="100">
+        <template #default="scope">
+          <dict-tag :options="dict.affiliation_customs_info" :dictValue="scope.row.manProcIdea"/>
+        </template>
+      </el-table-column>
+      <el-table-column property="gno" label="商品项号"  width="60" />
+      <el-table-column property="iqCode" label="检验检疫编码" width="80" />
+      <el-table-column property="codeTs" label="商品编码" width="80" />
+      <el-table-column property="gname" label="商品名称" :show-overflow-tooltip="true" min-width="120" />
+      <el-table-column property="gmodel" label="规格型号" :show-overflow-tooltip="true" min-width="120" />
+      <el-table-column property="qty1" label="第一(法定)数量" width="80" />
+      <el-table-column property="rmbPriceList" label="商品货运值人民币" width="130"/>
+      <el-table-column property="usdPriceList" label="商品货运值美元" width="130"/>
+      <el-table-column property="gCertFlag" label="每项商品需要监管证件" width="130"/>
+      <el-table-column property="ungid" label="UN编码" width="130"/>
+      <el-table-column property="ungClassify" label="危包类别" width="130"/>
+      <el-table-column property="ungGName" label="危险货物名称" :show-overflow-tooltip="true" min-width="120"/>
+      <el-table-column property="productCharCode" label="货物属性代码" width="130"/>
+      <el-table-column property="goodsType" label="危险品类型" width="130">
+        <template #default="scope">
+          <dict-tag :options="dict.goods_type" :dictValue="scope.row.goodsType"/>
+        </template>
+      </el-table-column>
+    </cacp-complex-table>
+  </cacp-search-layout>
+</template>
+<script setup lang="ts">
+import { useLoading } from '@cacp/ui'
+import { exportList, getList} from '@/apis/analyze/goodsEntry'
+import type {EntryQuery, Entry} from '@/types/analyze/goodsEntry'
+import config from '@/config'
+import { getBaseCodeList } from '@/apis/base/baseCode'
+
+import dayjs from 'dayjs'
+
+import {
+  SuccessResultCode,
+  useComplexTable,
+  type SearchPanelLayoutInstance,
+  type TableAction
+} from '@cacp/ui'
+import type { FormRules } from 'element-plus'
+import { ref, reactive, onBeforeMount } from 'vue'
+import { useRouter } from 'vue-router'
+import { permissionStatus } from '@/utils/globalPermission'
+import { useDictType } from '@/components/useDict'
+import { useCoreStore } from '@/stores'
+const coreStore = useCoreStore()
+
+interface State {
+  queryData: EntryQuery
+  isSelect: boolean
+}
+const { loading, setLoading } = useLoading()
+const { dict } = useDictType('affiliation_customs_info', 'proc_idea', 'proc_result', 'yes_no', 'decl_mode', 'pass_mode', 'ie_flag','goods_type')
+const tableHooks = useComplexTable<Entry>(config)
+const { tableData, tablePagination, setPagination, setPageIndex, setPageSizes } = tableHooks
+const router = useRouter()
+
+const formRef = ref<SearchPanelLayoutInstance>()
+//基础数据返回jsonObject
+const iePort = ref([]);
+const trafMode = ref([]);
+const tradeMode = ref([]);
+const tradeCountry = ref([]);
+const countryIso = ref([]);
+
+const now = dayjs()
+
+const state = reactive<State>({
+  queryData: {
+    entryId: '',
+    beginReleaseDate: now.subtract(1, 'month').format('YYYY-MM-DD'),
+    endReleaseDate: now.format('YYYY-MM-DD'),
+    ieFlag: '',
+    iePort: '',
+    customsCode: '',
+    passMode: '',
+    trafMode: '',
+    tradeMode: '',
+    declMode: '',
+    checkFlag: '',
+    goodsType: '1'
+  },
+  isSelect: false,
+})
+const rules = reactive<FormRules<EntryQuery>>({
+  beginReleaseDate: [{ required: true, message: '请输入结关开始时间', trigger: 'change' }],
+  endReleaseDate: [{ required: true, message: '请输入结关结束时间', trigger: 'change' }]
+})
+
+const actions = <Array<TableAction>>[
+  {
+    key: '1',
+    text: '查看',
+    onclick: onView,
+    limit: permissionStatus('one', 'GOODS_ENTRY_VIEW_BT'),
+    type: 'primary'
+  },
+  {
+    key: '2',
+    text: '导出',
+    confirm: true,
+    onclick: onExportData,
+    limit: permissionStatus('none', 'GOODS_ENTRY_EXPORT_BT'),
+    type: 'primary'
+  }
+]
+
+function onSearch() {
+  onPageChange(1)
+}
+
+function onReset() {
+  formRef.value.resetFields()
+  onPageChange(1)
+}
+
+function onView(row: Entry) {
+  router.push({
+    path: '/get-goods',
+    query: {
+      entryId: row.entryId
+    }
+  })
+}
+
+function onPageChange(page: number) {
+  setPageIndex(page)
+  onLoadData()
+}
+function onSizeChange(size: number) {
+  setPageSizes(size)
+  onLoadData()
+}
+
+// 运输方式
+function formatTrafMode(code: string): string {
+  const result = trafMode.value.find((item) => item.value == code)
+  if (result) {
+    return result.label
+  }
+  return ''
+}
+
+// 监管方式
+function formatTradeMode(code: string): string {
+  const result = tradeMode.value.find((item) => item.value == code)
+  if (result) {
+    return result.label
+  }
+  return ''
+}
+
+// 监管方式
+function formatCountryIso(code: string): string {
+  const result = countryIso.value.find((item) => item.value == code)
+  if (result) {
+    return result.label
+  }
+  return ''
+}
+
+// 进出境口岸
+function formatIePort(code: string): string {
+  const result = iePort.value.find((item) => item.value == code)
+  if (result) {
+    return result.label
+  }
+  return ''
+}
+// 加载数据
+async function onLoadData() {
+  const loginCustomsCode = coreStore.currentUser.customsCode;
+  if("4700" === loginCustomsCode){
+    state.isSelect = true;
+  }else{
+    state.queryData.customsCode = loginCustomsCode;
+    state.isSelect = false;
+  }
+  console.log(state.isSelect);
+  const query = { ...state.queryData, pageIndex: tablePagination.currentPage, pageSize: tablePagination.pageSize }
+  setLoading(true)
+  const res = await getList(query)
+  if (res.code == SuccessResultCode) {
+    setPagination(res.data)
+  }
+  // const port = await getBaseCodeList("customsCode")
+  // if (port.code == SuccessResultCode) {
+  //   iePort.value = port.data
+  // }
+  setLoading(false)
+}
+
+// 加载数据
+async function onExportData() : Promise<void>{
+  const query = { ...state.queryData}
+  await exportList(query);
+}
+
+async function getTrafMode() {
+  const traf = await getBaseCodeList("TransitMode")
+  if (traf.code == SuccessResultCode) {
+    trafMode.value = traf.data
+  }
+}
+
+async function getCustoms() {
+  const traf = await getBaseCodeList("customsCode")
+  if (traf.code == SuccessResultCode) {
+    iePort.value = traf.data
+  }
+}
+
+async function getTradeMode() {
+  const traf = await getBaseCodeList("tradeCode")
+  if (traf.code == SuccessResultCode) {
+    tradeMode.value = traf.data
+  }
+}
+
+async function getTradeCountry() {
+  const traf = await getBaseCodeList("countryCode")
+  if (traf.code == SuccessResultCode) {
+    tradeCountry.value = traf.data
+  }
+}
+
+async function getCountryIso() {
+  const traf = await getBaseCodeList("countryIsoE")
+  if (traf.code == SuccessResultCode) {
+    countryIso.value = traf.data
+  }
+}
+
+onBeforeMount(async () => {
+  await Promise.all([ getCustoms(),getTrafMode(),getTradeMode(),getTradeCountry(),getCountryIso()])
+  onLoadData()
+//  console.log(dict);
+})
+</script>

+ 450 - 0
wxjy-wxjy-web/src/views/analyze/GoodsEntryDetail.vue

@@ -0,0 +1,450 @@
+<template>
+  <el-scrollbar class="typical-three" v-loading="loading">
+    <el-row justify="space-between">
+      <el-col :span="10">
+          <span class="back-btn" @click="onGoBack"
+          ><el-icon :size="20" class="back"><Back /></el-icon></span>
+      </el-col>
+    </el-row>
+    <cacp-group-container title="基础信息">
+      <template #content>
+        <div class="cacp-complex__table" @mouseover="changeHoverEle" @mouseleave="visible = false">
+          <el-row>
+            <el-col class="cacp-complex__label--title" :span="2">报关单号</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.entryId }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">通关模式</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.passMode }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">运输方式</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ formatTrafMode(info.trafMode) }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">进出口标记</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">
+              <dict-tag :options="dict.ie_flag" :value="info.ieFlag"/></el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">出入境口岸</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="4">{{ formatIePort(info.iePort) }}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">主管海关</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="4">{{ formatIePort(info.customsCode) }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">监管方式</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ formatTradeMode(info.tradeMode) }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">报关模式</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.declMode }}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">贸易国别</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="4">{{ formatCountryIso(info.tradeCountry) }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">申报日期</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.declDate ? dayjs(info.declDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">进口日期</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.ieDate ? dayjs(info.ieDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">是否提前申报</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.declAdvanceFlag }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">自动受理时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.acceptDate ? dayjs(info.acceptDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">货物进港时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.exInPortDate ? dayjs(info.exInPortDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+
+            <el-col class="cacp-complex__label--yellow" :span="2">申报单位</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="10">{{ info.agentName}}/{{ info.agentCode }}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">境内收发货人</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="10">{{ info.consignName }}/{{ info.consignCode}}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">消费使用单位</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="10">{{ info.ownerName }}/{{info.ownerCode }}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">境外收发货人</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="10">{{ info.frnConsignName }}/{{ info.frnConsignCode }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">现场接单时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.orderReceiveDate?dayjs(info.orderReceiveDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">接单耗时(小时)</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="4">{{ info.orderReceiveCost}}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">单证放行时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.certRlsDate?dayjs(info.certRlsDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">担保放行时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.preReleaseDate?dayjs(info.preReleaseDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">转关数据发送时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.examDate?dayjs(info.examDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">转关数据核销时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.checkDate?dayjs(info.checkDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">结关时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.releaseDate?dayjs(info.releaseDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">海关通关时间(小时)</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="4">{{ info.cuCost}}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">整体通关时间(小时)</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="4">{{ info.totalCost}}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">申报前准备时间(小时)</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="4">{{ info.beforeDeclCost}}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">是否专业审单</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.profVerifyFlag }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">是否新两步申报</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.newTwoStepFlag }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">现场验估时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.assessStartDate?dayjs(info.assessStartDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">验估处置完毕时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.assessEndDate?dayjs(info.assessEndDate).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">是否查验</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.checkFlag }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">查验海关</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ formatIePort(info.checkCustomsCode) }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">查验指令下达时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.manCreateTime?dayjs(info.manCreateTime).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">查验开始时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.manChkTimeStart?dayjs(info.manChkTimeStart).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">查验结束时间</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.manChkTimeEnd?dayjs(info.manChkTimeEnd).format('YYYY-MM-DD HH:mm:ss'):'' }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">处理结果</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{info.manProcResult }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">处理意见</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.manProcIdea }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">毛重</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.grossWt }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">净重</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.netWt }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">货运值人民币(总)</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.rmbPrice }}</el-col>
+            <el-col class="cacp-complex__label--title" :span="2">货运值美元(总)</el-col>
+            <el-col class="cacp-complex__value--grey01" :span="4">{{ info.usdPrice }}</el-col>
+            <el-col class="cacp-complex__label--yellow" :span="2">备注</el-col>
+            <el-col class="cacp-complex__value--yellow01" :span="10">{{ info.noteS }}</el-col>
+          </el-row>
+        </div>
+      </template>
+    </cacp-group-container>
+
+    <cacp-group-container title="商品信息">
+      <template #content>
+        <el-table
+            ref="multipleTableRef"
+            :scrollbar-always-on="true"
+            :data="tableData"
+            style="width: 100%"
+            header-cell-class-name="cn-cacp-head"
+            @row-click="rowClick"
+        >
+          <template v-for="(item, index) in column" :key="index">
+            <el-table-column v-if="item.type == 'index'" :label="item.label" :show-overflow-tooltip="item.showOverflow" type="index" width="54" align="center" />
+            <el-table-column
+                v-else
+                :prop="item.prop"
+                :label="item.label"
+                :width="item.width"
+                :min-width="item.minWidth"
+                :show-overflow-tooltip="item.showOverflow"
+            />
+          </template>
+        </el-table>
+        <div class="cacp-mv-l">
+          <el-pagination
+              v-model:current-page="currentPage"
+              v-model:page-size="pageSize"
+              :page-sizes="[100, 200, 300, 400]"
+              :background="true"
+              layout="total, sizes,->, prev, pager, next"
+              :total="100"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+          />
+        </div>
+        <div
+            class="cacp-complex__table"
+            @mouseover="changeHoverEle"
+            @mouseleave="visible = false"
+            v-loading="detailLoading"
+        >
+          <el-row>
+            <el-col class="cacp-complex__nesting--col" :span="24">
+              <el-row class="cacp-complex__nesting--row">
+                <el-col class="cacp-complex__label--title" :span="2">项号</el-col>
+                <el-col :span="2">{{ rowData.gno }}</el-col>
+                <!-- 第二行 -->
+                <el-col class="cacp-complex__label--title" :span="2">商品编码</el-col>
+                <el-col :span="2">{{ rowData.codeTs }}</el-col>
+                <el-col class="cacp-complex__label--title" :span="2">商品名称</el-col>
+                <el-col :span="6">{{ rowData.gname }}</el-col>
+                <el-col class="cacp-complex__label&#45;&#45;title" :span="2">规格型号</el-col>
+                <el-col :span="10">{{ rowData.gmodel }}</el-col>
+                <!-- 第三行 -->
+                <el-col class="cacp-complex__label--title" :span="2">检验检疫编码</el-col>
+                <el-col :span="2">{{ rowData.iqCode }}</el-col>
+                <!-- 第五行 -->
+                <el-col class="cacp-complex__label--title" :span="2">法定第一数量</el-col>
+                <el-col :span="2">{{ rowData.qty1 }}</el-col>
+                <el-col class="cacp-complex__label&#45;&#45;title" :span="2">货物属性</el-col>
+                <el-col :span="2">{{ rowData.productCharCode }}</el-col>
+                <el-col class="cacp-complex__label&#45;&#45;title" :span="2">UN编码</el-col>
+                <el-col :span="2">{{ rowData.ungid }}</el-col>
+                <el-col class="cacp-complex__label&#45;&#45;title" :span="2">危包规格</el-col>
+                <el-col :span="6">{{ rowData.ungModel }}</el-col>
+                <el-col class="cacp-complex__label&#45;&#45;title" :span="2">危险货物名称</el-col>
+                <el-col :span="10">{{ rowData.ungGName }}</el-col>
+                <el-col class="cacp-complex__label&#45;&#45;title" :span="2">危包类别</el-col>
+                <el-col :span="2">{{ rowData.ungClassify }}</el-col>
+                <el-col class="cacp-complex__label&#45;&#45;title" :span="2">货号</el-col>
+                <el-col :span="2">{{ rowData.goodsType }}</el-col>
+              </el-row>
+            </el-col>
+          </el-row>
+        </div>
+      </template>
+    </cacp-group-container>
+    <el-tooltip
+        effect="light"
+        ref="tooltipRef"
+        :visible="visible"
+        :popper-options="{
+        modifiers: [
+          {
+            name: 'offset',
+            options: {
+              offset: [0, 7] // 水平偏移0,垂直偏移10像素
+            }
+          }
+        ]
+      }"
+        :virtual-ref="buttonRef"
+        virtual-triggering
+        popper-class="tip-tooltip"
+        :content="tipText"
+    >
+    </el-tooltip>
+  </el-scrollbar>
+</template>
+<script lang="ts" setup>
+import { getEntryHead} from '@/apis/analyze/goodsEntry'
+import type {Head,List} from '@/types/analyze/goodsEntry'
+import { SuccessResultCode } from '@cacp/ui'
+import { ElTable } from 'element-plus'
+import { onMounted, ref, watch } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import dayjs from 'dayjs'
+import { getBaseCodeList } from '@/apis/base/baseCode'
+import {useDictType} from "@/components/useDict";
+const currentPage = ref<number>(1)
+const pageSize = ref<number>(100)
+const buttonRef = ref<HTMLElement>()
+const visible = ref<boolean>(false)
+const tipText = ref<string>('')
+const router = useRouter()
+const route = useRoute()
+const { dict } = useDictType('affiliation_customs_info', 'proc_idea', 'proc_result', 'proc_total', 'yes_no', 'decl_mode', 'decl_status', 'ie_flag','goods_type')
+
+
+const info = ref<Head>({} as Head)
+const multipleTableRef = ref<InstanceType<typeof ElTable>>()
+const tableData = ref<List[]>([])
+const rowData = ref<List>({} as List)
+const column = [
+  { type: 'index', label: '序号', width: '36px', fixed: 'left' },
+  {
+    label: '商品编号',
+    prop: 'codeTs',
+    width: '120px'
+  },
+  {
+    label: '检验检疫名称',
+    prop: 'iqGName',
+    minWidth: '260px',
+    showOverflow:true
+  },
+  {
+    label: '商品名称',
+    prop: 'gname',
+    minWidth: '260px',
+    showOverflow:true
+  },
+  {
+    label: '规格型号',
+    prop: 'gmodel',
+    width: '130px',
+    showOverflow:true
+  },
+  {
+    label: '申报数量',
+    prop: 'gqty',
+    width: '150px'
+  },
+  {
+    label: '申报计量单位',
+    prop: 'gunit',
+    width: '110px'
+  },
+  {
+    label: '申报单价',
+    prop: 'declPrice',
+    width: '80px'
+  },
+  {
+    label: '币制',
+    prop: 'tradeCurr',
+    width: '80px'
+  },
+  {
+    label: '成交总价',
+    prop: 'tradeTotal',
+    width: '80px'
+  },
+  {
+    label: '原产国(地区)',
+    prop: 'originCountry',
+    width: '110px'
+  },
+  {
+    label: '目的国(地区)',
+    prop: 'destCountry',
+    width: '120px'
+  },
+  {
+    label: '统计人民币价',
+    prop: 'rmbPrice',
+    width: '120px'
+  },
+  {
+    label: '统计美元价',
+    prop: 'usdPrice',
+    width: '120px'
+  }
+]
+const loading = ref(false)
+const detailLoading = ref(false)
+const rowClick = async (row: List) => {
+  rowData.value = row
+}
+const handleSizeChange = (size: number) => {
+  console.log(size)
+}
+const handleCurrentChange = (page: number) => {
+  console.log(page)
+}
+
+const changeHoverEle = (e: MouseEvent) => {
+  if (e.target instanceof HTMLElement) {
+    if (e.target && e.target.innerText && e.target.scrollWidth > e.target.offsetWidth) {
+      buttonRef.value = e.target
+      visible.value = true
+      tipText.value = e.target.innerText
+    } else {
+      visible.value = false
+    }
+  }
+}
+//基础数据返回jsonObject
+const iePort = ref([]);
+const trafMode = ref([]);
+const tradeMode = ref([]);
+const tradeCountry = ref([]);
+const countryIso = ref([]);
+const unit = ref([]);
+// 运输方式
+function formatTrafMode(code: string): string {
+  const result = trafMode.value.find((item) => item.value == code)
+  if (result) {
+    return result.label
+  }
+  return ''
+}
+// 监管方式
+function formatTradeMode(code: string): string {
+  const result = tradeMode.value.find((item) => item.value == code)
+  if (result) {
+    return result.label
+  }
+  return ''
+}
+
+function formatCountry(code: string): string {
+  const result = tradeCountry.value.find((item) => item.value == code)
+  if (result) {
+    return result.label
+  }
+  return ''
+}
+
+// 监管方式
+function formatCountryIso(code: string): string {
+  const result = countryIso.value.find((item) => item.value == code)
+  if (result) {
+    return result.label
+  }
+  return ''
+}
+
+// 进出境口岸
+function formatIePort(code: string): string {
+  const result = iePort.value.find((item) => item.value == code)
+  if (result) {
+    return result.label
+  }
+  return ''
+}
+
+async function onQuery(entryId: string) {
+  loading.value = true
+  const res = await getEntryHead(entryId)
+  if (res.code === SuccessResultCode) {
+    info.value = res.data?.info
+    tableData.value = res.data.list
+    rowData.value = tableData.value?.[0]
+  }
+  loading.value = false
+}
+
+function onGoBack() {
+  router.back()
+}
+async function getIePort() {
+  const traf = await getBaseCodeList("customsCode")
+  if (traf.code == SuccessResultCode) {
+    iePort.value = traf.data
+  }
+}
+
+async function getTrafMode() {
+  const traf = await getBaseCodeList("TransitMode")
+  if (traf.code == SuccessResultCode) {
+    trafMode.value = traf.data
+  }
+}
+
+async function getTradeMode() {
+  const traf = await getBaseCodeList("tradeCode")
+  if (traf.code == SuccessResultCode) {
+    tradeMode.value = traf.data
+  }
+}
+
+async function getTradeCountry() {
+  const traf = await getBaseCodeList("countryCode")
+  if (traf.code == SuccessResultCode) {
+    tradeCountry.value = traf.data
+  }
+}
+
+async function getCountryIso() {
+  const traf = await getBaseCodeList("countryIsoE")
+  if (traf.code == SuccessResultCode) {
+    countryIso.value = traf.data
+  }
+}
+
+async function getUnit() {
+  const traf = await getBaseCodeList("unit")
+  if (traf.code == SuccessResultCode) {
+    unit.value = traf.data
+  }
+}
+
+onMounted(async () => {
+  const entryId = route.query.entryId as string
+  if (entryId) {
+    await Promise.all([getIePort(),getTrafMode(), getTradeMode(), getTradeCountry(), getCountryIso(),getUnit()])
+    onQuery(entryId)
+  }
+})
+
+watch(
+    () => rowData.value,
+    async () => {
+      detailLoading.value = true
+      detailLoading.value = false
+    }
+)
+</script>
+<style scoped lang="less">
+.typical-three {
+  width: 100%;
+}
+</style>

+ 178 - 222
wxjy-wxjy-web/src/views/analyze/NewDeclaredGoods.vue

@@ -2,68 +2,68 @@
   <cacp-search-layout>
     <template #search>
       <cacp-search-panel-layout
-        :model="state.queryData"
-        ref="queryFormRef"
-        label-position="left"
-        label-width="auto"
-        :gutter="30"
-        :colSpan="6"
+          :model="state.queryData"
+          ref="queryFormRef"
+          label-position="left"
+          label-width="auto"
+          :gutter="30"
+          :colSpan="6"
       >
-        <el-form-item label="主管海关" prop="customsCode">
+        <el-form-item label="主管海关" prop="customsCode" v-if = "state.isSelect">
           <el-select
-            v-model="state.queryData.customsCode"
-            placeholder="主管海关"
-            clearable
+              v-model="state.queryData.customsCode"
+              placeholder="主管海关"
+              clearable
           >
             <el-option
-              v-for="item in dict.affiliation_customs_info"
-              :key="item.dictValue"
-              :label="item.dictLabel"
-              :value="item.dictValue"
+                v-for="item in dict.affiliation_customs_info"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
             />
           </el-select>
         </el-form-item>
         <el-form-item label="出入境标志" prop="ieFlag">
           <el-select
-            v-model="state.queryData.ieFlag"
-            placeholder="出入境标志"
-            clearable
+              v-model="state.queryData.ieFlag"
+              placeholder="出入境标志"
+              clearable
           >
             <el-option
-              v-for="item in dict.ie_flag"
-              :key="item.dictValue"
-              :label="item.dictLabel"
-              :value="item.dictValue"
+                v-for="item in dict.ie_flag"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
             />
           </el-select>
         </el-form-item>
         <el-form-item label="申报时间">
           <el-date-picker
-            type="date"
-            value-format="YYYY-MM-DD"
-            v-model="state.queryData.beginDate"
-            placeholder="开始时间"
+              type="date"
+              value-format="YYYY-MM-DD"
+              v-model="state.queryData.beginDate"
+              placeholder="开始时间"
           />
         </el-form-item>
         <el-form-item label="到">
           <el-date-picker
-            type="date"
-            value-format="YYYY-MM-DD"
-            v-model="state.queryData.endDate"
-            placeholder="结束时间"
+              type="date"
+              value-format="YYYY-MM-DD"
+              v-model="state.queryData.endDate"
+              placeholder="结束时间"
           />
         </el-form-item>
         <el-form-item label="危险品类型" prop="goodsType">
           <el-select
-            v-model="state.queryData.goodsType"
-            placeholder="危险品类型"
-            clearable
+              v-model="state.queryData.goodsType"
+              placeholder="危险品类型"
+              clearable
           >
             <el-option
-              v-for="item in dict.goods_type"
-              :key="item.dictValue"
-              :label="item.dictLabel"
-              :value="item.dictValue"
+                v-for="item in dict.goods_type"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
             />
           </el-select>
         </el-form-item>
@@ -75,48 +75,48 @@
     </template>
 
     <cacp-complex-table
-      :actions="actions"
-      :data="tableData"
-      :pagination="tablePagination"
-      :actionsWidth="120"
-      @selection-change="handleSelectionChange"
-      @on-page-change="onPageChange"
-      @on-size-change="onSizeChange"
-      :loading="loading"
+        :actions="actions"
+        :data="tableData"
+        :pagination="tablePagination"
+        :actionsWidth="120"
+        @selection-change="handleSelectionChange"
+        @on-page-change="onPageChange"
+        @on-size-change="onSizeChange"
+        :loading="loading"
     >
       <el-table-column label="序号" property="index" width="60" align="center" >
         <template #default="scope">
           {{scope.$index + 1}}
         </template>
       </el-table-column>
-      <el-table-column property="entryId" label="报关单号" width="120" :show-overflow-tooltip="true" />
-      <el-table-column property="gno" label="商品序号" width="120" :show-overflow-tooltip="true" />
-      <el-table-column property="iePort" label="进出境口岸" width="120" :show-overflow-tooltip="true" >
+      <el-table-column property="entryId" label="报关单号" width="160" :show-overflow-tooltip="true" />
+      <el-table-column property="gno" label="商品项号" width="80" :show-overflow-tooltip="true" />
+      <el-table-column property="iePort" label="进出境口岸" width="90" :show-overflow-tooltip="true" >
         <template #default="scope">
           {{findOptionLabel(scope.row.iePort,portCodeList)}}
         </template>
       </el-table-column>
       <!--      <el-table-column property="declPort" label="申报口岸" width="120" :show-overflow-tooltip="true" />-->
-      <el-table-column property="customsCode" label="主管海关" width="120" :show-overflow-tooltip="true" >
+      <el-table-column property="customsCode" label="主管海关" width="90" :show-overflow-tooltip="true" >
         <template #default="scope">
           <dict-tag :options="dict.affiliation_customs_info"  :dictValue="scope.row.customsCode" />
         </template>
       </el-table-column>
-      <el-table-column property="ieFlag" label="出入境标志" width="120" :show-overflow-tooltip="true" >
+      <el-table-column property="ieFlag" label="出入境标志" width="90" :show-overflow-tooltip="true" >
         <template #default="scope">
           <dict-tag :options="dict.ie_flag" :dictValue="scope.row.ieFlag" />
         </template>
       </el-table-column>
-      <el-table-column property="declDate" label="申报时间" width="180" :show-overflow-tooltip="true" >
+      <el-table-column property="declDate" label="申报时间" width="150" :show-overflow-tooltip="true" >
         <template #default="scope">
-          {{ dayjs(scope.row.declDate).format('YYYY-MM-DD HH:mm:ss') }}
+          {{ scope.row.declDate?dayjs(scope.row.declDate).format('YYYY-MM-DD HH:mm:ss'):'' }}
         </template>
       </el-table-column>
       <!--      <el-table-column property="consignScc" label="进口经营/出口生产企业代码" width="120" :show-overflow-tooltip="true" />-->
-      <el-table-column property="consignCode" label="进口经营/出口生产企业代码" width="120" :show-overflow-tooltip="true" />
-      <el-table-column property="consignName" label="进口经营/出口生产企业名称" width="120" :show-overflow-tooltip="true" />
-      <el-table-column property="codeTs" label="HS编号" width="120" :show-overflow-tooltip="true" />
-      <el-table-column property="iqCode" label="CIQ编码" width="120" :show-overflow-tooltip="true" />
+      <el-table-column property="consignCode" label="进口经营/出口生产企业代码" width="190" />
+      <el-table-column property="consignName" label="进口经营/出口生产企业名称" width="190" :show-overflow-tooltip="true" />
+      <el-table-column property="codeTs" label="HS编号" width="100" />
+      <el-table-column property="iqCode" label="CIQ编码" width="120" />
       <el-table-column property="gname" label="商品名称" width="120" :show-overflow-tooltip="true" />
       <!--      <el-table-column property="iqGName" label="报检名称" width="120" :show-overflow-tooltip="true" />-->
       <!--      <el-table-column property="gNameFn" label="商品英文名称" width="120" :show-overflow-tooltip="true" />-->
@@ -151,7 +151,7 @@
       <!--      <el-table-column property="productBrand" label="货物品牌" width="120" :show-overflow-tooltip="true" />-->
       <!--      <el-table-column property="productDate" label="生产日期" width="120" :show-overflow-tooltip="true" />-->
       <!--      <el-table-column property="productBatch" label="生产批次" width="120" :show-overflow-tooltip="true" />-->
-      <el-table-column property="ungid" label="UN编码" width="120" :show-overflow-tooltip="true" />
+      <el-table-column property="ungid" label="UN编码" width="70" />
       <!--      <el-table-column property="ungFlag" label="非危险化学品" width="120" :show-overflow-tooltip="true" />-->
       <!--      <el-table-column property="ungModel" label="危包规格" width="120" :show-overflow-tooltip="true" />-->
       <!--      <el-table-column property="ungClassify" label="危包类别" width="120" :show-overflow-tooltip="true" />-->
@@ -162,8 +162,8 @@
       <!--      <el-table-column property="gCertFlag" label="每项商品需要监管证件" width="120" :show-overflow-tooltip="true" />-->
       <!--      <el-table-column property="mnufctrRegno" label="生产单位注册号" width="120" :show-overflow-tooltip="true" />-->
       <!--      <el-table-column property="createTime" label="创建时间" width="120" :show-overflow-tooltip="true" />-->
-      <el-table-column property="cas" label="CAS号" width="120" :show-overflow-tooltip="true" />
-      <el-table-column property="goodsType" label="危险品类型" width="120" :show-overflow-tooltip="true" >
+      <el-table-column property="cas" label="CAS号" width="100" />
+      <el-table-column property="goodsType" label="危险品类型" width="120" >
         <template #default="scope">
           <dict-tag :options="dict.goods_type" :whole-match="true" :dictValue="scope.row.goodsType" />
         </template>
@@ -173,20 +173,20 @@
 
   <!--新增、编辑弹框-->
   <cacp-dialog
-    v-model="state.dialogVisible"
-    :resizable="false"
-    :title="state.title"
-    width="70%"
-    @closed="onDialogClosed"
+      v-model="state.dialogVisible"
+      :resizable="false"
+      :title="state.title"
+      width="70%"
+      @closed="onDialogClosed"
   >
     <el-form
-      :model="state.formData"
-      ref="dialogFormRef"
-      :rules="infoRules"
-      label-width="auto"
-      label-position="left"
-      :disabled="!state.isEdit"
-      style="max-height: 60vh; overflow-y: auto; padding-right: 10px;"
+        :model="state.formData"
+        ref="dialogFormRef"
+        :rules="infoRules"
+        label-width="auto"
+        label-position="left"
+        :disabled="!state.isEdit"
+        style="max-height: 60vh; overflow-y: auto; padding-right: 10px;"
     >
       <el-row :gutter="20">
         <el-col :span="12">
@@ -204,15 +204,15 @@
       <el-col :span="12">
         <el-form-item label="进出境口岸" prop="iePort">
           <el-select
-            v-model="state.formData.iePort"
-            placeholder="进出境口岸"
-            clearable
+              v-model="state.formData.iePort"
+              placeholder="进出境口岸"
+              clearable
           >
             <el-option
-              v-for="(item,index) in portCodeList"
-              :key="getOptionKey(item,index)"
-              :label="getOptionLabel(item)"
-              :value="getOptionValue(item)"
+                v-for="(item,index) in portCodeList"
+                :key="getOptionKey(item,index)"
+                :label="getOptionLabel(item)"
+                :value="getOptionValue(item)"
             />
           </el-select>
         </el-form-item>
@@ -220,15 +220,15 @@
       <el-col :span="12">
         <el-form-item label="主管海关" prop="customsCode">
           <el-select
-            v-model="state.formData.customsCode"
-            placeholder="主管海关"
-            clearable
+              v-model="state.formData.customsCode"
+              placeholder="主管海关"
+              clearable
           >
             <el-option
-              v-for="item in dict.affiliation_customs_info"
-              :key="item.dictValue"
-              :label="item.dictLabel"
-              :value="item.dictValue"
+                v-for="item in dict.affiliation_customs_info"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
             />
           </el-select>
         </el-form-item>
@@ -237,15 +237,15 @@
       <el-col :span="12">
         <el-form-item label="出入境标志" prop="ieFlag">
           <el-select
-            v-model="state.formData.ieFlag"
-            placeholder="请输入出入境标志"
-            clearable
+              v-model="state.formData.ieFlag"
+              placeholder="请输入出入境标志"
+              clearable
           >
             <el-option
-              v-for="item in dict.ie_flag"
-              :key="item.dictValue"
-              :label="item.dictLabel"
-              :value="item.dictValue"
+                v-for="item in dict.ie_flag"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
             />
           </el-select>
         </el-form-item>
@@ -253,11 +253,11 @@
       <el-col :span="12">
         <el-form-item label="申报时间" prop="declDate">
           <el-date-picker
-            style="width:100%"
-            type="datetime"
-            value-format="YYYY-MM-DD HH:mm:ss"
-            v-model="state.formData.declDate"
-            placeholder="请输入申报时间"
+              style="width:100%"
+              type="datetime"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              v-model="state.formData.declDate"
+              placeholder="请输入申报时间"
           />
         </el-form-item>
       </el-col>
@@ -365,15 +365,15 @@
       <el-col :span="12">
         <el-form-item label="法定第一计量单位" prop="unit1">
           <el-select
-            v-model="state.formData.unit1"
-            placeholder="请输入法定第一计量单位"
-            clearable
+              v-model="state.formData.unit1"
+              placeholder="请输入法定第一计量单位"
+              clearable
           >
             <el-option
-              v-for="(item,index) in unitsCodeList"
-              :key="getOptionKey(item,index)"
-              :label="getOptionLabel(item)"
-              :value="getOptionValue(item)"
+                v-for="(item,index) in unitsCodeList"
+                :key="getOptionKey(item,index)"
+                :label="getOptionLabel(item)"
+                :value="getOptionValue(item)"
             />
           </el-select>
         </el-form-item>
@@ -387,15 +387,15 @@
       <el-col :span="12">
         <el-form-item label="第二计量单位" prop="unit2">
           <el-select
-            v-model="state.formData.unit2"
-            placeholder="请输入第二计量单位"
-            clearable
+              v-model="state.formData.unit2"
+              placeholder="请输入第二计量单位"
+              clearable
           >
             <el-option
-              v-for="(item,index) in unitsCodeList"
-              :key="getOptionKey(item,index)"
-              :label="getOptionLabel(item)"
-              :value="getOptionValue(item)"
+                v-for="(item,index) in unitsCodeList"
+                :key="getOptionKey(item,index)"
+                :label="getOptionLabel(item)"
+                :value="getOptionValue(item)"
             />
           </el-select>
         </el-form-item>
@@ -449,15 +449,15 @@
       <el-col :span="12">
         <el-form-item label="原产国" prop="originCountry">
           <el-select
-            v-model="state.formData.originCountry"
-            placeholder="请输入原产国"
-            clearable
+              v-model="state.formData.originCountry"
+              placeholder="请输入原产国"
+              clearable
           >
             <el-option
-              v-for="(item,index) in countryCodeList"
-              :key="getOptionKey(item,index)"
-              :label="getOptionLabel(item)"
-              :value="getOptionValue(item)"
+                v-for="(item,index) in countryCodeList"
+                :key="getOptionKey(item,index)"
+                :label="getOptionLabel(item)"
+                :value="getOptionValue(item)"
             />
           </el-select>
         </el-form-item>
@@ -470,15 +470,15 @@
       <el-col :span="12">
         <el-form-item label="最终目的国" prop="destCountry">
           <el-select
-            v-model="state.formData.destCountry"
-            placeholder="请输入最终目的国"
-            clearable
+              v-model="state.formData.destCountry"
+              placeholder="请输入最终目的国"
+              clearable
           >
             <el-option
-              v-for="(item,index) in countryCodeList"
-              :key="getOptionKey(item,index)"
-              :label="getOptionLabel(item)"
-              :value="getOptionValue(item)"
+                v-for="(item,index) in countryCodeList"
+                :key="getOptionKey(item,index)"
+                :label="getOptionLabel(item)"
+                :value="getOptionValue(item)"
             />
           </el-select>
         </el-form-item>
@@ -494,15 +494,15 @@
       <el-col :span="12">
         <el-form-item label="目的地/货源地" prop="iqIeDistrictCode">
           <el-select
-            v-model="state.formData.iqIeDistrictCode"
-            placeholder="请输入目的地/货源地"
-            clearable
+              v-model="state.formData.iqIeDistrictCode"
+              placeholder="请输入目的地/货源地"
+              clearable
           >
             <el-option
-              v-for="(item,index) in countryCodeList"
-              :key="getOptionKey(item,index)"
-              :label="getOptionLabel(item)"
-              :value="getOptionValue(item)"
+                v-for="(item,index) in countryCodeList"
+                :key="getOptionKey(item,index)"
+                :label="getOptionLabel(item)"
+                :value="getOptionValue(item)"
             />
           </el-select>
         </el-form-item>
@@ -545,15 +545,15 @@
       <el-col :span="12">
         <el-form-item label="非危险化学品" prop="ungFlag">
           <el-select
-            v-model="state.formData.ungFlag"
-            placeholder="请输入非危险化学品"
-            clearable
+              v-model="state.formData.ungFlag"
+              placeholder="请输入非危险化学品"
+              clearable
           >
             <el-option
-              v-for="item in dict.yes_no"
-              :key="item.dictValue"
-              :label="item.dictLabel"
-              :value="item.dictValue"
+                v-for="item in dict.yes_no"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
             />
           </el-select>
         </el-form-item>
@@ -616,15 +616,15 @@
       <el-col :span="12">
         <el-form-item label="危险品类型" prop="goodsType">
           <el-select
-            v-model="state.formData.goodsType"
-            placeholder="请输入危险品类型"
-            clearable
+              v-model="state.formData.goodsType"
+              placeholder="请输入危险品类型"
+              clearable
           >
             <el-option
-              v-for="item in dict.goods_type"
-              :key="item.dictValue"
-              :label="item.dictLabel"
-              :value="item.dictValue"
+                v-for="item in dict.goods_type"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
             />
           </el-select>
         </el-form-item>
@@ -640,18 +640,18 @@
   </cacp-dialog>
   <!--查看弹框-->
   <cacp-dialog
-    v-model="state.viewDialogVisible"
-    :resizable="false"
-    :title="state.viewTitle"
-    width="70%"
-    @closed="onDialogClosed"
+      v-model="state.viewDialogVisible"
+      :resizable="false"
+      :title="state.viewTitle"
+      width="70%"
+      @closed="onDialogClosed"
   >
     <el-form
-      :model="state.viewForm"
-      ref="dialogFormRef"
-      label-width="auto"
-      label-position="left"
-      style="max-height: 60vh; overflow-y: auto; padding-right: 10px;"
+        :model="state.viewForm"
+        ref="dialogFormRef"
+        label-width="auto"
+        label-position="left"
+        style="max-height: 60vh; overflow-y: auto; padding-right: 10px;"
     >
       <el-row :gutter="20">
         <el-col :span="12">
@@ -887,7 +887,7 @@
       <el-col :span="12">
         <el-form-item label="生产日期" prop="productDate">
           {{state.viewForm.productDate}}
-<!--          {{ dayjs(state.viewForm.productDate).format('YYYY-MM-DD HH:mm:ss') }}-->
+          <!--          {{ dayjs(state.viewForm.productDate).format('YYYY-MM-DD HH:mm:ss') }}-->
         </el-form-item>
       </el-col>
       <el-col :span="12">
@@ -1008,6 +1008,8 @@ import { useDictType } from '@/components/useDict'
 import DictTag from '@/components/DictTag/dictTag.vue'
 const { dict } = useDictType('affiliation_customs_info','goods_type','yes_no','ie_flag')
 import { findOptionLabel, getOptionKey, getOptionLabel, getOptionValue } from '@/utils/jsonObjectOptionUtils'
+import { useCoreStore } from '@/stores'
+const coreStore = useCoreStore()
 // 表单引用
 const queryFormRef = ref<SearchPanelLayoutInstance>()
 const dialogFormRef = ref<FormInstance>()
@@ -1029,6 +1031,7 @@ interface State {
   title: string
   isEdit: boolean
   dialogVisible: boolean
+  isSelect: boolean
 }
 
 const state = reactive<State>({
@@ -1165,6 +1168,7 @@ const state = reactive<State>({
   title: '',
   isEdit: false,
   dialogVisible: false,
+  isSelect: false,
 })
 
 // 表单验证规则
@@ -1208,15 +1212,15 @@ const actions = <Array<TableAction>>[
   //   limit: permissionStatus('none', 'ANALYZE_NEWDECLAREDGOODS_DELETE_BT'),
   //   type: 'primary'
   // },
-  {
-    key: 'refresh',
-    type: 'primary',
-    text: '刷新',
-    onclick: onRefresh,
-    limit: 'none',
-    position: 'left',
-    plain: true
-  }
+  // {
+  //   key: 'refresh',
+  //   type: 'primary',
+  //   text: '刷新',
+  //   onclick: onRefresh,
+  //   limit: 'none',
+  //   position: 'left',
+  //   plain: true
+  // }
 ]
 
 // 选中项的 ID 数组
@@ -1265,8 +1269,8 @@ const loadBaseData = async () => {
 // 多选框选中数据
 function handleSelectionChange(selection: NewDeclaredGoods[]) {
   ids.value = selection
-    .map(item => item.id)
-    .filter((id): id is string => id != null && id !== undefined)
+      .map(item => item.id)
+      .filter((id): id is string => id != null && id !== undefined)
 }
 
 // 搜索方法
@@ -1368,19 +1372,6 @@ function resetForm() {
   dialogFormRef.value?.resetFields()
 }
 
-// 刷新方法
-function onRefresh() {
-  onReset()
-}
-
-// 新增
-/*function onCreate() {
-  resetForm()
-  state.dialogVisible = true
-  state.isEdit = true
-  state.title = '新增新申报商品提示'
-}*/
-
 // 查看
 function onView(row: NewDeclaredGoods) {
   state.viewForm = { ...row }
@@ -1388,48 +1379,6 @@ function onView(row: NewDeclaredGoods) {
   state.viewTitle = '查看新申报商品提示详情'
 }
 
-// 编辑
-/*async function onEdit(row: NewDeclaredGoods) {
-  const res = await getDetail(row.id)
-  console.log(res);
-  if (res.code === SuccessResultCode) {
-    state.formData = res.data
-    state.dialogVisible = true
-    state.isEdit = true
-    state.title = '修改新申报商品提示'
-  } else {
-    ElMessage.error(res.message || '数据获取异常')
-  }
-}*/
-
-// 删除
-/*async function onDelete(row: NewDeclaredGoods) {
-  const deleteIds = row.ID || ids.value
-  if (!deleteIds || deleteIds.length === 0) {
-    ElMessage.warning('请选择要删除的数据')
-    return
-  }
-
-  try {
-    await ElMessageBox.confirm('确定要删除选中的新申报商品提示吗?', '提示', {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: 'warning'
-    })
-
-    const res = await remove(deleteIds)
-    if (res.code === SuccessResultCode) {
-      ElMessage.success('删除成功')
-      onPageChange(1)
-    } else {
-      ElMessage.error(res.message || '删除失败')
-    }
-  } catch{
-    // 用户取消删除
-  }
-}*/
-
-
 // 新增/修改提交
 async function onSubmit() {
   if (!dialogFormRef.value) return
@@ -1462,6 +1411,13 @@ async function onSubmit() {
 
 // 数据查询
 async function onLoadData() {
+  const loginCustomsCode = coreStore.currentUser.customsCode;
+  if("4700" === loginCustomsCode){
+    state.isSelect = true;
+  }else{
+    state.queryData.customsCode = loginCustomsCode;
+    state.isSelect = false;
+  }
   setLoading(true)
   try {
     const query = {