动态路由配置
This commit is contained in:
parent
60a6934b28
commit
1ce4be9b25
|
|
@ -8,6 +8,7 @@ export {}
|
|||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
ComNav: typeof import('./src/components/comNav/index.vue')['default']
|
||||
Details: typeof import('./src/components/com/details.vue')['default']
|
||||
EditorWang: typeof import('./src/components/com/editorWang.vue')['default']
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCard: typeof import('element-plus/es')['ElCard']
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
<template>
|
||||
<el-config-provider :size="size" :z-index="zIndex">
|
||||
<h1>{{ route }}</h1>
|
||||
<RouterView />
|
||||
</el-config-provider>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
const route = useRoute()
|
||||
const zIndex = ref(3000)
|
||||
const size = ref("small")
|
||||
console.log('routedddd',route)
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
|
|
|||
|
|
@ -1,12 +1,23 @@
|
|||
<template>
|
||||
<div class="upload_ss_c">
|
||||
<!--action="/api/abk/web/v1/resource/file" -->
|
||||
<el-upload :action="actionUrl" :auto-upload="autoUpload" style="width: 100%"
|
||||
:on-success="(response, file) => successUpload(response, file)" :on-error="errorUpload"
|
||||
:accept="acceptTypeList.join(',')" :before-upload="beforeUpload" :multiple="multiple" :limit="maxLimit"
|
||||
:on-exceed="handleExceed" :file-list="fileList" :disabled="disabledFlag"
|
||||
:on-remove="(file, fileList) => removeFile(file, fileList)" :on-preview="(file) => preview(file)"
|
||||
:on-progress="(event, file, fileList) => onProgressFn(event, file, fileList)" list-type="picture-card">
|
||||
<el-upload
|
||||
:action="props.actionUrl"
|
||||
:auto-upload="props.autoUpload"
|
||||
style="width: 100%"
|
||||
:on-success="(response, file) => successUpload(response, file)"
|
||||
:on-error="errorUpload"
|
||||
:accept="props.acceptTypeList.join(',')"
|
||||
:before-upload="beforeUpload"
|
||||
:multiple="props.multiple"
|
||||
:limit="props.maxLimit"
|
||||
:on-exceed="handleExceed"
|
||||
:file-list="props.fileList"
|
||||
:disabled="props.disabledFlag"
|
||||
:on-remove="(file, fileList) => removeFile(file, fileList)"
|
||||
:on-preview="(file) => preview(file)"
|
||||
:on-progress="(event, file, fileList) => onProgressFn(event, file, fileList)"
|
||||
:list-type="props.listType">
|
||||
<!-- 上传的按钮 或者 icon 通过具名插槽的方式 -->
|
||||
<slot name="default"></slot>
|
||||
</el-upload>
|
||||
|
|
@ -15,237 +26,220 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, nextTick } from "vue"
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { Base64 } from 'js-base64'
|
||||
const props = defineProps({
|
||||
actionUrl: {
|
||||
//上传的地址
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
width: {
|
||||
//上传的地址
|
||||
type: String,
|
||||
default: '72px',
|
||||
},
|
||||
height: {
|
||||
//上传的地址
|
||||
type: String,
|
||||
default: '72px',
|
||||
},
|
||||
autoUpload: {//是否开启自动上传
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
acceptTypeList: {
|
||||
//接受的文件类型
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['.jpg', '.jpeg', '.png']
|
||||
// ['doc', 'docx', 'xlsx', 'xls', 'txt', 'pdf','jpg','jpeg','png','zip,'rar']
|
||||
import { ref, nextTick } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { Base64 } from 'js-base64'
|
||||
const props = defineProps({
|
||||
actionUrl: {
|
||||
//上传的地址
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
},
|
||||
multiple: {//是否开启多图上传
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
maxLimit: {
|
||||
// 最大上传个数限制
|
||||
type: Number || String,
|
||||
default: 1,
|
||||
},
|
||||
maxSize: {
|
||||
// 文件上传的最大体积 M
|
||||
type: Number || String,
|
||||
default: 4,
|
||||
|
||||
},
|
||||
disabledFlag: {
|
||||
//是否禁用
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
fileList: {//文件列表
|
||||
type: Array,
|
||||
default: () => {
|
||||
return []
|
||||
width: {
|
||||
//上传的地址
|
||||
type: String,
|
||||
default: '72px'
|
||||
},
|
||||
},
|
||||
listType: {
|
||||
type: String,//'text' | 'picture' | 'picture-card'
|
||||
default: 'picture',
|
||||
},
|
||||
extraData: {}, //上传时的额外参数 如 name等
|
||||
/*
|
||||
height: {
|
||||
//上传的地址
|
||||
type: String,
|
||||
default: '72px'
|
||||
},
|
||||
autoUpload: {
|
||||
//是否开启自动上传
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
acceptTypeList: {
|
||||
//接受的文件类型
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['.jpg', '.jpeg', '.png']
|
||||
// ['doc', 'docx', 'xlsx', 'xls', 'txt', 'pdf','jpg','jpeg','png','zip,'rar']
|
||||
}
|
||||
},
|
||||
multiple: {
|
||||
//是否开启多图上传
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
maxLimit: {
|
||||
// 最大上传个数限制
|
||||
type: Number || String,
|
||||
default: 1
|
||||
},
|
||||
maxSize: {
|
||||
// 文件上传的最大体积 M
|
||||
type: Number || String,
|
||||
default: 4
|
||||
},
|
||||
disabledFlag: {
|
||||
//是否禁用
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
fileList: {
|
||||
//文件列表
|
||||
type: Array,
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
listType: {
|
||||
type: String, //'text' | 'picture' | 'picture-card'
|
||||
default: 'picture'
|
||||
},
|
||||
extraData: {}, //上传时的额外参数 如 name等
|
||||
/*
|
||||
{
|
||||
name:'12321'
|
||||
}
|
||||
*/
|
||||
dragFlag: {
|
||||
type: Boolean,
|
||||
default: true, //是否启用拖拽上传 此处默认启用 element 官方默认是 不启用的
|
||||
},
|
||||
downLoadTypeList: {
|
||||
//需要下载的文件类型
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['doc', 'docx', 'xlsx', 'xls', 'txt']
|
||||
dragFlag: {
|
||||
type: Boolean,
|
||||
default: true //是否启用拖拽上传 此处默认启用 element 官方默认是 不启用的
|
||||
},
|
||||
},
|
||||
preveiwTypeList: {
|
||||
//需要预览的文件类型
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['pdf', 'jpg', 'jpeg', 'png']
|
||||
downLoadTypeList: {
|
||||
//需要下载的文件类型
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['doc', 'docx', 'xlsx', 'xls', 'txt']
|
||||
}
|
||||
},
|
||||
},
|
||||
officePreviewFlag: {
|
||||
//是否启用office在线预览
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
showProcessFlag: {
|
||||
//是否显示进度条
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
})
|
||||
// office预览
|
||||
// https://view.officeapps.live.com/op/view.aspx?src=
|
||||
// https://view.officeapps.live.com/op/view.aspx?src=文档地址
|
||||
//
|
||||
|
||||
const officeOnlineAddress =
|
||||
'https://view.officeapps.live.com/op/view.aspx?src='
|
||||
const officeType = ['doc', 'docx', 'xlsx', 'xls']
|
||||
let processFlag = ref(false)//是否显示进度条
|
||||
let loadProcess = ref(0)//进度条的刻度值
|
||||
|
||||
|
||||
|
||||
// 上传图片 成功
|
||||
const successUpload = (response: any, file: any) => {
|
||||
console.log("successUpload", response, file)
|
||||
if (response.rt.status === 200) {
|
||||
props.fileList.push({
|
||||
url: response.data,
|
||||
name: file.name,
|
||||
})
|
||||
} else {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: response.data
|
||||
})
|
||||
}
|
||||
}
|
||||
const errorUpload = (res: any) => {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: '上传失败请重试!'
|
||||
})
|
||||
|
||||
}
|
||||
const beforeUpload = (file) => {
|
||||
const { name = '', size } = file
|
||||
if (size > props.maxSize * 1024 * 1000) {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: `文件最大仅支持${props.maxSize}M`
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
||||
if (!props.acceptTypeList.includes(name.split('.').pop()) + '.') {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: `文件格式仅支持${props.acceptTypeList.join(',')}M`
|
||||
})
|
||||
return false
|
||||
}
|
||||
}
|
||||
const handleExceed = (files, fileList) => {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: `当前限制选择 10 个文件,本次选择了 ${files.length
|
||||
} 个文件,共选择了 ${files.length + fileList.length} 个文件`
|
||||
})
|
||||
|
||||
}
|
||||
// 移除文件
|
||||
const removeFile = (file, data) => {
|
||||
console.log(file, data)
|
||||
props.fileList = data
|
||||
}
|
||||
// 预览
|
||||
const preview = (data) => {
|
||||
const { url, response = {} } = data || {}
|
||||
let name = data.name
|
||||
const downLoadTypeList = props.downLoadTypeList
|
||||
const preveiwTypeList = props.preveiwTypeList
|
||||
if (!name) {
|
||||
name = ''
|
||||
}
|
||||
const suffixFileType = name.split('.').pop()
|
||||
if (downLoadTypeList.includes(suffixFileType)) {
|
||||
//预览 'doc', 'docx', 'xlsx', 'xls', 'txt' 文件
|
||||
name = name.replace(/&/g, '') // & 不兼容
|
||||
const target = encodeURIComponent(
|
||||
Base64.encode(
|
||||
`${location.origin
|
||||
}/api/abk/web/v1/resource/file?fileId=${url || response.data
|
||||
}&fullfilename=${name}&sid=4AC67ADB4E264AB0A8B899A671072875`
|
||||
)
|
||||
)
|
||||
if (
|
||||
props.officePreviewFlag &&
|
||||
officeType.includes(suffixFileType)
|
||||
) {
|
||||
// office预览的
|
||||
const preveiewURL = officeOnlineAddress + target
|
||||
window.open(preveiewURL)
|
||||
} else {
|
||||
// 非office预览
|
||||
window.open(
|
||||
`https://test/preview/onlinePreview?url=${target}`,
|
||||
'_blank'
|
||||
)
|
||||
preveiwTypeList: {
|
||||
//需要预览的文件类型
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['pdf', 'jpg', 'jpeg', 'png']
|
||||
}
|
||||
},
|
||||
officePreviewFlag: {
|
||||
//是否启用office在线预览
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
showProcessFlag: {
|
||||
//是否显示进度条
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
// office预览
|
||||
// https://view.officeapps.live.com/op/view.aspx?src=
|
||||
// https://view.officeapps.live.com/op/view.aspx?src=文档地址
|
||||
//
|
||||
|
||||
const officeOnlineAddress = 'https://view.officeapps.live.com/op/view.aspx?src='
|
||||
const officeType = ['doc', 'docx', 'xlsx', 'xls']
|
||||
let processFlag = ref(false) //是否显示进度条
|
||||
let loadProcess = ref(0) //进度条的刻度值
|
||||
|
||||
// 上传图片 成功
|
||||
const successUpload = (response: any, file: any) => {
|
||||
console.log('successUpload', response, file)
|
||||
if (response.rt.status === 200) {
|
||||
props.fileList.push({
|
||||
url: response.data,
|
||||
name: file.name
|
||||
})
|
||||
} else {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: response.data
|
||||
})
|
||||
}
|
||||
} else if (preveiwTypeList.includes(suffixFileType)) {
|
||||
//新窗口打开 预览图片文件
|
||||
window.open(
|
||||
'/api/abk/web/v1/resource/file?fileId=' +
|
||||
(url || response.data),
|
||||
'_blank'
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const onProgressFn = (event, file, fileList) => {
|
||||
processFlag.value = true
|
||||
loadProcess.value = event.percent.toFixed(2)
|
||||
if (loadProcess.value >= 100) {
|
||||
loadProcess.value = 100
|
||||
nextTick(() => {
|
||||
processFlag.value = false
|
||||
const errorUpload = (res: any) => {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: '上传失败请重试!'
|
||||
})
|
||||
}
|
||||
}
|
||||
const beforeUpload = (file) => {
|
||||
const { name = '', size } = file
|
||||
if (size > props.maxSize * 1024 * 1000) {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: `文件最大仅支持${props.maxSize}M`
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
||||
if (!props.acceptTypeList.includes(name.split('.').pop()) + '.') {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: `文件格式仅支持${props.acceptTypeList.join(',')}M`
|
||||
})
|
||||
return false
|
||||
}
|
||||
}
|
||||
const handleExceed = (files, fileList) => {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: `当前限制选择 10 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
|
||||
files.length + fileList.length
|
||||
} 个文件`
|
||||
})
|
||||
}
|
||||
// 移除文件
|
||||
const removeFile = (file, data) => {
|
||||
console.log(file, data)
|
||||
props.fileList = data
|
||||
}
|
||||
// 预览
|
||||
const preview = (data) => {
|
||||
const { url, response = {} } = data || {}
|
||||
let name = data.name
|
||||
const downLoadTypeList = props.downLoadTypeList
|
||||
const preveiwTypeList = props.preveiwTypeList
|
||||
if (!name) {
|
||||
name = ''
|
||||
}
|
||||
const suffixFileType = name.split('.').pop()
|
||||
if (downLoadTypeList.includes(suffixFileType)) {
|
||||
//预览 'doc', 'docx', 'xlsx', 'xls', 'txt' 文件
|
||||
name = name.replace(/&/g, '') // & 不兼容
|
||||
const target = encodeURIComponent(
|
||||
Base64.encode(
|
||||
`${location.origin}/api/abk/web/v1/resource/file?fileId=${
|
||||
url || response.data
|
||||
}&fullfilename=${name}&sid=4AC67ADB4E264AB0A8B899A671072875`
|
||||
)
|
||||
)
|
||||
if (props.officePreviewFlag && officeType.includes(suffixFileType)) {
|
||||
// office预览的
|
||||
const preveiewURL = officeOnlineAddress + target
|
||||
window.open(preveiewURL)
|
||||
} else {
|
||||
// 非office预览
|
||||
window.open(`https://test/preview/onlinePreview?url=${target}`, '_blank')
|
||||
}
|
||||
} else if (preveiwTypeList.includes(suffixFileType)) {
|
||||
//新窗口打开 预览图片文件
|
||||
window.open('/api/abk/web/v1/resource/file?fileId=' + (url || response.data), '_blank')
|
||||
}
|
||||
}
|
||||
|
||||
const onProgressFn = (event, file, fileList) => {
|
||||
processFlag.value = true
|
||||
loadProcess.value = event.percent.toFixed(2)
|
||||
if (loadProcess.value >= 100) {
|
||||
loadProcess.value = 100
|
||||
nextTick(() => {
|
||||
processFlag.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<style lang="scss" scoped>
|
||||
:deep(.el-upload){
|
||||
width: v-bind('props.width')!important;
|
||||
height: v-bind('props.height')!important;
|
||||
}
|
||||
:deep(.el-upload-list__item){
|
||||
width: v-bind('props.width')!important;
|
||||
height: v-bind('props.height')!important;
|
||||
}
|
||||
|
||||
:deep(.el-upload) {
|
||||
width: v-bind('props.width') !important;
|
||||
height: v-bind('props.height') !important;
|
||||
}
|
||||
:deep(.el-upload-list__item) {
|
||||
width: v-bind('props.width') !important;
|
||||
height: v-bind('props.height') !important;
|
||||
}
|
||||
</style>
|
||||
<style></style>
|
||||
|
|
|
|||
|
|
@ -6,10 +6,11 @@
|
|||
:router="menuInfo.router" :collapseTransition="menuInfo.collapseTransition" :popperEffect="menuInfo.popperEffect" :isCustomLink="menuInfo.isCustomLink" :customLinkCallBack="menuInfo.customLinkCallBack"></subMenu>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import {list } from "router/routerData"
|
||||
import subMenu from './sideBar/subMenu.vue';
|
||||
import {comNavStore} from "store/comNav"
|
||||
import {permissionStore} from "store/permission"
|
||||
const navStore = comNavStore()
|
||||
const permissionStoreInstance = permissionStore()
|
||||
const routes = useRoute()
|
||||
const router = useRouter()
|
||||
const menuInfo:any = reactive({
|
||||
|
|
@ -21,7 +22,7 @@ const navStore = comNavStore()
|
|||
defaultOpeneds:['staticDefault_PathParent&&配置管理'],
|
||||
router:false,
|
||||
collapseTransition:true,
|
||||
menuList:list,
|
||||
menuList:[],
|
||||
isCustomLink:true,
|
||||
customLinkCallBack:(ev:any)=>{
|
||||
console.log("customLinkCallBack",ev)
|
||||
|
|
@ -49,11 +50,10 @@ const navStore = comNavStore()
|
|||
// menuInfo.menuList = routeList.find(ele=>ele.meta.routeListRoot)?.children
|
||||
// menuInfo.defaultOpeneds = menuInfo.menuList[0].path
|
||||
// console.log("menuInfo.menuList",menuInfo.menuList)
|
||||
menuInfo.defaultOpeneds.push()
|
||||
const routes:any = router.getRoutes()
|
||||
const routes:any = permissionStoreInstance.routeNavList
|
||||
console.log("routes",routes)
|
||||
const currentNav= routes[0]
|
||||
if(navStore.topNavList){
|
||||
if(navStore.topNavList.length==0){
|
||||
let firstNav = {
|
||||
title:currentNav.meta.title,
|
||||
name:currentNav.name,
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import App from './App.vue'
|
|||
import router from './router'
|
||||
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
|
||||
import pinia from "./store"
|
||||
|
||||
import "router/DynamicRoute/index"
|
||||
import components from 'components/global'
|
||||
const app = createApp(App)
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
import router from "../index"
|
||||
import { permissionStore } from "store/permission"
|
||||
import { useRoute } from 'vue-router'
|
||||
const route = useRoute()
|
||||
const viteModules = import.meta.glob('../../views/*.vue');
|
||||
// const views = import.meta.glob('../../views/AppMain.vue')
|
||||
const root: any = {
|
||||
path: '/index',
|
||||
name: 'index',
|
||||
// component:modules,
|
||||
// redirect: '/index/configManage/swiperConfig',
|
||||
meta: {
|
||||
title: '主页面',
|
||||
keepAlive: true,
|
||||
AuthFlag: true,
|
||||
routeListRoot: true
|
||||
},
|
||||
children: []
|
||||
}
|
||||
for (const path in viteModules) {
|
||||
// path 的值为 /src/pages/vite/echartsPage.vue
|
||||
// console.log(path, mod)
|
||||
const length = path.lastIndexOf('/');
|
||||
const filename = path.substring(length + 1).split('.')[0];
|
||||
console.log('filename',filename)
|
||||
const routeOption = {
|
||||
path: `/${filename}`,
|
||||
component: viteModules[path] // 是将vue文件解析为组件的对象
|
||||
}
|
||||
router.addRoute(routeOption);
|
||||
}
|
||||
|
||||
|
||||
|
||||
router.beforeEach(async (to, from, next) => {
|
||||
const store = permissionStore()
|
||||
const list = await store.setpermissionList()
|
||||
// initRouter()
|
||||
console.log("router", list, router)
|
||||
|
||||
// addRoutesHandle(list)
|
||||
// router.addRoute(root)
|
||||
|
||||
|
||||
store.setRouteNavList(list)
|
||||
next()
|
||||
})
|
||||
|
||||
|
|
@ -1,195 +1,239 @@
|
|||
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
|
||||
|
||||
const routes: Array<RouteRecordRaw> = [
|
||||
{
|
||||
path: '/index',
|
||||
name: 'index',
|
||||
component: () => import('views/AppMain.vue'),
|
||||
meta: {
|
||||
title: '主页面',
|
||||
keepAlive: true,
|
||||
AuthFlag: true,
|
||||
routeListRoot: true
|
||||
},
|
||||
children:[
|
||||
{
|
||||
path: 'swiperConfig',
|
||||
name: 'swiperConfig',
|
||||
component: () => import('views/configuration/swiperConfig/index.vue'),
|
||||
meta: {
|
||||
title: '轮播图配置',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'specialInformationConfiguration',
|
||||
name: 'specialInformationConfiguration',
|
||||
component: () => import('views/configuration/specialInformationConfiguration/index.vue'),
|
||||
meta: {
|
||||
title: '专题资讯配置',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'privacyAgreement',
|
||||
name: 'privacyAgreement',
|
||||
component: () => import('views/configuration/privacyAgreement/index.vue'),
|
||||
meta: {
|
||||
title: '隐私协议模板管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
}
|
||||
},
|
||||
|
||||
// {
|
||||
// path: 'enterpriseManagement',
|
||||
// name: 'enterpriseManagement',
|
||||
// component: () => import('views/enterpriseManagement/AppMain.vue'),
|
||||
// meta: {
|
||||
// title: '企业管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// },
|
||||
|
||||
{
|
||||
path: 'enterpriseType',
|
||||
name: 'configuration',
|
||||
component: () => import('views/enterpriseManagement/enterpriseType/index.vue'),
|
||||
meta: {
|
||||
title: '企业类型',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'enterpriseEntryReview',
|
||||
name: 'enterpriseEntryReview',
|
||||
component: () => import('views/enterpriseManagement/enterpriseEntryReview/index.vue'),
|
||||
meta: {
|
||||
title: '企业入驻审核',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
},
|
||||
|
||||
},
|
||||
{
|
||||
path: 'businessReview',
|
||||
name: 'businessReview',
|
||||
component: () => import('views/enterpriseManagement/businessReview/index.vue'),
|
||||
meta: {
|
||||
title: '企业业务开通审核',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'enterpriseInfo',
|
||||
name: 'enterpriseInfo',
|
||||
component: () => import('views/enterpriseManagement/enterpriseInfo/index.vue'),
|
||||
meta: {
|
||||
title: '企业信息',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
}
|
||||
},
|
||||
// 企业装备管理
|
||||
{
|
||||
path: 'equipmentTypeTemplate',
|
||||
name: 'equipmentTypeTemplate',
|
||||
component: () => import('views/enterpriseEquipmentManage/equipmentTypeTemplate/index.vue'),
|
||||
meta: {
|
||||
title: '装备类型模板',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
},
|
||||
|
||||
},
|
||||
{
|
||||
path: 'equipmentListingApproval',
|
||||
name: 'equipmentListingApproval',
|
||||
component: () => import('views/enterpriseEquipmentManage/equipmentListingApproval/index.vue'),
|
||||
meta: {
|
||||
title: '装备上架审批',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'iotEquipmentManagement',
|
||||
name: 'iotEquipmentManagement',
|
||||
component: () => import('views/enterpriseEquipmentManage/iotEquipmentManagement/index.vue'),
|
||||
meta: {
|
||||
title: 'iot设备管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'orderManagement',
|
||||
name: 'orderManagement',
|
||||
component: () => import('views/enterpriseEquipmentManage/iotEquipmentManagement/index.vue'),
|
||||
meta: {
|
||||
title: 'iot设备管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "orderManagement",
|
||||
path: 'orderManagement',
|
||||
component: () => import('views/orderManagement/index.vue'),
|
||||
meta: {
|
||||
title: '订单管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
},
|
||||
children: []
|
||||
},
|
||||
// 111
|
||||
{
|
||||
name: "systemVersion",
|
||||
path: 'systemVersion',
|
||||
component: () => import('views/systemManage/systemVersion/index.vue'),
|
||||
meta: {
|
||||
title: '系统版本管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
},
|
||||
children: []
|
||||
},
|
||||
{
|
||||
name: "userManage",
|
||||
path: 'userManage',
|
||||
component: () => import('views/systemManage/userManage/index.vue'),
|
||||
meta: {
|
||||
title: '用户管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
},
|
||||
children: []
|
||||
},
|
||||
|
||||
{
|
||||
name: "systemLog",
|
||||
path: 'systemLog',
|
||||
component: () => import('views/systemManage/systemLog/index.vue'),
|
||||
meta: {
|
||||
title: '系统日志',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
},
|
||||
children: []
|
||||
},
|
||||
// {
|
||||
// path: '/AppMain',
|
||||
// name: 'index',
|
||||
// component: () => import('views/AppMain.vue'),
|
||||
// // redirect: '/index/swiperConfig',
|
||||
// meta: {
|
||||
// title: '主页面',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true,
|
||||
// routeListRoot: true
|
||||
// },
|
||||
// children:[]
|
||||
// }
|
||||
// children:[
|
||||
// {
|
||||
// path: 'swiperConfig',
|
||||
// name: 'swiperConfig',
|
||||
// component: () => import('views/configuration/swiperConfig/index.vue'),
|
||||
// meta: {
|
||||
// title: '轮播图配置',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// }
|
||||
|
||||
|
||||
// },
|
||||
// {
|
||||
// path: 'specialInformationConfiguration',
|
||||
// name: 'specialInformationConfiguration',
|
||||
// component: () => import('views/configuration/specialInformationConfiguration/index.vue'),
|
||||
// meta: {
|
||||
// title: '专题资讯配置',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// path: 'privacyAgreement',
|
||||
// name: 'privacyAgreement',
|
||||
// component: () => import('views/configuration/privacyAgreement/index.vue'),
|
||||
// meta: {
|
||||
// title: '隐私协议模板管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// }
|
||||
// },
|
||||
|
||||
// // {
|
||||
// // path: 'enterpriseManagement',
|
||||
// // name: 'enterpriseManagement',
|
||||
// // component: () => import('views/enterpriseManagement/AppMain.vue'),
|
||||
// // meta: {
|
||||
// // title: '企业管理',
|
||||
// // keepAlive: true,
|
||||
// // AuthFlag: true
|
||||
// // },
|
||||
// // },
|
||||
|
||||
// {
|
||||
// path: 'enterpriseType',
|
||||
// name: 'configuration',
|
||||
// component: () => import('views/enterpriseManagement/enterpriseType/index.vue'),
|
||||
// meta: {
|
||||
// title: '企业类型',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// path: 'enterpriseEntryReview',
|
||||
// name: 'enterpriseEntryReview',
|
||||
// component: () => import('views/enterpriseManagement/enterpriseEntryReview/index.vue'),
|
||||
// meta: {
|
||||
// title: '企业入驻审核',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
|
||||
// },
|
||||
// {
|
||||
// path: 'businessReview',
|
||||
// name: 'businessReview',
|
||||
// component: () => import('views/enterpriseManagement/businessReview/index.vue'),
|
||||
// meta: {
|
||||
// title: '企业业务开通审核',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// path: 'enterpriseInfo',
|
||||
// name: 'enterpriseInfo',
|
||||
// component: () => import('views/enterpriseManagement/enterpriseInfo/index.vue'),
|
||||
// meta: {
|
||||
// title: '企业信息',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// }
|
||||
// },
|
||||
// // 企业装备管理
|
||||
// {
|
||||
// path: 'equipmentTypeTemplate',
|
||||
// name: 'equipmentTypeTemplate',
|
||||
// component: () => import('views/enterpriseEquipmentManage/equipmentTypeTemplate/index.vue'),
|
||||
// meta: {
|
||||
// title: '装备类型模板',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
|
||||
// },
|
||||
// {
|
||||
// path: 'equipmentListingApproval',
|
||||
// name: 'equipmentListingApproval',
|
||||
// component: () => import('views/enterpriseEquipmentManage/equipmentListingApproval/index.vue'),
|
||||
// meta: {
|
||||
// title: '装备上架审批',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// path: 'iotEquipmentManagement',
|
||||
// name: 'iotEquipmentManagement',
|
||||
// component: () => import('views/enterpriseEquipmentManage/iotEquipmentManagement/index.vue'),
|
||||
// meta: {
|
||||
// title: 'iot设备管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// path: 'orderManagement',
|
||||
// name: 'orderManagement',
|
||||
// component: () => import('views/enterpriseEquipmentManage/iotEquipmentManagement/index.vue'),
|
||||
// meta: {
|
||||
// title: 'iot设备管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// name: "orderManagement",
|
||||
// path: 'orderManagement',
|
||||
// component: () => import('views/orderManagement/index.vue'),
|
||||
// meta: {
|
||||
// title: '订单管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// children: []
|
||||
// },
|
||||
// // 111
|
||||
// {
|
||||
// name: "systemVersion",
|
||||
// path: 'systemVersion',
|
||||
// component: () => import('views/systemManage/systemVersion/index.vue'),
|
||||
// meta: {
|
||||
// title: '系统版本管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// children: []
|
||||
// },
|
||||
// {
|
||||
// name: "userManage",
|
||||
// path: 'userManage',
|
||||
// component: () => import('views/systemManage/userManage/index.vue'),
|
||||
// meta: {
|
||||
// title: '用户管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// children: []
|
||||
// },
|
||||
|
||||
// {
|
||||
// name: "systemLog",
|
||||
// path: 'systemLog',
|
||||
// component: () => import('views/systemManage/systemLog/index.vue'),
|
||||
// meta: {
|
||||
// title: '系统日志',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// children: []
|
||||
// },
|
||||
// {
|
||||
// name: "systemLog",
|
||||
// path: 'systemLog',
|
||||
// component: () => import('views/systemManage/systemLog/index.vue'),
|
||||
// meta: {
|
||||
// title: '系统日志',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// children: []
|
||||
// },
|
||||
// {
|
||||
// name: "entryAuditDetails",
|
||||
// path: 'entryAuditDetails',
|
||||
// component: () => import('views/enterpriseManagement/enterpriseEntryReview/details.vue'),
|
||||
// meta: {
|
||||
// title: '审批详情',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// children: []
|
||||
// },
|
||||
// {
|
||||
// name: "businessReviewDetails",
|
||||
// path: 'businessReviewDetails',
|
||||
// component: () => import('views/enterpriseManagement/businessReview/details.vue'),
|
||||
// meta: {
|
||||
// title: '审批详情',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// children: []
|
||||
// }, {
|
||||
// name: "enterpriseInfoDetails",
|
||||
// path: 'enterpriseInfoDetails',
|
||||
// component: () => import('views/enterpriseManagement/enterpriseInfo/details.vue'),
|
||||
// meta: {
|
||||
// title: '审批详情',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// children: []
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
]
|
||||
|
|
@ -200,4 +244,5 @@ const router = createRouter({
|
|||
routes
|
||||
})
|
||||
|
||||
|
||||
export default router
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
export const list: any = [
|
||||
{
|
||||
name: "staticDefault_PathParent",
|
||||
path: 'staticDefault_PathParent',
|
||||
name: "configManage",
|
||||
path:'/index/configManage',
|
||||
meta: {
|
||||
title: '配置管理',
|
||||
keepAlive: true,
|
||||
|
|
@ -9,7 +9,7 @@ export const list: any = [
|
|||
},
|
||||
children: [
|
||||
{
|
||||
path: 'swiperConfig',
|
||||
path:'/index/configManage/swiperConfig',
|
||||
name: 'swiperConfig',
|
||||
component: 'views/configuration/swiperConfig.vue',
|
||||
meta: {
|
||||
|
|
@ -19,7 +19,7 @@ export const list: any = [
|
|||
}
|
||||
},
|
||||
{
|
||||
path: 'specialInformationConfiguration',
|
||||
path:'/index/configManage/specialInformationConfiguration',
|
||||
name: 'specialInformationConfiguration',
|
||||
component: 'views/configuration/specialInformationConfiguration/index.vue',
|
||||
meta: {
|
||||
|
|
@ -29,7 +29,7 @@ export const list: any = [
|
|||
}
|
||||
},
|
||||
{
|
||||
path: 'privacyAgreement',
|
||||
path:'/index/configManage/privacyAgreement',
|
||||
name: 'privacyAgreement',
|
||||
component: 'views/configuration/privacyAgreement/index.vue',
|
||||
meta: {
|
||||
|
|
@ -42,7 +42,7 @@ export const list: any = [
|
|||
},
|
||||
{
|
||||
name: "企业管理",
|
||||
path: 'enterpriseTypeManage',
|
||||
path:'/index/enterpriseTypeManage',
|
||||
meta: {
|
||||
title: '企业管理',
|
||||
keepAlive: true,
|
||||
|
|
@ -52,7 +52,7 @@ export const list: any = [
|
|||
|
||||
|
||||
{
|
||||
path: 'enterpriseType',
|
||||
path:'/index/enterpriseTypeManage/enterpriseType',
|
||||
name: 'configuration',
|
||||
component: 'views/enterpriseManagement/enterpriseType/index.vue',
|
||||
meta: {
|
||||
|
|
@ -62,7 +62,7 @@ export const list: any = [
|
|||
}
|
||||
},
|
||||
{
|
||||
path: 'enterpriseEntryReview',
|
||||
path:'/index/enterpriseTypeManage/enterpriseEntryReview',
|
||||
name: 'enterpriseEntryReview',
|
||||
component: 'views/enterpriseManagement/enterpriseEntryReview/index.vue',
|
||||
meta: {
|
||||
|
|
@ -73,7 +73,7 @@ export const list: any = [
|
|||
|
||||
},
|
||||
{
|
||||
path: 'businessReview',
|
||||
path:'/index/enterpriseTypeManage/businessReview',
|
||||
name: 'businessReview',
|
||||
component: 'views/enterpriseManagement/businessReview/index.vue',
|
||||
meta: {
|
||||
|
|
@ -83,7 +83,7 @@ export const list: any = [
|
|||
}
|
||||
},
|
||||
{
|
||||
path: 'enterpriseInfo',
|
||||
path:'/index/enterpriseTypeManage/enterpriseInfo',
|
||||
name: 'enterpriseInfo',
|
||||
component: 'views/enterpriseManagement/enterpriseInfo/index.vue',
|
||||
meta: {
|
||||
|
|
@ -96,7 +96,7 @@ export const list: any = [
|
|||
},
|
||||
{
|
||||
name: "企业装备管理",
|
||||
path: 'enterpriseEquipmentManage',
|
||||
path:'/index/enterpriseEquipmentManage',
|
||||
meta: {
|
||||
title: '企业装备管理',
|
||||
keepAlive: true,
|
||||
|
|
@ -104,7 +104,7 @@ export const list: any = [
|
|||
},
|
||||
children: [
|
||||
{
|
||||
path: 'equipmentTypeTemplate',
|
||||
path:'/index/enterpriseEquipmentManage/equipmentTypeTemplate',
|
||||
name: 'equipmentTypeTemplate',
|
||||
component: 'views/enterpriseEquipmentManage/equipmentTypeTemplate/index.vue',
|
||||
meta: {
|
||||
|
|
@ -115,7 +115,7 @@ export const list: any = [
|
|||
},
|
||||
|
||||
{
|
||||
path: 'equipmentListingApproval',
|
||||
path:'/index/enterpriseEquipmentManage/equipmentListingApproval',
|
||||
name: 'equipmentListingApproval',
|
||||
component: 'views/enterpriseEquipmentManage/equipmentListingApproval/index.vue',
|
||||
meta: {
|
||||
|
|
@ -127,7 +127,7 @@ export const list: any = [
|
|||
},
|
||||
// iotEquipmentManagement
|
||||
{
|
||||
path: 'iotEquipmentManagement',
|
||||
path:'/index/enterpriseEquipmentManage/iotEquipmentManagement',
|
||||
name: 'iotEquipmentManagement',
|
||||
component: 'views/enterpriseEquipmentManage/iotEquipmentManagement/index.vue',
|
||||
meta: {
|
||||
|
|
@ -140,7 +140,7 @@ export const list: any = [
|
|||
},
|
||||
{
|
||||
name: "orderManagement",
|
||||
path: 'orderManagement',
|
||||
path:'/index/orderManagement',
|
||||
component: 'views/orderManagement/index.vue',
|
||||
meta: {
|
||||
title: '订单管理',
|
||||
|
|
@ -151,7 +151,7 @@ export const list: any = [
|
|||
},
|
||||
{
|
||||
name: "systemManage",
|
||||
path: 'systemManage',
|
||||
path:'/index/systemManage',
|
||||
meta: {
|
||||
title: '系统管理',
|
||||
keepAlive: true,
|
||||
|
|
@ -159,7 +159,7 @@ export const list: any = [
|
|||
},
|
||||
children: [
|
||||
{
|
||||
path: 'systemVersion',
|
||||
path:'/index/systemManage/systemVersion',
|
||||
name: 'systemVersion',
|
||||
component: 'views/systemManage/systemVersion/index.vue',
|
||||
meta: {
|
||||
|
|
@ -169,7 +169,7 @@ export const list: any = [
|
|||
}
|
||||
},
|
||||
{
|
||||
path: 'userManage',
|
||||
path:'/index/systemManage/userManage',
|
||||
name: 'userManage',
|
||||
component: 'views/systemManage/userManage/index.vue',
|
||||
meta: {
|
||||
|
|
@ -179,7 +179,7 @@ export const list: any = [
|
|||
}
|
||||
} ,
|
||||
{
|
||||
path: 'systemLog',
|
||||
path:'/index/systemManage/systemLog',
|
||||
name: 'systemLog',
|
||||
component: 'views/systemManage/systemLog/index.vue',
|
||||
meta: {
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ export const comNavStore = defineStore('main_com_nav', {
|
|||
{
|
||||
// 自定义存储的 key,默认是 store.$id
|
||||
key: 'main_com_nav',
|
||||
storage: localStorage, //缓存模式 可选 localStorage sessionStorage
|
||||
storage: sessionStorage, //缓存模式 可选 localStorage sessionStorage
|
||||
// state 中的字段名,按组打包储存
|
||||
paths: ['topNavList'] //需要缓存的字段 与 state中相关联
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
import {list} from "router/routerData"
|
||||
|
||||
export const permissionStore = defineStore('permission', {
|
||||
state: () => {
|
||||
return {
|
||||
permissionList:[],
|
||||
routeNavList:[]
|
||||
}
|
||||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
setpermissionList() {
|
||||
return new Promise((resolve,reject)=>{
|
||||
setTimeout(()=>{
|
||||
console.log("permissionStore")
|
||||
resolve(list)
|
||||
},0)
|
||||
})
|
||||
},
|
||||
setRouteNavList(list:any) {
|
||||
this.routeNavList=list
|
||||
}
|
||||
},
|
||||
persist: {
|
||||
enabled: true, // 开启数据缓存
|
||||
strategies: [
|
||||
{
|
||||
// 自定义存储的 key,默认是 store.$id
|
||||
key: 'permission',
|
||||
storage: sessionStorage, //缓存模式 可选 localStorage sessionStorage
|
||||
// state 中的字段名,按组打包储存
|
||||
paths: ['permissionList'] //需要缓存的字段 与 state中相关联
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
|
|
@ -66,3 +66,6 @@ export const throttle = <T extends (...args: any[]) => ReturnType<T>>(
|
|||
}, timeout)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,814 @@
|
|||
<template>
|
||||
<div class="enterpriseCertification">
|
||||
<div class="baseInfo card">
|
||||
<div class="top">
|
||||
<div class="title">企业基本信息</div>
|
||||
<div class="options">
|
||||
<el-button size="small" type="primary">我的邀请码</el-button>
|
||||
<el-button size="small" type="primary">编辑</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-form class="baseForm">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="企业名称">
|
||||
<el-input
|
||||
placeholder="输入企业名称"
|
||||
clearable
|
||||
v-model.trim="applyParams.companyName"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6">
|
||||
<el-form-item label="企业类型">
|
||||
<el-select
|
||||
placeholder="请选择企业类型"
|
||||
clearable
|
||||
v-model="applyParams.companyType"
|
||||
@change="changeProvince">
|
||||
<el-option
|
||||
v-for="item in selcompanyTypeList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="企业所属">
|
||||
<el-select
|
||||
placeholder="请选择企业所属"
|
||||
clearable
|
||||
v-model="applyParams.companyLtd"
|
||||
@change="changeProvince">
|
||||
<el-option
|
||||
v-for="item in selcompanyLtdList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="统一社会信用代码">
|
||||
<el-input
|
||||
placeholder="请输入统一社会信用代码"
|
||||
clearable
|
||||
v-model.trim="applyParams.creditCode"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item label="注册地址">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="5">
|
||||
<el-select
|
||||
placeholder="请选择省份"
|
||||
clearable
|
||||
v-model="applyParams.registerAddress"
|
||||
@change="changeProvince">
|
||||
<el-option
|
||||
v-for="item in selProvinceList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code + ',' + item.name"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-select
|
||||
v-model="applyParams.registerAddressProvince"
|
||||
placeholder="请选择市"
|
||||
@change="changeMarket"
|
||||
clearable>
|
||||
<el-option
|
||||
v-for="item in selMarketList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code + ',' + item.name"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-select
|
||||
v-model="applyParams.registerAddressArea"
|
||||
placeholder="请选择区"
|
||||
clearable
|
||||
@change="changeArea">
|
||||
<el-option
|
||||
v-for="item in selAreaList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code + ',' + item.name"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input
|
||||
v-model="applyParams.registerRealityAddress"
|
||||
placeholder="请输入实际办公地址"
|
||||
clearable></el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="经营地址">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="5">
|
||||
<el-select
|
||||
placeholder="请选择省份"
|
||||
clearable
|
||||
v-model="applyParams.operateAddress"
|
||||
@change="opeChangeProvince">
|
||||
<el-option
|
||||
v-for="item in selProvinceList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code + ',' + item.name"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-select
|
||||
v-model="applyParams.operateAddressProvince"
|
||||
placeholder="请选择市"
|
||||
@change="opeChangeMarket"
|
||||
clearable>
|
||||
<el-option
|
||||
v-for="item in selMarketList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code + ',' + item.name"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-select
|
||||
v-model="applyParams.operateAddressArea"
|
||||
placeholder="请选择区"
|
||||
@change="opeChangeArea"
|
||||
clearable>
|
||||
<el-option
|
||||
v-for="item in selAreaList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code + ',' + item.name"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input
|
||||
v-model="applyParams.operateRealityAddress"
|
||||
clearable
|
||||
placeholder="请输入实际办公地址"></el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="5">
|
||||
<el-form-item label="法人证件类型">
|
||||
<el-select
|
||||
v-model="applyParams.certificatetype"
|
||||
clearable
|
||||
placeholder="请选法人证件类型">
|
||||
<el-option
|
||||
v-for="item in selIdTypeList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="7">
|
||||
<el-form-item label="法人证件号码">
|
||||
<el-input
|
||||
placeholder="请输入法人证件号码"
|
||||
v-model.trim="applyParams.idNumber"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item class="" label="营业执照">
|
||||
<uploadComponent
|
||||
:maxLimit="3"
|
||||
listType="picture-card"
|
||||
:acceptTypeList="['.jpg', '.jpeg', '.png']"
|
||||
width="120px"
|
||||
height="120px">
|
||||
<template v-slot:default>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
</template>
|
||||
</uploadComponent>
|
||||
<div class="previewExample">
|
||||
<span>预览</span>
|
||||
<span>查看示例</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="10">
|
||||
<el-form-item class="" label="身份证国徽面">
|
||||
<uploadComponent
|
||||
:maxLimit="3"
|
||||
listType="picture-card"
|
||||
:acceptTypeList="['.jpg', '.jpeg', '.png']"
|
||||
width="120px"
|
||||
height="120px">
|
||||
<template v-slot:default>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
</template>
|
||||
</uploadComponent>
|
||||
<div class="previewExample">
|
||||
<span>预览</span>
|
||||
<span>查看示例</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="10">
|
||||
<el-form-item class="" label="身份证肖像面">
|
||||
<uploadComponent
|
||||
:maxLimit="3"
|
||||
listType="picture-card"
|
||||
:acceptTypeList="['.jpg', '.jpeg', '.png']"
|
||||
width="120px"
|
||||
height="120px">
|
||||
<template v-slot:default>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
</template>
|
||||
</uploadComponent>
|
||||
<div class="previewExample">
|
||||
<span>预览</span>
|
||||
<span>查看示例</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="法人姓名">
|
||||
<el-input
|
||||
placeholder="请输入法人姓名"
|
||||
v-model.trim="applyParams.legalPerson"
|
||||
clearable>
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="邀请码">
|
||||
<el-input
|
||||
placeholder="请输入邀请码"
|
||||
v-model.trim="applyParams.invitationCode"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="邀请企业名称">
|
||||
<el-input
|
||||
placeholder="请输入邀请企业名称"
|
||||
v-model.trim="applyParams.invitationCoName"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="经营范围">
|
||||
<el-input
|
||||
placeholder="请输入经营范围"
|
||||
v-model.trim="applyParams.businessScope"
|
||||
clearable
|
||||
type="textarea"
|
||||
:rows="5"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<div class="personInfo card">
|
||||
<div class="top">
|
||||
<div class="title">被授权人信息</div>
|
||||
</div>
|
||||
|
||||
<el-form class="personForm">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="5">
|
||||
<el-form-item label="被授权人姓名">
|
||||
<el-input
|
||||
placeholder="请输入被授权人姓名"
|
||||
v-model.trim="applyParams.authPerson"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="被授权人身份证">
|
||||
<el-input
|
||||
placeholder="请输入被授权人身份证"
|
||||
v-model.trim="applyParams.authIdNumber"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="被授权人手机号">
|
||||
<div class="phone">
|
||||
<el-input
|
||||
placeholder="请输入被授权人手机号"
|
||||
v-model.trim="applyParams.authPhone"
|
||||
clearable></el-input>
|
||||
<div class="tip">
|
||||
被授权人手机号修改且运营审核通过后,企业系统管理员权限将同步到修改后被授权手机号的登录账号。
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="被授权人邮箱">
|
||||
<el-input></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="被授权人身份证肖像面">
|
||||
<uploadComponent
|
||||
:maxLimit="3"
|
||||
listType="picture-card"
|
||||
:acceptTypeList="['.jpg', '.jpeg', '.png']"
|
||||
width="120px"
|
||||
height="120px">
|
||||
<template v-slot:default>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
</template>
|
||||
</uploadComponent>
|
||||
<div class="previewExample">
|
||||
<span>预览</span>
|
||||
<span>查看示例</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="被授权人身份证国徽面">
|
||||
<!-- <upload-img width="80" @onClick="test" /> -->
|
||||
<uploadComponent
|
||||
:maxLimit="3"
|
||||
listType="picture-card"
|
||||
:acceptTypeList="['.jpg', '.jpeg', '.png']"
|
||||
width="120px"
|
||||
height="120px">
|
||||
<template v-slot:default>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
</template>
|
||||
</uploadComponent>
|
||||
<div class="previewExample">
|
||||
<span>预览</span>
|
||||
<span>查看示例</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="法人授权书">
|
||||
<uploadComponent
|
||||
:maxLimit="3"
|
||||
listType="picture-card"
|
||||
:acceptTypeList="['.jpg', '.jpeg', '.png']"
|
||||
width="120px"
|
||||
height="120px">
|
||||
<template v-slot:default>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
</template>
|
||||
</uploadComponent>
|
||||
<div class="previewExample">
|
||||
<span>预览</span>
|
||||
<span>查看示例</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10" class="d-flex align-center">
|
||||
<el-checkbox size="large" />
|
||||
<div class="agreement">
|
||||
我已阅读并同意相关条款内容《
|
||||
<span class="previewExample">服务协议</span>
|
||||
》 《
|
||||
<span class="previewExample">隐私协议</span>
|
||||
》
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<div class="bankInfo card">
|
||||
<div class="top">
|
||||
<div class="title">
|
||||
银行账号信息
|
||||
<span class="tip">开户行许可示例</span>
|
||||
</div>
|
||||
</div>
|
||||
<el-row class="header">
|
||||
<el-col :span="v.span" v-for="(v, i) in bankTableHeader" :key="i">
|
||||
<div
|
||||
class="item border-top-left"
|
||||
:class="i + 1 == bankTableHeader.length && 'border-right'">
|
||||
{{ v.label }}
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="content" v-for="(val, index) in bankTableData" :key="index">
|
||||
<el-col :span="v.span" v-for="(v, i) in bankTableHeader" :key="i">
|
||||
<div
|
||||
v-if="!v.slot"
|
||||
class="item border-top-left"
|
||||
:class="`${i + 1 == bankTableHeader.length && 'border-right'} ${
|
||||
index + 1 == bankTableData.length && 'border-bottom'
|
||||
}`">
|
||||
{{ val[v.prop] || '' }}
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
class="item border-top-left"
|
||||
:class="`${i + 1 == bankTableHeader.length && 'border-right'} ${
|
||||
index + 1 == bankTableData.length && 'border-bottom'
|
||||
}`">
|
||||
上传附件
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-row style="padding-top: 15px">
|
||||
<el-form-item>
|
||||
<el-button @click="handlerSubmitBtn">提 交</el-button>
|
||||
<el-button @click="handlerCloseBtn">关 闭</el-button>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import uploadImg from 'components/uploadImg.vue'
|
||||
import uploadComponent from 'components/uploadComponent/index.vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { reactive, ref } from 'vue'
|
||||
import { useStore } from 'store/user'
|
||||
const store = useStore()
|
||||
|
||||
import { applyAttestationApi } from 'http/api/usercenter/baseinfo'
|
||||
|
||||
onMounted(() => {
|
||||
// 获取省级数据
|
||||
store.getprovinceList()
|
||||
// 获取证件类型数据
|
||||
store.getIdTypeList()
|
||||
// 获取企业类型
|
||||
store.getcompanyTypeList()
|
||||
// 获取企业所属
|
||||
store.getcompanyLtdList()
|
||||
})
|
||||
|
||||
// 注册地址拼装
|
||||
const AssemblyRegisterAddress: any = reactive([])
|
||||
|
||||
// 经营地址拼装
|
||||
const AssemblyOperateAddress: any = reactive([])
|
||||
|
||||
// 申请认证参数
|
||||
const applyParams: any = reactive({
|
||||
companyName: '', // 企业名称
|
||||
companyType: '', // 企业类型
|
||||
companyLtd: '', // 企业所属
|
||||
creditCode: '', // 统一信用代码
|
||||
registerAddress: '', // 注册地址
|
||||
registerAddressProvince: '', // 注册地址(市级)
|
||||
registerAddressArea: '', // 注册地址(区级)
|
||||
registerRealityAddress: '', // 注册地址(实际地址)
|
||||
operateAddress: '', // 经营地址
|
||||
operateAddressProvince: '', // 经营地址(市级)
|
||||
operateAddressArea: '', // 经营地址(区级)
|
||||
operateRealityAddress: '', // 注册地址(实际地址)
|
||||
certificatetype: '', // 法人证件类型
|
||||
idNumber: '', // 法人证件号码
|
||||
businessLicense: '', // 营业执照
|
||||
legalFaceUrl: '', // 法人身份证国徽面
|
||||
legalNationUrl: '', // 法人身份证肖像
|
||||
legalPerson: '', // 法人姓名
|
||||
invitationCode: '', // 邀请码
|
||||
invitationCoName: '', // 邀请企业名称
|
||||
businessScope: '', // 经营范围
|
||||
authPerson: '', // 被授权人姓名
|
||||
authIdNumber: '', // 被授权身份证号
|
||||
authPhone: '', // 被授权手机号
|
||||
authDocument:
|
||||
'https://zlpt-1259760603.cos.ap-nanjing.myqcloud.com/488bab245180ebf9f1f3d7db5301be4.png', // 法人授权书
|
||||
idNationUrl:
|
||||
'https://zlpt-1259760603.cos.ap-nanjing.myqcloud.com/488bab245180ebf9f1f3d7db5301be4.png', // 被授权人国徽
|
||||
idFaceUrl:
|
||||
'vhttps://zlpt-1259760603.cos.ap-nanjing.myqcloud.com/488bab245180ebf9f1f3d7db5301be4.png' // 被授权人头像
|
||||
})
|
||||
// 省级数据源
|
||||
const selProvinceList: any = computed(() => {
|
||||
return store.provinceList
|
||||
})
|
||||
|
||||
// 省级下拉框选中时获取市级
|
||||
const changeProvince = (val: any) => {
|
||||
// console.log(val, '省选择**')
|
||||
store.getmarketList(val.split(',')[0])
|
||||
|
||||
AssemblyRegisterAddress[0] = val.split(',')[1]
|
||||
}
|
||||
|
||||
const opeChangeProvince = (val: any) => {
|
||||
// console.log(val, '省选择**')
|
||||
store.getmarketList(val.split(',')[0])
|
||||
|
||||
AssemblyOperateAddress[0] = val.split(',')[1]
|
||||
}
|
||||
|
||||
// 获取市级数据源
|
||||
const selMarketList: any = computed(() => {
|
||||
return store.marketList
|
||||
})
|
||||
|
||||
// 市级下拉框选中获取区级数据
|
||||
const changeMarket = (val: any) => {
|
||||
store.getareaList(val.split(',')[0])
|
||||
AssemblyRegisterAddress[1] = val.split(',')[1]
|
||||
}
|
||||
|
||||
const opeChangeMarket = (val: any) => {
|
||||
store.getareaList(val.split(',')[0])
|
||||
AssemblyOperateAddress[1] = val.split(',')[1]
|
||||
}
|
||||
|
||||
// 获取区级数据源
|
||||
const selAreaList: any = computed(() => {
|
||||
return store.areaList
|
||||
})
|
||||
|
||||
// 区级下拉框选中时
|
||||
const changeArea = (val: any) => {
|
||||
AssemblyRegisterAddress[2] = val.split(',')[1]
|
||||
}
|
||||
const opeChangeArea = (val: any) => {
|
||||
AssemblyOperateAddress[2] = val.split(',')[1]
|
||||
}
|
||||
|
||||
// 获取证件类型
|
||||
const selIdTypeList: any = computed(() => {
|
||||
return store.idTypeList
|
||||
})
|
||||
|
||||
// 获取企业类型
|
||||
const selcompanyTypeList: any = computed(() => {
|
||||
return store.companyTypeList
|
||||
})
|
||||
|
||||
// 获取企业所属
|
||||
|
||||
const selcompanyLtdList: any = computed(() => {
|
||||
return store.companyLtdList
|
||||
})
|
||||
|
||||
const emit = defineEmits(['closeAuthenticationDialog'])
|
||||
|
||||
// 提交认证按钮
|
||||
const handlerSubmitBtn = async () => {
|
||||
AssemblyRegisterAddress[3] = applyParams.registerRealityAddress
|
||||
AssemblyOperateAddress[3] = applyParams.operateRealityAddress
|
||||
|
||||
applyParams.registerAddress = AssemblyRegisterAddress.join(',')
|
||||
applyParams.operateAddress = AssemblyOperateAddress.join(',')
|
||||
|
||||
const res: any = await applyAttestationApi({
|
||||
bmCompanyInfo: applyParams,
|
||||
bmCoBank: {}
|
||||
})
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '申请成功'
|
||||
})
|
||||
// 关闭弹框
|
||||
emit('closeAuthenticationDialog', false)
|
||||
}
|
||||
}
|
||||
|
||||
// 关闭按钮
|
||||
const handlerCloseBtn = () => {
|
||||
emit('closeAuthenticationDialog', false)
|
||||
}
|
||||
|
||||
const options = reactive([
|
||||
{
|
||||
value: '选项1',
|
||||
label: '黄金糕'
|
||||
},
|
||||
{
|
||||
value: '选项2',
|
||||
label: '双皮奶'
|
||||
},
|
||||
{
|
||||
value: '选项3',
|
||||
label: '蚵仔煎'
|
||||
},
|
||||
{
|
||||
value: '选项4',
|
||||
label: '龙须面'
|
||||
},
|
||||
{
|
||||
value: '选项5',
|
||||
label: '北京烤鸭'
|
||||
}
|
||||
])
|
||||
const thisValue = ref('')
|
||||
|
||||
const imageUrl = ref('')
|
||||
|
||||
const bankTableHeader = reactive([
|
||||
{
|
||||
span: 4,
|
||||
label: '开户行',
|
||||
prop: 'bankName'
|
||||
},
|
||||
{
|
||||
span: 2,
|
||||
label: '账号名称',
|
||||
prop: 'b'
|
||||
},
|
||||
{
|
||||
span: 2,
|
||||
label: '银行账号',
|
||||
prop: 'a'
|
||||
},
|
||||
{
|
||||
span: 2,
|
||||
label: '开户行所在地',
|
||||
prop: 'a'
|
||||
},
|
||||
{
|
||||
span: 2,
|
||||
label: '开户许可证核准号(基本存款账号编号)',
|
||||
prop: 'a'
|
||||
},
|
||||
{
|
||||
span: 2,
|
||||
label: '开户行许可证/基本存款账号信息',
|
||||
prop: 'a',
|
||||
slot: 'annex'
|
||||
}
|
||||
])
|
||||
|
||||
const bankTableData = reactive([
|
||||
{
|
||||
a: 1,
|
||||
bankName: '中国银行'
|
||||
},
|
||||
{
|
||||
a: 1,
|
||||
bankName: 'test'
|
||||
},
|
||||
{
|
||||
a: 1,
|
||||
bankName: 'test'
|
||||
},
|
||||
{
|
||||
a: 1,
|
||||
bankName: 'test'
|
||||
},
|
||||
{
|
||||
a: 1,
|
||||
bankName: 'test'
|
||||
},
|
||||
{
|
||||
a: 1,
|
||||
bankName: 'test'
|
||||
}
|
||||
])
|
||||
|
||||
const test = () => {}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.d-flex {
|
||||
display: flex;
|
||||
}
|
||||
.align-center {
|
||||
align-items: center;
|
||||
}
|
||||
::v-deep.el-form-item {
|
||||
display: flex;
|
||||
|
||||
.el-form-item__content {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.enterpriseCertification {
|
||||
height: 100%;
|
||||
background: #f2f2f2;
|
||||
padding: 15px 10px;
|
||||
|
||||
.card {
|
||||
border-radius: 5px;
|
||||
background: white;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.title {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.options {
|
||||
}
|
||||
}
|
||||
|
||||
.baseForm {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.previewExample {
|
||||
font-size: 12px;
|
||||
color: blue;
|
||||
cursor: pointer;
|
||||
span {
|
||||
margin: 0 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.personInfo {
|
||||
margin-top: 15px;
|
||||
.personForm {
|
||||
padding: 0 10px;
|
||||
.phone {
|
||||
.tip {
|
||||
line-height: normal;
|
||||
color: red;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
.agreement {
|
||||
font-size: 13px !important;
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bankInfo {
|
||||
margin-top: 15px;
|
||||
.top {
|
||||
.title {
|
||||
.tip {
|
||||
color: blue;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
.header {
|
||||
.item {
|
||||
background: #e0efff;
|
||||
min-height: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
box-sizing: border-box;
|
||||
padding: 5px;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.border-top-left {
|
||||
border-top: 1px solid black;
|
||||
border-left: 1px solid black;
|
||||
}
|
||||
.border-right {
|
||||
border-right: 1px solid black;
|
||||
}
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
.content {
|
||||
.item {
|
||||
min-height: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
//justify-content: center;
|
||||
box-sizing: border-box;
|
||||
padding: 5px;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,279 @@
|
|||
<template>
|
||||
|
||||
<div class="sub_title">
|
||||
企业基本信息
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<el-form label-width="136px" inline="true" style="padding: 0 20px 0px 20px;">
|
||||
<div>
|
||||
<el-form-item label="企业名称">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="统一社会信用代码">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
</div>
|
||||
<el-form-item label="注册地址">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="经营地址">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<div>
|
||||
<el-form-item label="法人证件类型">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="法人证件号码">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="营业执照">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证国徽面">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证肖像面">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div>
|
||||
<el-form-item label="法人姓名">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="邀请码">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="邀请企业名称" style="width:500px">
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<el-form-item label="经营范围">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<div class="sub_title">
|
||||
被授权人信息
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<el-form label-width="136px" inline="true" style="padding: 0 80px 0px 0;">
|
||||
<div>
|
||||
<el-form-item label="被授权人姓名">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="被授权人身份证">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="被授权人手机号">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="被授权人邮箱">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div>
|
||||
<el-form-item label="法人授权书">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="被授权人身份证国徽面">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
<el-form-item label="被授权人身份证肖像面">
|
||||
xxxxx
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
|
||||
<div class="sub_title">
|
||||
银行账户信息
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<el-table :data="tableAccountInfo.list" style="width: 100%" border stripe >
|
||||
<el-table-column fixed prop="bankCompany" label="开户行" min-width="120" />
|
||||
<el-table-column prop="bankName" label="账户名称" min-width="120" />
|
||||
<el-table-column prop="bankAccount" label="银行账号" min-width="120" />
|
||||
<el-table-column prop="bankAddress" label="开户行所在地" min-width="120" />
|
||||
<el-table-column prop="xk_code" label="开户许可证核准号(基本存款账号编号)" min-width="120" />
|
||||
<el-table-column prop="xk_account" label="开户行许可证/基本存款账号信息" min-width="120" align="center">
|
||||
<template #default="scope">
|
||||
<el-button type="text">预览</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="sub_title" style="margin-top:12px;">
|
||||
联系人信息
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<el-table :data="tableContactInfo.list" style="width: 100%" border stripe >
|
||||
<el-table-column fixed prop="default_user" label="默认联系人(被授权人)" min-width="120" />
|
||||
<el-table-column prop="default_contact_user" label="联系人姓名" min-width="120" />
|
||||
<el-table-column prop="phone" label="手机号" min-width="120" />
|
||||
<el-table-column prop="mobile" label="电话" min-width="120" />
|
||||
<el-table-column prop="email" label="邮箱" min-width="120" />
|
||||
<el-table-column prop="remark" label="备注" min-width="120" />
|
||||
<el-table-column label="操作" min-width="120" align="center">
|
||||
<!-- <template #default="scope">
|
||||
<el-button type="text"></el-button>
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
||||
const emits = defineEmits(['send'])
|
||||
const addShow = ref(false)
|
||||
let title = ref("订单详情")
|
||||
|
||||
|
||||
|
||||
const tableAccountData = [
|
||||
{
|
||||
bankCompany: '2016-05-03',
|
||||
bankName: 'Tom',
|
||||
bankAccount: 'California',
|
||||
bankAddress: 'Los Angeles',
|
||||
xk_code: 'No. 189, Grove St, Los Angeles',
|
||||
xk_account: 'CA 90036',
|
||||
},
|
||||
{
|
||||
bankCompany: '2016-05-03',
|
||||
bankName: 'Tom',
|
||||
bankAccount: 'California',
|
||||
bankAddress: 'Los Angeles',
|
||||
xk_code: 'No. 189, Grove St, Los Angeles',
|
||||
xk_account: 'CA 90036',
|
||||
},
|
||||
{
|
||||
bankCompany: '2016-05-03',
|
||||
bankName: 'Tom',
|
||||
bankAccount: 'California',
|
||||
bankAddress: 'Los Angeles',
|
||||
xk_code: 'No. 189, Grove St, Los Angeles',
|
||||
xk_account: 'CA 90036',
|
||||
},
|
||||
{
|
||||
bankCompany: '2016-05-03',
|
||||
bankName: 'Tom',
|
||||
bankAccount: 'California',
|
||||
bankAddress: 'Los Angeles',
|
||||
xk_code: 'No. 189, Grove St, Los Angeles',
|
||||
xk_account: 'CA 90036',
|
||||
},
|
||||
{
|
||||
bankCompany: '2016-05-03',
|
||||
bankName: 'Tom',
|
||||
bankAccount: 'California',
|
||||
bankAddress: 'Los Angeles',
|
||||
xk_code: 'No. 189, Grove St, Los Angeles',
|
||||
xk_account: 'CA 90036',
|
||||
},
|
||||
{
|
||||
bankCompany: '2016-05-03',
|
||||
bankName: 'Tom',
|
||||
bankAccount: 'California',
|
||||
bankAddress: 'Los Angeles',
|
||||
xk_code: 'No. 189, Grove St, Los Angeles',
|
||||
xk_account: 'CA 90036',
|
||||
}
|
||||
]
|
||||
const tableContactData = [
|
||||
{
|
||||
default_user: '2016-05-03',
|
||||
default_contact_user: 'Tom',
|
||||
phone: 'California',
|
||||
mobile: 'Los Angeles',
|
||||
email: 'No. 189, Grove St, Los Angeles',
|
||||
remark: 'CA 90036',
|
||||
},
|
||||
{
|
||||
default_user: '2016-05-03',
|
||||
default_contact_user: 'Tom',
|
||||
phone: 'California',
|
||||
mobile: 'Los Angeles',
|
||||
email: 'No. 189, Grove St, Los Angeles',
|
||||
remark: 'CA 90036',
|
||||
},
|
||||
{
|
||||
default_user: '2016-05-03',
|
||||
default_contact_user: 'Tom',
|
||||
phone: 'California',
|
||||
mobile: 'Los Angeles',
|
||||
email: 'No. 189, Grove St, Los Angeles',
|
||||
remark: 'CA 90036',
|
||||
},
|
||||
{
|
||||
default_user: '2016-05-03',
|
||||
default_contact_user: 'Tom',
|
||||
phone: 'California',
|
||||
mobile: 'Los Angeles',
|
||||
email: 'No. 189, Grove St, Los Angeles',
|
||||
remark: 'CA 90036',
|
||||
},
|
||||
{
|
||||
default_user: '2016-05-03',
|
||||
default_contact_user: 'Tom',
|
||||
phone: 'California',
|
||||
mobile: 'Los Angeles',
|
||||
email: 'No. 189, Grove St, Los Angeles',
|
||||
remark: 'CA 90036',
|
||||
},
|
||||
{
|
||||
default_user: '2016-05-03',
|
||||
default_contact_user: 'Tom',
|
||||
phone: 'California',
|
||||
mobile: 'Los Angeles',
|
||||
email: 'No. 189, Grove St, Los Angeles',
|
||||
remark: 'CA 90036',
|
||||
},
|
||||
{
|
||||
default_user: '2016-05-03',
|
||||
default_contact_user: 'Tom',
|
||||
phone: 'California',
|
||||
mobile: 'Los Angeles',
|
||||
email: 'No. 189, Grove St, Los Angeles',
|
||||
remark: 'CA 90036',
|
||||
},
|
||||
{
|
||||
default_user: '2016-05-03',
|
||||
default_contact_user: 'Tom',
|
||||
phone: 'California',
|
||||
mobile: 'Los Angeles',
|
||||
email: 'No. 189, Grove St, Los Angeles',
|
||||
remark: 'CA 90036',
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
|
||||
const show = (val: any) => {
|
||||
title.value = val.title
|
||||
addShow.value = true
|
||||
}
|
||||
|
||||
const tableAccountInfo= reactive({
|
||||
list:tableAccountData
|
||||
|
||||
})
|
||||
const tableContactInfo= reactive({
|
||||
list:tableContactData
|
||||
|
||||
})
|
||||
|
||||
|
||||
defineExpose({
|
||||
show
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.sub_title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
@ -99,21 +99,7 @@ const editCallBack = (row: any, value: any) => {
|
|||
|
||||
const addConfirm = (row: any) => {
|
||||
|
||||
|
||||
ElMessageBoxOpert(
|
||||
'新增',
|
||||
'',
|
||||
'确定',
|
||||
'取消',
|
||||
(val: any) => {
|
||||
if (!val) {
|
||||
return "请填写类型模板"
|
||||
}
|
||||
},
|
||||
"请填写类型模板",
|
||||
addCallBack,
|
||||
row
|
||||
)
|
||||
|
||||
}
|
||||
const editConfirm = (row: any) => {
|
||||
ElMessageBoxOpert(
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
<template>
|
||||
<el-card shadow="always" class="content_body_details">
|
||||
<detailsCom></detailsCom>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import detailsCom from "views/com/details.vue"
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.content_body_details{
|
||||
margin-top: 12px;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
max-height:calc(100vh - 172px);
|
||||
overflow-y:auto;
|
||||
.el-card__body{
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -56,6 +56,7 @@
|
|||
import headerTop from "./com/headerTop.vue"
|
||||
import addCom from "./com/addCom.vue"
|
||||
import { ElConfirmBeforeOpert } from "utils/elementCom"
|
||||
const router = useRouter()
|
||||
const addComRef = ref()
|
||||
const paginationInfo = reactive({
|
||||
currentPage: 1,
|
||||
|
|
@ -122,8 +123,8 @@ let tableListInfo = reactive({
|
|||
|
||||
|
||||
const editRowFn = (row: any) => {
|
||||
addComRef.value.edit({
|
||||
a: "111"
|
||||
router.push({
|
||||
name:'entryAuditDetails'
|
||||
})
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
<template>
|
||||
<el-card shadow="always" class="content_body_details">
|
||||
<detailsCom></detailsCom>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import detailsCom from "views/com/details.vue"
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.content_body_details{
|
||||
margin-top: 12px;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
max-height:calc(100vh - 172px);
|
||||
overflow-y:auto;
|
||||
.el-card__body{
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -22,15 +22,15 @@
|
|||
<el-table-column prop="v_applyTime" label="申请时间" min-width="160">
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" min-width="120">
|
||||
<el-table-column label="状态" min-width="120">
|
||||
<template #default="scope">
|
||||
<div class="todo_status_c" v-if="scope.row.v_status=='1'">
|
||||
<div class="todo_status_c" v-if="scope.row.v_status == '1'">
|
||||
待审批
|
||||
</div>
|
||||
<div class="pass_status_c" v-else-if="scope.row.v_status=='2'">
|
||||
<div class="pass_status_c" v-else-if="scope.row.v_status == '2'">
|
||||
已通过
|
||||
</div>
|
||||
<div class="reject_status_c" v-else-if="scope.row.v_status=='3'">
|
||||
<div class="reject_status_c" v-else-if="scope.row.v_status == '3'">
|
||||
已驳回
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -38,11 +38,11 @@
|
|||
<el-table-column label="操作" align="center" width="160">
|
||||
|
||||
<template #default="scope">
|
||||
<el-button type="primary" size="small" @click.prevent="editRowFn(scope.row)">
|
||||
编辑
|
||||
<el-button type="primary" size="small" @click.prevent="auditFn(scope.row)">
|
||||
审批
|
||||
</el-button>
|
||||
<el-button type="danger" size="small" @click.prevent="deleteRowFn(scope.row)">
|
||||
删除
|
||||
<el-button type="danger" size="small" @click.prevent="showRowFn(scope.row)">
|
||||
查看
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -58,6 +58,7 @@
|
|||
import headerTop from "./com/headerTop.vue"
|
||||
import addCom from "./com/addCom.vue"
|
||||
import { ElConfirmBeforeOpert } from "utils/elementCom"
|
||||
const router = useRouter()
|
||||
const addComRef = ref()
|
||||
const paginationInfo = reactive({
|
||||
currentPage: 1,
|
||||
|
|
@ -122,19 +123,16 @@ let tableListInfo = reactive({
|
|||
list: tableData
|
||||
})
|
||||
|
||||
|
||||
const editRowFn = (row: any) => {
|
||||
addComRef.value.edit({
|
||||
a: "111"
|
||||
const auditFn=(row: any) => {
|
||||
router.push({
|
||||
name:'entryAuditDetails'
|
||||
})
|
||||
}
|
||||
const showRowFn=(row: any) => {
|
||||
router.push({
|
||||
name:'entryAuditDetails'
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const deleteItem = (row: any) => {
|
||||
const itemID = row.v_id
|
||||
console.log("ITEMid", row)
|
||||
}
|
||||
|
||||
const deleteRowFn = (row: any) => {
|
||||
ElConfirmBeforeOpert(
|
||||
'操作确认',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
<template>
|
||||
<el-card shadow="always" class="content_body_details">
|
||||
<detailsCom></detailsCom>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import detailsCom from "views/com/details.vue"
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.content_body_details{
|
||||
margin-top: 12px;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
max-height:calc(100vh - 172px);
|
||||
overflow-y:auto;
|
||||
.el-card__body{
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
<el-table-column label="操作" align="center" width="160">
|
||||
|
||||
<template #default="scope">
|
||||
<el-button type="primary" size="small" @click.prevent="showFn(scope.row)">
|
||||
<el-button type="primary" size="small" @click.prevent="showRowFn(scope.row)">
|
||||
查看
|
||||
</el-button>
|
||||
<el-button type="danger" size="small" @click.prevent="deleteRowFn(scope.row)">
|
||||
|
|
@ -53,6 +53,7 @@
|
|||
import headerTop from "./com/headerTop.vue"
|
||||
import addCom from "./com/addCom.vue"
|
||||
import { ElConfirmBeforeOpert } from "utils/elementCom"
|
||||
const router = useRouter()
|
||||
const addComRef = ref()
|
||||
const paginationInfo = reactive({
|
||||
currentPage: 1,
|
||||
|
|
@ -124,7 +125,11 @@ const editRowFn = (row: any) => {
|
|||
})
|
||||
|
||||
}
|
||||
|
||||
const showRowFn=(row: any) => {
|
||||
router.push({
|
||||
name:'enterpriseInfoDetails'
|
||||
})
|
||||
}
|
||||
const deleteItem = (row: any) => {
|
||||
const itemID = row.v_id
|
||||
console.log("ITEMid", row)
|
||||
|
|
|
|||
Loading…
Reference in New Issue