From e46a6e287f752825a8ae5f4024769cd3fbc39a4a Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期三, 16 四月 2025 16:32:28 +0800 Subject: [PATCH] 许可证 --- src/views/firework/permit/index.vue | 1585 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,580 insertions(+), 5 deletions(-) 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;"> {{ 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>编号  </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"> 年</span> + </el-col> + <el-col :span="3" style="font-size: 27px;"> + <span>{{ month }}</span> + <span style="font-size: 27px;font-weight: bold">月</span> + <span> {{ 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 }} </span> + <span style="font-weight: bold;">年</span> + </el-col> + <el-col :span="3"> + <span>{{ month }}</span> + <span style="font-weight: bold;">月</span> + <span> {{ 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