Bladeren bron

事后通知功能

xiongwanxiong 1 week geleden
bovenliggende
commit
9c095183c0

+ 2 - 4
wxjy-wxjy-service/src/main/java/cn/gov/customs/wxjy/analyze/pojo/NewDeclaredGoodsQuery.java

@@ -192,10 +192,8 @@ public class NewDeclaredGoodsQuery implements Serializable {
     private String goodsType;
 
 
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date beginDate;
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date endDate;
+    private String beginDate;
+    private String endDate;
     private int pageIndex;
     private int pageSize;
 }

+ 4 - 3
wxjy-wxjy-service/src/main/resources/mapper/analyze/NewDeclaredGoodsMapper.xml

@@ -246,15 +246,16 @@
                 and CAS = #{CAS}
             </if>
             <if test="goodsType != null  and goodsType != ''">
-                and GOODS_TYPE = #{goodsType}
+                and GOODS_TYPE like concat('%', #{goodsType}, '%')
             </if>
-            <if test="beginDate != null ">
+            <if test="beginDate != null and beginDate != ''">
                 and DECL_DATE &gt;= #{beginDate}
             </if>
-            <if test="endDate != null ">
+            <if test="endDate != null and endDate != ''">
                 and DECL_DATE &lt;= #{endDate}
             </if>
         </where>
+        order by decl_date desc
     </select>
 
     <select id="selectByID" parameterType="String"

+ 1 - 0
wxjy-wxjy-web/src/apis/analyze/NewDeclaredGoods.ts

@@ -8,6 +8,7 @@ const contextPath = '/analyze/NewDeclaredGoods'
 
 // 查询新申报商品提示列表
 export async function getList(query: NewDeclaredGoodsQuery): Promise<Result<PageInfo<NewDeclaredGoods>>> {
+  console.log(query)
   const res: AxiosResponse<Result<PageInfo<NewDeclaredGoods>>> = await request.post(`${contextPath}/get-list`, query)
   return res.data
 }

+ 54 - 8
wxjy-wxjy-web/src/components/DictTag/dictTag.vue

@@ -1,7 +1,11 @@
 <template>
   <div>
-    <template v-for="(item, index) in options" :key="item.dictValue">
-      <template v-if="values.includes(String(item.dictValue))">
+    <template v-for="(item, index) in matchedOptions" :key="item.dictValue">
+      <span v-if="plain" :index="index">
+        {{ item.dictLabel }}
+        <span v-if="index < matchedOptions.length - 1 && !wholeMatch" style="margin-left: 4px;">,</span>
+      </span>
+      <template v-else>
         <span
           v-if="(item.raw?.listClass === 'default' || item.raw?.listClass === '') && (item.raw?.cssClass === '' || item.raw?.cssClass == null)"
           :index="index"
@@ -40,22 +44,59 @@ interface Props {
   dictValue?: number | string | Array<number | string>
   showValue?: boolean
   separator?: string
+  plain?: boolean  // 添加plain属性控制是否显示为普通文本
+  wholeMatch?: boolean // 是否将逗号分隔的值作为整体匹配,而不是拆分成多个值
 }
 
 const props = withDefaults(defineProps<Props>(), {
   options: () => [],
   showValue: true,
-  separator: ','
+  separator: ',',
+  plain: true,  // 默认不显示tag样式
+  wholeMatch: false // 默认拆分为多个值匹配
 })
 
 const unmatchArray = ref<Array<string | number>>([])
 
-// 计算属性:将value转换为数组
+// 计算属性:根据wholeMatch决定如何处理value
 const values = computed(() => {
   if (props.dictValue === null || typeof props.dictValue === 'undefined' || props.dictValue === '') return []
-  return Array.isArray(props.dictValue)
-    ? props.dictValue.map(item => String(item))
-    : String(props.dictValue).split(props.separator)
+
+  if (props.wholeMatch) {
+    // 整体匹配模式:直接返回原始值,不进行拆分
+    return Array.isArray(props.dictValue)
+      ? props.dictValue.map(item => String(item))
+      : [String(props.dictValue)]
+  } else {
+    // 拆分匹配模式:按分隔符拆分
+    return Array.isArray(props.dictValue)
+      ? props.dictValue.map(item => String(item))
+      : String(props.dictValue).split(props.separator)
+  }
+})
+
+// 计算属性:获取匹配的选项
+const matchedOptions = computed(() => {
+  // 如果是整体匹配模式,直接查找完全相等的值
+  if (props.wholeMatch) {
+    const matched = props.options.filter(item =>
+      values.value.some(value => String(item.dictValue) === value)
+    )
+    // 如果没有匹配项,显示原始值
+    if (matched.length === 0 && values.value.length > 0) {
+      return [{
+        dictValue: values.value[0],
+        dictLabel: values.value[0],
+        raw: undefined
+      }]
+    }
+    return matched
+  } else {
+    // 拆分匹配模式:每个值单独匹配
+    return props.options.filter(item =>
+      values.value.includes(String(item.dictValue))
+    )
+  }
 })
 
 // 计算属性:是否有未匹配的值
@@ -68,7 +109,12 @@ const unmatch = computed(() => {
     return false
   }
 
-  // 检查是否有未匹配项
+  // 如果是整体匹配模式,不需要显示未匹配值(因为已经显示原始值)
+  if (props.wholeMatch) {
+    return false
+  }
+
+  // 检查是否有未匹配项(仅拆分模式)
   let hasUnmatch = false
   values.value.forEach(item => {
     if (!props.options.some(v => String(v.dictValue) === item)) {

+ 1 - 0
wxjy-wxjy-web/src/router/app-router.ts

@@ -58,6 +58,7 @@ const routers: Array<RouteRecordRaw> = [
     component: () => import('@/views/analyze/NewDeclaredGoods.vue'),
     meta: {
       title: '事后通知',
+      permissions:"ANALYZE_NEWDECLAREDGOODS_VIEW_BT"
     }
   },
 ]

+ 91 - 0
wxjy-wxjy-web/src/utils/jsonObjectOptionUtils.ts

@@ -0,0 +1,91 @@
+// src/utils/selectOptionUtils.ts
+import type { JSONObject } from '@antv/x6'
+
+/**
+ * 获取下拉选项的key值
+ */
+export const getOptionKey = (item: JSONObject, index: number, valueKey: string = 'dataValue'): string => {
+  const value = item[valueKey] ?? item.value ?? item.id
+  if (value !== undefined && value !== null) {
+    return String(value)
+  }
+  return `option_${index}`
+}
+
+/**
+ * 获取下拉选项的显示文本
+ */
+export const getOptionLabel = (item: JSONObject, labelKey: string = 'dataLabel'): string => {
+  const label = item[labelKey] ?? item.label ?? item.name ?? item.text ?? ''
+  return String(label)
+}
+
+/**
+ * 获取下拉选项的值
+ */
+export const getOptionValue = (item: JSONObject, valueKey: string = 'dataValue'): string => {
+  const value = item[valueKey] ?? item.value ?? item.id ?? ''
+  return String(value)
+}
+
+/**
+ * 根据值查找显示文本(增强版)
+ * @param value 要查找的值
+ * @param options 选项数组
+ * @param valueKeys 可能的值字段名,默认 ['value', 'dataValue', 'id']
+ * @param labelKeys 可能的标签字段名,默认 ['label', 'dataLabel', 'name', 'text']
+ * @returns 显示文本
+ */
+export const findOptionLabel = (
+  value: string | number,
+  options: JSONObject[],
+  valueKeys: string[] = ['value', 'dataValue', 'id'],
+  labelKeys: string[] = ['label', 'dataLabel', 'name', 'text']
+): string => {
+  if (!value || !options || !options.length) return String(value || '')
+
+  const strValue = String(value).trim()
+  if (!strValue) return ''
+
+  // 查找匹配的项
+  const item = options.find(opt => {
+    // 尝试多个可能的字段名
+    for (const key of valueKeys) {
+      const optValue = opt[key]
+      if (optValue !== undefined && optValue !== null && String(optValue).trim() === strValue) {
+        return true
+      }
+    }
+    return false
+  })
+
+  if (item) {
+    // 尝试多个可能的标签字段名
+    for (const key of labelKeys) {
+      const label = item[key]
+      if (label !== undefined && label !== null && String(label).trim() !== '') {
+        return String(label).trim()
+      }
+    }
+    // 如果没有找到label,返回原始值
+    return strValue
+  }
+
+  return strValue
+}
+
+/**
+ * 根据多个值查找多个显示文本(用于多选情况)
+ */
+export const findMultipleLabels = (
+  values: (string | number)[],
+  options: JSONObject[],
+  valueKeys: string[] = ['value', 'dataValue', 'id'],
+  labelKeys: string[] = ['label', 'dataLabel', 'name', 'text'],
+  separator: string = ','
+): string => {
+  if (!values || !values.length || !options || !options.length) return ''
+
+  const labels = values.map(value => findOptionLabel(value, options, valueKeys, labelKeys))
+  return labels.filter(label => label).join(separator)
+}

+ 213 - 119
wxjy-wxjy-web/src/views/analyze/NewDeclaredGoods.vue

@@ -93,23 +93,23 @@
       <el-table-column property="gno" label="商品序号" width="120" :show-overflow-tooltip="true" />
       <el-table-column property="iePort" label="进出境口岸" width="120" :show-overflow-tooltip="true" >
         <template #default="scope">
-          {{getPortName(scope.row.iePort)}}
+          {{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="declPort" label="申报口岸" width="120" :show-overflow-tooltip="true" />-->
       <el-table-column property="customsCode" label="主管海关" width="120" :show-overflow-tooltip="true" >
         <template #default="scope">
-          <dict-tag :options="dict.affiliation_customs_info" :value="scope.row.customsCode" />
+          <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" >
         <template #default="scope">
-          <dict-tag :options="dict.ie_flag" :value="scope.row.ieFlag" />
+          <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" >
         <template #default="scope">
-          {{ dayjs(scope.row.documentTime).format('YYYY-MM-DD HH:mm:ss') }}
+          {{ 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" />-->
@@ -165,7 +165,7 @@
       <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" >
         <template #default="scope">
-          <dict-tag :options="dict.goodsType" :value="scope.row.goodsType" />
+          <dict-tag :options="dict.goods_type" :whole-match="true" :dictValue="scope.row.goodsType" />
         </template>
       </el-table-column>
     </cacp-complex-table>
@@ -202,32 +202,71 @@
 
       <el-col :span="12">
         <el-form-item label="进出境口岸" prop="iePort">
-          <el-input v-model="state.formData.iePort" placeholder="请输入进出境口岸" />
+          <el-select
+            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)"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
       <el-col :span="12">
         <el-form-item label="主管海关" prop="customsCode">
-          <el-input v-model="state.formData.customsCode" placeholder="请输入主管海关" />
+          <el-select
+            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"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
     </el-row><el-row :gutter="20">
       <el-col :span="12">
         <el-form-item label="出入境标志" prop="ieFlag">
-          <el-input v-model="state.formData.ieFlag" placeholder="请输入出入境标志" />
+          <el-select
+            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"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
       <el-col :span="12">
         <el-form-item label="申报时间" prop="declDate">
-          <el-input v-model="state.formData.declDate" placeholder="请输入申报时间" />
+          <el-date-picker
+            style="width:100%"
+            type="datetime"
+            value-format="YYYY-MM-DD HH:mm:ss"
+            v-model="state.formData.declDate"
+            placeholder="请输入申报时间"
+          />
         </el-form-item>
       </el-col>
     </el-row><el-row :gutter="20">
 
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="进口经营/出口生产企业代码" prop="consignScc">-->
-<!--          <el-input v-model="state.formData.consignScc" placeholder="请输入进口经营/出口生产企业代码" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="进口经营/出口生产企业代码" prop="consignScc">-->
+      <!--          <el-input v-model="state.formData.consignScc" placeholder="请输入进口经营/出口生产企业代码" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
       <el-col :span="12">
         <el-form-item label="进口经营/出口生产企业代码" prop="consignCode">
           <el-input v-model="state.formData.consignCode" placeholder="请输入进口经营/出口生产企业代码" />
@@ -282,29 +321,29 @@
           <el-input v-model="state.formData.prodValidaty" placeholder="请输入产品有效期" />
         </el-form-item>
       </el-col>
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="成份/原料/组分" prop="gComposition">-->
-<!--          <el-input v-model="state.formData.gComposition" placeholder="请输入成份/原料/组分" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="成份/原料/组分" prop="gComposition">-->
+      <!--          <el-input v-model="state.formData.gComposition" placeholder="请输入成份/原料/组分" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
     </el-row><el-row :gutter="20">
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="产品保质期" prop="prodWarranty">-->
-<!--          <el-input v-model="state.formData.prodWarranty" placeholder="请输入产品保质期" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="产品保质期" prop="prodWarranty">-->
+      <!--          <el-input v-model="state.formData.prodWarranty" placeholder="请输入产品保质期" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
 
     </el-row><el-row :gutter="20">
-<!--      <el-col :span="12">
-        <el-form-item label="征免方式" prop="dutyMode">
-          <el-input v-model="state.formData.dutyMode" placeholder="请输入征免方式" />
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item label="条形码" prop="GTIN">
-          <el-input v-model="state.formData.GTIN" placeholder="请输入条形码" />
-        </el-form-item>
-      </el-col>-->
+      <!--      <el-col :span="12">
+              <el-form-item label="征免方式" prop="dutyMode">
+                <el-input v-model="state.formData.dutyMode" placeholder="请输入征免方式" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="条形码" prop="GTIN">
+                <el-input v-model="state.formData.GTIN" placeholder="请输入条形码" />
+              </el-form-item>
+            </el-col>-->
     </el-row><el-row :gutter="20">
       <el-col :span="12">
         <el-form-item label="申报数量" prop="gQty">
@@ -324,7 +363,18 @@
       </el-col>
       <el-col :span="12">
         <el-form-item label="法定第一计量单位" prop="unit1">
-          <el-input v-model="state.formData.unit1" placeholder="请输入法定第一计量单位" />
+          <el-select
+            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)"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
     </el-row><el-row :gutter="20">
@@ -335,7 +385,18 @@
       </el-col>
       <el-col :span="12">
         <el-form-item label="第二计量单位" prop="unit2">
-          <el-input v-model="state.formData.unit2" placeholder="请输入第二计量单位" />
+          <el-select
+            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)"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
     </el-row><el-row :gutter="20">
@@ -350,22 +411,22 @@
         </el-form-item>
       </el-col>
     </el-row><el-row :gutter="20">
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="成交币制" prop="tradeCurr">-->
-<!--          <el-input v-model="state.formData.tradeCurr" placeholder="请输入成交币制" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="成交总价" prop="tradeTotal">-->
-<!--          <el-input v-model="state.formData.tradeTotal" placeholder="请输入成交总价" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="成交币制" prop="tradeCurr">-->
+      <!--          <el-input v-model="state.formData.tradeCurr" placeholder="请输入成交币制" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="成交总价" prop="tradeTotal">-->
+      <!--          <el-input v-model="state.formData.tradeTotal" placeholder="请输入成交总价" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
     </el-row><el-row :gutter="20">
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="完税价格" prop="dutyValue">-->
-<!--          <el-input v-model="state.formData.dutyValue" placeholder="请输入完税价格" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="完税价格" prop="dutyValue">-->
+      <!--          <el-input v-model="state.formData.dutyValue" placeholder="请输入完税价格" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
       <el-col :span="12">
         <el-form-item label="统计人民币价" prop="rmbPrice">
           <el-input v-model="state.formData.rmbPrice" placeholder="请输入统计人民币价" />
@@ -378,38 +439,71 @@
       </el-col>
     </el-row><el-row :gutter="20">
 
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="成交汇率" prop="exchangeRate">-->
-<!--          <el-input v-model="state.formData.exchangeRate" placeholder="请输入成交汇率" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="成交汇率" prop="exchangeRate">-->
+      <!--          <el-input v-model="state.formData.exchangeRate" placeholder="请输入成交汇率" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
     </el-row><el-row :gutter="20">
       <el-col :span="12">
         <el-form-item label="原产国" prop="originCountry">
-          <el-input v-model="state.formData.originCountry" placeholder="请输入原产国" />
+          <el-select
+            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)"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="原产地区代码" prop="originRegionCode">-->
-<!--          <el-input v-model="state.formData.originRegionCode" placeholder="请输入原产地区代码" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="原产地区代码" prop="originRegionCode">-->
+      <!--          <el-input v-model="state.formData.originRegionCode" placeholder="请输入原产地区代码" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
       <el-col :span="12">
         <el-form-item label="最终目的国" prop="destCountry">
-          <el-input v-model="state.formData.destCountry" placeholder="请输入最终目的国" />
+          <el-select
+            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)"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
     </el-row><el-row :gutter="20">
 
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="境内目的地/境内货源地" prop="ieDistrictCode">-->
-<!--          <el-input v-model="state.formData.ieDistrictCode" placeholder="请输入境内目的地/境内货源地" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="境内目的地/境内货源地" prop="ieDistrictCode">-->
+      <!--          <el-input v-model="state.formData.ieDistrictCode" placeholder="请输入境内目的地/境内货源地" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
     </el-row><el-row :gutter="20">
       <el-col :span="12">
         <el-form-item label="目的地/货源地" prop="iqIeDistrictCode">
-          <el-input v-model="state.formData.iqIeDistrictCode" placeholder="请输入目的地/货源地" />
+          <el-select
+            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)"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
       <el-col :span="12">
@@ -449,7 +543,18 @@
       </el-col>
       <el-col :span="12">
         <el-form-item label="非危险化学品" prop="ungFlag">
-          <el-input v-model="state.formData.ungFlag" placeholder="请输入非危险化学品" />
+          <el-select
+            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"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
     </el-row><el-row :gutter="20">
@@ -475,27 +580,27 @@
         </el-form-item>
       </el-col>
     </el-row><el-row :gutter="20">
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="货号" prop="goodsId">-->
-<!--          <el-input v-model="state.formData.goodsId" placeholder="请输入货号" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="用途代码" prop="useTo">-->
-<!--          <el-input v-model="state.formData.useTo" placeholder="请输入用途代码" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="货号" prop="goodsId">-->
+      <!--          <el-input v-model="state.formData.goodsId" placeholder="请输入货号" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="用途代码" prop="useTo">-->
+      <!--          <el-input v-model="state.formData.useTo" placeholder="请输入用途代码" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
     </el-row><el-row :gutter="20">
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="每项商品需要监管证件" prop="gCertFlag">-->
-<!--          <el-input v-model="state.formData.gCertFlag" placeholder="请输入每项商品需要监管证件" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
-<!--      <el-col :span="12">-->
-<!--        <el-form-item label="生产单位注册号" prop="mnufctrRegno">-->
-<!--          <el-input v-model="state.formData.mnufctrRegno" placeholder="请输入生产单位注册号" />-->
-<!--        </el-form-item>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="每项商品需要监管证件" prop="gCertFlag">-->
+      <!--          <el-input v-model="state.formData.gCertFlag" placeholder="请输入每项商品需要监管证件" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
+      <!--      <el-col :span="12">-->
+      <!--        <el-form-item label="生产单位注册号" prop="mnufctrRegno">-->
+      <!--          <el-input v-model="state.formData.mnufctrRegno" placeholder="请输入生产单位注册号" />-->
+      <!--        </el-form-item>-->
+      <!--      </el-col>-->
     </el-row><el-row :gutter="20">
       <!--      <el-col :span="12">-->
       <!--        <el-form-item label="创建时间" prop="createTime">-->
@@ -509,7 +614,18 @@
       </el-col>
       <el-col :span="12">
         <el-form-item label="危险品类型" prop="goodsType">
-          <el-input v-model="state.formData.goodsType" placeholder="请输入危险品类型" />
+          <el-select
+            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"
+            />
+          </el-select>
         </el-form-item>
       </el-col>
     </el-row><el-row :gutter="20">
@@ -545,6 +661,7 @@ import type { JSONObject } from '@antv/x6'
 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'
 // 表单引用
 const queryFormRef = ref<SearchPanelLayoutInstance>()
 const dialogFormRef = ref<FormInstance>()
@@ -629,6 +746,8 @@ const state = reactive<State>({
     // createTime: '',
     cas: '',
     goodsType: '',
+    beginDate:'',
+    endDate:'',
     pageIndex: tablePagination.currentPage,
     pageSize: tablePagination.pageSize
   },
@@ -796,33 +915,6 @@ const loadBaseData = async () => {
     setLoading(false)
   }
 }
-// 添加港口名称查找函数
-const getPortName = (code: string): string => {
-  if (!code) return ''
-  const item = portCodeList.value.find(item =>
-    String((item as { value?: string | number }).value) === code
-  )
-  return item ? String((item as { label?: string }).label || code) : code
-}
-
-// 国家名称查找函数
-const getCountryName = (code: string): string => {
-  if (!code) return ''
-  const item = countryCodeList.value.find(item =>
-    String((item as { value?: string | number }).value) === code
-  )
-  return item ? String((item as { label?: string }).label || code) : code
-}
-
-
-// 单位名称查找函数
-const getUnitName = (code: string): string => {
-  if (!code) return ''
-  const item = unitsCodeList.value.find(item =>
-    String((item as { value?: string | number }).value) === code
-  )
-  return item ? String((item as { label?: string }).label || code) : code
-}
 
 // 多选框选中数据
 function handleSelectionChange(selection: NewDeclaredGoods[]) {
@@ -840,6 +932,8 @@ const onSearch = () => {
 // 重置方法
 const onReset = () => {
   queryFormRef.value?.resetFields()
+  state.queryData.beginDate = ''
+  state.queryData.endDate = ''
   onPageChange(1)
 }