From e46a6e287f752825a8ae5f4024769cd3fbc39a4a Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期三, 16 四月 2025 16:32:28 +0800
Subject: [PATCH] 许可证

---
 src/permission.js                                         |    2 
 src/store/modules/user.js                                 |    2 
 src/api/monitor/permit.js                                 |  109 +
 src/views/firework/permit/components/licenseInfoForm.vue  | 1393 +++++++++++++
 src/views/firework/permit/components/licenseDelayForm.vue | 1096 ++++++++++
 src/router/index.js                                       |    5 
 src/views/firework/permit/components/printForm.vue        |  175 +
 src/views/firework/permit/components/licenseModForm.vue   | 1193 +++++++++++
 src/utils/licence.js                                      |   23 
 src/views/firework/permit/components/printDetail.vue      |  183 +
 src/views/firework/permit/components/selectEnterprise.vue |  244 ++
 src/utils/index.js                                        |   10 
 src/views/firework/permit/index.vue                       | 1585 +++++++++++++++
 13 files changed, 6,009 insertions(+), 11 deletions(-)

diff --git a/src/api/monitor/permit.js b/src/api/monitor/permit.js
new file mode 100644
index 0000000..58192f0
--- /dev/null
+++ b/src/api/monitor/permit.js
@@ -0,0 +1,109 @@
+import request from '@/utils/request'
+
+// 查询操作日志列表
+export function getLicenseList(query) {
+  return request({
+    url: '/license/info',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getExportLicense(query) {
+  return request({
+    url: '/license/export',
+    method: 'get',
+    params: query
+  })
+}
+
+export function reviewLicenseInfo(data) {
+  return request({
+    url: '/license/review?id=' + data.id + '&reviewstatus=' + data.reviewstatus,
+    method: 'post',
+  })
+}
+
+export function deleteById(data) {
+  return request({
+    url: '/license/delete?id=' + data,
+    method: 'post'
+  })
+}
+
+export function deleteCertificate(id){
+  return request({
+    url:'/transport/delcertificate?id=' + id,
+    method: 'post'
+  })
+}
+
+export function getProvinceListData(query){
+  return request({
+    url: '/districtByName',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getCityListData(query){
+  return request({
+    url: '/district?type=' + query.type + '&parentname=' + query.parentname + '&parenttype=' + query.parenttype,
+    method: 'get'
+  })
+}
+
+export function refuseLicense(data) {
+  return request({
+    url: '/license/reject',
+    method: 'post',
+    data: data
+  })
+}
+
+export function addLicenseInfo(data) {
+  return request({
+    url: '/license/addLicense',
+    method: 'post',
+    data: data
+  })
+}
+
+export function updateLicenseInfo(data) {
+  return request({
+    url: '/license/editLicense',
+    method: 'post',
+    data: data
+  })
+}
+export function delayLicense(data) {
+  return request({
+    url: '/license/delay',
+    method: 'post',
+    data: data
+  })
+}
+
+export function modLicense(data) {
+  return request({
+    url: '/license/mod',
+    method: 'post',
+    data: data
+  })
+}
+
+export function dictionaryAllItems(query) {
+  return request({
+    url: '/dictionaryAllItems',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getSuperiorDepartmentList(data) {
+  return request({
+    url: '/enterprise/parentList',
+    method: 'post',
+    data: data
+  })
+}
\ No newline at end of file
diff --git a/src/permission.js b/src/permission.js
index dba1d7c..85dde21 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -11,7 +11,7 @@
 
 NProgress.configure({ showSpinner: false });
 
-const whiteList = ['/homePage','/fillForm','/checkProgress','/certPdf'];
+const whiteList = ['/homePage'];
 
 router.beforeEach((to, from, next) => {
   NProgress.start()
diff --git a/src/router/index.js b/src/router/index.js
index e05b36e..418cde3 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -57,11 +57,6 @@
   //   component: () => import('@/views/safetyReview/expertManage/fillForm/index.vue'),
   //   hidden: true
   // },
-  {
-    path: '/certPdf',
-    component: () => import('@/views/certificatePdf'),
-    hidden: true
-  },
   // {
   //   path: '/checkProgress',
   //   component: () => import('@/views/safetyReview/expertManage/checkProgress/index.vue'),
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index fe3d953..b169231 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -37,6 +37,8 @@
             this.avatar = avatar
             Cookies.set('userInfo',JSON.stringify(user))
             Cookies.set('userRole',JSON.stringify(this.roles))
+            Cookies.set('roleType',user.roleType)
+            Cookies.set('isSupervision',user.companyid)
             resolve()
           }).catch(error => {
             reject(error)
diff --git a/src/utils/index.js b/src/utils/index.js
index 4e65504..51445ef 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -20,6 +20,7 @@
  * @param {string} option
  * @returns {string}
  */
+
 export function formatTime(time, option) {
   if (('' + time).length === 10) {
     time = parseInt(time) * 1000
@@ -93,6 +94,15 @@
   return s
 }
 
+export function computePageCount(totalCount, pageSize) {
+  if (pageSize == 0) {
+    return 0
+  }
+  return totalCount % pageSize == 0
+      ? totalCount / pageSize
+      : totalCount / pageSize + 1
+}
+
 /**
  * @param {Array} actual
  * @returns {Array}
diff --git a/src/utils/licence.js b/src/utils/licence.js
new file mode 100644
index 0000000..56daaef
--- /dev/null
+++ b/src/utils/licence.js
@@ -0,0 +1,23 @@
+import Cookies from 'js-cookie'
+
+const TokenKey = 'Admin-Token'
+
+export function computePageCount(totalCount, pageSize) {
+  if (pageSize == 0) {
+    return 0
+  }
+  return totalCount % pageSize == 0
+      ? totalCount / pageSize
+      : totalCount / pageSize + 1
+}
+
+export function formatDateDay(value) {
+  let date = new Date(value);
+  let y = date.getFullYear();
+  let MM = date.getMonth() + 1;
+  MM = MM < 10 ? "0" + MM : MM;
+  let d = date.getDate();
+  d = d < 10 ? "0" + d : d;
+  let h = date.getHours();
+  return y + "年" + MM + "月" + d + "日";
+}
\ No newline at end of file
diff --git a/src/views/firework/permit/components/licenseDelayForm.vue b/src/views/firework/permit/components/licenseDelayForm.vue
new file mode 100644
index 0000000..66fb780
--- /dev/null
+++ b/src/views/firework/permit/components/licenseDelayForm.vue
@@ -0,0 +1,1096 @@
+<template>
+  <el-dialog
+      v-model="licenseInfoVisible"
+      append-to-body
+      :title="title"
+      top="1%"
+      :close-on-click-modal="false"
+      width="65%"
+  >
+
+    <el-form ref="dataForm"  :model="dataForm" :rules="ruleForm" label-position="right" label-width="150px"  element-loading-text="保存中...">
+      <el-row>
+        <el-col :span="23">
+          <el-row>
+            <el-col :span="15">
+              <el-form-item label="企业名称:" >
+                <el-input v-model.trim="dataForm.name" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="统一社会信用代码:" >
+                <el-input v-model.trim="dataForm.code" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="主要负责人姓名:" >
+                <el-input v-model.trim="dataForm.mainpersonname" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="主要负责人身份证号:" >
+                <el-input v-model.trim="dataForm.mainpersonidcardnum" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="主要负责人联系电话:" >
+                <el-input v-model.trim="dataForm.mainpersontel" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="安全负责人姓名:" >
+                <el-input v-model.trim="dataForm.safetypersonname" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="安全负责人身份证号:" >
+                <el-input v-model.trim="dataForm.safetypersonidcardnum" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="安全负责人联系电话:" >
+                <el-input v-model.trim="dataForm.safetypersontel" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="许可类型:" >
+                <el-select v-model="dataForm.licensetype"    :disabled="true">
+                  <el-option
+                      v-for="item in licensetypeList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="经营方式:" >
+                <el-select v-model="dataForm.dealingtype" clearable filterable @change="changeDealing()" :disabled="true">
+                  <el-option
+                      v-for="item in dealingtypeList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="核定储量(箱):" >
+                <el-input-number :controls="false"  v-model="dataForm.reservebox" :disabled="true">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="核定储量(千克):" >
+                <el-input-number :controls="false"  v-model="dataForm.reservekg" :disabled="true">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="经营面积(全部):" >
+                <el-input-number :controls="false"  v-model="dataForm.dealingarea" :disabled="true">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="经营面积(物品):"  v-if="showSaveArea">
+                <el-input-number :controls="false"  v-model="dataForm.savearea" :disabled="true">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="注册地址省:" >
+                <el-select v-model="dataForm.province" clearable filterable @change="changeArea('province')" placeholder="省" :disabled="true">
+                  <el-option
+                      v-for="item in provinceList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="市" >
+                <el-select v-model="dataForm.city" prop="city" clearable filterable @change="changeArea('city')" placeholder="市"  :disabled="true">
+                  <el-option
+                      v-for="item in cityList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="区" >
+                <el-select v-model="dataForm.district" clearable filterable @change="changeArea('district')" placeholder="区"  :disabled="true">
+                  <el-option
+                      v-for="item in districtList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="注册详细地址:" >
+                <el-input v-model.trim="dataForm.address" class="carrierLicense_select" placeholder="详细地址(无需填写省市区信息)"  :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <!--                <el-col :span="8">-->
+            <!--                    <el-form-item label="发证机关:" >-->
+            <!--                        <el-input v-model.trim="dataForm.salecompanyname" class="carrierLicense_select">-->
+            <!--                        </el-input>-->
+            <!--                    </el-form-item>-->
+            <!--                </el-col>-->
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="仓储地址省:" >
+                <el-select v-model="dataForm.storageprovince" clearable filterable @change="changeStorageArea('province')" placeholder="省"  :disabled="true">
+                  <el-option
+                      v-for="item in provinceList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="市" >
+                <el-select v-model="dataForm.storagecity" prop="city" clearable filterable @change="changeStorageArea('city')" placeholder="市"  :disabled="true">
+                  <el-option
+                      v-for="item in cityList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="区" >
+                <el-select v-model="dataForm.storagedistrict" clearable filterable @change="changeStorageArea('district')" placeholder="区"  :disabled="true">
+                  <el-option
+                      v-for="item in districtList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="仓储详细地址:" >
+                <el-input v-model.trim="dataForm.storageaddress" class="carrierLicense_select" placeholder="详细地址(无需填写省市区信息)"  :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <!--                <el-col :span="8">-->
+            <!--                    <el-form-item label="发证机关:" >-->
+            <!--                        <el-input v-model.trim="dataForm.salecompanyname" class="carrierLicense_select">-->
+            <!--                        </el-input>-->
+            <!--                    </el-form-item>-->
+            <!--                </el-col>-->
+          </el-row>
+          <el-row>
+            <el-form-item label="经济类型:" prop="economictype" >
+              <el-select v-model.trim="dataForm.economictype"  placeholder="" clearable class="enterpriseBasicInformation_input"  :disabled="true">
+                <el-option
+                    v-for="item in economicTypeList"
+                    :key="item.id"
+                    :label="item.text"
+                    :value="item.text"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-row>
+
+          <div v-if="roleType==='烟花爆竹批发经营' || type === 2 "  :disabled="true">
+            <div class="enterpriseBasicInformation_title">
+              <span>库房信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:" >
+                  <el-input-number :controls="false" style="width: auto"   v-model.trim="area"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:" >
+                  <el-input  v-model.trim="storagenum" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:" >
+                  <el-input  v-model.trim="storagearea" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:" >
+                  <el-input  v-model.trim="powder" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:" >
+                  <el-input-number :controls="false"  v-model.trim="firststoragenum"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:" >
+                  <el-input-number :controls="false"  v-model.trim="firststoragearea"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:" >
+                  <el-input-number :controls="false"  v-model.trim="firstpowder"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:" >
+                  <el-input-number :controls="false"  v-model.trim="thirdstoragenum"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:" >
+                  <el-input-number :controls="false"  v-model.trim="thirdstoragearea"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:" >
+                  <el-input-number :controls="false"  v-model.trim="thirdpowder"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+
+          <div v-if="roleType==='烟花爆竹生产' || type === 1 ">
+            <div class="enterpriseBasicInformation_title">
+              <span>危险品中转库信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:" >
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="storage1.area"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:" >
+                  <el-input v-model.trim="storagenum1" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:" >
+                  <el-input v-model.trim="storagearea1" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:" >
+                  <el-input v-model.trim="powder1" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.firststoragenum"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.firststoragearea"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.firstpowder"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.thirdstoragenum"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.thirdstoragearea"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.thirdpowder"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <div class="enterpriseBasicInformation_title">
+              <span>药物总库信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:" >
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="storage2.area"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:" >
+                  <el-input v-model.trim="storagenum2" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:" >
+                  <el-input v-model.trim="storagearea2" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:" >
+                  <el-input v-model.trim="powder2" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.firststoragenum"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.firststoragearea"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.firstpowder"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.thirdstoragenum"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.thirdtoragearea"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.thirdpowder"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <div class="enterpriseBasicInformation_title">
+              <span>成品总库信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:" >
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="storage3.area"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:" >
+                  <el-input v-model.trim="storagenum3" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:" >
+                  <el-input v-model.trim="storagearea3" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:" >
+                  <el-input v-model.trim="powder3" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.firststoragenum"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.firststoragearea"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.firstpowder"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.thirdstoragenum"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.thirdtoragearea"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.thirdpowder"  :disabled="true">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="许可范围:" >
+                <el-row>
+                  <el-col :span="8">
+                    <el-checkbox  :disabled="true" v-model="checked1" >爆竹类</el-checkbox>
+                    <el-checkbox-group :disabled="true"  v-model="checkMore1" style="display:inline-block;" >
+                      <el-checkbox  v-for="item in checkList1" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox :disabled="true" v-model="checked2" >喷花类</el-checkbox>
+                    <el-checkbox-group :disabled="true" v-model="checkMore2" style="display:inline-block;" >
+                      <el-checkbox v-for="item in checkList2" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox :disabled="true" v-model="checked3" >旋转类</el-checkbox>
+                    <el-checkbox-group :disabled="true" v-model="checkMore3" style="display:inline-block;">
+                      <el-checkbox v-for="item in checkMoreList" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="8">
+                    <el-checkbox :disabled="true" v-model="checked4">吐珠类</el-checkbox>
+                    <el-checkbox-group :disabled="true" v-model="checkMore4" style="display:inline-block;" >
+                      <el-checkbox v-for="item in checkList1" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox :disabled="true" v-model="checked5" >玩具类</el-checkbox>
+                    <el-checkbox-group :disabled="true" v-model="checkMore5" style="display:inline-block;">
+                      <el-checkbox v-for="item in checkMoreList" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox :disabled="true" v-model="checked6">组合烟花类</el-checkbox>
+                    <el-checkbox-group :disabled="true" v-model="checkMore6" style="display:inline-block;" >
+                      <el-checkbox v-for="item in checkList2" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox :disabled="true" v-model="checked7">升空类</el-checkbox>
+                    <el-checkbox-group :disabled="true" v-model="checkMore7" style="display:inline-block;" >
+                      <el-checkbox v-for="item in checkList2" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                </el-row>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="备注:" >
+                <el-input type="textarea" :disabled="true" :rows="3" v-model.trim="dataForm.remark" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <div class="enterpriseBasicInformation_title">
+            <span>发证机关必填内容</span>
+            <span style="display: inline-block;color:red">(*延期修改必填内容)</span>
+          </div>
+          <el-divider></el-divider>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="发证机关:" prop="issuingunit" :rules="rules.rulesItem">
+                <el-input v-model.trim="dataForm.issuingunit"  :disabled="isSupervision !== 'null' ">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="发证日期:" prop="issuingdate" :rules="rules.rulesItem">
+                <el-date-picker
+                    :disabled="isSupervision !== 'null' "
+                    value-format="YYYY-MM-DD"
+                    v-model="dataForm.issuingdate"
+                    placeholder="选择日期时间">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+                <span :span="16">
+                    <el-form-item label="有效期:" prop="effectdate" :rules="rules.rulesArray">
+                        <el-date-picker
+                            :disabled="isSupervision !== 'null' "
+                            value-format="yyyy-MM-dd"
+                            v-model="validTime"
+                            type="daterange"
+                            range-separator="至"
+                            start-placeholder="开始日期"
+                            end-placeholder="结束日期"
+                            @change="giveData"
+                        >
+                        </el-date-picker>
+                    </el-form-item>
+                </span>
+          </el-row>
+
+
+        </el-col>
+
+      </el-row>
+
+    </el-form>
+    <div  align="right" style="margin-top:30px;" v-if="title==='延期' ">
+      <el-button  @click="licenseInfoVisible=false" >取消</el-button>
+      <el-button type="primary" @click="submit('')" :disabled="isSending">延期</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import selectEnterprise from "./selectEnterprise";
+import {addLicenseInfo,updateLicenseInfo,delayLicense,getCityListData, getProvinceListData,dictionaryAllItems} from "../../../../api/monitor/permit";
+import Cookies from "js-cookie";
+import {ElMessage} from "element-plus";
+
+export default {
+  name: "licenseInfoForm",
+  data(){
+    return{
+      title:'',
+      licenseInfoVisible:false,
+      ruleForm:{
+
+      },
+      rules:{
+        rulesItem:[
+          { message:"必填项",required:true, trigger: 'change'}
+        ],
+        rulesArray:[
+          { type:'array',message:"开始结束日期必填",required:true, trigger: 'change'}
+        ],
+      },
+      type:null,
+      isSupervision:'',
+      roleType:'',
+      showSaveArea:false,
+      salecompanyname:[],
+      economicTypeList:[],
+      licensetypeList:[
+        {id:1,name:'长期'},
+        {id:2,name:'临时'}
+      ],
+      dealingtypeList:[
+        {id:1,name:'专柜'},
+        {id:2,name:'专店'}
+      ],
+      validTime:['',''],
+      dataForm:{
+        id:'',
+        type:null,
+        name:'',
+        mainpersonname:'',
+        mainpersonidcardnum:'',
+        mainpersontel:'',
+        safetypersonname:'',
+        safetypersonidcardnum:'',
+        safetypersontel:'',
+        dealingrange:[],
+        licensetype:'',
+        dealingtype:'',
+        reservebox:'',
+        reservekg:'',
+        dealingarea:'',
+        savearea:'',
+        province:'',
+        city:'',
+        district:'',
+        address:'',
+        storageprovince:'',
+        storagecity:'',
+        storagedistrict:'',
+        storageaddress:'',
+        issuingunit:'',
+        issuingdate:'',
+        effectdate:'',
+        noeffectdate:'',
+        economictype:'',
+        licenseStorage:[
+
+        ],
+        remark:'',
+      },
+      areaListQuery:{
+
+      },
+      provinceList:[],
+      cityList:[],
+      districtList:[],
+      checked1:false,
+      checked2:false,
+      checked3:false,
+      checked4:false,
+      checked5:false,
+      checked6:false,
+      checked7:false,
+      checkMore1:[],
+      checkMore2:[],
+      checkMore3:[],
+      checkMore4:[],
+      checkMore5:[],
+      checkMore6:[],
+      checkMore7:[],
+      checkList1:['C级','D级'],
+      checkList2:['C级','D级'],
+      checkMoreList:['C级','D级'],
+      storage1:{
+        id:null,
+        area:null,
+        firststoragenum:null,
+        thirdstoragenum:null,
+        firststoragearea:null,
+        thirdstoragearea:null,
+        firstpowder:null,
+        thirdpowder:null,
+      },
+      storage2:{
+        id:null,
+        area:null,
+        firststoragenum:null,
+        thirdstoragenum:null,
+        firststoragearea:null,
+        thirdstoragearea:null,
+        firstpowder:null,
+        thirdpowder:null,
+      },
+      storage3:{
+        id:null,
+        area:null,
+        firststoragenum:null,
+        thirdstoragenum:null,
+        firststoragearea:null,
+        thirdstoragearea:null,
+        firstpowder:null,
+        thirdpowder:null,
+      },
+      id:null,
+      area:null,
+      firststoragenum:null,
+      thirdstoragenum:null,
+      firststoragearea:null,
+      thirdstoragearea:null,
+      firstpowder:null,
+      thirdpowder:null,
+      isSending:false
+    }
+  },
+  created(){
+    this.getProvince();
+    this.getEconomicTypeList()
+  },
+  computed:{
+    storagenum:function (){
+      return Number(this.firststoragenum) + Number(this.thirdstoragenum)
+    },
+    storagearea:function(){
+      return Number(this.firststoragearea) + Number(this.thirdstoragearea)
+    },
+    powder:function (){
+      return Number(this.firstpowder) + Number(this.thirdpowder)
+    },
+    storagenum1:function (){
+      return Number(this.storage1.firststoragenum) + Number(this.storage1.thirdstoragenum)
+    },
+    storagearea1:function(){
+      console.log(this.storage1);
+      return Number(this.storage1.firststoragearea) + Number(this.storage1.thirdstoragearea)
+    },
+    powder1:function (){
+      console.log(this.storage1);
+      return Number(this.storage1.firstpowder) + Number(this.storage1.thirdpowder)
+    },
+    storagenum2:function (){
+      return Number(this.storage2.firststoragenum) + Number(this.storage2.thirdstoragenum)
+    },
+    storagearea2:function(){
+      return Number(this.storage2.firststoragearea) + Number(this.storage2.thirdstoragearea)
+    },
+    powder2:function (){
+      return Number(this.storage2.firstpowder) + Number(this.storage2.thirdpowder)
+    },
+    storagenum3:function (){
+      return Number(this.storage3.firststoragenum) + Number(this.storage3.thirdstoragenum)
+    },
+    storagearea3:function(){
+      return Number(this.storage3.firststoragearea) + Number(this.storage3.thirdstoragearea)
+    },
+    powder3:function (){
+      return Number(this.storage3.firstpowder) + Number(this.storage3.thirdpowder)
+    }
+  },
+  methods:{
+    showLicenseForm(title,value,isSupervision,roleType){
+      console.log(6666666)
+      this.isSupervision = isSupervision
+      this.roleType = roleType
+      this.licenseInfoVisible = true
+      this.title = title
+      this.validTime = [value.effectdate,value.noeffectdate]
+      let {...copyValue} = value
+      this.dataForm = copyValue
+      if(roleType === '烟花爆竹批发经营' ||  (this.dataForm.type === 2 && roleType === 'null')){
+        this.type = 2
+        if(this.dataForm.licenseStorage.length > 10){
+          this.dataForm.licenseStorage = JSON.parse(this.dataForm.licenseStorage)
+          this.dataForm.dealingrange =JSON.parse(this.dataForm.dealingrange)
+        }
+        let licenseStorage = this.dataForm.licenseStorage
+        let dealingrange = this.dataForm.dealingrange
+        this.id = licenseStorage[0].id
+        this.area = licenseStorage[0].area
+        this.firststoragenum=licenseStorage[0].firststoragenum
+        this.thirdstoragenum=licenseStorage[0].thirdstoragenum
+        this.firststoragearea=licenseStorage[0].firststoragearea
+        this.thirdstoragearea=licenseStorage[0].thirdstoragearea
+        this.firstpowder=licenseStorage[0].firstpowder
+        this.thirdpowder=licenseStorage[0].thirdpowder
+        this.checked1 = dealingrange[0].checked1
+        this.checked2 = dealingrange[1].checked2
+        this.checked3 = dealingrange[2].checked3
+        this.checked4 = dealingrange[3].checked4
+        this.checked5 = dealingrange[4].checked5
+        this.checked6 = dealingrange[5].checked6
+        this.checked7 = dealingrange[6].checked7
+        this.checkMore1=dealingrange[0].checkMore1
+        this.checkMore2=dealingrange[1].checkMore2
+        this.checkMore3=dealingrange[2].checkMore3
+        this.checkMore4=dealingrange[3].checkMore4
+        this.checkMore5=dealingrange[4].checkMore5
+        this.checkMore6=dealingrange[5].checkMore6
+        this.checkMore7=dealingrange[6].checkMore7
+      }else if(roleType === '烟花爆竹零售经营(长期)' || roleType === '烟花爆竹零售经营(短期)' || (roleType === 'null'&& this.dataForm.type ===3)){
+        this.type = 3
+        if(this.dataForm.dealingrange.length > 10){
+          this.dataForm.dealingrange =JSON.parse(this.dataForm.dealingrange)
+        }
+        let dealingrange = this.dataForm.dealingrange
+        this.checked1 = dealingrange[0].checked1
+        this.checked2 = dealingrange[1].checked2
+        this.checked3 = dealingrange[2].checked3
+        this.checked4 = dealingrange[3].checked4
+        this.checked5 = dealingrange[4].checked5
+        this.checked6 = dealingrange[5].checked6
+        this.checked7 = dealingrange[6].checked7
+        this.checkMore1=dealingrange[0].checkMore1
+        this.checkMore2=dealingrange[1].checkMore2
+        this.checkMore3=dealingrange[2].checkMore3
+        this.checkMore4=dealingrange[3].checkMore4
+        this.checkMore5=dealingrange[4].checkMore5
+        this.checkMore6=dealingrange[5].checkMore6
+        this.checkMore7=dealingrange[6].checkMore7
+      }
+    },
+    async submit(value){
+
+
+      if (this.validTime == null || this.validTime.length < 2) {
+        this.$message({
+          type:'warning',
+          message:'请填写日期'
+        })
+        return
+      }
+      if (this.dealingtypeList.filter(item => item.id === this.dataForm.dealingtype).length !== 1) {
+        ElMessage({
+          type: 'warning',
+          message: '请填写经营方式'
+        })
+        return
+      }
+      if (this.licensetypeList.filter(item => item.id === this.dataForm.licensetype).length !== 1) {
+        ElMessage({
+          type: 'warning',
+          message: '请填写许可类型'
+        })
+        return
+      }
+
+      this.isSending  = true
+      delayLicense({id:this.dataForm.id,
+        issuingunit:this.dataForm.issuingunit,
+        issuingdate:this.dataForm.issuingdate,
+        validstarttime:this.validTime[0],
+        validendtime:this.validTime[1]
+
+      }).then(res=>{
+        this.isSending = false
+        let data = res.data
+        if (data.code === '200') {
+          this.licenseInfoVisible = false
+          this.$emit('getinfo')
+          this.$message({
+            type:'success',
+            message:'操作成功'
+          })
+        }else{
+          this.$message({
+            type:'success',
+            message:data.message
+          })
+        }
+
+      })
+
+
+    },
+
+    getEconomicTypeList() {
+      const _this = this
+      if (_this.levelOptions && _this.levelOptions.length > 0) {
+        return
+      }
+      dictionaryAllItems({dictionaryType: '国民经济类型'}).then(res => {
+        if (res.code == '200') {
+          _this.economicTypeList = res.result
+        } else {
+          ElMessage.warning(res.message)
+        }
+      }).catch(error => {
+        ElMessage.warning(error)
+      })
+    },//获取国民经济类型列表
+
+
+    async getProvince(){
+      let res = await getProvinceListData()
+      if(res.code === "200"){
+        this.provinceList = res.result.provinceList
+      }
+    },
+    async changeArea(value){
+      if(value === 'province'){
+        this.dataForm.city = ''
+        this.dataForm.district = ''
+        this.areaListQuery = {
+          type: 2,
+          parenttype: 1,
+          parentname: this.dataForm.province,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.cityList = res.result
+        }
+      }else if(value === 'city'){
+        this.dataForm.district = ''
+        this.areaListQuery = {
+          type: 3,
+          parenttype: 2,
+          parentname: this.dataForm.city,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.districtList = res.result
+        }
+      }else if(value === 'district'){
+        this.areaListQuery = {
+          type: 4,
+          parenttype: 3,
+          parentname: this.dataForm.district,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.streetList = res.result
+        }
+      }
+    },
+    async changeStorageArea(value){
+      if(value === 'province'){
+        this.dataForm.storagecity = ''
+        this.dataForm.storagedistrict = ''
+        this.areaListQuery = {
+          type: 2,
+          parenttype: 1,
+          parentname: this.dataForm.storageprovince,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.cityList = res.result
+        }
+      }else if(value === 'city'){
+        this.dataForm.storagedistrict = ''
+        this.areaListQuery = {
+          type: 3,
+          parenttype: 2,
+          parentname: this.dataForm.storagecity,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.districtList = res.result
+        }
+      }else if(value === 'district'){
+        this.areaListQuery = {
+          type: 4,
+          parenttype: 3,
+          parentname: this.dataForm.storagedistrict,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.streetList = res.result
+        }
+      }
+    },
+    changeDealing(){
+      if(this.dataForm.dealingtype === 1){
+        this.showSaveArea = true
+      }else{
+        this.showSaveArea = false
+      }
+    },
+    giveData(){
+      if(this.validTime ===null){
+        this.dataForm.effectdate = ""
+        this.dataForm.noeffectdate = ""
+      }else{
+        this.dataForm.effectdate = this.validTime[0]
+        this.dataForm.noeffectdate = this.validTime[1]
+      }
+    },
+    showEnterprise(){
+      this.$refs.selectEnterprise.showEnterPrise(this.safetySuperVisionList)
+    },
+    giveEnterprise(val){
+      this.dataForm.name = val
+    },
+    getByteLen(val) {
+      let len = 0;
+      for (let i = 0; i < val.length; i++) {
+        let a = val.charAt(i);
+        if (a.match(/[^\x00-\xff]/ig) != null) {
+          len += 2;
+        }
+        else {
+          len += 1;
+        }
+      }
+      return len;
+    }
+  }
+}
+</script>
+
+<style scoped>
+.enterpriseBasicInformation_title{
+  font-weight: bolder;
+  font-size: large;
+  text-align: center;
+  margin-top: 10px;
+}
+.enterpriseBasicInformation_image{
+  width:70%;
+  height:70%;
+  margin-left:10px;
+}
+.el-input-number{
+  width: 100%;
+}
+</style>
diff --git a/src/views/firework/permit/components/licenseInfoForm.vue b/src/views/firework/permit/components/licenseInfoForm.vue
new file mode 100644
index 0000000..77d95d1
--- /dev/null
+++ b/src/views/firework/permit/components/licenseInfoForm.vue
@@ -0,0 +1,1393 @@
+<template>
+  <el-dialog
+      v-model="licenseInfoVisible"
+      append-to-body
+      :title="title"
+      :close-on-click-modal="false"
+      width="60%"
+  >
+
+    <el-form ref="dataForm" :model="dataForm" :rules="ruleForm" label-position="right" label-width="150px"
+             element-loading-text="保存中...">
+      <el-row>
+        <el-col :span="23">
+          <el-row>
+            <el-col :span="15">
+              <el-form-item label="企业名称:">
+                <el-input v-model.trim="dataForm.name" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <!--<el-col :span="1">
+                <img src="../../../../assets/enterprise.png" class="enterpriseBasicInformation_image" @click="showEnterprise"></img>
+            </el-col>-->
+            <el-col :span="8">
+              <el-form-item label="统一社会信用代码:">
+                <el-input v-model.trim="dataForm.code" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="主要负责人姓名:">
+                <el-input v-model.trim="dataForm.mainpersonname" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="主要负责人身份证号:">
+                <el-input v-model.trim="dataForm.mainpersonidcardnum" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="主要负责人联系电话:">
+                <el-input v-model.trim="dataForm.mainpersontel" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="安全负责人姓名:">
+                <el-input v-model.trim="dataForm.safetypersonname" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="安全负责人身份证号:">
+                <el-input v-model.trim="dataForm.safetypersonidcardnum" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="安全负责人联系电话:">
+                <el-input v-model.trim="dataForm.safetypersontel" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="许可类型:">
+                <el-select v-model="dataForm.licensetype" clearable filterable>
+                  <el-option
+                      v-for="item in licensetypeList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="经营方式:">
+                <el-select v-model="dataForm.dealingtype" clearable filterable
+                           @change="changeDealing()">
+                  <el-option
+                      v-for="item in dealingtypeList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="核定储量(箱):">
+                <el-input-number :controls="false" v-model="dataForm.reservebox">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="核定储量(千克):">
+                <el-input-number :controls="false" v-model="dataForm.reservekg">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="经营面积(全部):">
+                <el-input-number :controls="false" v-model="dataForm.dealingarea">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="经营面积(物品):" v-if="showSaveArea">
+                <el-input-number :controls="false" v-model="dataForm.savearea">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="注册地址省:">
+                <el-select v-model="dataForm.province" clearable filterable
+                           @change="changeArea('province')" placeholder="省">
+                  <el-option
+                      v-for="item in provinceList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="市">
+                <el-select v-model="dataForm.city" prop="city" clearable filterable
+                           @change="changeArea('city')" placeholder="市">
+                  <el-option
+                      v-for="item in cityList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="区">
+                <el-select v-model="dataForm.district" clearable filterable
+                           @change="changeArea('district')" placeholder="区">
+                  <el-option
+                      v-for="item in districtList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="注册详细地址:">
+                <el-input v-model.trim="dataForm.address" class="carrierLicense_select"
+                          placeholder="详细地址(无需填写省市区信息)">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <!--                <el-col :span="8">-->
+            <!--                    <el-form-item label="发证机关:" >-->
+            <!--                        <el-input v-model.trim="dataForm.salecompanyname" class="carrierLicense_select">-->
+            <!--                        </el-input>-->
+            <!--                    </el-form-item>-->
+            <!--                </el-col>-->
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="仓储地址省:">
+                <el-select v-model="dataForm.storageprovince" clearable filterable
+                           @change="changeStorageArea('province')" placeholder="省">
+                  <el-option
+                      v-for="item in provinceList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="市">
+                <el-select v-model="dataForm.storagecity" prop="city" clearable filterable
+                           @change="changeStorageArea('city')" placeholder="市">
+                  <el-option
+                      v-for="item in cityList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="区">
+                <el-select v-model="dataForm.storagedistrict" clearable filterable
+                           @change="changeStorageArea('district')" placeholder="区">
+                  <el-option
+                      v-for="item in districtList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="仓储详细地址:">
+                <el-input v-model.trim="dataForm.storageaddress" class="carrierLicense_select"
+                          placeholder="详细地址(无需填写省市区信息)">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <!--                <el-col :span="8">-->
+            <!--                    <el-form-item label="发证机关:" >-->
+            <!--                        <el-input v-model.trim="dataForm.salecompanyname" class="carrierLicense_select">-->
+            <!--                        </el-input>-->
+            <!--                    </el-form-item>-->
+            <!--                </el-col>-->
+          </el-row>
+          <el-row>
+            <el-form-item label="经济类型:" prop="economictype">
+              <el-select v-model.trim="dataForm.economictype" placeholder="" clearable
+                         class="enterpriseBasicInformation_input">
+                <el-option
+                    v-for="item in economicTypeList"
+                    :key="item.id"
+                    :label="item.text"
+                    :value="item.text"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-row>
+
+          <div v-if="roleType==='烟花爆竹批发经营' || type === 2 ? true : false">
+            <div class="enterpriseBasicInformation_title">
+              <span>库房信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:">
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="area">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:">
+                  <el-input v-model.trim="storagenum" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:">
+                  <el-input v-model.trim="storagearea" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:">
+                  <el-input v-model.trim="powder" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:">
+                  <el-input-number :controls="false" v-model.trim="firststoragenum">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:">
+                  <el-input-number :controls="false" v-model.trim="firststoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:">
+                  <el-input-number :controls="false" v-model.trim="firstpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:">
+                  <el-input-number :controls="false" v-model.trim="thirdstoragenum">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:">
+                  <el-input-number :controls="false" v-model.trim="thirdstoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:">
+                  <el-input-number :controls="false" v-model.trim="thirdpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+
+          <div v-if="roleType==='烟花爆竹生产' || type === 1 ? true : false">
+            <div class="enterpriseBasicInformation_title">
+              <span>危险品中转库信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:">
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="storage1.area">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:">
+                  <el-input v-model.trim="storagenum1" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:">
+                  <el-input v-model.trim="storagearea1" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:">
+                  <el-input v-model.trim="powder1" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:">
+                  <el-input-number :controls="false" v-model.trim="storage1.firststoragenum">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:">
+                  <el-input-number :controls="false" v-model.trim="storage1.firststoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:">
+                  <el-input-number :controls="false" v-model.trim="storage1.firstpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:">
+                  <el-input-number :controls="false" v-model.trim="storage1.thirdstoragenum">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:">
+                  <el-input-number :controls="false" v-model.trim="storage1.thirdstoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:">
+                  <el-input-number :controls="false" v-model.trim="storage1.thirdpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <div class="enterpriseBasicInformation_title">
+              <span>药物总库信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:">
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="storage2.area">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:">
+                  <el-input v-model.trim="storagenum2" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:">
+                  <el-input v-model.trim="storagearea2" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:">
+                  <el-input v-model.trim="powder2" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:">
+                  <el-input-number :controls="false" v-model.trim="storage2.firststoragenum">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:">
+                  <el-input-number :controls="false" v-model.trim="storage2.firststoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:">
+                  <el-input-number :controls="false" v-model.trim="storage2.firstpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:">
+                  <el-input-number :controls="false" v-model.trim="storage2.thirdstoragenum">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:">
+                  <el-input-number :controls="false" v-model.trim="storage2.thirdtoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:">
+                  <el-input-number :controls="false" v-model.trim="storage2.thirdpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <div class="enterpriseBasicInformation_title">
+              <span>成品总库信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:">
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="storage3.area">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:">
+                  <el-input v-model.trim="storagenum3" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:">
+                  <el-input v-model.trim="storagearea3" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:">
+                  <el-input v-model.trim="powder3" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:">
+                  <el-input-number :controls="false" v-model.trim="storage3.firststoragenum">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:">
+                  <el-input-number :controls="false" v-model.trim="storage3.firststoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:">
+                  <el-input-number :controls="false" v-model.trim="storage3.firstpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:">
+                  <el-input-number :controls="false" v-model.trim="storage3.thirdstoragenum">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:">
+                  <el-input-number :controls="false" v-model.trim="storage3.thirdtoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:">
+                  <el-input-number :controls="false" v-model.trim="storage3.thirdpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="许可范围:">
+                <el-row :gutter="40">
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked1" style="margin-right: 15px" @change="justifySingle(1)">爆竹类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore1" style="display:inline-block;"
+                                       @change="justify(1)">
+                      <el-checkbox v-for="item in checkList1" :label="item" :key="item">
+                        {{ item }}
+                      </el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked2" style="margin-right: 15px" @change="justifySingle(2)">喷花类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore2" style="display:inline-block;"
+                                       @change="justify(2)">
+                      <el-checkbox v-for="item in checkList2" :label="item" :key="item">
+                        {{ item }}
+                      </el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked3" style="margin-right: 15px" @change="justifySingle(3)">旋转类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore3" style="display:inline-block;"
+                                       @change="justify(3)">
+                      <el-checkbox v-for="item in checkMoreList" :label="item" :key="item">
+                        {{ item }}
+                      </el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked4" style="margin-right: 15px" @change="justifySingle(4)">吐珠类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore4" style="display:inline-block;"
+                                       @change="justify(4)">
+                      <el-checkbox v-for="item in checkList1" :label="item" :key="item">
+                        {{ item }}
+                      </el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked5" style="margin-right: 15px" @change="justifySingle(5)">玩具类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore5" style="display:inline-block;"
+                                       @change="justify(5)">
+                      <el-checkbox v-for="item in checkMoreList" :label="item" :key="item">
+                        {{ item }}
+                      </el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked6" style="margin-right: 15px" @change="justifySingle(6)">组合烟花类
+                    </el-checkbox>
+                    <el-checkbox-group v-model="checkMore6" style="display:inline-block;"
+                                       @change="justify(6)">
+                      <el-checkbox v-for="item in checkList2" :label="item" :key="item">
+                        {{ item }}
+                      </el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked7" style="margin-right: 15px" @change="justifySingle(7)">升空类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore7" style="display:inline-block;"
+                                       @change="justify(7)">
+                      <el-checkbox v-for="item in checkList2" :label="item" :key="item">
+                        {{ item }}
+                      </el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                </el-row>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="备注:">
+                <el-input type="textarea" :rows="3" v-model.trim="dataForm.remark"
+                          class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <div class="enterpriseBasicInformation_title">
+            <span>发证机关必填内容</span>
+            <span style="display: inline-block;color:red">(*必填)</span>
+          </div>
+          <el-divider></el-divider>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="发证机关:">
+                <el-input v-model.trim="dataForm.issuingunit"
+                          :disabled="isSupervision === 'null' ? false :true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="发证日期:" prop="issuingdate">
+                <el-date-picker
+                    :disabled="isSupervision === 'null' ? false :true"
+                    value-format="YYYY-MM-DD"
+                    v-model="dataForm.issuingdate"
+                    placeholder="选择日期时间">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+                <span :span="16">
+                    <el-form-item label="有效期:">
+                        <el-date-picker
+                            :disabled="isSupervision === 'null' ? false :true"
+                            value-format="YYYY-MM-DD"
+                            v-model="validTime"
+                            type="daterange"
+                            range-separator="至"
+                            start-placeholder="开始日期"
+                            end-placeholder="结束日期"
+                            @change="giveData"
+                        >
+                        </el-date-picker>
+                    </el-form-item>
+                </span>
+          </el-row>
+
+
+        </el-col>
+
+      </el-row>
+
+    </el-form>
+    <div align="right" style="margin-top:30px;" v-if="title==='审核' ? false : true">
+      <el-button @click="licenseInfoVisible = false">取消</el-button>
+      <el-button type="primary" @click="submit('')">确认</el-button>
+    </div>
+    <div align="right" style="margin-top:30px;" v-if="title==='审核' ?true : false">
+      <el-button @click="submit('拒绝')">拒绝</el-button>
+      <el-button type="primary" @click="submit('同意')">同意</el-button>
+    </div>
+    <!--        <select-enterprise ref="selectEnterprise" @getinfo="giveEnterprise"></select-enterprise>-->
+  </el-dialog>
+</template>
+
+<script>
+import selectEnterprise from "./selectEnterprise";
+import {addLicenseInfo, updateLicenseInfo,getCityListData, getProvinceListData,dictionaryAllItems} from "../../../../api/monitor/permit";
+import Cookies from "js-cookie";
+import {ElMessage} from "element-plus";
+
+export default {
+  name: "licenseInfoForm",
+  data() {
+    return {
+      title: '',
+      licenseInfoVisible: false,
+      ruleForm: {},
+      type: null,
+      isSupervision: '',
+      roleType: '',
+      showSaveArea: false,
+      salecompanyname: [],
+      economicTypeList: [],
+      licensetypeList: [
+        {id: 1, name: '长期'},
+        {id: 2, name: '临时'}
+      ],
+      dealingtypeList: [
+        {id: 1, name: '专柜'},
+        {id: 2, name: '专店'}
+      ],
+      validTime: ['', ''],
+      dataForm: {
+        id: '',
+        type: null,
+        name: '',
+        mainpersonname: '',
+        mainpersonidcardnum: '',
+        mainpersontel: '',
+        safetypersonname: '',
+        safetypersonidcardnum: '',
+        safetypersontel: '',
+        dealingrange: [],
+        licensetype: '',
+        dealingtype: '',
+        reservebox: '',
+        reservekg: '',
+        dealingarea: '',
+        savearea: '',
+        province: '',
+        city: '',
+        district: '',
+        address: '',
+        storageprovince: '',
+        storagecity: '',
+        storagedistrict: '',
+        storageaddress: '',
+        issuingunit: '',
+        issuingdate: '',
+        effectdate: '',
+        noeffectdate: '',
+        economictype: '',
+        licenseStorage: [],
+        remark: '',
+      },
+      areaListQuery: {},
+      provinceList: [],
+      cityList: [],
+      districtList: [],
+      checked1: false,
+      checked2: false,
+      checked3: false,
+      checked4: false,
+      checked5: false,
+      checked6: false,
+      checked7: false,
+      checkMore1: [],
+      checkMore2: [],
+      checkMore3: [],
+      checkMore4: [],
+      checkMore5: [],
+      checkMore6: [],
+      checkMore7: [],
+      checkList1: ['C级', 'D级'],
+      checkList2: ['C级', 'D级'],
+      checkMoreList: ['C级', 'D级'],
+      storage1: {
+        id: null,
+        area: null,
+        firststoragenum: null,
+        thirdstoragenum: null,
+        firststoragearea: null,
+        thirdstoragearea: null,
+        firstpowder: null,
+        thirdpowder: null,
+      },
+      storage2: {
+        id: null,
+        area: null,
+        firststoragenum: null,
+        thirdstoragenum: null,
+        firststoragearea: null,
+        thirdstoragearea: null,
+        firstpowder: null,
+        thirdpowder: null,
+      },
+      storage3: {
+        id: null,
+        area: null,
+        firststoragenum: null,
+        thirdstoragenum: null,
+        firststoragearea: null,
+        thirdstoragearea: null,
+        firstpowder: null,
+        thirdpowder: null,
+      },
+      id: null,
+      area: null,
+      firststoragenum: null,
+      thirdstoragenum: null,
+      firststoragearea: null,
+      thirdstoragearea: null,
+      firstpowder: null,
+      thirdpowder: null,
+    }
+  },
+  components: {
+    selectEnterprise
+  },
+  computed: {
+    storagenum: function () {
+      return Number(this.firststoragenum) + Number(this.thirdstoragenum)
+    },
+    storagearea: function () {
+      return Number(this.firststoragearea) + Number(this.thirdstoragearea)
+    },
+    powder: function () {
+      return Number(this.firstpowder) + Number(this.thirdpowder)
+    },
+    storagenum1: function () {
+      return Number(this.storage1.firststoragenum) + Number(this.storage1.thirdstoragenum)
+    },
+    storagearea1: function () {
+      console.log(this.storage1);
+      return Number(this.storage1.firststoragearea) + Number(this.storage1.thirdstoragearea)
+    },
+    powder1: function () {
+      console.log(this.storage1);
+      return Number(this.storage1.firstpowder) + Number(this.storage1.thirdpowder)
+    },
+    storagenum2: function () {
+      return Number(this.storage2.firststoragenum) + Number(this.storage2.thirdstoragenum)
+    },
+    storagearea2: function () {
+      return Number(this.storage2.firststoragearea) + Number(this.storage2.thirdstoragearea)
+    },
+    powder2: function () {
+      return Number(this.storage2.firstpowder) + Number(this.storage2.thirdpowder)
+    },
+    storagenum3: function () {
+      return Number(this.storage3.firststoragenum) + Number(this.storage3.thirdstoragenum)
+    },
+    storagearea3: function () {
+      return Number(this.storage3.firststoragearea) + Number(this.storage3.thirdstoragearea)
+    },
+    powder3: function () {
+      return Number(this.storage3.firstpowder) + Number(this.storage3.thirdpowder)
+    }
+  },
+  created() {
+    this.getProvince();
+    this.getEconomicTypeList()
+  },
+  methods: {
+    showLicenseForm(title, value, isSupervision, roleType) {
+      this.isSupervision = isSupervision
+      this.roleType = roleType
+      this.licenseInfoVisible = true
+      this.title = title
+      if (title === '新增') {
+        this.dataForm = {
+          id: '',
+          type: null,
+          name: Cookies.get("company"),
+          mainpersonname: '',
+          mainpersonidcardnum: '',
+          mainpersontel: '',
+          safetypersonname: '',
+          safetypersonidcardnum: '',
+          safetypersontel: '',
+          dealingrange: [],
+          licensetype: '',
+          dealingtype: '',
+          reservebox: '',
+          reservekg: '',
+          dealingarea: '',
+          savearea: '',
+          province: '',
+          city: '',
+          district: '',
+          address: '',
+          storageprovince: '',
+          storagecity: '',
+          storagedistrict: '',
+          storageaddress: '',
+          issuingunit: '',
+          issuingdate: '',
+          effectdate: '',
+          noeffectdate: '',
+          licenseStorage: [],
+          remark: '',
+        }
+        if (roleType === '烟花爆竹生产') {
+          this.dataForm.type = 1
+        } else if (roleType === '烟花爆竹批发经营') {
+          this.dataForm.type = 2
+        } else {
+          this.dataForm.type = 3
+        }
+        this.checked1 = false
+        this.checked2 = false
+        this.checked3 = false
+        this.checked4 = false
+        this.checked5 = false
+        this.checked6 = false
+        this.checked7 = false
+        this.checkMore1 = []
+        this.checkMore2 = []
+        this.checkMore3 = []
+        this.checkMore4 = []
+        this.checkMore5 = []
+        this.checkMore6 = []
+        this.checkMore7 = []
+        this.id = null
+        this.area = null
+        this.firststoragenum = null
+        this.thirdstoragenum = null
+        this.firststoragearea = null
+        this.thirdstoragearea = null
+        this.firstpowder = null
+        this.thirdpowder = null
+      } else {
+        this.dataForm = value
+        if (roleType === '烟花爆竹批发经营' || (this.dataForm.type === 2 && roleType === 'null')) {
+          this.type = 2
+          if (value.licenseStorage.length > 10) {
+            value.licenseStorage = JSON.parse(value.licenseStorage)
+            value.dealingrange = JSON.parse(value.dealingrange)
+          } else {
+
+          }
+          let licenseStorage = this.dataForm.licenseStorage
+          let dealingrange = this.dataForm.dealingrange
+          console.log(dealingrange,'range')
+          this.id = licenseStorage[0].id
+          this.area = licenseStorage[0].area
+          this.firststoragenum = licenseStorage[0].firststoragenum
+          this.thirdstoragenum = licenseStorage[0].thirdstoragenum
+          this.firststoragearea = licenseStorage[0].firststoragearea
+          this.thirdstoragearea = licenseStorage[0].thirdstoragearea
+          this.firstpowder = licenseStorage[0].firstpowder
+          this.thirdpowder = licenseStorage[0].thirdpowder
+          this.checked1 = dealingrange[0].checked1
+          this.checked2 = dealingrange[1].checked2
+          this.checked3 = dealingrange[2].checked3
+          this.checked4 = dealingrange[3].checked4
+          this.checked5 = dealingrange[4].checked5
+          this.checked6 = dealingrange[5].checked6
+          this.checked7 = dealingrange[6].checked7
+          this.checkMore1 = dealingrange[0].checkMore1
+          this.checkMore2 = dealingrange[1].checkMore2
+          this.checkMore3 = dealingrange[2].checkMore3
+          this.checkMore4 = dealingrange[3].checkMore4
+          this.checkMore5 = dealingrange[4].checkMore5
+          this.checkMore6 = dealingrange[5].checkMore6
+          this.checkMore7 = dealingrange[6].checkMore7
+        } else if (roleType === '烟花爆竹零售经营(长期)' || roleType === '烟花爆竹零售经营(短期)' || (roleType === 'null' && this.dataForm.type === 3)) {
+          this.type = 3
+          if (value.dealingrange.length > 10) {
+            value.dealingrange = JSON.parse(value.dealingrange)
+          } else {
+
+          }
+          let dealingrange = this.dataForm.dealingrange
+          this.checked1 = dealingrange[0].checked1
+          this.checked2 = dealingrange[1].checked2
+          this.checked3 = dealingrange[2].checked3
+          this.checked4 = dealingrange[3].checked4
+          this.checked5 = dealingrange[4].checked5
+          this.checked6 = dealingrange[5].checked6
+          this.checked7 = dealingrange[6].checked7
+          this.checkMore1 = dealingrange[0].checkMore1
+          this.checkMore2 = dealingrange[1].checkMore2
+          this.checkMore3 = dealingrange[2].checkMore3
+          this.checkMore4 = dealingrange[3].checkMore4
+          this.checkMore5 = dealingrange[4].checkMore5
+          this.checkMore6 = dealingrange[5].checkMore6
+          this.checkMore7 = dealingrange[6].checkMore7
+        }
+      }
+    },
+    async submit(value) {
+      if (this.dataForm.type === 1) {
+        let storageOne = Object.assign(this.storage1, {
+          storagenum1: this.storagenum1,
+          storagearea1: this.storagearea1,
+          powder1: this.powder1
+        })
+        let storageTwo = Object.assign(this.storage1, {
+          storagenum2: this.storagenum2,
+          storagearea2: this.storagearea2,
+          powder2: this.powder2
+        })
+        let storageThree = Object.assign(this.storage1, {
+          storagenum3: this.storagenum3,
+          storagearea3: this.storagearea3,
+          powder3: this.powder3
+        })
+        this.dataForm.licenseStorage.push(storageOne)
+        this.dataForm.licenseStorage.push(storageTwo)
+        this.dataForm.licenseStorage.push(storageThree)
+        this.dataForm.dealingrange = JSON.stringify([{
+          checked1: this.checked1,
+          checkMore1: this.checkMore1
+        }, {checked2: this.checked2, checkMore2: this.checkMore2}, {
+          checked3: this.checked3,
+          checkMore3: this.checkMore3
+        }, {checked4: this.checked4, checkMore4: this.checkMore4}, {
+          checked5: this.checked5,
+          checkMore5: this.checkMore5
+        }, {checked6: this.checked6, checkMore6: this.checkMore6}, {
+          checked7: this.checked7,
+          checkMore7: this.checkMore7
+        }])
+        this.dataForm.licenseStorage = JSON.stringify(this.dataForm.licenseStorage)
+      } else if (this.dataForm.type === 2) {
+        this.dataForm.licenseStorage = JSON.stringify([{
+          id: this.id,
+          area: this.area,
+          storagenum: this.storagenum,
+          storagearea: this.storagearea,
+          powder: this.powder,
+          firststoragenum: this.firststoragenum,
+          firststoragearea: this.firststoragearea,
+          firstpowder: this.firstpowder,
+          thirdstoragenum: this.thirdstoragenum,
+          thirdstoragearea: this.thirdstoragearea,
+          thirdpowder: this.thirdpowder,
+          type: 3
+        }])
+        this.dataForm.dealingrange = JSON.stringify([{
+          checked1: this.checked1,
+          checkMore1: this.checkMore1
+        }, {checked2: this.checked2, checkMore2: this.checkMore2}, {
+          checked3: this.checked3,
+          checkMore3: this.checkMore3
+        }, {checked4: this.checked4, checkMore4: this.checkMore4}, {
+          checked5: this.checked5,
+          checkMore5: this.checkMore5
+        }, {checked6: this.checked6, checkMore6: this.checkMore6}, {
+          checked7: this.checked7,
+          checkMore7: this.checkMore7
+        }])
+      } else {
+        this.dataForm.dealingrange = JSON.stringify([{
+          checked1: this.checked1,
+          checkMore1: this.checkMore1
+        }, {checked2: this.checked2, checkMore2: this.checkMore2}, {
+          checked3: this.checked3,
+          checkMore3: this.checkMore3
+        }, {checked4: this.checked4, checkMore4: this.checkMore4}, {
+          checked5: this.checked5,
+          checkMore5: this.checkMore5
+        }, {checked6: this.checked6, checkMore6: this.checkMore6}, {
+          checked7: this.checked7,
+          checkMore7: this.checkMore7
+        }])
+        this.dataForm.licenseStorage = JSON.stringify([])
+      }
+      let fullAddress = (this.dataForm.province === '新疆维吾尔自治区' ? '新疆' : this.dataForm.province)
+          + this.dataForm.city + this.dataForm.district + this.dataForm.address;
+      let fullStorageAddress = (this.dataForm.storageprovince === '新疆维吾尔自治区' ? '新疆' : this.dataForm.storageprovince)
+          + this.dataForm.storagecity + this.dataForm.storagedistrict + this.dataForm.storageaddress;
+      if (this.getByteLen(fullAddress) > 390 || this.getByteLen(fullStorageAddress) > 390) {
+        ElMessage.warning('注册地址或仓储地址的省市区详细地址总和不能超过200个字,请删减')
+      } else {
+        if (this.title === "新增") {
+          let res = await addLicenseInfo(this.dataForm)
+          if (res.code === '200') {
+            this.licenseInfoVisible = false
+            this.$emit('getinfo')
+            this.$notify({
+              title: '成功',
+              duration: 2000,
+              message: '新增成功',
+              type: 'success'
+            })
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.message
+            })
+          }
+        } else if (this.title === '修改') {
+
+          let res = await updateLicenseInfo(this.dataForm)
+          if (res.code === '200') {
+            this.licenseInfoVisible = false
+            this.$emit('getinfo')
+            this.$notify({
+              title: '成功',
+              duration: 2000,
+              message: '修改成功',
+              type: 'success'
+            })
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.message
+            })
+          }
+        } else {
+          if (value === '同意') {
+            this.dataForm.reviewstatus = 2
+            let res = await updateLicenseInfo(this.dataForm)
+            if (res.code === '200') {
+              this.licenseInfoVisible = false
+              this.$emit('getinfo')
+              this.$notify({
+                title: '成功',
+                duration: 2000,
+                message: '修改成功',
+                type: 'success'
+              })
+            } else {
+              this.$message({
+                type: 'warning',
+                message: res.message
+              })
+            }
+          } else {
+            this.dataForm.reviewstatus = 3
+            let res = await updateLicenseInfo(this.dataForm)
+            if (res.code === '200') {
+              this.licenseInfoVisible = false
+              this.$emit('getinfo')
+              this.$notify({
+                title: '成功',
+                duration: 2000,
+                message: '修改成功',
+                type: 'success'
+              })
+            } else {
+              this.$message({
+                type: 'warning',
+                message: res.message
+              })
+            }
+          }
+        }
+      }
+
+
+    },
+    justify(value) {
+      if (value === 1) {
+        if (this.checkMore1.length !== 0) {
+          this.checked1 = true
+        } else {
+          this.checked1 = false
+        }
+      } else if (value === 2) {
+        if (this.checkMore2.length !== 0) {
+          this.checked2 = true
+        } else {
+          this.checked2 = false
+        }
+      } else if (value === 3) {
+        if (this.checkMore3.length !== 0) {
+          this.checked3 = true
+        } else {
+          this.checked3 = false
+        }
+      } else if (value === 4) {
+        if (this.checkMore4.length !== 0) {
+          this.checked4 = true
+        } else {
+          this.checked4 = false
+        }
+      } else if (value === 5) {
+        if (this.checkMore5.length !== 0) {
+          this.checked5 = true
+        } else {
+          this.checked5 = false
+        }
+      } else if (value === 6) {
+        if (this.checkMore6.length !== 0) {
+          this.checked6 = true
+        } else {
+          this.checked6 = false
+        }
+      } else {
+        if (this.checkMore7.length !== 0) {
+          this.checked7 = true
+        } else {
+          this.checked7 = false
+        }
+      }
+    },
+
+    justifySingle(value) {
+      if (value === 1) {
+        if (this.checked1 === true) {
+          this.checkMore1 = ['C级', 'D级']
+        } else {
+          this.checkMore1 = []
+        }
+      } else if (value === 2) {
+        if (this.checked2 === true) {
+          this.checkMore2 = ['C级', 'D级']
+        } else {
+          this.checkMore2 = []
+        }
+      } else if (value === 3) {
+        if (this.checked3 === true) {
+          this.checkMore3 = ['C级', 'D级']
+        } else {
+          this.checkMore3 = []
+        }
+      } else if (value === 4) {
+        if (this.checked4 === true) {
+          this.checkMore4 = ['C级', 'D级']
+        } else {
+          this.checkMore4 = []
+        }
+      } else if (value === 5) {
+        if (this.checked5 === true) {
+          this.checkMore5 = ['C级', 'D级']
+        } else {
+          this.checkMore5 = []
+        }
+      } else if (value === 6) {
+        if (this.checked6 === true) {
+          this.checkMore6 = ['C级', 'D级']
+        } else {
+          this.checkMore6 = []
+        }
+      } else {
+        if (this.checked7 === true) {
+          this.checkMore7 = ['C级', 'D级']
+        } else {
+          this.checkMore7 = []
+        }
+      }
+    },
+
+    getEconomicTypeList() {
+      const _this = this
+      if (_this.levelOptions && _this.levelOptions.length > 0) {
+        return
+      }
+      const params = {}
+      params['dictionaryType'] = '国民经济类型'
+      dictionaryAllItems(params).then(res => {
+        if (res.code == 200) {
+          _this.economicTypeList = res.result
+        } else {
+          ElMessage.warning(res.message)
+        }
+      }).catch(error => {
+        ElMessage.warning(error)
+      })
+    },//获取国民经济类型列表
+
+
+    async getProvince() {
+      let res = await getProvinceListData()
+      if (res.code === "200") {
+        this.provinceList = res.result.provinceList
+      }
+    },
+    async changeArea(value) {
+      if (value === 'province') {
+        this.dataForm.city = ''
+        this.dataForm.district = ''
+        this.areaListQuery = {
+          type: 2,
+          parenttype: 1,
+          parentname: this.dataForm.province,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if (res.code === "200") {
+          this.cityList = res.result
+        }
+      } else if (value === 'city') {
+        this.dataForm.district = ''
+        this.areaListQuery = {
+          type: 3,
+          parenttype: 2,
+          parentname: this.dataForm.city,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if (res.code === "200") {
+          this.districtList = res.result
+        }
+      } else if (value === 'district') {
+        this.areaListQuery = {
+          type: 4,
+          parenttype: 3,
+          parentname: this.dataForm.district,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if (res.code === "200") {
+          this.streetList = res.result
+        }
+      }
+    },
+    async changeStorageArea(value) {
+      if (value === 'province') {
+        this.dataForm.storagecity = ''
+        this.dataForm.storagedistrict = ''
+        this.areaListQuery = {
+          type: 2,
+          parenttype: 1,
+          parentname: this.dataForm.storageprovince,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if (res.code === "200") {
+          this.cityList = res.result
+        }
+      } else if (value === 'city') {
+        this.dataForm.storagedistrict = ''
+        this.areaListQuery = {
+          type: 3,
+          parenttype: 2,
+          parentname: this.dataForm.storagecity,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if (res.code === "200") {
+          this.districtList = res.result
+        }
+      } else if (value === 'district') {
+        this.areaListQuery = {
+          type: 4,
+          parenttype: 3,
+          parentname: this.dataForm.storagedistrict,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if (res.code === "200") {
+          this.streetList = res.result
+        }
+      }
+    },
+    changeDealing() {
+      if (this.dataForm.dealingtype === 1) {
+        this.showSaveArea = true
+      } else {
+        this.showSaveArea = false
+      }
+    },
+    giveData() {
+      if (this.validTime === null) {
+        this.dataForm.effectdate = ""
+        this.dataForm.noeffectdate = ""
+      } else {
+        this.dataForm.effectdate = this.validTime[0]
+        this.dataForm.noeffectdate = this.validTime[1]
+      }
+    },
+    showEnterprise() {
+      this.$refs.selectEnterprise.showEnterPrise(this.safetySuperVisionList)
+    },
+    giveEnterprise(val) {
+      this.dataForm.name = val
+    },
+    getByteLen(val) {
+      let len = 0;
+      for (let i = 0; i < val.length; i++) {
+        let a = val.charAt(i);
+        if (a.match(/[^\x00-\xff]/ig) != null) {
+          len += 2;
+        } else {
+          len += 1;
+        }
+      }
+      return len;
+    }
+  }
+}
+</script>
+
+<style scoped>
+.enterpriseBasicInformation_title {
+  font-weight: bolder;
+  font-size: large;
+  text-align: center;
+  margin-top: 10px;
+}
+
+.enterpriseBasicInformation_image {
+  width: 70%;
+  height: 70%;
+  margin-left: 10px;
+}
+
+.el-input-number {
+  width: 100%;
+}
+</style>
diff --git a/src/views/firework/permit/components/licenseModForm.vue b/src/views/firework/permit/components/licenseModForm.vue
new file mode 100644
index 0000000..81d2ffd
--- /dev/null
+++ b/src/views/firework/permit/components/licenseModForm.vue
@@ -0,0 +1,1193 @@
+<template>
+  <el-dialog
+      v-model="licenseInfoVisible"
+      append-to-body
+      :title="title"
+      :close-on-click-modal="false"
+      width="60%"
+  >
+
+    <el-form ref="dataForm"  :model="dataForm" :rules="ruleForm" label-position="right" label-width="150px"  element-loading-text="保存中...">
+      <el-row>
+        <el-col :span="23">
+          <el-row>
+            <el-col :span="15">
+              <el-form-item label="企业名称:" >
+                <el-input v-model.trim="dataForm.name" class="carrierLicense_select" :disabled="true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="统一社会信用代码:" >
+                <el-input v-model.trim="dataForm.code" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="主要负责人姓名:" >
+                <el-input v-model.trim="dataForm.mainpersonname" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="主要负责人身份证号:" >
+                <el-input v-model.trim="dataForm.mainpersonidcardnum" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="主要负责人联系电话:" >
+                <el-input v-model.trim="dataForm.mainpersontel" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="安全负责人姓名:" >
+                <el-input v-model.trim="dataForm.safetypersonname" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="安全负责人身份证号:" >
+                <el-input v-model.trim="dataForm.safetypersonidcardnum" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="安全负责人联系电话:" >
+                <el-input v-model.trim="dataForm.safetypersontel" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="许可类型:" >
+                <el-select v-model="dataForm.licensetype" clearable filterable >
+                  <el-option
+                      v-for="item in licensetypeList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="经营方式:" >
+                <el-select v-model="dataForm.dealingtype" clearable filterable @change="changeDealing()">
+                  <el-option
+                      v-for="item in dealingtypeList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="核定储量(箱):" >
+                <el-input-number :controls="false"  v-model="dataForm.reservebox">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="核定储量(千克):" >
+                <el-input-number :controls="false"  v-model="dataForm.reservekg">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="经营面积(全部):" >
+                <el-input-number :controls="false"  v-model="dataForm.dealingarea">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="经营面积(物品):"  v-if="showSaveArea">
+                <el-input-number :controls="false"  v-model="dataForm.savearea">
+                </el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="注册地址省:" >
+                <el-select v-model="dataForm.province" clearable filterable @change="changeArea('province')" placeholder="省">
+                  <el-option
+                      v-for="item in provinceList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="市" >
+                <el-select v-model="dataForm.city" prop="city" clearable filterable @change="changeArea('city')" placeholder="市">
+                  <el-option
+                      v-for="item in cityList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="区" >
+                <el-select v-model="dataForm.district" clearable filterable @change="changeArea('district')" placeholder="区">
+                  <el-option
+                      v-for="item in districtList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="注册详细地址:" >
+                <el-input v-model.trim="dataForm.address" class="carrierLicense_select" placeholder="详细地址(无需填写省市区信息)">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <!--                <el-col :span="8">-->
+            <!--                    <el-form-item label="发证机关:" >-->
+            <!--                        <el-input v-model.trim="dataForm.salecompanyname" class="carrierLicense_select">-->
+            <!--                        </el-input>-->
+            <!--                    </el-form-item>-->
+            <!--                </el-col>-->
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="仓储地址省:" >
+                <el-select v-model="dataForm.storageprovince" clearable filterable @change="changeStorageArea('province')" placeholder="省">
+                  <el-option
+                      v-for="item in provinceList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="市" >
+                <el-select v-model="dataForm.storagecity" prop="city" clearable filterable @change="changeStorageArea('city')" placeholder="市">
+                  <el-option
+                      v-for="item in cityList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="区" >
+                <el-select v-model="dataForm.storagedistrict" clearable filterable @change="changeStorageArea('district')" placeholder="区">
+                  <el-option
+                      v-for="item in districtList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="仓储详细地址:" >
+                <el-input v-model.trim="dataForm.storageaddress" class="carrierLicense_select" placeholder="详细地址(无需填写省市区信息)">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <!--                <el-col :span="8">-->
+            <!--                    <el-form-item label="发证机关:" >-->
+            <!--                        <el-input v-model.trim="dataForm.salecompanyname" class="carrierLicense_select">-->
+            <!--                        </el-input>-->
+            <!--                    </el-form-item>-->
+            <!--                </el-col>-->
+          </el-row>
+          <el-row>
+            <el-form-item label="经济类型:" prop="economictype" >
+              <el-select v-model.trim="dataForm.economictype"  placeholder="" clearable class="enterpriseBasicInformation_input">
+                <el-option
+                    v-for="item in economicTypeList"
+                    :key="item.id"
+                    :label="item.text"
+                    :value="item.text"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-row>
+
+          <div v-if="roleType==='烟花爆竹批发经营' || type === 2 ? true : false">
+            <div class="enterpriseBasicInformation_title">
+              <span>库房信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:" >
+                  <el-input-number :controls="false" style="width: auto"   v-model.trim="area" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:" >
+                  <el-input  v-model.trim="storagenum" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:" >
+                  <el-input  v-model.trim="storagearea" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:" >
+                  <el-input  v-model.trim="powder" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:" >
+                  <el-input-number :controls="false"  v-model.trim="firststoragenum" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:" >
+                  <el-input-number :controls="false"  v-model.trim="firststoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:" >
+                  <el-input-number :controls="false"  v-model.trim="firstpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:" >
+                  <el-input-number :controls="false"  v-model.trim="thirdstoragenum" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:" >
+                  <el-input-number :controls="false"  v-model.trim="thirdstoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:" >
+                  <el-input-number :controls="false"  v-model.trim="thirdpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+
+          <div v-if="roleType==='烟花爆竹生产' || type === 1 ? true : false">
+            <div class="enterpriseBasicInformation_title">
+              <span>危险品中转库信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:" >
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="storage1.area" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:" >
+                  <el-input v-model.trim="storagenum1" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:" >
+                  <el-input v-model.trim="storagearea1" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:" >
+                  <el-input v-model.trim="powder1" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.firststoragenum" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.firststoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.firstpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.thirdstoragenum" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.thirdstoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage1.thirdpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <div class="enterpriseBasicInformation_title">
+              <span>药物总库信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:" >
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="storage2.area" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:" >
+                  <el-input v-model.trim="storagenum2" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:" >
+                  <el-input v-model.trim="storagearea2" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:" >
+                  <el-input v-model.trim="powder2" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.firststoragenum" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.firststoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.firstpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.thirdstoragenum" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.thirdtoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage2.thirdpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <div class="enterpriseBasicInformation_title">
+              <span>成品总库信息</span>
+            </div>
+            <el-divider></el-divider>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="库区面积:" >
+                  <el-input-number :controls="false" style="width: auto" v-model.trim="storage3.area" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房数量:" >
+                  <el-input v-model.trim="storagenum3" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="库房面积:" >
+                  <el-input v-model.trim="storagearea3" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="核定药量:" >
+                  <el-input v-model.trim="powder3" :disabled="true">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.firststoragenum" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.firststoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.1级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.firstpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房数量:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.thirdstoragenum" >
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  库房面积:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.thirdtoragearea">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="1.3级  核定药量:" >
+                  <el-input-number :controls="false" v-model.trim="storage3.thirdpowder">
+                  </el-input-number>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="许可范围:" >
+                <el-row>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked1" @change="justifySingle(1)">爆竹类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore1" style="display:inline-block;" @change="justify(1)">
+                      <el-checkbox v-for="item in checkList1" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked2" @change="justifySingle(2)">喷花类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore2" style="display:inline-block;" @change="justify(2)">
+                      <el-checkbox v-for="item in checkList2" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked3" @change="justifySingle(3)">旋转类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore3" style="display:inline-block;" @change="justify(3)">
+                      <el-checkbox v-for="item in checkMoreList" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked4" @change="justifySingle(4)">吐珠类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore4" style="display:inline-block;" @change="justify(4)">
+                      <el-checkbox v-for="item in checkList1" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked5" @change="justifySingle(5)">玩具类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore5" style="display:inline-block;" @change="justify(5)">
+                      <el-checkbox v-for="item in checkMoreList" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked6" @change="justifySingle(6)">组合烟花类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore6" style="display:inline-block;" @change="justify(6)">
+                      <el-checkbox v-for="item in checkList2" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-checkbox v-model="checked7" @change="justifySingle(7)">升空类</el-checkbox>
+                    <el-checkbox-group v-model="checkMore7" style="display:inline-block;" @change="justify(7)">
+                      <el-checkbox v-for="item in checkList2" :label="item" :key="item">{{item}}</el-checkbox>
+                    </el-checkbox-group>
+                  </el-col>
+                </el-row>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="备注:" >
+                <el-input type="textarea" :rows="3" v-model.trim="dataForm.remark" class="carrierLicense_select">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <div class="enterpriseBasicInformation_title">
+            <span>发证机关必填内容</span>
+            <span style="display: inline-block;color:red">(*必填)</span>
+          </div>
+          <el-divider></el-divider>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="发证机关:" prop="issuingunit" :rules="rules.rulesItem">
+                <el-input v-model.trim="dataForm.issuingunit"  :disabled="isSupervision === 'null' ? false :true">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="发证日期:" prop="issuingdate" :rules="rules.rulesItem">
+                <el-date-picker
+                    :disabled="isSupervision === 'null' ? false :true"
+                    value-format="YYYY-MM-DD"
+                    v-model="dataForm.issuingdate"
+                    placeholder="选择日期时间">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+                <span :span="16">
+                    <el-form-item label="有效期:" prop="effectdate" :rules="rules.rulesArray">
+                        <el-date-picker
+                            :disabled="isSupervision === 'null' ? false :true"
+                            value-format="YYYY-MM-DD"
+                            v-model="validTime"
+                            type="daterange"
+                            range-separator="至"
+                            start-placeholder="开始日期"
+                            end-placeholder="结束日期"
+                            @change="giveData"
+                        >
+                        </el-date-picker>
+                    </el-form-item>
+                </span>
+          </el-row>
+
+
+        </el-col>
+
+      </el-row>
+
+    </el-form>
+    <div  align="right" style="margin-top:30px;" v-if="title==='审核' ? false : true">
+      <el-button @click="licenseInfoVisible = false">取消</el-button>
+      <el-button type="primary" @click="submit('')">确认</el-button>
+    </div>
+    <div  align="right" style="margin-top:30px;" v-if="title==='审核' ?true : false">
+      <el-button @click="submit('拒绝')">拒绝</el-button>
+      <el-button type="primary" @click="submit('同意')">同意</el-button>
+    </div>
+    <!--        <select-enterprise ref="selectEnterprise" @getinfo="giveEnterprise"></select-enterprise>-->
+  </el-dialog>
+</template>
+
+<script>
+import selectEnterprise from "./selectEnterprise";
+import {addLicenseInfo,modLicense,getCityListData, getProvinceListData,dictionaryAllItems} from "../../../../api/monitor/permit";
+import Cookies from "js-cookie";
+import {ElMessage} from "element-plus";
+
+export default {
+  name: "licenseInfoForm",
+  data(){
+    return{
+      title:'',
+      licenseInfoVisible:false,
+      ruleForm:{
+
+      },
+      rules:{
+        rulesItem:[
+          { message:"必填项",required:true, trigger: 'change'}
+        ],
+        rulesArray:[
+          { type:'array',message:"开始结束日期必填",required:true, trigger: 'change'}
+        ],
+      },
+      type:null,
+      isSupervision:'',
+      roleType:'',
+      showSaveArea:false,
+      salecompanyname:[],
+      economicTypeList:[],
+      licensetypeList:[
+        {id:1,name:'长期'},
+        {id:2,name:'临时'}
+      ],
+      dealingtypeList:[
+        {id:1,name:'专柜'},
+        {id:2,name:'专店'}
+      ],
+      validTime:['',''],
+      dataForm:{
+        id:'',
+        type:null,
+        name:'',
+        mainpersonname:'',
+        mainpersonidcardnum:'',
+        mainpersontel:'',
+        safetypersonname:'',
+        safetypersonidcardnum:'',
+        safetypersontel:'',
+        dealingrange:[],
+        licensetype:'',
+        dealingtype:'',
+        reservebox:'',
+        reservekg:'',
+        dealingarea:'',
+        savearea:'',
+        province:'',
+        city:'',
+        district:'',
+        address:'',
+        storageprovince:'',
+        storagecity:'',
+        storagedistrict:'',
+        storageaddress:'',
+        issuingunit:'',
+        issuingdate:'',
+        effectdate:'',
+        noeffectdate:'',
+        economictype:'',
+        licenseStorage:[
+
+        ],
+        remark:'',
+      },
+      areaListQuery:{
+
+      },
+      provinceList:[],
+      cityList:[],
+      districtList:[],
+      checked1:false,
+      checked2:false,
+      checked3:false,
+      checked4:false,
+      checked5:false,
+      checked6:false,
+      checked7:false,
+      checkMore1:[],
+      checkMore2:[],
+      checkMore3:[],
+      checkMore4:[],
+      checkMore5:[],
+      checkMore6:[],
+      checkMore7:[],
+      checkList1:['C级','D级'],
+      checkList2:['C级','D级'],
+      checkMoreList:['C级','D级'],
+      storage1:{
+        id:null,
+        area:null,
+        firststoragenum:null,
+        thirdstoragenum:null,
+        firststoragearea:null,
+        thirdstoragearea:null,
+        firstpowder:null,
+        thirdpowder:null,
+      },
+      storage2:{
+        id:null,
+        area:null,
+        firststoragenum:null,
+        thirdstoragenum:null,
+        firststoragearea:null,
+        thirdstoragearea:null,
+        firstpowder:null,
+        thirdpowder:null,
+      },
+      storage3:{
+        id:null,
+        area:null,
+        firststoragenum:null,
+        thirdstoragenum:null,
+        firststoragearea:null,
+        thirdstoragearea:null,
+        firstpowder:null,
+        thirdpowder:null,
+      },
+      id:null,
+      area:null,
+      firststoragenum:null,
+      thirdstoragenum:null,
+      firststoragearea:null,
+      thirdstoragearea:null,
+      firstpowder:null,
+      thirdpowder:null,
+    }
+  },
+  components:{
+    selectEnterprise
+  },
+  computed:{
+    storagenum:function (){
+      return Number(this.firststoragenum) + Number(this.thirdstoragenum)
+    },
+    storagearea:function(){
+      return Number(this.firststoragearea) + Number(this.thirdstoragearea)
+    },
+    powder:function (){
+      return Number(this.firstpowder) + Number(this.thirdpowder)
+    },
+    storagenum1:function (){
+      return Number(this.storage1.firststoragenum) + Number(this.storage1.thirdstoragenum)
+    },
+    storagearea1:function(){
+      console.log(this.storage1);
+      return Number(this.storage1.firststoragearea) + Number(this.storage1.thirdstoragearea)
+    },
+    powder1:function (){
+      console.log(this.storage1);
+      return Number(this.storage1.firstpowder) + Number(this.storage1.thirdpowder)
+    },
+    storagenum2:function (){
+      return Number(this.storage2.firststoragenum) + Number(this.storage2.thirdstoragenum)
+    },
+    storagearea2:function(){
+      return Number(this.storage2.firststoragearea) + Number(this.storage2.thirdstoragearea)
+    },
+    powder2:function (){
+      return Number(this.storage2.firstpowder) + Number(this.storage2.thirdpowder)
+    },
+    storagenum3:function (){
+      return Number(this.storage3.firststoragenum) + Number(this.storage3.thirdstoragenum)
+    },
+    storagearea3:function(){
+      return Number(this.storage3.firststoragearea) + Number(this.storage3.thirdstoragearea)
+    },
+    powder3:function (){
+      return Number(this.storage3.firstpowder) + Number(this.storage3.thirdpowder)
+    }
+  },
+  created(){
+    this.getProvince();
+    this.getEconomicTypeList()
+  },
+  methods:{
+    showLicenseForm(title,value,isSupervision,roleType){
+      this.isSupervision = isSupervision
+      this.roleType = roleType
+      this.licenseInfoVisible = true
+      this.title = title
+      this.validTime = [value.effectdate,value.noeffectdate]
+      let {...copyValue} = value
+      this.dataForm = copyValue
+      if(roleType === '烟花爆竹批发经营' ||  (this.dataForm.type === 2 && roleType === 'null')){
+        this.type = 2
+        if(this.dataForm.licenseStorage.length > 10){
+          this.dataForm.licenseStorage = JSON.parse(this.dataForm.licenseStorage)
+          this.dataForm.dealingrange =JSON.parse(this.dataForm.dealingrange)
+        }
+        let licenseStorage = this.dataForm.licenseStorage
+        let dealingrange = this.dataForm.dealingrange
+        this.id = licenseStorage[0].id
+        this.area = licenseStorage[0].area
+        this.firststoragenum=licenseStorage[0].firststoragenum
+        this.thirdstoragenum=licenseStorage[0].thirdstoragenum
+        this.firststoragearea=licenseStorage[0].firststoragearea
+        this.thirdstoragearea=licenseStorage[0].thirdstoragearea
+        this.firstpowder=licenseStorage[0].firstpowder
+        this.thirdpowder=licenseStorage[0].thirdpowder
+        this.checked1 = dealingrange[0].checked1
+        this.checked2 = dealingrange[1].checked2
+        this.checked3 = dealingrange[2].checked3
+        this.checked4 = dealingrange[3].checked4
+        this.checked5 = dealingrange[4].checked5
+        this.checked6 = dealingrange[5].checked6
+        this.checked7 = dealingrange[6].checked7
+        this.checkMore1=dealingrange[0].checkMore1
+        this.checkMore2=dealingrange[1].checkMore2
+        this.checkMore3=dealingrange[2].checkMore3
+        this.checkMore4=dealingrange[3].checkMore4
+        this.checkMore5=dealingrange[4].checkMore5
+        this.checkMore6=dealingrange[5].checkMore6
+        this.checkMore7=dealingrange[6].checkMore7
+      }else if(roleType === '烟花爆竹零售经营(长期)' || roleType === '烟花爆竹零售经营(短期)' || (roleType === 'null'&& this.dataForm.type ===3)){
+        this.type = 3
+        if(this.dataForm.dealingrange.length > 10){
+          this.dataForm.dealingrange =JSON.parse(this.dataForm.dealingrange)
+        }
+        let dealingrange = this.dataForm.dealingrange
+        this.checked1 = dealingrange[0].checked1
+        this.checked2 = dealingrange[1].checked2
+        this.checked3 = dealingrange[2].checked3
+        this.checked4 = dealingrange[3].checked4
+        this.checked5 = dealingrange[4].checked5
+        this.checked6 = dealingrange[5].checked6
+        this.checked7 = dealingrange[6].checked7
+        this.checkMore1=dealingrange[0].checkMore1
+        this.checkMore2=dealingrange[1].checkMore2
+        this.checkMore3=dealingrange[2].checkMore3
+        this.checkMore4=dealingrange[3].checkMore4
+        this.checkMore5=dealingrange[4].checkMore5
+        this.checkMore6=dealingrange[5].checkMore6
+        this.checkMore7=dealingrange[6].checkMore7
+      }
+    },
+    async submit(value){
+      if(this.dataForm.type === 1){
+        let storageOne = Object.assign(this.storage1,{storagenum1:this.storagenum1,storagearea1:this.storagearea1,powder1:this.powder1})
+        let storageTwo = Object.assign(this.storage1,{storagenum2:this.storagenum2,storagearea2:this.storagearea2,powder2:this.powder2})
+        let storageThree = Object.assign(this.storage1,{storagenum3:this.storagenum3,storagearea3:this.storagearea3,powder3:this.powder3})
+        this.dataForm.licenseStorage.push(storageOne)
+        this.dataForm.licenseStorage.push(storageTwo)
+        this.dataForm.licenseStorage.push(storageThree)
+        this.dataForm.dealingrange = JSON.stringify([{checked1:this.checked1,checkMore1:this.checkMore1},{checked2:this.checked2,checkMore2:this.checkMore2},{checked3:this.checked3,checkMore3:this.checkMore3},{checked4:this.checked4,checkMore4:this.checkMore4},{checked5:this.checked5,checkMore5:this.checkMore5},{checked6:this.checked6,checkMore6:this.checkMore6},{checked7:this.checked7,checkMore7:this.checkMore7}])
+        this.dataForm.licenseStorage = JSON.stringify(this.dataForm.licenseStorage)
+      }else if(this.dataForm.type === 2){
+        this.dataForm.licenseStorage = JSON.stringify([{id:this.id,area:this.area,storagenum:this.storagenum,storagearea:this.storagearea,powder:this.powder,firststoragenum:this.firststoragenum,firststoragearea:this.firststoragearea,firstpowder:this.firstpowder,thirdstoragenum:this.thirdstoragenum,thirdstoragearea:this.thirdstoragearea,thirdpowder:this.thirdpowder,type:3}])
+        this.dataForm.dealingrange = JSON.stringify([{checked1:this.checked1,checkMore1:this.checkMore1},{checked2:this.checked2,checkMore2:this.checkMore2},{checked3:this.checked3,checkMore3:this.checkMore3},{checked4:this.checked4,checkMore4:this.checkMore4},{checked5:this.checked5,checkMore5:this.checkMore5},{checked6:this.checked6,checkMore6:this.checkMore6},{checked7:this.checked7,checkMore7:this.checkMore7}])
+      }else{
+        this.dataForm.dealingrange = JSON.stringify([{checked1:this.checked1,checkMore1:this.checkMore1},{checked2:this.checked2,checkMore2:this.checkMore2},{checked3:this.checked3,checkMore3:this.checkMore3},{checked4:this.checked4,checkMore4:this.checkMore4},{checked5:this.checked5,checkMore5:this.checkMore5},{checked6:this.checked6,checkMore6:this.checkMore6},{checked7:this.checked7,checkMore7:this.checkMore7}])
+        this.dataForm.licenseStorage = JSON.stringify([])
+      }
+      let fullAddress = (this.dataForm.province ==='新疆维吾尔自治区'? '新疆': this.dataForm.province)
+          + this.dataForm.city + this.dataForm.district + this.dataForm.address;
+      let fullStorageAddress = (this.dataForm.storageprovince ==='新疆维吾尔自治区'? '新疆': this.dataForm.storageprovince)
+          + this.dataForm.storagecity + this.dataForm.storagedistrict + this.dataForm.storageaddress;
+
+      if (this.dealingtypeList.filter(item => item.id === this.dataForm.dealingtype).length !== 1) {
+        ElMessage.warning('请填写经营方式')
+        return
+      }
+      if (this.licensetypeList.filter(item => item.id === this.dataForm.licensetype).length !== 1) {
+        ElMessage.warning('请填写许可类型')
+        return
+      }
+      if (this.getByteLen(fullAddress) > 390 || this.getByteLen(fullStorageAddress) > 390){
+        ElMessage.warning('注册地址或仓储地址的省市区详细地址总和不能超过200个字,请删减')
+      } else {
+        let res = await modLicense(this.dataForm)
+        if(res.code === '200'){
+          this.licenseInfoVisible = false
+          this.$emit('getinfo')
+          this.$notify({
+            title:'成功',
+            duration:2000,
+            message:'变更成功',
+            type:'success'
+          })
+        }else{
+          this.$message({
+            type:'warning',
+            message:res.message
+          })
+        }
+      }
+
+
+    },
+    justify(value){
+      if(value === 1){
+        if(this.checkMore1.length !== 0){
+          this.checked1 = true
+        }else{
+          this.checked1 = false
+        }
+      }else if(value===2){
+        if(this.checkMore2.length !== 0){
+          this.checked2 = true
+        }else{
+          this.checked2= false
+        }
+      }else if(value ===3){
+        if(this.checkMore3.length !== 0){
+          this.checked3 = true
+        }else{
+          this.checked3 = false
+        }
+      }else if(value === 4){
+        if(this.checkMore4.length !== 0){
+          this.checked4 = true
+        }else{
+          this.checked4 = false
+        }
+      }else if(value === 5){
+        if(this.checkMore5.length !== 0){
+          this.checked5 = true
+        }else{
+          this.checked5 = false
+        }
+      }else if(value === 6){
+        if(this.checkMore6.length !== 0){
+          this.checked6 = true
+        }else{
+          this.checked6 = false
+        }
+      }else{
+        if(this.checkMore7.length !== 0){
+          this.checked7 = true
+        }else{
+          this.checked7 = false
+        }
+      }
+    },
+
+    justifySingle(value){
+      if(value === 1){
+        if(this.checked1 === true){
+          this.checkMore1 = ['C级','D级']
+        }else{
+          this.checkMore1 = []
+        }
+      }else if(value ===2){
+        if(this.checked2 === true){
+          this.checkMore2 = ['C级','D级']
+        }else{
+          this.checkMore2 = []
+        }
+      }else if(value=== 3){
+        if(this.checked3 === true){
+          this.checkMore3 = ['C级','D级']
+        }else{
+          this.checkMore3 = []
+        }
+      }else if(value === 4){
+        if(this.checked4 === true){
+          this.checkMore4 = ['C级','D级']
+        }else{
+          this.checkMore4 = []
+        }
+      }else if(value ===5){
+        if(this.checked5 === true){
+          this.checkMore5 = ['C级','D级']
+        }else{
+          this.checkMore5 = []
+        }
+      }else if(value === 6){
+        if(this.checked6 === true){
+          this.checkMore6 = ['C级','D级']
+        }else{
+          this.checkMore6 = []
+        }
+      }else{
+        if(this.checked7 === true){
+          this.checkMore7 = ['C级','D级']
+        }else{
+          this.checkMore7 = []
+        }
+      }
+    },
+
+    getEconomicTypeList() {
+      const _this = this
+      if (_this.levelOptions && _this.levelOptions.length > 0) {
+        return
+      }
+      const params = {}
+      params['dictionaryType'] = '国民经济类型'
+      dictionaryAllItems(params).then(res => {
+        if (res.code == 200) {
+          _this.economicTypeList = res.result
+        } else {
+          ElMessage.warning(res.message)
+        }
+      }).catch(error => {
+        ElMessage.warning(error)
+      })
+    },//获取国民经济类型列表
+
+
+    async getProvince(){
+      let res = await getProvinceListData()
+      if(res.code === "200"){
+        this.provinceList = res.result.provinceList
+      }
+    },
+    async changeArea(value){
+      if(value === 'province'){
+        this.dataForm.city = ''
+        this.dataForm.district = ''
+        this.areaListQuery = {
+          type: 2,
+          parenttype: 1,
+          parentname: this.dataForm.province,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.cityList = res.result
+        }
+      }else if(value === 'city'){
+        this.dataForm.district = ''
+        this.areaListQuery = {
+          type: 3,
+          parenttype: 2,
+          parentname: this.dataForm.city,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.districtList = res.result
+        }
+      }else if(value === 'district'){
+        this.areaListQuery = {
+          type: 4,
+          parenttype: 3,
+          parentname: this.dataForm.district,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.streetList = res.result
+        }
+      }
+    },
+    async changeStorageArea(value){
+      if(value === 'province'){
+        this.dataForm.storagecity = ''
+        this.dataForm.storagedistrict = ''
+        this.areaListQuery = {
+          type: 2,
+          parenttype: 1,
+          parentname: this.dataForm.storageprovince,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.cityList = res.result
+        }
+      }else if(value === 'city'){
+        this.dataForm.storagedistrict = ''
+        this.areaListQuery = {
+          type: 3,
+          parenttype: 2,
+          parentname: this.dataForm.storagecity,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.districtList = res.result
+        }
+      }else if(value === 'district'){
+        this.areaListQuery = {
+          type: 4,
+          parenttype: 3,
+          parentname: this.dataForm.storagedistrict,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.streetList = res.result
+        }
+      }
+    },
+    changeDealing(){
+      if(this.dataForm.dealingtype === 1){
+        this.showSaveArea = true
+      }else{
+        this.showSaveArea = false
+      }
+    },
+    giveData(){
+      if(this.validTime ===null){
+        this.dataForm.effectdate = ""
+        this.dataForm.noeffectdate = ""
+      }else{
+        this.dataForm.effectdate = this.validTime[0]
+        this.dataForm.noeffectdate = this.validTime[1]
+      }
+    },
+    showEnterprise(){
+      this.$refs.selectEnterprise.showEnterPrise(this.safetySuperVisionList)
+    },
+    giveEnterprise(val){
+      this.dataForm.name = val
+    },
+    getByteLen(val) {
+      let len = 0;
+      for (let i = 0; i < val.length; i++) {
+        let a = val.charAt(i);
+        if (a.match(/[^\x00-\xff]/ig) != null) {
+          len += 2;
+        }
+        else {
+          len += 1;
+        }
+      }
+      return len;
+    }
+  }
+}
+</script>
+
+<style scoped>
+.enterpriseBasicInformation_title{
+  font-weight: bolder;
+  font-size: large;
+  text-align: center;
+  margin-top: 10px;
+}
+.enterpriseBasicInformation_image{
+  width:70%;
+  height:70%;
+  margin-left:10px;
+}
+.el-input-number{
+  width: 100%;
+}
+</style>
diff --git a/src/views/firework/permit/components/printDetail.vue b/src/views/firework/permit/components/printDetail.vue
new file mode 100644
index 0000000..b08de00
--- /dev/null
+++ b/src/views/firework/permit/components/printDetail.vue
@@ -0,0 +1,183 @@
+
+<template>
+  <el-dialog
+      v-model="licenseInfoVisible"
+      append-to-body
+      :close-on-click-modal="false"
+      width="60%"
+  >
+    <div id="printMe2">
+      <el-row>
+        <el-col :span="8" style="margin-top:660px;margin-left: 180px">
+          <el-row >
+            <el-col :span="24">
+              {{name}}
+            </el-col>
+          </el-row>
+          <el-row style="margin-top: 45px">
+            <el-col :span="24">
+              {{address}}
+            </el-col>
+          </el-row>
+          <el-row style="margin-top: 45px">
+            <el-col :span="24">
+              {{storageaddress}}
+            </el-col>
+          </el-row>
+          <el-row style="margin-top: 48px">
+            <el-col :span="24" style="padding-right: 100px;">
+              {{dealingrange}}
+            </el-col>
+          </el-row>
+          <el-row style="margin-top: 48px">
+            <el-col :span="12">
+              {{effectdate}}
+            </el-col>
+            <el-col :span="8">
+              {{noeffectdate}}
+            </el-col>
+          </el-row>
+        </el-col>
+        <el-col :span="8" style="margin-top: 385px;">
+          <el-row>
+            <el-col :span="10">
+              <el-row>
+                <el-col :span="24">
+                  <span>{{value}}</span>
+                </el-col>
+              </el-row>
+              <el-row style="margin-top: 17px;margin-left: 5px">
+                <el-col :span="24">
+                  <span>{{code}}</span>
+                </el-col>
+              </el-row>
+            </el-col>
+            <el-col :span="12">
+              <div style="width:20px;height:20px;" class="qrcode" id="qrcode" ref="qrcode"/>
+            </el-col>
+          </el-row>
+
+          <el-row style="margin-top: 92px;margin-left: 100px">
+            <el-col :span="12">
+              {{mainpersonname}}
+            </el-col>
+          </el-row>
+          <el-row style="margin-top: 48px;margin-left: 100px">
+            <el-col :span="12">
+              {{area}}
+            </el-col>
+          </el-row>
+          <el-row style="margin-top: 48px;margin-left: 100px">
+            <el-col :span="12">
+              {{storagearea}}
+            </el-col>
+          </el-row>
+          <el-row style="margin-top: 48px;margin-left: 100px">
+            <el-col :span="12">
+              {{powder}}
+            </el-col>
+          </el-row>
+          <el-row style="margin-top: 150px;margin-left: 100px">
+            <el-col :span="12">
+              {{issuingunit}}
+            </el-col>
+          </el-row>
+          <el-row style="margin-top: 30px;margin-left: 100px">
+            <el-col :span="2" >
+              <span>{{year}}</span>
+            </el-col>
+            <el-col :span="1"  style="margin-left:60px">
+              <span>{{month}}</span>
+            </el-col>
+            <el-col :span="1"  style="margin-left:40px">
+              <span>{{day}}</span>
+            </el-col>
+          </el-row>
+        </el-col>
+      </el-row>
+    </div>
+    <div  align="right" style="margin-top:30px;">
+      <el-button type="primary"  v-print="printObj2">打印</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+// import QRCode from "qrcodejs2"
+export default {
+  name: "printForm",
+  data(){
+    return{
+      code:'',
+      name:'',
+      mainpersonname:'',
+      address:'',
+      area:'',
+      storageaddress:'',
+      storagearea:'',
+      dealingrange:'',
+      powder:'',
+      effectdate:'',
+      noeffectdate:'',
+      issuingunit:'',
+      year:'',
+      month:'',
+      day:'',
+      licenseInfoVisible:false,
+      printObj2:{
+        id:'printMe1',
+        extraHead:'<meta  http-equiv="Content-Language" content="zh-cn"/>'
+      },
+      value:'',
+    }
+  },
+  mounted(){
+    this.$nextTick(() => {
+      this.qrcode()
+    })
+  },
+  methods:{
+    show(val){
+      this.code = val.code
+      this.licenseInfoVisible = true
+      this.name =val.name
+      this.mainpersonname = val.mainpersonname
+      this.address = val.address
+      this.area = JSON.parse(val.licenseStorage)[0].area
+      this.storageaddress =val.storageaddress
+      this.storagearea = JSON.parse(val.licenseStorage)[0].storagearea
+      this.dealingrange = val.dealingRangeStr
+      this.powder =  JSON.parse(val.licenseStorage)[0].powder
+      this.effectdate = val.effectdate
+      this.noeffectdate = val.noeffectdate
+      this.issuingunit = val.issuingunit
+      this.value = val.licensecode
+      this.year = val.issuingdate.split('-')[0]
+      this.month = val.issuingdate.split('-')[1]
+      this.day= val.issuingdate.split('-')[2]
+      this.$nextTick(() => {
+        this.qrcode()
+      })
+    },
+    qrcode(){
+      if(this.value === ''){
+
+      }else{
+        document.getElementById("qrcode").innerHTML = ""
+        let qrcode = new QRCode('qrcode', {
+          width: 100,
+          height: 100,        // 高度
+          text:  this.value,   // 二维码内容
+          // render: 'canvas' ,   // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
+          background: '#f0f',   // 背景色
+          // foreground: '#ff0'    // 前景色
+        })
+      }
+    }
+
+  }
+}
+</script>
+
+<style scoped>
+</style>
diff --git a/src/views/firework/permit/components/printForm.vue b/src/views/firework/permit/components/printForm.vue
new file mode 100644
index 0000000..38dea6e
--- /dev/null
+++ b/src/views/firework/permit/components/printForm.vue
@@ -0,0 +1,175 @@
+
+<template>
+  <el-dialog
+      v-model="licenseInfoVisible"
+      append-to-body
+      :close-on-click-modal="false"
+      width="60%"
+  >
+    <div id="printMe2">
+      <el-row style="height:130px;margin-left:320px;margin-top:197px">
+        <el-col :span="18">
+          <span style="display: inline-block;font-size: 25px;">{{code}}</span>
+        </el-col>
+        <el-col :span="6">
+          <div style="width: 40%;height: 40%;margin-left:25%;padding-top: 10px" id="qrcode" ref="qrcode"/>
+        </el-col>
+      </el-row>
+      <el-row style="text-align: center;height:35px;font-size: 25px;margin-top:70px">
+        <el-col :span="24">
+          <span style="display: inline-block">{{value}}</span>
+        </el-col>
+      </el-row>
+      <el-row style="height:80px;margin-left:290px;margin-top:30px;">
+        <el-col :span="16" style="font-size: 27px">
+          <span>{{name}}</span>
+        </el-col>
+        <el-col :span="8" style="font-size: 27px">
+          <span>{{mainpersonname}}</span>
+        </el-col>
+      </el-row >
+      <el-row style="height:80px;margin-left:290px;">
+        <el-col :span="16"  style="font-size: 27px">
+          <span>{{address}}</span>
+        </el-col>
+        <el-col :span="8"  style="font-size: 27px">
+          <span>{{area}}</span>
+        </el-col>
+      </el-row>
+      <el-row style="height:60px;margin-left:290px;">
+        <el-col :span="16"  style="font-size: 27px">
+          <span>{{storageaddress}}</span>
+        </el-col>
+        <el-col :span="8"  style="font-size: 27px">
+          <span>{{storagearea}}</span>
+        </el-col>
+      </el-row>
+      <el-row style="height:100px;margin-left:290px;">
+        <el-col :span="16"  style="font-size: 27px;padding-right: 200px;">
+          <span>{{dealingrange}}</span>
+        </el-col>
+        <el-col :span="8"  style="font-size: 27px;margin-top:20px;">
+          <span>{{powder}}</span>
+        </el-col>
+      </el-row>
+      <el-row style="height:80px;margin-left:290px;">
+        <el-col :span="6"  style="font-size: 27px">
+          <span>{{effectdate}}</span>
+        </el-col>
+        <el-col :span="10"  style="font-size: 27px">
+          <span>{{noeffectdate}}</span>
+        </el-col>
+        <el-col :span="8"  style="font-size: 27px;margin-top:38px;">
+          <span>{{issuingunit}}</span>
+        </el-col>
+      </el-row>
+      <el-row style="height:80px;margin-left:290px;">
+        <el-col :span="16"  style="font-size: 1px">
+          <span>{{"."}}</span>
+        </el-col>
+        <el-col :span="2"  style="font-size: 27px;margin-top: 30px">
+          <span>{{year}}</span>
+        </el-col>
+        <el-col :span="1"  style="font-size: 27px;margin-top: 30px;margin-left:40px">
+          <span>{{month}}</span>
+        </el-col>
+        <el-col :span="1"  style="font-size: 27px;margin-top: 30px;margin-left:40px">
+          <span>{{day}}</span>
+        </el-col>
+      </el-row>
+      <!--            <el-row style="height:80px;margin-left:1110px;">-->
+      <!--                <el-col :span="3"  style="font-size: 25px;margin-top:50px;">-->
+      <!--                    <span>{{"xxxx"}}</span>-->
+      <!--                </el-col>-->
+      <!--                <el-col :span="3"  style="font-size: 25px;margin-top:50px;margin-left:30px">-->
+      <!--                    <span>{{"xx"}}</span>-->
+      <!--                </el-col>-->
+      <!--                <el-col :span="3"  style="font-size: 25px;margin-top:50px;">-->
+      <!--                    <span>{{"xx"}}</span>-->
+      <!--                </el-col>-->
+      <!--            </el-row>-->
+    </div>
+    <div  align="right" style="margin-top:30px;">
+      <el-button type="primary" v-print="printObj1">打印</el-button>
+    </div>
+
+  </el-dialog>
+</template>
+
+<script>
+// import QRCode from "qrcodejs2"
+export default {
+  name: "printForm",
+  data(){
+    return{
+      code:'',
+      name:'',
+      mainpersonname:'',
+      address:'',
+      area:'',
+      storageaddress:'',
+      storagearea:'',
+      dealingrange:'',
+      powder:'',
+      effectdate:'',
+      noeffectdate:'',
+      issuingunit:'',
+      year:'',
+      month:'',
+      day:'',
+      licenseInfoVisible:false,
+      value:'',
+    }
+  },
+  mounted(){
+    this.$nextTick(() => {
+      this.qrcode()
+    })
+  },
+  methods:{
+    show(val){
+      this.licenseInfoVisible = true
+      this.code = val.code
+      this.name =val.name
+      this.mainpersonname = val.mainpersonname
+      this.address = val.address
+      this.area = JSON.parse(val.licenseStorage)[0].area
+      this.storageaddress =val.storageaddress
+      this.storagearea = JSON.parse(val.licenseStorage)[0].storagearea
+      this.dealingrange = val.dealingRangeStr
+      this.powder =  JSON.parse(val.licenseStorage)[0].powder
+      this.effectdate = val.effectdate
+      this.noeffectdate = val.noeffectdate
+      this.issuingunit = val.issuingunit
+      this.value = val.licensecode
+      this.year = val.issuingdate.split('-')[0]
+      this.month = val.issuingdate.split('-')[1]
+      this.day= val.issuingdate.split('-')[2]
+      this.$nextTick(() => {
+        this.qrcode()
+      })
+    },
+    qrcode(){
+      if(this.value === ''){
+
+      }else{
+        document.getElementById("qrcode").innerHTML = ""
+        let qrcode = new QRCode('qrcode', {
+          width: 125,
+          height: 125,        // 高度
+          text:  this.value,   // 二维码内容
+          // render: 'canvas' ,   // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
+          background: '#f0f',   // 背景色
+          // foreground: '#ff0'    // 前景色
+
+        })
+      }
+    }
+
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/src/views/firework/permit/components/selectEnterprise.vue b/src/views/firework/permit/components/selectEnterprise.vue
new file mode 100644
index 0000000..254de56
--- /dev/null
+++ b/src/views/firework/permit/components/selectEnterprise.vue
@@ -0,0 +1,244 @@
+<template>
+  <el-dialog
+      v-model="superiorDepartmentVisible"
+      append-to-body
+      :close-on-click-modal="false"
+      width="75%"
+  >
+    <div class="app-container">
+      <div class="filter-container">
+        <div class="basic_search">
+          <span>区域:</span>
+          <el-select v-model="listQuery.filter.province" clearable filterable @change="changeArea('province')">
+            <el-option
+                v-for="item in provinceList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="basic_search">
+          <el-select v-model="listQuery.filter.city" prop="city" clearable filterable @change="changeArea('city')">
+            <el-option
+                v-for="item in cityList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="basic_search">
+          <el-select v-model="listQuery.filter.district" clearable filterable @change="changeArea('district')">
+            <el-option
+                v-for="item in districtList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="basic_search">
+          <el-select v-model="listQuery.filter.street" clearable filterable @change="changeArea('street')" >
+            <el-option
+                v-for="item in streetList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div style="display: block;padding-top: 10px;padding-bottom: 10px">
+          <div class="basic_search">
+            <span>安全监管分类:</span>
+            <el-select filterable clearable v-model="listQuery.filter.safetysupervision">
+              <el-option
+                  v-for="item in safetySuperVisionList"
+                  :key="item.id"
+                  :label="item.text"
+                  :value="item.text"
+              ></el-option>
+            </el-select>
+          </div>
+          <div class="basic_search" style="margin-left:10px">
+            <span>企业名称:</span>
+            <el-input v-model="listQuery.filter.enterprisename" style="width:200px">
+            </el-input>
+          </div>
+          <el-button  type="primary" icon="el-icon-search" @click="queryHandle" />
+        </div>
+      </div>
+      <div class="table_content">
+        <el-table
+            v-loading="listLoading"
+            :key="tableKey"
+            :data="superiorDepartmentListData"
+            border
+            fit
+            highlight-current-row
+            style="width: 100%;"
+        >
+          <el-table-column label="序号" type="index" align="center" width="60"/>
+          <el-table-column label="级别" prop="enteenterprisesizerprisename" align="center">
+            <template #default="scope">
+              <span>{{ scope.row.enterprisename }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="机构代码" prop="province" align="center">
+          </el-table-column>
+          <el-table-column label="机构名字" prop="enterprisename" align="center">
+            <template #default="scope">
+              <span>{{ scope.row.enterprisesize }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
+            <template #default="scope">
+              <!--            <el-button type="text" @click="showEditHandle(scope.row)">编辑</el-button>-->
+              <el-button type="text" @click="updatePublicSecurityDepartment('修改',scope.row)">选择</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <br>
+        <el-pagination
+            v-show="recordTotal>0"
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="pageSize"
+            :total="recordTotal"
+            layout="total, sizes, prev, pager, next, jumper"
+            background
+            style="float:right;"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+        />
+      </div>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import {computePageCount} from "../../../../utils/licence";
+import {  getSuperiorDepartmentList,getCityListData, getProvinceListData } from "../../../../api/monitor/permit";
+export default {
+  name: "publicSecurityDepartment",
+  data(){
+    return{
+      tableKey:0,
+      listLoading:false,
+      pageSize: 10,
+      recordTotal: 0,
+      currentPage: 1,
+      pageTotal: 0,
+      searchContent:'',
+      listQuery:{
+        filter: {enterprisename:"",safetysupervision:"",province:"",city:"",district:"",street:""},
+        pageIndex: 1,
+        pageSize:10
+      },
+      provinceList:[],
+      cityList:[],
+      districtList:[],
+      streetList:[],
+      safetySuperVisionList:[],
+      superiorDepartmentVisible:false,
+      superiorDepartmentListData:[],
+    }
+  },
+  created(){
+    this.getSuperiorDepartmentListData()
+    this.getProvince()
+  },
+  methods:{
+    showEnterPrise(value){
+      this.superiorDepartmentVisible = true
+      this.safetySuperVisionList = value
+      this.getSuperiorDepartmentListData()
+    },
+    async getProvince(){
+      let res = await getProvinceListData()
+      if(res.code === "200"){
+        this.provinceList = res.result.provinceList
+      }
+    },//获取省
+
+    async changeArea(value){
+      if(value === 'province'){
+        this.listQuery.filter.city = ''
+        this.listQuery.filter.district = ''
+        this.listQuery.filter.street = ''
+        this.areaListQuery = {
+          type: 2,
+          parenttype: 1,
+          parentname: this.listQuery.filter.province,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.cityList = res.result
+        }
+      }else if(value === 'city'){
+        this.listQuery.filter.district = ''
+        this.listQuery.filter.street = ''
+        this.areaListQuery = {
+          type: 3,
+          parenttype: 2,
+          parentname: this.listQuery.filter.city,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.districtList = res.result
+        }
+      }else if(value === 'district'){
+        this.listQuery.filter.street = ''
+        this.areaListQuery = {
+          type: 4,
+          parenttype: 3,
+          parentname: this.listQuery.filter.district,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if(res.code === "200"){
+          this.streetList = res.result
+        }
+      }
+    },//市、镇、街道、委员会
+
+    async getSuperiorDepartmentListData(){
+      let res = await getSuperiorDepartmentList(this.listQuery)
+      if(res.code === "200"){
+        this.recordTotal = res.result.total
+        this.pageSize = res.result.size
+        this.pageTotal = computePageCount(res.result.total, res.result.size)
+        this.currentPage = res.result.current
+        this.superiorDepartmentListData = res.result.records
+      }
+    },
+    refreshHandle(){
+
+    },
+    queryHandle(){
+      this.getSuperiorDepartmentListData()
+    },
+    updatePublicSecurityDepartment(title,value){
+      this.$emit('getinfo',value.enterprisename)
+      this.superiorDepartmentVisible = false
+    },
+    handleSizeChange(val) {
+      this.listQuery.pageSize = val
+      this.getSuperiorDepartmentListData()
+    },
+    handleCurrentChange(val) {
+      this.listQuery.pageIndex = val
+      this.getSuperiorDepartmentListData()
+    },
+  }
+}
+</script>
+
+<style scoped>
+.basic_search{
+  display:inline-block;
+}
+</style>
diff --git a/src/views/firework/permit/index.vue b/src/views/firework/permit/index.vue
index bd5adfa..a27479a 100644
--- a/src/views/firework/permit/index.vue
+++ b/src/views/firework/permit/index.vue
@@ -1,12 +1,1587 @@
-<script setup>
-
-</script>
-
 <template>
+  <div class="app-container">
+    <div class="filter-container">
+      <el-button
+          type="primary"
+          plain
+          icon="Plus"
+          style="margin-right: 12px"
+          @click="openLicenseForm('新增','')"
+      >
+        新增
+      </el-button>
+      <div class="basic_search">
+        <span>区域:</span>
+        <el-select style="margin-right: 12px" v-model="params.province" clearable filterable
+                   @change="changeArea('province')">
+          <el-option v-for="item in provinceList" :key="item.id" :label="item.name" :value="item.name"></el-option>
+        </el-select>
+        <el-select style="margin-right: 12px" v-model="params.city" prop="city" clearable filterable
+                   @change="changeArea('city')">
+          <el-option v-for="item in cityList" :key="item.id" :label="item.name" :value="item.name"></el-option>
+        </el-select>
+        <el-select style="margin-right: 12px" v-model="params.district" clearable filterable>
+          <el-option v-for="item in districtList" :key="item.id" :label="item.name" :value="item.name"></el-option>
+        </el-select>
+      </div>
+      <div class="basic_search">
+        <span>创建时间:</span>
+        <el-date-picker value-format="YYYY-MM-DD HH:mm:ss" v-model="validTime1" type="datetimerange"
+                        range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期">
+        </el-date-picker>
+      </div>
+      <div class="basic_search">
+        <span>发证时间:</span>
+        <el-date-picker value-format="YYYY-MM-DD HH:mm:ss" v-model="validTime2" type="datetimerange"
+                        range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期">
+        </el-date-picker>
+      </div>
+      <div class="basic_search">
+        <span>企业名称:</span>
+        <el-input v-model="params.name" style="width: 220px"></el-input>
+      </div>
+      <div class="basic_search">
+        <span>企业类型:</span>
+        <el-select filterable clearable v-model="params.type">
+          <el-option label="烟花爆竹经营(生产)许可证" value="1">烟花爆竹经营(生产)许可证</el-option>
+          <el-option label="烟花爆竹经营(批发)许可证" value="2">烟花爆竹经营(批发)许可证</el-option>
+          <el-option label="烟花爆竹经营(长期零售)许可证" value="3">烟花爆竹经营(长期零售)许可证</el-option>
+          <el-option label="烟花爆竹经营(短期零售)许可证" value="4">烟花爆竹经营(短期零售)许可证</el-option>
+        </el-select>
+      </div>
+      <div class="basic_search">
+        <span>审核状态:</span>
+        <el-select filterable clearable v-model="params.reviewstatus">
+          <el-option v-for="item in reviewStatusList" :key="item.id" :label="item.name" :value="item.id"/>
+        </el-select>
+      </div>
+      <div class="basic_search">
+        <span>许可证状态:</span>
+        <el-select filterable clearable v-model="params.validstatus">
+          <el-option v-for="item in validStatusList" :key="item.id" :label="item.name" :value="item.id"/>
+        </el-select>
+      </div>
+      <div class="basic_search">
+        <span>发证类型:</span>
+        <el-select filterable clearable v-model="params.licensecode">
+          <el-option v-for="item in licenseStatusList" :key="item.id" :label="item.name" :value="item.id"/>
+        </el-select>
+      </div>
+      <el-button style="margin-left: 10px;" type="primary" @click="searchData()">查询</el-button>
+      <el-button type="primary" plain @click="reset()">重置</el-button>
+      <el-button style="margin-left: 10px;" type="primary" @click="exportRetail()">零售许可证台账导出</el-button>
+      <el-button style="margin-left: 10px;" type="primary" @click="exportWholesale()">批发许可证台账导出</el-button>
 
+    </div>
+    <div class="table_content">
+      <el-table v-loading="listLoading" :key="tableKey" :data="licenseList" border fit @sort-change="sortChange"
+                highlight-current-row style="width: 100%;">
+        <el-table-column label="序号" type="index" align="center" width="60"/>
+        <el-table-column label="行政区划" prop="province" align="center" sortable="custom">
+          <template #default="scope">
+            {{ scope.row.province }}{{ scope.row.city }}{{ scope.row.district }}
+          </template>
+        </el-table-column>
+        <el-table-column label="单位名称" prop="name" align="center" sortable="custom">
+        </el-table-column>
+        <el-table-column label="主要负责人" prop="mainpersonname" align="center" sortable="custom">
+        </el-table-column>
+        <el-table-column label="许可证编号" prop="licensecode" align="center" sortable="custom">
+        </el-table-column>
+        <el-table-column label="许可证类型" prop="type" align="center" sortable="custom">
+          <template #default="scope">
+            <div v-for="item in typeList">
+              <div v-if="scope.row.type === item.id">
+                {{ item.name }}
+              </div>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="发证类型" prop="licensestatus" align="center" sortable="custom">
+        </el-table-column>
+        <el-table-column label="发证日期" prop="issuingdate" align="center" sortable="custom">
+        </el-table-column>
+        <el-table-column label="到期日期" prop="noeffectdate" align="center" sortable="custom">
+        </el-table-column>
+        <el-table-column label="发证机关" prop="issuingunit" align="center" sortable="custom">
+        </el-table-column>
+        <el-table-column label="审批状态" prop="reviewstatus" align="center" sortable="custom">
+          <template #default="scope">
+            <div v-for="item in reviewStatusList">
+              <div v-if="scope.row.reviewstatus === item.id">
+                {{ item.name }}
+              </div>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="许可证状态" prop="validstatus" align="center" sortable="custom">
+          <template #default="scope">
+            <div v-for="item in validStatusList">
+              <div v-if="scope.row.validstatus === item.id">
+                {{ item.name }}
+              </div>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
+          <template #default="scope">
+            <el-button type="text" @click="commit(scope.row.id)"
+                       v-if="isSupervision!=='null' && (scope.row.reviewstatus== 0||scope.row.reviewstatus===3) ?true:false">
+              提交
+            </el-button>
+            <el-button type="text" @click="openLicenseForm('修改',scope.row)" v-if="isSupervision==='null'?false:true">
+              修改
+            </el-button>
+            <el-button type="text" @click="openLicenseForm('审核',scope.row)"
+                       v-if="isSupervision ==='null' &&scope.row.reviewstatus !==2&&scope.row.reviewstatus !==3">审核
+            </el-button>
+            <el-button type="text" @click="refuse(scope.row.id)"
+                       v-if="isSupervision ==='null'&&scope.row.reviewstatus !==3">驳回
+            </el-button>
+            <el-button type="text" @click="deleteById(scope.row.id)" v-if="isSupervision==='null'?false:true">删除
+            </el-button>
+            <br>
+            <el-button type="text" v-print="printObj1" @click="giveData(scope.row)"
+                       v-if="isSupervision==='null' && scope.row.reviewstatus === 2?true:false">打印正本(新)
+            </el-button>
+            <el-button type="text" v-print="printObj2" @click="giveDetail(scope.row)"
+                       v-if="isSupervision==='null' && scope.row.reviewstatus === 2?true:false">打印副本(新)
+            </el-button>
+            <el-button type="text" v-print="printObj3" @click="giveData(scope.row)"
+                       v-if="isSupervision==='null' && scope.row.reviewstatus === 2?true:false">打印正本(旧)
+            </el-button>
+            <el-button type="text" v-print="printObj4" @click="giveDetail(scope.row)"
+                       v-if="isSupervision==='null' && scope.row.reviewstatus === 2?true:false">打印副本(旧)
+            </el-button>
+          </template>
+        </el-table-column>
+        <el-table-column label="其他操作" v-if="isSupervision === 'null'" align="center" width="180"
+                         class-name="small-padding fixed-width">
+          <template #default="scope">
+            <el-button type="text" v-if="scope.row.reviewstatus === 2"
+                       @click="openDelayLicenseDialog(scope.row)">延期
+            </el-button>
+            <el-button type="text" v-if="scope.row.reviewstatus === 2"
+                       @click="openModLicenseDialog(scope.row)">变更
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <br>
+      <el-pagination v-show="recordTotal>0" :current-page="currentPage" :page-sizes="[10, 20, 30, 50]"
+                     :page-size="pageSize" :total="recordTotal" layout="total, sizes, prev, pager, next, jumper"
+                     background
+                     style="float:right;" @size-change="handleSizeChange" @current-change="handleCurrentChange"/>
+      <br>
+    </div>
+    <div v-show="false">
+      <div id="printMe1">
+        <el-row style="height:130px;margin-left:140px;margin-top:197px">
+          <el-col :span="3">
+            <span style="display: inline-block;font-size: 20px;">统一社会信用代码</span>
+          </el-col>
+          <el-col :span="15">
+            <span style="display: inline-block;font-size: 20px;">&nbsp;&nbsp;{{ code }}</span>
+          </el-col>
+          <el-col :span="6">
+            <div style="width: 40%;height: 40%;margin-left:65px;padding-top: 35px" id="qrcode" ref="qrcode">
+            </div>
+          </el-col>
+        </el-row>
+        <el-row style="text-align: center;height:35px;font-size: 20px;margin-top:70px">
+          <el-col :span="24">
+            <span>编号&emsp;&emsp;</span>
+            <span style="display: inline-block">{{ value }}</span>
+          </el-col>
+        </el-row>
+        <el-row style="height:75px;margin-left:140px;margin-top:30px;">
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span v-if="type === 2">企业名称</span>
+            <span v-if="type === 3 || type === 4">单位名称</span>
+          </el-col>
+          <el-col :span="11" style="font-size: 27px">
+            <span>{{ name }}</span>
+          </el-col>
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span v-if="type === 2">主要负责人</span>
+            <span v-if="type === 3 || type === 4">许可类型</span>
+          </el-col>
+          <el-col :span="5" style="font-size: 27px">
+            <span v-if="type === 2">{{ mainpersonname }}</span>
+            <span v-if="type === 3 || type === 4">{{ licensetype }}</span>
+          </el-col>
+          <el-col :span="2" style="font-size: 27px;">
+            <span></span>
+          </el-col>
+        </el-row>
+        <el-row style="height:75px;margin-left:140px;">
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span v-if="type === 2">注册地址</span>
+            <span v-if="type === 3  || type === 4">主要负责人</span>
+          </el-col>
+          <el-col :span="11" style="font-size: 27px">
+                        <span
+                            v-if="type === 2">{{ province === "新疆维吾尔自治区" ? "新疆" : province }}{{
+                            city
+                          }}{{ district }}{{ address }}</span>
+            <span v-if="type === 3 || type === 4">{{ mainpersonname }}</span>
+          </el-col>
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span v-if="type === 2">库区面积</span>
+            <span v-if="type === 3 || type === 4">经营方式</span>
+          </el-col>
+          <el-col :span="5" style="font-size: 27px">
+            <span v-if="type === 2">{{ area }}㎡</span>
+            <span v-if="type === 3 || type === 4">{{ dealingtype }}</span>
+          </el-col>
+          <el-col :span="2" style="font-size: 27px;">
+            <span></span>
+          </el-col>
+        </el-row>
+        <el-row style="height:75px;margin-left:140px;">
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span v-if="type === 2">仓储地址</span>
+            <span v-if="type === 3 || type === 4">单位地址</span>
+          </el-col>
+          <el-col :span="11" style="font-size: 27px">
+                        <span
+                            v-if="type === 2">{{
+                            storageprovince === "新疆维吾尔自治区" ? "新疆" : storageprovince
+                          }}{{ storagecity }}{{ storagedistrict }}{{ storageaddress }}</span>
+            <span
+                v-if="type === 3 || type === 4">{{ province === "新疆维吾尔自治区" ? "新疆" : province }}{{
+                city
+              }}{{ district }}{{ address }}</span>
+          </el-col>
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span v-if="type === 2">库房面积</span>
+            <span v-if="type === 3 || type === 4">经营面积</span>
+          </el-col>
+          <el-col :span="5" style="font-size: 27px">
+            <span v-if="type === 2">{{ storagearea }}㎡</span>
+            <span v-if="type === 3 || type === 4">{{ area }}㎡</span>
+          </el-col>
+          <el-col :span="2" style="font-size: 27px;">
+            <span></span>
+          </el-col>
+        </el-row>
+        <el-row style="height:100px;margin-left:140px;">
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span>许可范围</span>
+          </el-col>
+          <el-col :span="11" style="font-size: 22px;padding-right: 80px;">
+            <span>{{ dealingrange }}</span>
+          </el-col>
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span v-if="type === 2">核定药量</span>
+            <span v-if="type === 3 || type === 4">核定储量</span>
+          </el-col>
+          <el-col :span="5" style="font-size: 27px;">
+            <span>{{ powder }}kg</span>
+            <span>({{ reservebox }}箱)</span>
+          </el-col>
+          <el-col :span="2" style="font-size: 27px;">
+            <span></span>
+          </el-col>
+        </el-row>
+        <el-row style="height:40px;margin-left:140px;">
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span>有效期</span>
+          </el-col>
+          <el-col :span="4" style="font-size: 27px">
+            <span>{{ effectdate }}</span>
+          </el-col>
+          <el-col :span="1" style="font-size: 27px;font-weight: bold">
+            <span>至</span>
+          </el-col>
+          <el-col :span="5" style="font-size: 27px">
+            <span>{{ noeffectdate }}</span>
+          </el-col>
+          <el-col :span="11" style="font-size: 27px">
+            <span></span>
+          </el-col>
+          <!--                    <el-col :span="8"  style="font-size: 27px;margin-top:38px;">-->
+          <!--                        <span>{{issuingunit}}</span>-->
+          <!--                    </el-col>-->
+        </el-row>
+        <el-row style="height:60px;margin-left:140px;">
+          <el-col :span="14" style="font-size: 1px">
+            <span>{{ "." }}</span>
+          </el-col>
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span>发证机关</span>
+          </el-col>
+          <el-col :span="5" style="font-size: 27px;">
+            <span>{{ issuingunit }}</span>
+          </el-col>
+          <el-col :span="2" style="font-size: 27px;">
+            <span></span>
+          </el-col>
+        </el-row>
+        <el-row style="height:60px;margin-left:140px;">
+          <el-col :span="14" style="font-size: 1px">
+            <span>{{ "." }}</span>
+          </el-col>
+          <el-col :span="3" style="font-size: 27px;font-weight: bold">
+            <span>发证日期</span>
+          </el-col>
+          <el-col :span="2" style="font-size: 27px;">
+            <span>{{ year }}</span>
+            <span style="font-size: 27px;font-weight: bold">&nbsp;年</span>
+          </el-col>
+          <el-col :span="3" style="font-size: 27px;">
+            <span>{{ month }}</span>
+            <span style="font-size: 27px;font-weight: bold">月</span>
+            <span>&nbsp;{{ day }}</span>
+            <span style="font-size: 27px;font-weight: bold">日</span>
+          </el-col>
+          <el-col :span="2" style="font-size: 27px;">
+            <span></span>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+
+
+    <div v-show="false">
+      <div id="printMe2">
+        <el-row>
+          <el-col :span="7" style="margin-top:670px;margin-left: 80px">
+            <el-row style="height: 60px;">
+              <el-col :span="6" style="font-weight: bold;">
+                <span v-if="type === 2">企业名称</span>
+                <span v-if="type === 3">单位名称</span>
+              </el-col>
+              <el-col :span="18">
+                {{ name }}
+              </el-col>
+            </el-row>
+            <el-row style="height: 60px;margin-top: 4px">
+              <el-col :span="6" style="font-weight: bold;">
+                <span v-if="type === 2">注册地址</span>
+                <span v-if="type === 3">主要负责人</span>
+              </el-col>
+              <el-col :span="18">
+                                <span
+                                    v-if="type === 2">{{ province === "新疆维吾尔自治区" ? "新疆" : province }}{{
+                                    city
+                                  }}{{ district }}{{ address }}</span>
+                <span v-if="type === 3">{{ mainpersonname }}</span>
+              </el-col>
+            </el-row>
+            <el-row style="height: 60px;margin-top: 4px">
+              <el-col :span="6" style="font-weight: bold;">
+                <span></span>
+                <span v-if="type === 2">仓储地址</span>
+                <span v-if="type === 3">单位地址</span>
+              </el-col>
+              <el-col :span="18">
+                                <span
+                                    v-if="type === 2">{{ province === "新疆维吾尔自治区" ? "新疆" : province }}{{
+                                    city
+                                  }}{{ storagedistrict }}{{ storageaddress }}</span>
+                <span
+                    v-if="type === 3">{{ province === "新疆维吾尔自治区" ? "新疆" : province }}{{ city }}{{
+                    district
+                  }}{{ address }}</span>
+              </el-col>
+            </el-row>
+            <el-row style="height: 60px;margin-top: 4px">
+              <el-col :span="6" style="font-weight: bold;">
+                <span>许可范围</span>
+              </el-col>
+              <el-col :span="18">
+                {{ dealingrange }}
+              </el-col>
+            </el-row>
+            <el-row style="height: 60px;margin-top: 4px">
+              <el-col :span="6" style="font-weight: bold;">
+                <span>有效期</span>
+              </el-col>
+              <el-col :span="8">
+                {{ (effectdate) }}
+              </el-col>
+              <el-col :span="2" style="font-weight: bold">至</el-col>
+              <el-col :span="7">
+                {{ (noeffectdate) }}
+              </el-col>
+            </el-row>
+          </el-col>
+
+          <el-col :span="13" style="margin-top: 385px;">
+            <el-row>
+
+              <el-col :span="10">
+                <el-row>
+                  <el-col :span="10">
+                    <span>编号</span>
+                  </el-col>
+                  <el-col :span="14">
+                    <span>{{ value }}</span>
+                  </el-col>
+                </el-row>
+                <el-row style="margin-top: 17px;">
+                  <el-col :span="10">
+                    <span>统一社会信用代码</span>
+                  </el-col>
+                  <el-col :span="14">
+                    <span>{{ code }}</span>
+                  </el-col>
+                </el-row>
+              </el-col>
+              <el-col :span="10">
+                <div style="width:20px;height:20px;margin-top: 14px;margin-left: 28px" class="qrcode"
+                     id="qrcode2" ref="qrcode"></div>
+              </el-col>
+            </el-row>
+
+            <el-row style="margin-top: 92px;padding-left: 120px">
+              <el-col :span="4" style="font-weight: bold;">
+                <span v-if="type === 2">主要负责人</span>
+                <span v-if="type === 3 || type === 4">许可类型</span>
+              </el-col>
+              <el-col :span="8">
+                <span v-if="type === 2">{{ mainpersonname }}</span>
+                <span v-if="type === 3 || type === 4">{{ licensetype }}</span>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 48px;margin-left: 120px;">
+              <el-col :span="4" style="font-weight: bold;">
+                <span v-if="type === 2">库区面积</span>
+                <span v-if="type === 3">经营方式</span>
+
+              </el-col>
+              <el-col :span="8">
+                <span v-if="type === 2">{{ area }}㎡</span>
+                <span v-if="type === 3">{{ dealingtype }}</span>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 48px;margin-left: 120px;">
+              <el-col :span="4" style="font-weight: bold;">
+                <span v-if="type === 2">库房面积</span>
+                <span v-if="type === 3">经营面积</span>
+              </el-col>
+              <el-col :span="8">
+                <span v-if="type === 2">{{ storagearea }}㎡</span>
+                <span v-if="type === 3">{{ area }}㎡</span>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 48px;margin-left: 120px;">
+              <el-col :span="4" style="font-weight: bold;">
+                <span v-if="type === 2">核定药量</span>
+                <span v-if="type === 3">核定储量</span>
+              </el-col>
+              <el-col :span="8">
+                <span>{{ powder }}kg</span>
+                <span>({{ reservebox }}箱)</span>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 150px;margin-left: 120px;">
+              <el-col :span="4" style="font-weight: bold;">
+                <span>发证机关</span>
+              </el-col>
+              <el-col :span="8">
+                {{ issuingunit }}
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 30px;margin-left: 120px">
+              <el-col :span="4" style="font-weight: bold;">
+                <span>发证日期</span>
+              </el-col>
+              <el-col :span="3">
+                <span>{{ year }}&emsp;</span>
+                <span style="font-weight: bold;">年</span>
+              </el-col>
+              <el-col :span="3">
+                <span>{{ month }}</span>
+                <span style="font-weight: bold;">月</span>
+                <span>&nbsp;{{ day }}</span>
+                <span style="font-weight: bold;">日</span>
+              </el-col>
+
+            </el-row>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+    <div v-show="false">
+      <div id="printMe3">
+        <el-row style="height:130px;margin-left:320px;padding-top:95px;padding-bottom: 95px">
+          <el-col :span="18">
+            <span style="display: inline-block;font-size: 25px;"></span>
+          </el-col>
+          <el-col :span="6">
+            <div style="width: 40%;height: 40%;margin-left:20%;padding-top: 10px" id="qrcode3"
+                 ref="qrcode"/>
+          </el-col>
+        </el-row>
+        <el-row style="height:50px;font-size: 20px;margin-top:280px;margin-left:1050px;">
+          <el-col :span="24">
+            <span style="display: inline-block">{{ value }}</span>
+          </el-col>
+        </el-row>
+        <el-row style="height:60px;margin-left:470px;margin-top:28px;">
+          <el-col :span="13" style="font-size: 22px">
+            <span>{{ name }}</span>
+          </el-col>
+          <el-col :span="8" style="font-size: 22px;padding-left: 50px">
+            <span>{{ mainpersonname }}</span>
+          </el-col>
+        </el-row>
+        <el-row style="height:80px;margin-left:470px;">
+          <el-col :span="13" style="font-size: 22px;height: 90px;padding-right: 200px;">
+            <span>{{ province === "新疆维吾尔自治区" ? "新疆" : province }}{{ city }}{{ district }}{{ address }}</span>
+          </el-col>
+          <!--<el-col :span="8"  style="font-size: 27px">
+              <span>{{area}}㎡</span>
+          </el-col>-->
+          <el-col :span="7" style="font-size: 22px;padding-left: 50px;padding-top: 10px">
+            <span>{{ economictype }}</span>
+          </el-col>
+        </el-row>
+        <!--<el-row style="height:60px;margin-left:290px;">
+            <el-col :span="16"  style="font-size: 27px">
+                <span>{{storageaddress}}</span>
+            </el-col>
+            <el-col :span="8"  style="font-size: 27px">
+                <span>{{storagearea}}㎡</span>
+            </el-col>
+        </el-row>-->
+        <el-row style="height:100px;margin-left:470px;">
+          <el-col :span="13" style="font-size: 22px;padding-right: 200px;">
+            <span>{{ dealingrange }}</span><br>
+            <span>核定药量:{{ powder }}kg</span>
+            <span>({{ reservebox }}箱)</span>
+          </el-col>
+          <el-col :span="8" style="font-size: 22px;padding-left: 50px;height: 80px">
+            <span>{{ storageprovince === "新疆维吾尔自治区" ? "新疆" : storageprovince }}{{
+                storagecity
+              }}{{ storagedistrict }}{{ storageaddress }}</span><br>
+            <span>库区面积{{ area }}㎡</span>;
+            <span>库房面积{{ storagearea }}㎡</span>
+          </el-col>
+          <!--<el-col :span="8"  style="font-size: 27px;margin-top:20px;">
+              <span>{{powder}}kg</span>
+          </el-col>-->
+        </el-row>
+        <el-row style="height:80px;margin-left:400px;">
+          <el-col :span="10" style="font-size: 1px">
+            <span>.</span>
+          </el-col>
+          <el-col :span="7" style="font-size: 18px;margin-top:24px;padding-left: 180px;">
+            <span>{{ issuingunit }}</span>
+          </el-col>
+        </el-row>
+        <el-row style="height:75px;margin-left:290px;">
+          <el-col :span="2" style="font-size: 22px;margin-top: 15px;margin-left:45px">
+            <span>{{ year1 }}</span>
+          </el-col>
+          <el-col :span="1" style="font-size: 22px;margin-top: 15px;margin-left:0px">
+            <span>{{ month1 }}</span>
+          </el-col>
+          <el-col :span="1" style="font-size: 22px;margin-top: 15px;margin-left:20px">
+            <span>{{ day1 }}</span>
+          </el-col>
+          <el-col :span="2" style="font-size: 22px;margin-top: 15px;margin-left:40px">
+            <span>{{ year2 }}</span>
+          </el-col>
+          <el-col :span="1" style="font-size: 22px;margin-top: 15px;margin-left:7px">
+            <span>{{ month2 }}</span>
+          </el-col>
+          <el-col :span="1" style="font-size: 22px;margin-top: 15px;margin-left:20px">
+            <span>{{ day2 }}</span>
+          </el-col>
+          <el-col :span="2" style="font-size: 22px;margin-top: 15px;margin-left:210px">
+            <span>{{ year }}</span>
+          </el-col>
+          <el-col :span="1" style="font-size: 22px;margin-top: 15px;margin-left:35px">
+            <span>{{ month }}</span>
+          </el-col>
+          <el-col :span="1" style="font-size: 22px;margin-top: 15px;margin-left:35px">
+            <span>{{ day }}</span>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+    <div v-show="false">
+      <div id="printMe4">
+        <el-row>
+          <el-col :span="8" style="margin-top:666px;margin-left: 170px">
+            <el-row>
+              <el-col :span="24" style="margin-top: 140px;margin-left: 70px">
+                {{ value }}
+              </el-col>
+              <el-col :span="8" style="margin-top: 38px;margin-left: 70px;height: 60px">
+                {{ issuingunit }}
+              </el-col>
+              <el-col style="margin-left: 70px">
+                <el-col :span="2" style="margin-top: 17px;">
+                  <span>{{ year }}</span>
+                </el-col>
+                <el-col :span="1" style="margin-top: 17px;margin-left:18px">
+                  <span>{{ month }}</span>
+                </el-col>
+                <el-col :span="1" style="margin-top: 17px;margin-left:20px">
+                  <span>{{ day }}</span>
+                </el-col>
+              </el-col>
+            </el-row>
+          </el-col>
+          <el-col :span="12" style="margin-top: 386px;">
+            <el-row style="margin-left: 225px">
+              <el-col :span="8">
+                <div style="width:20px;height:20px;" class="qrcode" id="qrcode4" ref="qrcode"/>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 58px;margin-left: 75px;padding-top: 20px;">
+              <el-col :span="8">
+                {{ name }}
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 38px;margin-left: 75px">
+              <el-col :span="8">
+                {{ mainpersonname }}
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 50px;margin-left: 75px;height: 35px">
+              <el-col :span="8">
+                <span>{{ province === "新疆维吾尔自治区" ? "新疆" : province }}{{ city }}{{ district }}{{
+                    address
+                  }}</span>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 22px;margin-left: 75px">
+              <el-col :span="8">
+                {{ economictype }}
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 15px;margin-left: 75px;height: 35px">
+              <el-col :span="8">
+                <span>{{ storageprovince === "新疆维吾尔自治区" ? "新疆" : storageprovince }}{{
+                    storagecity
+                  }}{{ storagedistrict }}{{ storageaddress }}</span><br>
+                <span>库区面积{{ area }}㎡</span>;
+                <span>库房面积{{ storagearea }}㎡</span>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 60px;margin-left: 75px;height: 80px">
+              <el-col :span="8">
+                <span>{{ dealingrange }}</span><br>
+                <span>核定药量:{{ powder }}kg</span>
+                <span>({{ reservebox }}箱)</span>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 89px;margin-left: 8px">
+              <el-col :span="2" style="font-size: 16px;margin-left:5px">
+                <span>{{ year1 }}</span>
+              </el-col>
+              <el-col :span="1" style="font-size: 16px;margin-left:0px">
+                <span>{{ month1 }}</span>
+              </el-col>
+              <el-col :span="1" style="font-size: 16px;margin-left:1px">
+                <span>{{ day1 }}</span>
+              </el-col>
+              <el-col :span="1" style="font-size: 16px;margin-left:17px">
+                <span>{{ year2 }}</span>
+              </el-col>
+              <el-col :span="1" style="font-size: 16px;margin-left:22px">
+                <span>{{ month2 }}</span>
+              </el-col>
+              <el-col :span="1" style="font-size: 16px;margin-left:5px">
+                <span>{{ day2 }}</span>
+              </el-col>
+            </el-row>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+    <el-dialog :visible.sync="refuseVisible" append-to-body :close-on-click-modal="false" width="30%">
+      <el-form ref="refuseForm" :model="refuseForm" label-position="right" label-width="80px">
+        <el-form-item label="驳回理由:" prop="name">
+          <el-input type="textarea" :rows="2" v-model="refuseForm.rejectnote"/>
+        </el-form-item>
+      </el-form>
+      <div align="right">
+        <el-button type="primary" @click="submitRefuse()">确认</el-button>
+      </div>
+    </el-dialog>
+    <license-info-form ref="addFormRef" @getinfo="getLicenseListData"></license-info-form>
+    <license-delay-form ref="delay-form" @getinfo="getLicenseListData"></license-delay-form>
+    <license-mod-form ref="mod-form" @getinfo="getLicenseListData"></license-mod-form>
+  </div>
 </template>
 
-<style scoped lang="scss">
+<script>
+import {
+  computePageCount,
+  formatDateDay
+} from '../../../utils/licence'
+import {
+  getLicenseList,
+  getExportLicense,
+  reviewLicenseInfo,
+  deleteById,
+  deleteCertificate,
+  getCityListData,
+  getProvinceListData,
+  refuseLicense
+} from "../../../api/monitor/permit";
+import Cookies from "js-cookie";
+import XLSX from 'xlsx-js-style';
+// import QRCode from "qrcodejs2";
+import LicenseInfoForm from "./components/licenseInfoForm";
+import LicenseDelayForm from "./components/licenseDelayForm"
+import LicenseModForm from "./components/licenseModForm"
+import {ElMessage} from "element-plus";
 
+export default {
+  name: "carrier",
+  data() {
+    return {
+      cityList: [],
+      provinceList: [],
+      districtList: [],
+      streetList: [],
+      committeeList: [],
+      validTime1: [],
+      validTime2: [],
+      refuseVisible: false,
+      enterprisenumber: '',
+      value: '',
+      code: '',
+      name: '',
+      mainpersonname: '11',
+      province: '',
+      city: '',
+      district: '',
+      address: '',
+      area: '',
+      storageaddress: '',
+      storagearea: '',
+      storageprovince: '',
+      storagecity: '',
+      storagedistrict: '',
+      economictype: '',
+      dealingrange: '',
+      reservebox: '',
+      powder: '',
+      effectdate: '',
+      noeffectdate: '',
+      issuingunit: '',
+      year: '',
+      month: '',
+      day: '',
+      year1: '',
+      month1: '',
+      day1: '',
+      year2: '',
+      month2: '',
+      day2: '',
+      type: '',
+      licensetype: '',
+      dealingtype: '',
+      tableKey: 0,
+      listLoading: false,
+      approveVisible: false,
+      pageSize: 10,
+      recordTotal: 0,
+      currentPage: 1,
+      pageTotal: 0,
+      ruleForm: {},
+      isSupervision: '',
+      roleType: '',
+      params: {
+        pageIndex: 1,
+        pageSize: 10,
+        sort: '',
+        order: "ASC",
+        name: '',
+        type: '',
+        province: '',
+        city: '',
+        district: '',
+        starttime1: '',
+        endtime1: '',
+        starttime2: '',
+        endtime2: '',
+        reviewstatus: '',
+        validstatus: '',
+        licensecode: '',
+      },
+      dataForm: {
+        signperson: '',
+        issueperson: '',
+        issuepersonphone: '',
+        id: '',
+      },
+      listQuery: {
+        filter: {
+          code: "",
+          page: "approve",
+        },
+        pageIndex: 1,
+        pageSize: 100,
+      },
+      refuseForm: {
+        id: '',
+        rejectnote: '',
+      },
+      searchContent: '',
+      licenseList: [],
+      reviewStatusList: [{
+        id: 0,
+        name: '等待提交'
+      },
+        {
+          id: 1,
+          name: '等待审核'
+        },
+        {
+          id: 2,
+          name: '审核通过'
+        },
+        {
+          id: 3,
+          name: '审核驳回'
+        },
+      ],
+      licenseStatusList: [{
+        id: 'NEW',
+        name: '新发'
+      },
+        {
+          id: 'POSTP',
+          name: '延期'
+        },
+        {
+          id: 'MOD',
+          name: '变更'
+        },
+      ],
+      validStatusList: [{
+        id: -1,
+        name: '已注销'
+      },
+        {
+          id: 1,
+          name: '有效'
+        },
+        {
+          id: -2,
+          name: '已过期'
+        }
+      ],
+      typeList: [{
+        id: 1,
+        name: '烟花爆竹经营(生产)许可证'
+      },
+        {
+          id: 2,
+          name: '烟花爆竹经营(批发)许可证'
+        },
+        {
+          id: 3,
+          name: '烟花爆竹经营(长期零售)许可证'
+        },
+        {
+          id: 4,
+          name: '烟花爆竹经营(短期零售)许可证'
+        }
+      ],
+      licensetypeList: [{
+        id: 1,
+        name: '长期'
+      },
+        {
+          id: 2,
+          name: '临时'
+        }
+      ],
+      dealingtypeList: [{
+        id: 1,
+        name: '专柜'
+      },
+        {
+          id: 2,
+          name: '专店'
+        }
+      ],
+      printObj1: {
+        id: 'printMe1',
+        extraHead: '<meta  http-equiv="Content-Language" content="zh-cn"/>'
+      },
+      printObj2: {
+        id: 'printMe2',
+        extraHead: '<meta  http-equiv="Content-Language" content="zh-cn"/>'
+      },
+      printObj3: {
+        id: 'printMe3',
+        extraHead: '<meta  http-equiv="Content-Language" content="zh-cn"/>'
+      },
+      printObj4: {
+        id: 'printMe4',
+        extraHead: '<meta  http-equiv="Content-Language" content="zh-cn"/>'
+      },
+    }
+  },
+  components: {
+    LicenseInfoForm,
+    LicenseDelayForm,
+    LicenseModForm
+  },
+  created() {
+    this.isSupervision = Cookies.get('isSupervision')
+    this.roleType = Cookies.get('roleType')
+    this.getProvince()
+    this.getLicenseListData()
+    console.log(this.isSupervision, this.roleType, 6666666666)
+  },
+
+  methods: {
+    giveDetail(val) {
+      console.log(val)
+      this.code = val.code
+      this.name = val.name
+      this.mainpersonname = val.mainpersonname
+      this.province = val.province
+      this.city = val.city
+      this.district = val.district
+      this.address = val.address
+      if (val.type === 2) {
+        if (JSON.parse(val.licenseStorage)[0] && JSON.parse(val.licenseStorage)[0].area) {
+          this.area = JSON.parse(val.licenseStorage)[0].area
+        } else {
+          this.area = 0
+        }
+        this.storagearea = JSON.parse(val.licenseStorage)[0].storagearea
+        this.powder = JSON.parse(val.licenseStorage)[0].powder
+      } else if (val.type === 3 || val.type === 4) {
+        this.area = val.dealingarea
+        this.powder = val.reservekg
+        if (val.licensetype === 1) {
+          this.licensetype = '长期零售'
+        } else {
+          this.licensetype = '短期零售'
+        }
+        if (val.dealingtype === 2 || val.dealingtype === 4) {
+          this.dealingtype = '专店'
+        } else {
+          this.dealingtype = '专柜'
+        }
+      }
+
+      this.reservebox = val.reservebox
+      this.storageaddress = val.storageaddress
+      this.storageprovince = val.storageprovince
+      this.storagecity = val.storagecity
+      this.storagedistrict = val.storagedistrict
+      //带出口的特殊情况
+      if (val.remark.indexOf("批发出口") != -1) {
+        this.dealingrange = val.dealingRangeStr + " (批发出口) ★★★"
+      } else {
+        this.dealingrange = val.dealingRangeStr + "  ★★★"
+      }
+      // 乌鲁木齐局临时自定义许可范围
+      // this.dealingrange="烟花类(C级、D级)、爆竹类(C级)、喷花类(C级、D级)、旋转类(C级、D级)、吐珠类(C级)、玩具类(C级、D级)、组合烟花类(C级、D级),储存能力76吨;烟花类储存(A类储存能力2吨、B类储存能力5吨,仅限于储存,储存库为4号库)  ★★★"
+
+      this.effectdate = formatDateDay(val.effectdate)
+      this.noeffectdate = formatDateDay(val.noeffectdate)
+      this.issuingunit = val.issuingunit
+      this.value = val.licensecode
+      this.type = val.type
+      this.enterprisenumber = val.enterprisenumber
+      this.year = val.issuingdate.split('-')[0]
+      this.month = val.issuingdate.split('-')[1]
+      this.day = val.issuingdate.split('-')[2]
+      this.year1 = val.effectdate.split('-')[0]
+      this.month1 = val.effectdate.split('-')[1]
+      this.day1 = val.effectdate.split('-')[2]
+      this.year2 = val.noeffectdate.split('-')[0]
+      this.month2 = val.noeffectdate.split('-')[1]
+      this.day2 = val.noeffectdate.split('-')[2]
+      this.economictype = val.economictype
+      this.$nextTick(() => {
+        this.qrcode()
+      })
+    },
+    //打印正本
+    giveData(val) {
+      console.log(JSON.parse(val.licenseStorage)[0], '>>>>')
+      this.code = val.code
+      this.name = val.name
+      this.mainpersonname = val.mainpersonname
+      this.province = val.province
+      this.city = val.city
+      this.district = val.district
+      this.address = val.address
+      if (val.type === 2) {
+        if (JSON.parse(val.licenseStorage)[0]) {
+          this.area = JSON.parse(val.licenseStorage)[0].area
+          this.storagearea = JSON.parse(val.licenseStorage)[0].storagearea
+          this.powder = JSON.parse(val.licenseStorage)[0].powder
+        } else {
+          this.area = 0
+          this.storagearea = 0
+          this.powder = 0
+        }
+        // this.storagearea = JSON.parse(val.licenseStorage)[0].storagearea
+        // this.powder = JSON.parse(val.licenseStorage)[0].powder
+      } else if (val.type === 3 || val.type === 4) {
+        this.area = val.dealingarea
+        this.powder = val.reservekg
+        if (val.licensetype === 1) {
+          this.licensetype = '长期零售'
+        } else {
+          this.licensetype = '短期零售'
+        }
+        if (val.dealingtype === 2 || val.dealingtype === 4) {
+          this.dealingtype = '专店'
+        } else {
+          this.dealingtype = '专柜'
+        }
+      }
+
+      this.storageaddress = val.storageaddress
+      this.storageprovince = val.storageprovince
+      this.storagecity = val.storagecity
+      this.storagedistrict = val.storagedistrict
+      // 带出口的特殊情况
+      if (val.remark.indexOf("批发出口") != -1) {
+        this.dealingrange = val.dealingRangeStr + " (批发出口) ★★★"
+      } else {
+        this.dealingrange = val.dealingRangeStr + "  ★★★"
+      }
+      // 乌鲁木齐局临时自定义许可范围
+      // this.dealingrange="烟花类(C级、D级)、爆竹类(C级)、喷花类(C级、D级)、旋转类(C级、D级)、吐珠类(C级)、玩具类(C级、D级)、组合烟花类(C级、D级),储存能力76吨;烟花类储存(A类储存能力2吨、B类储存能力5吨,仅限于储存,储存库为4号库)  ★★★"
+
+      this.reservebox = val.reservebox
+      this.effectdate = formatDateDay(val.effectdate)
+      this.noeffectdate = formatDateDay(val.noeffectdate)
+      this.issuingunit = val.issuingunit
+      this.value = val.licensecode
+      this.type = val.type
+      this.enterprisenumber = val.enterprisenumber
+      this.year = val.issuingdate.split('-')[0]
+      this.month = val.issuingdate.split('-')[1]
+      this.day = val.issuingdate.split('-')[2]
+      this.year1 = val.effectdate.split('-')[0]
+      this.month1 = val.effectdate.split('-')[1]
+      this.day1 = val.effectdate.split('-')[2]
+      this.year2 = val.noeffectdate.split('-')[0]
+      this.month2 = val.noeffectdate.split('-')[1]
+      this.day2 = val.noeffectdate.split('-')[2]
+      this.economictype = val.economictype
+      this.$nextTick(() => {
+        this.qrcode()
+      })
+    },
+    qrcode() {
+      if (this.enterprisenumber != '') {
+        document.getElementById("qrcode").innerHTML = ""
+        let qrcode = new QRCode('qrcode', {
+          width: 125,
+          height: 125, // 高度
+          text: this.enterprisenumber, // 二维码内容
+          // render: 'canvas' ,   // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
+          background: '#f0f', // 背景色
+          // foreground: '#ff0'    // 前景色
+
+        })
+
+        document.getElementById("qrcode2").innerHTML = ""
+        let qrcode2 = new QRCode('qrcode2', {
+          width: 90,
+          height: 90, // 高度
+          text: this.enterprisenumber, // 二维码内容
+          // render: 'canvas' ,   // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
+          background: '#f0f', // 背景色
+          // foreground: '#ff0'    // 前景色
+
+        })
+
+        document.getElementById("qrcode3").innerHTML = ""
+        let qrcode3 = new QRCode('qrcode3', {
+          width: 125,
+          height: 125, // 高度
+          text: this.enterprisenumber, // 二维码内容
+          // render: 'canvas' ,   // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
+          background: '#f0f', // 背景色
+          // foreground: '#ff0'    // 前景色
+
+        })
+
+        document.getElementById("qrcode4").innerHTML = ""
+        let qrcode4 = new QRCode('qrcode4', {
+          width: 75,
+          height: 75, // 高度
+          text: this.enterprisenumber, // 二维码内容
+          // render: 'canvas' ,   // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
+          background: '#f0f', // 背景色
+          // foreground: '#ff0'    // 前景色
+
+        })
+      }
+    },
+    async getLicenseListData() {
+      this.listLoading = true
+      if (this.validTime1 != null && this.validTime1.length > 0) {
+        this.params.starttime1 = this.validTime1[0]
+        this.params.endtime1 = this.validTime1[1]
+      } else {
+        this.params.starttime1 = ''
+        this.params.endtime1 = ''
+
+      }
+
+      if (this.validTime2 != null && this.validTime2.length > 0) {
+        this.params.starttime2 = this.validTime2[0]
+        this.params.endtime2 = this.validTime2[1]
+      } else {
+        this.params.starttime2 = ''
+        this.params.endtime2 = ''
+      }
+
+      let res = await getLicenseList(this.params)
+      if (res.code === "200") {
+        this.recordTotal = res.result.totalCount
+        this.pageSize = res.result.pageSize
+        this.pageTotal = computePageCount(res.result.totalCount, res.result.pageSize)
+        this.currentPage = res.result.current
+        this.licenseList = res.result.result
+      }
+      this.listLoading = false
+    },
+    openLicenseForm(title, value) {
+      this.$refs.addFormRef.showLicenseForm(title, value, this.isSupervision, this.roleType)
+    },
+    searchData() {
+      this.params.pageIndex = 1
+      this.getLicenseListData()
+    },
+    reset() {
+      this.params = {
+        pageIndex: 1,
+        pageSize: 10,
+        sort: '',
+        order: "ASC",
+        name: '',
+        type: '',
+        province: '',
+        city: '',
+        district: '',
+        starttime1: '',
+        endtime1: '',
+        starttime2: '',
+        endtime2: '',
+        reviewstatus: '',
+        validstatus: '',
+        licensecode: '',
+      }
+      this.validTime1 = []
+      this.validTime2 = []
+      this.getLicenseListData()
+    },
+    handleSizeChange: function (val) {
+      this.params.pageSize = val
+      this.getLicenseListData()
+    },
+    handleCurrentChange: function (val) {
+      this.params.pageIndex = val
+      this.getLicenseListData()
+    },
+    commit(val) {
+      this.$confirm('提交此条信息,是否继续', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      }).then(() => {
+        reviewLicenseInfo({
+          id: val,
+          reviewstatus: 1
+        }).then(() => {
+          this.getLicenseListData()
+          this.$notify({
+            title: '成功',
+            message: '提交成功',
+            type: 'success',
+            duration: 2000,
+          })
+        }).catch(error => {
+          ElMessage.warning(error)
+        })
+      })
+    },
+    //删除
+    deleteById(val) {
+      this.$confirm('删除此条信息,是否继续', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      }).then(() => {
+        deleteById(val).then(response => {
+          const res = response.data;
+
+          if (res.code === "200") {
+            this.$message({
+              message: '删除成功',
+              type: 'success'
+            });
+            this.getLicenseListData()
+          } else {
+            ElMessage.warning(res.message)
+          }
+        }).catch(error => {
+          ElMessage.warning(error)
+        })
+      })
+    },
+    sortChange() {
+
+    },
+    //获取地区
+    async changeArea(value) {
+      if (value === 'province') {
+        this.params.city = ''
+        this.params.district = ''
+        this.areaListQuery = {
+          type: 2,
+          parenttype: 1,
+          parentname: this.params.province,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if (res.code === "200") {
+          this.cityList = res.result
+        }
+      } else if (value === 'city') {
+        this.params.district = ''
+        this.areaListQuery = {
+          type: 3,
+          parenttype: 2,
+          parentname: this.params.city,
+        }
+        let res = await getCityListData(this.areaListQuery)
+        if (res.code === "200") {
+          this.districtList = res.result
+        }
+      }
+    }, //市、镇、街道、委员会
+    async getProvince() {
+      let res = await getProvinceListData()
+      if (res.code === "200") {
+        this.provinceList = res.result.provinceList
+      }
+    },
+
+    async exportRetail() {
+      let params = {
+        ...this.params
+      }
+      params.type = 3
+      params.reviewstatus = 2
+      const res = await getExportLicense(params)
+      if (res.code == '200') {
+        if(res.result && res.result.length>0){
+          let mainData = res.result
+          const data = mainData.map((item,index)=>{
+            return [
+              item.licensecode,
+              item.issuingunit,
+              item.issuingcode,
+              item.mainpersonname,
+              '自然人',
+              '身份证',
+              item.mainpersonidcardnum,
+              item.issuingdate,
+              item.effectdate,
+              item.noeffectdate,
+              item.effectdate,
+              item.address,
+              item.issuingdate,
+              item.code,
+              item.reservekg,
+              item.noeffectdate,
+              item.licensecode,
+              this.licensetypeList.filter(it => it.id === item
+                  .licensetype).name,
+              item.dealingRangeStr,
+              item.dealingarea,
+              item.mainpersonname,
+              item.issuingunit,
+              item.name,
+              this.dealingtypeList.filter(it => it.id === item
+                  .dealingtype).name
+            ]
+          })
+          console.log(data,'data')
+          // 定义表头
+          const headers = [
+            ['证照编号',
+              '颁发单位',
+              '颁发单位统一社会信用代码',
+              '持有人姓名',
+              '持有人类型',
+              '持有人证件类型',
+              '持有人证件号码',
+              '颁证日期',
+              '有效期(起始)',
+              '有效期(截止)',
+              '有效期起',
+              '单位地址',
+              '发证日期',
+              '统一社会信用代码',
+              '核定储量',
+              '有效期至',
+              '编号',
+              '许可类型',
+              '许可范围',
+              '经营面积',
+              '主要负责人',
+              '发证机关',
+              '单位名称',
+              '经营方式']
+          ]
+          // 创建工作表
+          const ws = XLSX.utils.aoa_to_sheet([
+            ...headers,      // 表头
+            ...data,         // 数据
+          ])
+          const dataRowCount = data.length;
+          const totalRows = dataRowCount + 1; // 标题、固定行和数据行的总数
+          // 设置列宽,计算每列的最大宽度
+          const MIN_COL_WIDTH = 40;
+          const colWidths = [];
+          for (let c = 0; c < 24; c++) {
+            let maxLength = 0;
+            // 计算每列最大单元格内容长度
+            for (let r = 0; r < totalRows; r++) {
+              const cellRef = `${String.fromCharCode(65 + c)}${r + 1}`; // 获取每个单元格的引用
+              const cell = ws[cellRef];
+              if (cell && cell.v) {
+                if(cell.v == '序号'){
+                  maxLength = 1
+                }else {
+                  maxLength = Math.max(maxLength, cell.v.toString().length);
+                }
+
+              }
+            }
+            // 根据最大长度设置列宽,添加额外的空间
+            colWidths[c] = { wpx: Math.max(maxLength * 15, MIN_COL_WIDTH) }; // 你可以根据需要调整乘数
+          }
+          // 设置工作表的列宽
+          ws['!cols'] = colWidths;
+          // 设置行高,统一调整上下间距
+          const rowHeight = 24; // 设置每一行的行高(可以根据需要调整)
+          for (let r = 0; r < totalRows; r++) {
+            ws['!rows'] = ws['!rows'] || [];
+            ws['!rows'][r] = { hpx: rowHeight };  // 设置行高,单位是像素
+          }
+          // 创建工作簿
+          const wb = XLSX.utils.book_new();
+          XLSX.utils.book_append_sheet(wb, ws, "Sheet1")
+          // 使用 Blob 和 URL 触发文件下载
+          const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' })
+          const blob = new Blob([wbout], { type: 'application/octet-stream' })
+          const url = URL.createObjectURL(blob)
+          // 创建下载链接并触发下载
+          const a = document.createElement('a')
+          a.href = url;
+          a.download = '烟花爆竹经营(零售)许可证台账.xlsx'  // 设置下载文件名
+          document.body.appendChild(a)
+          a.click();
+          document.body.removeChild(a)
+          // 释放 URL 对象
+          URL.revokeObjectURL(url)
+        }else{
+          this.$message({
+            type: 'warning',
+            message: '无数据可导出'
+          })
+        }
+      } else {
+        ElMessage.warning(res.msg)
+      }
+    },
+
+    async exportWholesale() {
+      let params = {
+        ...this.params
+      }
+      params.type = 2
+      params.reviewstatus = 2
+      const res = await getExportLicense(params)
+      if (res.code == '200') {
+        if(res.result && res.result.length>0){
+          let mainData = res.result
+          const data = mainData.map((item,index)=>{
+            return [
+              item.licensecode,
+              item.issuingunit,
+              item.issuingcode,
+              item.mainpersonname,
+              '自然人',
+              '身份证',
+              item.mainpersonidcardnum,
+              item.issuingdate,
+              item.effectdate,
+              item.noeffectdate,
+              item.dealingRangeStr,
+              item.mainpersonname,
+              [item.province, item.city, item.district].join(
+                  "-"),
+              eval(item.licenseStorage).reduce((sum, e) =>
+                  sum + Number(e.area || 0), 0),
+              item.address,
+              item.issuingdate,
+              item.licensecode,
+              item.name,
+              item.noeffectdate,
+              item.reservekg,
+              item.code,
+              item.effectdate,
+              eval(item.licenseStorage).reduce((sum, e) =>
+                  sum + Number(e.storagearea || 0), 0),
+              item.issuingunit
+            ]
+          })
+          console.log(data,'data')
+          // 定义表头
+          const headers = [
+            ['证照编号',
+              '颁发单位',
+              '颁发单位统一社会信用代码',
+              '持有人姓名',
+              '持有人类型', //自然人
+              '持有人证件类型',
+              '持有人证件号码',
+              '颁证日期',
+              '有效期(起始)',
+              '有效期(截止)',
+              '许可范围',
+              '主要负责人',
+              '仓储地址',
+              '库区面积',
+              '注册地址',
+              '发证日期',
+              '编号',
+              '企业名称',
+              '有效期至',
+              '核定药量',
+              '统一社会信用代码',
+              '有效期起',
+              '库房面积',
+              '发证机关']
+          ]
+          // 创建工作表
+          const ws = XLSX.utils.aoa_to_sheet([
+            ...headers,      // 表头
+            ...data,         // 数据
+          ])
+          const dataRowCount = data.length;
+          const totalRows = dataRowCount + 1; // 标题、固定行和数据行的总数
+          // 设置列宽,计算每列的最大宽度
+          const MIN_COL_WIDTH = 40;
+          const colWidths = [];
+          for (let c = 0; c < 24; c++) {
+            let maxLength = 0;
+            // 计算每列最大单元格内容长度
+            for (let r = 0; r < totalRows; r++) {
+              const cellRef = `${String.fromCharCode(65 + c)}${r + 1}`; // 获取每个单元格的引用
+              const cell = ws[cellRef];
+              if (cell && cell.v) {
+                if(cell.v == '序号'){
+                  maxLength = 1
+                }else {
+                  maxLength = Math.max(maxLength, cell.v.toString().length);
+                }
+
+              }
+            }
+            // 根据最大长度设置列宽,添加额外的空间
+            colWidths[c] = { wpx: Math.max(maxLength * 15, MIN_COL_WIDTH) }; // 你可以根据需要调整乘数
+          }
+          // 设置工作表的列宽
+          ws['!cols'] = colWidths;
+          // 设置行高,统一调整上下间距
+          const rowHeight = 24; // 设置每一行的行高(可以根据需要调整)
+          for (let r = 0; r < totalRows; r++) {
+            ws['!rows'] = ws['!rows'] || [];
+            ws['!rows'][r] = { hpx: rowHeight };  // 设置行高,单位是像素
+          }
+          // 创建工作簿
+          const wb = XLSX.utils.book_new();
+          XLSX.utils.book_append_sheet(wb, ws, "Sheet1")
+          // 使用 Blob 和 URL 触发文件下载
+          const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' })
+          const blob = new Blob([wbout], { type: 'application/octet-stream' })
+          const url = URL.createObjectURL(blob)
+          // 创建下载链接并触发下载
+          const a = document.createElement('a')
+          a.href = url;
+          a.download = '烟花爆竹经营(批发)许可证台账.xlsx'  // 设置下载文件名
+          document.body.appendChild(a)
+          a.click();
+          document.body.removeChild(a)
+          // 释放 URL 对象
+          URL.revokeObjectURL(url)
+        }else{
+          this.$message({
+            type: 'warning',
+            message: '无数据可导出'
+          })
+        }
+      } else {
+        ElMessage.warning(res.msg)
+      }
+    },
+
+    refuse(val) {
+      this.refuseForm.id = val
+      this.refuseVisible = true
+    },
+    submitRefuse() {
+      refuseLicense(this.refuseForm).then((res) => {
+        if (res.code === '200') {
+          this.getLicenseListData()
+          this.refuseVisible = false
+          this.$notify({
+            title: '成功',
+            duration: 2000,
+            message: '驳回成功',
+            type: 'success'
+          })
+        } else {
+          this.$message({
+            type: 'warning',
+            message: res.message
+          })
+        }
+      })
+    },
+    openDelayLicenseDialog(value) {
+      this.$refs['delay-form'].showLicenseForm('延期', value, this.isSupervision, this.roleType)
+    },
+    openModLicenseDialog(value) {
+      this.$refs['mod-form'].showLicenseForm('变更', value, this.isSupervision, this.roleType)
+    },
+
+  }
+}
+</script>
+
+<style scoped>
+.basic_search {
+  display: inline-block;
+  margin-right: 32px;
+  margin-bottom: 18px;
+}
+
+.carrier_search {
+  display: inline-block;
+}
+
+.carrier_search_input {
+  width: 200px;
+}
 </style>
 

--
Gitblit v1.9.2