Merge branch 'master' of http://47.107.61.133:3000/nm-project/aiccs
This commit is contained in:
commit
c92734b383
|
|
@ -14,7 +14,7 @@ VUE_APP_BASE_API = '/aiccs-api'
|
|||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
||||
# file url
|
||||
VUE_APP_DOWNLOAD_URL = '/aiccs-fileupload'
|
||||
VUE_APP_DOWNLOAD_URL = '/aiccs/fileupload'
|
||||
|
||||
# 双抽地址
|
||||
VUE_APP_RANDOM_URL = 'http://172.22.80.156:8085/aicods_gz'
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ ENV=production
|
|||
# base api
|
||||
VUE_APP_BASE_API=/aiccs-api
|
||||
|
||||
VUE_APP_DOWNLOAD_URL=/aiccs-fileupload
|
||||
VUE_APP_DOWNLOAD_URL=/aiccs/fileupload
|
||||
|
||||
# 双抽地址
|
||||
VUE_APP_RANDOM_URL=http://10.194.190.15:8081/aicods_gz
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ ENV = 'staging'
|
|||
# base api
|
||||
VUE_APP_BASE_API = '/aiccs-api'
|
||||
|
||||
VUE_APP_DOWNLOAD_URL = '/aiccs-fileupload'
|
||||
VUE_APP_DOWNLOAD_URL = '/aiccs/fileupload'
|
||||
|
||||
# 双抽地址
|
||||
VUE_APP_RANDOM_URL = 'http://172.22.80.156:8085/aicods_gz'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 分页查询市场主体拟除名名单信息
|
||||
export function listExpelled(data) {
|
||||
return request({
|
||||
url: '/expelled/list',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增、更新、删除市场主体拟除名名单信息
|
||||
export function saveExpelled(data) {
|
||||
return request({
|
||||
url: '/expelled/save',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 批量导入市场主体拟除名名单信息
|
||||
export function batchImportExpelled(data) {
|
||||
return request({
|
||||
url: '/expelled/batchImport',
|
||||
method: 'post',
|
||||
requestType: 'formdata',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
|
@ -2922,6 +2922,46 @@ export const constantRoutes = [{
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/expelled',
|
||||
component: Layout,
|
||||
meta: {
|
||||
title: '市场主体除名管理',
|
||||
icon: 'dict'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'list',
|
||||
component: () => import('@/views/expelled/list'),
|
||||
name: 'list',
|
||||
meta: { title: '除名名单库管理' }
|
||||
},
|
||||
{
|
||||
path: 'notice',
|
||||
component: () => import('@/views/expelled/notice'),
|
||||
name: 'notice',
|
||||
meta: { title: '除名告知通知书管理' }
|
||||
},
|
||||
{
|
||||
path: 'objection',
|
||||
component: () => import('@/views/expelled/objection'),
|
||||
name: 'objection',
|
||||
meta: { title: '除名异议管理' }
|
||||
},
|
||||
{
|
||||
path: 'announcement',
|
||||
component: () => import('@/views/expelled/announcement'),
|
||||
name: 'announcement',
|
||||
meta: { title: '除名公告管理' }
|
||||
},
|
||||
{
|
||||
path: 'audit',
|
||||
component: () => import('@/views/expelled/audit'),
|
||||
name: 'audit',
|
||||
meta: { title: '执行决定管理' }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/',
|
||||
component: Layout,
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<div class="preview-box">
|
||||
<paper-swiper ref="swiper">
|
||||
<paper v-for="(item,index) in tableDataList" :key="index" style="width:730px">
|
||||
<!-- <iframe-pdf src="http://172.22.80.35/aiccs-fileupload/6cf55cba-8140-4efe-a07f-c9bd377b7b71/%E5%88%97%E5%BC%82%E5%86%B3%E5%AE%9A%E4%B9%A6.pdf" /> -->
|
||||
<!-- <iframe-pdf src="http://172.22.80.35/aiccs/fileupload/6cf55cba-8140-4efe-a07f-c9bd377b7b71/%E5%88%97%E5%BC%82%E5%86%B3%E5%AE%9A%E4%B9%A6.pdf" /> -->
|
||||
|
||||
<div class="printPaper">
|
||||
<div class="paper-header"> <!-- 表头 -->
|
||||
|
|
|
|||
|
|
@ -19,19 +19,19 @@
|
|||
</div>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-row>
|
||||
<label class="label-name_1">列入机关:</label>
|
||||
<el-select v-model="searchAbnForm.intoDecorg" clearable size="mini" placeholder="请选择列入机关" class="custom">
|
||||
<el-option
|
||||
v-for="item in orgMarketList"
|
||||
:key="item.orgNumber"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<!-- <el-col :span="8">-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <label class="label-name_1">列入机关:</label>-->
|
||||
<!-- <el-select v-model="searchAbnForm.intoDecorg" clearable size="mini" placeholder="请选择列入机关" class="custom">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in orgMarketList"-->
|
||||
<!-- :key="item.orgNumber"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </el-col>-->
|
||||
|
||||
</el-row>
|
||||
<el-row style="margin-bottom:10px">
|
||||
|
|
@ -63,19 +63,19 @@
|
|||
/>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-row>
|
||||
<label class="label-name_1">移出机关:</label>
|
||||
<el-select v-model="searchAbnForm.redecorg" clearable size="mini" placeholder="请选择移出机关" class="custom">
|
||||
<el-option
|
||||
v-for="item in orgMarketList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<!-- <el-col :span="8">-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <label class="label-name_1">移出机关:</label>-->
|
||||
<!-- <el-select v-model="searchAbnForm.redecorg" clearable size="mini" placeholder="请选择移出机关" class="custom">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in orgMarketList"-->
|
||||
<!-- :key="item.value"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </el-col>-->
|
||||
</el-row>
|
||||
<el-row style="margin-bottom:10px">
|
||||
<el-col :span="8">
|
||||
|
|
|
|||
|
|
@ -18,19 +18,19 @@
|
|||
</div>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="7">
|
||||
<el-row>
|
||||
<label class="label-name_1">列入机关:</label>
|
||||
<el-select v-model="searchForm.paramMap.decorg" clearable size="mini" placeholder="请选择列入机关" class="custom">
|
||||
<el-option
|
||||
v-for="item in orgMarketList"
|
||||
:key="item.orgNumber"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<!-- <el-col :span="7">-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <label class="label-name_1">列入机关:</label>-->
|
||||
<!-- <el-select v-model="searchForm.paramMap.decorg" clearable size="mini" placeholder="请选择列入机关" class="custom">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in orgMarketList"-->
|
||||
<!-- :key="item.orgNumber"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </el-col>-->
|
||||
</el-row>
|
||||
<el-row style="margin-bottom:10px">
|
||||
<el-col :span="9">
|
||||
|
|
@ -61,19 +61,19 @@
|
|||
/>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="7">
|
||||
<el-row>
|
||||
<label class="label-name_1">移出机关:</label>
|
||||
<el-select v-model="searchForm.paramMap.remdecorg" clearable size="mini" placeholder="请选择移出机关" class="custom">
|
||||
<el-option
|
||||
v-for="item in orgMarketList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<!-- <el-col :span="7">-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <label class="label-name_1">移出机关:</label>-->
|
||||
<!-- <el-select v-model="searchForm.paramMap.remdecorg" clearable size="mini" placeholder="请选择移出机关" class="custom">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in orgMarketList"-->
|
||||
<!-- :key="item.value"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </el-col>-->
|
||||
</el-row>
|
||||
<el-row style="margin-bottom:10px">
|
||||
<el-col :span="9">
|
||||
|
|
@ -271,7 +271,7 @@ export default {
|
|||
search() {
|
||||
// 判断是否填写了条件
|
||||
let flag = false
|
||||
|
||||
|
||||
// obj的遍历删除值为空的键
|
||||
for (const key in this.searchForm.paramMap) {
|
||||
if (this.searchForm.paramMap[key] == null || this.searchForm.paramMap[key] == '') {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
<template>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<template>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
|
@ -0,0 +1,369 @@
|
|||
<template>
|
||||
<div class="page">
|
||||
<edit-table
|
||||
ref="EditTable"
|
||||
v-model="data"
|
||||
:table-prop="tableProp"
|
||||
:fields="fields"
|
||||
:dialog-prop="dialogProp"
|
||||
:show-search-form="true"
|
||||
row-key="id"
|
||||
:search-form-prop="searchFormProp"
|
||||
:form-prop="formProp"
|
||||
:search-loader="searchLoader"
|
||||
@update:selected="(value)=>{selected = value}"
|
||||
>
|
||||
<template v-slot:divider="scope">
|
||||
<div class="divider">
|
||||
<span class="text">{{ scope.getPropValue(scope.field.label) }}</span>
|
||||
</div>
|
||||
</template>
|
||||
</edit-table>
|
||||
<div class="btns">
|
||||
<el-button icon="el-icon-circle-plus-outline" type="primary" size="mini" @click="addData">添加</el-button>
|
||||
<!-- <el-upload-->
|
||||
<!-- style="display: inline-block; margin-left: 10px; margin-right: 10px;"-->
|
||||
<!-- action=""-->
|
||||
<!-- :show-file-list="false"-->
|
||||
<!-- :auto-upload="false"-->
|
||||
<!-- :on-change="(file) => { batchImport(file) }"-->
|
||||
<!-- >-->
|
||||
<!-- <el-button-->
|
||||
<!-- slot="trigger"-->
|
||||
<!-- icon="iconfont icon-tijiao"-->
|
||||
<!-- type="primary"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- >批量导入</el-button>-->
|
||||
<!-- </el-upload>-->
|
||||
<!-- <el-button icon="el-icon-download" type="primary" size="mini" @click="downloadTemplate">下载模板</el-button>-->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listExpelled, saveExpelled, batchImportExpelled } from '@/api/expelled'
|
||||
import EditTable from '@/plugins/EasyComponent/EditTable'
|
||||
export default {
|
||||
components: {
|
||||
EditTable
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
data: [],
|
||||
selected: [],
|
||||
tableProp: {
|
||||
emitLoadOnCreate: true,
|
||||
tableConfig: {
|
||||
showIndex: true,
|
||||
selection: false,
|
||||
indexWidth: '80px',
|
||||
handlerWidth: '120px',
|
||||
showPagination: true,
|
||||
tableSelectionProps: {
|
||||
selectable: (row, index) => {
|
||||
return row.status === '1'
|
||||
}
|
||||
},
|
||||
tableProps: {
|
||||
headerCellStyle: { background: '#F5F5F5!important', color: '#333333!important', padding: '0px' },
|
||||
headerRowStyle: { height: '48px' },
|
||||
rowStyle: { height: '48px' },
|
||||
cellStyle: { padding: '16px 0', color: '#333' }
|
||||
}
|
||||
},
|
||||
buttons: [
|
||||
{
|
||||
label: '编辑',
|
||||
type: 'text',
|
||||
show: true,
|
||||
handler: (scope, { row }) => {
|
||||
this.$refs.EditTable.editReady(row)
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '删除',
|
||||
type: 'text',
|
||||
show: true,
|
||||
handler: (scope, { row }) => {
|
||||
this.$confirm('是否确认删除该' + row.entName + '市场主体拟除名名单信息', '提示', {
|
||||
type: 'info',
|
||||
customClass: 'type-1'
|
||||
})
|
||||
.then(() => {
|
||||
return saveExpelled({
|
||||
...row,
|
||||
isDelete: '1'
|
||||
}).then(() => {
|
||||
this.$message.success('删除成功')
|
||||
this.$refs.EditTable.search({ reset: true })
|
||||
}).catch(error => {
|
||||
this.$message.error('删除失败: ' + (error.message || '未知错误'))
|
||||
throw error
|
||||
})
|
||||
})
|
||||
.catch(error => {
|
||||
// 如果只是取消操作,不抛出错误
|
||||
if (error !== 'cancel') {
|
||||
throw error
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
searchFormProp: {
|
||||
formConfig: {
|
||||
labelWidth: '100px',
|
||||
labelPosition: 'right',
|
||||
gutter: 32
|
||||
}
|
||||
},
|
||||
formProp: {
|
||||
formConfig: {
|
||||
labelWidth: '210px',
|
||||
labelPosition: 'right',
|
||||
gutter: 32,
|
||||
buttonPosition: 'right'
|
||||
},
|
||||
buttons: [
|
||||
{
|
||||
label: '返回',
|
||||
type: 'primary',
|
||||
buttonProps: {
|
||||
plain: true
|
||||
},
|
||||
handler: (scope, { row }) => {
|
||||
this.$refs.EditTable.cancelEdit()
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '保存',
|
||||
type: 'primary',
|
||||
handler: (scope, { row }) => {
|
||||
return scope.formInstance.submitForm().then((formData) => {
|
||||
return this.$confirm('是否继续提交', '提示', {
|
||||
type: 'info',
|
||||
customClass: 'type-1'
|
||||
})
|
||||
.then(() => {
|
||||
return (() => {
|
||||
return saveExpelled
|
||||
})()(formData)
|
||||
.then(() => {
|
||||
this.$message.success('保存成功')
|
||||
this.$refs.EditTable.editConfirm(formData)
|
||||
return this.$refs.EditTable.search({ reset: true })
|
||||
})
|
||||
.catch(error => {
|
||||
this.$message.error('保存失败: ' + (error.message || '未知错误'))
|
||||
throw error
|
||||
})
|
||||
})
|
||||
.catch(error => {
|
||||
// 如果只是取消操作,不抛出错误
|
||||
if (error !== 'cancel') {
|
||||
throw error
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
dialogProp: {
|
||||
title: (scope) => {
|
||||
if (scope.editRowClone && scope.editRowClone._isAdd) {
|
||||
return !scope.editRowClone.selected ? '新增市场主体拟除名名单信息' : '新增市场主体拟除名名单信息'
|
||||
} else if (scope.editRowClone) {
|
||||
return '编辑市场主体拟除名名单信息'
|
||||
}
|
||||
return '市场主体拟除名名单信息'
|
||||
},
|
||||
width: '1200px',
|
||||
customClass: 'dialog-abnormal-list'
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
type: 'input',
|
||||
label: '市场主体名称',
|
||||
prop: 'searchEntName',
|
||||
span: 9,
|
||||
showInForm: ({ meta }) => {
|
||||
return meta.isSearchForm === true
|
||||
},
|
||||
showInTable: false
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '统一社会信用代码',
|
||||
prop: 'searchUscc',
|
||||
span: 9,
|
||||
tableProps: {
|
||||
width: '150px',
|
||||
showOverflowTooltip: true,
|
||||
formatter: (row, column, cellValue, index) => {
|
||||
return `${row.uscc || ''}`
|
||||
}
|
||||
},
|
||||
showInForm: ({ meta }) => {
|
||||
return meta.isSearchForm === true
|
||||
},
|
||||
showInTable: false
|
||||
},
|
||||
{
|
||||
type: 'buttons',
|
||||
showInTable: false,
|
||||
showInForm: ({ meta }) => {
|
||||
return meta.isSearchForm === true
|
||||
},
|
||||
hiddenLabel: true,
|
||||
label: '搜索操作',
|
||||
prop: '搜索操作',
|
||||
span: 6,
|
||||
formItemProp: {
|
||||
labelWidth: '0px'
|
||||
},
|
||||
buttons: [
|
||||
{
|
||||
label: '查询',
|
||||
type: 'primary',
|
||||
handler: (scope) => {
|
||||
const { meta } = scope
|
||||
const { _editTable } = meta
|
||||
const { editTableInstance } = _editTable
|
||||
editTableInstance.search()
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '重置',
|
||||
type: 'primary',
|
||||
buttonProps: {
|
||||
plain: true
|
||||
},
|
||||
handler: (scope) => {
|
||||
const { meta } = scope
|
||||
const { _editTable } = meta
|
||||
const { editTableInstance } = _editTable
|
||||
editTableInstance.search({
|
||||
reset: true,
|
||||
resetData: {
|
||||
status: '1'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
type: 'divider',
|
||||
label: '市场主体拟除名名单信息',
|
||||
showInTable: false,
|
||||
showInForm: ({ meta }) => {
|
||||
return meta.isForm === true
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '市场主体名称',
|
||||
prop: 'entName',
|
||||
required: true,
|
||||
showInForm: ({ meta }) => {
|
||||
return meta.isForm === true
|
||||
},
|
||||
tableProps: {
|
||||
width: '200px',
|
||||
showOverflowTooltip: true,
|
||||
formatter: (row, column, cellValue, index) => {
|
||||
return `${row.entName || ''}`
|
||||
}
|
||||
},
|
||||
showInTable: true
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '统一社会信用代码',
|
||||
prop: 'uscc',
|
||||
required: true,
|
||||
showInForm: ({ meta }) => {
|
||||
return meta.isForm === true
|
||||
},
|
||||
showInTable: true
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '法定代表人(负责人、经营者)',
|
||||
prop: 'lerepName',
|
||||
required: true,
|
||||
showInForm: ({ meta }) => {
|
||||
return meta.isForm === true
|
||||
},
|
||||
tableProps: {
|
||||
showOverflowTooltip: true
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '住所(经营场所)',
|
||||
prop: 'address',
|
||||
required: true,
|
||||
showInForm: ({ meta }) => {
|
||||
return meta.isForm === true
|
||||
},
|
||||
tableProps: {
|
||||
showOverflowTooltip: true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
beforeRouteEnter(to, from, next) {
|
||||
next((vm) => {
|
||||
// 使用 $nextTick 确保组件完全渲染后再调用
|
||||
vm.$nextTick(() => {
|
||||
if (vm.$refs.EditTable) {
|
||||
vm.$refs.EditTable.search({ reset: true })
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
searchLoader(pageParam, parseSearchFormData, instance) {
|
||||
return listExpelled({
|
||||
size: pageParam.size,
|
||||
current: pageParam.current,
|
||||
entity: {
|
||||
...parseSearchFormData
|
||||
}
|
||||
}).then((data) => {
|
||||
// 确保每条记录都有必要的属性
|
||||
const records = data.data.records.map(record => ({
|
||||
...record,
|
||||
_isAdd: record._isAdd || false
|
||||
}))
|
||||
return {
|
||||
tableData: records,
|
||||
total: data.data.total
|
||||
}
|
||||
})
|
||||
},
|
||||
addData() {
|
||||
this.$refs.EditTable.editReady({})
|
||||
},
|
||||
downloadTemplate() {
|
||||
window.open(`${process.env.VUE_APP_BASE_API}/expelled/downloadTemplate`, '_blank')
|
||||
},
|
||||
batchImport(file) {
|
||||
const formData = new FormData()
|
||||
formData.append('annex', file.raw)
|
||||
return batchImportExpelled(formData).then(() => {
|
||||
this.$message.success('导入成功')
|
||||
this.$refs.EditTable.search({ reset: true })
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "~@/styles/abnormal-list.scss";
|
||||
</style>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<template>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<template>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
Loading…
Reference in New Issue