Compare commits

..

2 Commits

Author SHA1 Message Date
mixtan
eb5180ead8 build: 版本更新 2025-06-19 20:28:47 +08:00
mixtan
9b8a92f93b feat: 实现前端图片压缩10M->50k;处理网络请求超时时间过小; 2025-06-19 20:26:59 +08:00
33 changed files with 288 additions and 84 deletions

1
components.d.ts vendored
View File

@ -34,6 +34,7 @@ declare module 'vue' {
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSelectV2: typeof import('element-plus/es')['ElSelectV2']
ElStatistic: typeof import('element-plus/es')['ElStatistic']
ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElUpload: typeof import('element-plus/es')['ElUpload']
FloatingMenu: typeof import('./src/components/floatingMenu.vue')['default']
Login: typeof import('./src/components/login.vue')['default']

6
dist/index.html vendored
View File

@ -7,9 +7,9 @@
<meta name="description" content="小发同城官网是小发电商官方商家入驻平台的登录入口,提供了一站式的商家开店服务,在这里,商家可以轻松地注册账号、创建店铺、处理订单等。小发官网致力于为广大商家提供高效便捷的电商运营解决方案,助力商家实现商业成功,和小发合作,一起更好。"/>
<meta name="keywords" content="小发同城电商,小发电商官网,小发同城超市好货,小发线上电商,小发线上超市,小发同城电商,小发本地团购,小发本地商家,小发社区好物,小发商家精选,小发电商招商,小发电商入驻,小发供应商,小发代理商,小发好货,小发好货官网。"/>
<title>小发同城官网 - 小发旗下本地sass电商品牌,品类多,价格低。精选好货,省心省钱!</title>
<script type="module" crossorigin src="/static/js/index-DDVLVyDd.js"></script>
<link rel="modulepreload" crossorigin href="/static/js/element-plus-AsKvoHIC.js">
<link rel="stylesheet" crossorigin href="/static/css/element-plus-pyN3dgBK.css">
<script type="module" crossorigin src="/static/js/index-B8s36E3W.js"></script>
<link rel="modulepreload" crossorigin href="/static/js/element-plus-CrqYkJa0.js">
<link rel="stylesheet" crossorigin href="/static/css/element-plus-DWXu63qx.css">
<link rel="stylesheet" crossorigin href="/static/css/index-V8C9L1Be.css">
</head>
<body>

View File

@ -1 +1 @@
.header[data-v-b304fc4b]{height:70px;width:100%;padding:15px 20px;display:flex;align-items:center;justify-content:space-between;background-color:#fff;box-shadow:0 1px 6px #0000001a}.header-menu[data-v-b304fc4b]{flex:1;display:flex}.header-menu li[data-v-b304fc4b]{margin:0 20px;list-style:none;position:relative;color:#333}.header-menu li span[data-v-b304fc4b]{font-size:16px}.header-menu li:hover span[data-v-b304fc4b]{color:var(--bgcolor)}.header-menu li[data-v-b304fc4b]:before{content:"";position:absolute;bottom:0;left:50%;width:0;height:100%;border-bottom:3px solid var(--bgcolor);transition:all .2s}.header-menu li[data-v-b304fc4b]:hover:before{content:"";left:0;width:100%}.header-menu .router-link-active li[data-v-b304fc4b]:before{content:"";left:0;width:100%}.header-menu .router-link-active span[data-v-b304fc4b]{color:var(--bgcolor)}.header-menu a[data-v-b304fc4b]{text-decoration:none;color:inherit}.logo[data-v-b304fc4b]{margin-right:20px}.logo img[data-v-b304fc4b]{height:40px}.icon_avatar[data-v-b304fc4b]{width:32px;height:32px;display:flex;justify-content:center;align-items:center;background:#eee;border-radius:100%}.start[data-v-b304fc4b]{display:flex;justify-content:flex-end;align-items:center;margin-right:5px}.avatar[data-v-b304fc4b]{display:flex;justify-content:flex-end;align-items:center}.header_right[data-v-b304fc4b]{display:flex;justify-content:flex-end;align-items:center;gap:20px}.sub_menu[data-v-b304fc4b]{display:none;cursor:pointer}@media (max-width: 768px){.logo img[data-v-b304fc4b]{height:28px}.header[data-v-b304fc4b]{padding:0 10px}.header_right[data-v-b304fc4b]{gap:5px}.header-menu[data-v-b304fc4b],.start[data-v-b304fc4b]{display:none}.sub_menu[data-v-b304fc4b]{display:block}}.footer[data-v-83e55058]{background:#000b22;padding:20px;color:#999;font-size:14px}.footer a[data-v-83e55058]{display:inline-block;margin:0 5px;color:#999}.footer a[data-v-83e55058]:hover{color:#fff}.foot_menu[data-v-83e55058]{width:1200px;margin:auto}.col1[data-v-83e55058]{display:flex;align-items:center;justify-content:center}.logo_text img[data-v-83e55058]{width:48px;border-radius:10px}.copyright[data-v-83e55058]{padding-top:10px;text-align:center}@media (max-width: 768px){.foot_menu[data-v-83e55058]{display:none}.copyright[data-v-83e55058]{width:100%}}.floating-menu[data-v-e76d56f8]{position:fixed;right:5px;bottom:20%;padding:10px;z-index:1000}.floating-menu .menu-item[data-v-e76d56f8]{display:block;margin:5px 0;padding:8px 15px;border:none;border-radius:3px;background-color:#007bff;color:#fff;cursor:pointer;transition:background-color .3s ease}.floating-menu .menu-item[data-v-e76d56f8]:hover{background-color:#0056b3}.floating-menu .menu-item-wrapper[data-v-e76d56f8]{position:relative}.floating-menu .phone-popup[data-v-e76d56f8]{position:absolute;background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #0003;border-radius:5px;top:50%;left:-180px;transform:translateY(-50%);z-index:1001}.floating-menu .phone-popup-content[data-v-e76d56f8]{display:flex;flex-direction:column;padding:10px;justify-content:center;align-items:center}.floating-menu .phone-popup-content .code img[data-v-e76d56f8]{width:70px;height:70px}.floating-menu-mobile[data-v-e76d56f8]{position:fixed;right:5px;bottom:20%;padding:10px;z-index:1000;background:#fff;border-radius:10px;box-shadow:0 1px 10px #0003}.floating-menu-mobile .customer-serve[data-v-e76d56f8]{width:30px;height:30px;display:block;margin-bottom:10px}.floating-menu-mobile .customer-serve i[data-v-e76d56f8]{font-size:30px}.floating-menu-mobile .customer-serve .phone-popup[data-v-e76d56f8]{position:absolute;background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #0003;border-radius:5px;top:50%;left:-180px;transform:translateY(-50%);z-index:1001}.floating-menu-mobile .customer-serve .phone-popup-content[data-v-e76d56f8]{display:flex;flex-direction:column;padding:10px;justify-content:center;align-items:center}.floating-menu-mobile .customer-serve .phone-popup-content .code img[data-v-e76d56f8]{width:70px;height:70px}.floating-menu-mobile .feedback[data-v-e76d56f8]{width:30px;height:30px;display:block;margin-bottom:10px}.floating-menu-mobile .feedback i[data-v-e76d56f8]{font-size:30px}.floating-menu-mobile .backToTop[data-v-e76d56f8]{width:30px;height:30px;display:none}.floating-menu-mobile .backToTop i[data-v-e76d56f8]{font-size:30px}
.header[data-v-9ee71bf6]{height:70px;width:100%;padding:15px 20px;display:flex;align-items:center;justify-content:space-between;background-color:#fff;box-shadow:0 1px 6px #0000001a}.header-menu[data-v-9ee71bf6]{flex:1;display:flex}.header-menu li[data-v-9ee71bf6]{margin:0 20px;list-style:none;position:relative;color:#333}.header-menu li span[data-v-9ee71bf6]{font-size:16px}.header-menu li:hover span[data-v-9ee71bf6]{color:var(--bgcolor)}.header-menu li[data-v-9ee71bf6]:before{content:"";position:absolute;bottom:0;left:50%;width:0;height:100%;border-bottom:3px solid var(--bgcolor);transition:all .2s}.header-menu li[data-v-9ee71bf6]:hover:before{content:"";left:0;width:100%}.header-menu .router-link-active li[data-v-9ee71bf6]:before{content:"";left:0;width:100%}.header-menu .router-link-active span[data-v-9ee71bf6]{color:var(--bgcolor)}.header-menu a[data-v-9ee71bf6]{text-decoration:none;color:inherit}.logo[data-v-9ee71bf6]{margin-right:20px}.logo img[data-v-9ee71bf6]{height:40px}.icon_avatar[data-v-9ee71bf6]{width:32px;height:32px;display:flex;justify-content:center;align-items:center;background:#eee;border-radius:100%}.start[data-v-9ee71bf6]{display:flex;justify-content:flex-end;align-items:center;margin-right:5px}.avatar[data-v-9ee71bf6]{display:flex;justify-content:flex-end;align-items:center}.header_right[data-v-9ee71bf6]{display:flex;justify-content:flex-end;align-items:center;gap:20px}.sub_menu[data-v-9ee71bf6]{display:none;cursor:pointer}@media (max-width: 768px){.logo img[data-v-9ee71bf6]{height:28px}.header[data-v-9ee71bf6]{padding:0 10px}.header_right[data-v-9ee71bf6]{gap:5px}.header-menu[data-v-9ee71bf6],.start[data-v-9ee71bf6]{display:none}.sub_menu[data-v-9ee71bf6]{display:block}}.footer[data-v-83e55058]{background:#000b22;padding:20px;color:#999;font-size:14px}.footer a[data-v-83e55058]{display:inline-block;margin:0 5px;color:#999}.footer a[data-v-83e55058]:hover{color:#fff}.foot_menu[data-v-83e55058]{width:1200px;margin:auto}.col1[data-v-83e55058]{display:flex;align-items:center;justify-content:center}.logo_text img[data-v-83e55058]{width:48px;border-radius:10px}.copyright[data-v-83e55058]{padding-top:10px;text-align:center}@media (max-width: 768px){.foot_menu[data-v-83e55058]{display:none}.copyright[data-v-83e55058]{width:100%}}.floating-menu[data-v-e76d56f8]{position:fixed;right:5px;bottom:20%;padding:10px;z-index:1000}.floating-menu .menu-item[data-v-e76d56f8]{display:block;margin:5px 0;padding:8px 15px;border:none;border-radius:3px;background-color:#007bff;color:#fff;cursor:pointer;transition:background-color .3s ease}.floating-menu .menu-item[data-v-e76d56f8]:hover{background-color:#0056b3}.floating-menu .menu-item-wrapper[data-v-e76d56f8]{position:relative}.floating-menu .phone-popup[data-v-e76d56f8]{position:absolute;background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #0003;border-radius:5px;top:50%;left:-180px;transform:translateY(-50%);z-index:1001}.floating-menu .phone-popup-content[data-v-e76d56f8]{display:flex;flex-direction:column;padding:10px;justify-content:center;align-items:center}.floating-menu .phone-popup-content .code img[data-v-e76d56f8]{width:70px;height:70px}.floating-menu-mobile[data-v-e76d56f8]{position:fixed;right:5px;bottom:20%;padding:10px;z-index:1000;background:#fff;border-radius:10px;box-shadow:0 1px 10px #0003}.floating-menu-mobile .customer-serve[data-v-e76d56f8]{width:30px;height:30px;display:block;margin-bottom:10px}.floating-menu-mobile .customer-serve i[data-v-e76d56f8]{font-size:30px}.floating-menu-mobile .customer-serve .phone-popup[data-v-e76d56f8]{position:absolute;background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #0003;border-radius:5px;top:50%;left:-180px;transform:translateY(-50%);z-index:1001}.floating-menu-mobile .customer-serve .phone-popup-content[data-v-e76d56f8]{display:flex;flex-direction:column;padding:10px;justify-content:center;align-items:center}.floating-menu-mobile .customer-serve .phone-popup-content .code img[data-v-e76d56f8]{width:70px;height:70px}.floating-menu-mobile .feedback[data-v-e76d56f8]{width:30px;height:30px;display:block;margin-bottom:10px}.floating-menu-mobile .feedback i[data-v-e76d56f8]{font-size:30px}.floating-menu-mobile .backToTop[data-v-e76d56f8]{width:30px;height:30px;display:none}.floating-menu-mobile .backToTop i[data-v-e76d56f8]{font-size:30px}

1
dist/static/css/check-C_awfM5f.css vendored Normal file
View File

@ -0,0 +1 @@
[data-v-ca73a210] .el-upload--picture-card,[data-v-ca73a210] .el-upload-list__item{width:96px;height:96px;text-align:center;flex-direction:column;color:#666;line-height:20px}.signUp-container[data-v-ca73a210]{display:flex;padding-top:12px;flex-direction:column;align-items:center;justify-content:center;background:#eee}.signUp-container .tit[data-v-ca73a210]{font-size:16px;margin-bottom:15px}.signUp-container .tit[data-v-ca73a210] .el-result{padding:0}.signUp-container .steps-container[data-v-ca73a210]{width:1000px;padding:15px;border-radius:5px;background:#fff;margin-bottom:12px}.signUp-container .steps-container.nodata[data-v-ca73a210]{min-height:900px;display:flex;align-items:center;justify-content:center}.signUp-container[data-v-ca73a210] .upload-hidden .el-upload--picture-card{display:none}.signUp-container .form-submit[data-v-ca73a210]{width:1000px;padding:15px;border-radius:5px;background:#fff;margin-bottom:12px}.signUp-container .form-submit .from_box[data-v-ca73a210]{padding:15px;margin:0 0 12px;border-radius:5px;background:#fff}.signUp-container .form-button[data-v-ca73a210]{width:100%;text-align:center;padding:20px;background:#fff}.auto-item p[data-v-ca73a210]{font-size:15px;font-weight:900}.auto-item span[data-v-ca73a210]{font-size:10px}@media (max-width: 768px){.el-cascader-menu[data-v-ca73a210]{width:120px;min-width:120px}.signUp-container .steps-container[data-v-ca73a210],.signUp-container .form-submit[data-v-ca73a210]{width:100%}}

View File

@ -1 +0,0 @@
[data-v-e163b4c6] .el-upload--picture-card,[data-v-e163b4c6] .el-upload-list__item{width:96px;height:96px;text-align:center;flex-direction:column;color:#666;line-height:20px}.signUp-container[data-v-e163b4c6]{display:flex;padding-top:12px;flex-direction:column;align-items:center;justify-content:center;background:#eee}.signUp-container .tit[data-v-e163b4c6]{font-size:16px;margin-bottom:15px}.signUp-container .tit[data-v-e163b4c6] .el-result{padding:0}.signUp-container .steps-container[data-v-e163b4c6]{width:1000px;padding:15px;border-radius:5px;background:#fff;margin-bottom:12px}.signUp-container .steps-container.nodata[data-v-e163b4c6]{min-height:900px;display:flex;align-items:center;justify-content:center}.signUp-container[data-v-e163b4c6] .upload-hidden .el-upload--picture-card{display:none}.signUp-container .form-submit[data-v-e163b4c6]{width:1000px;padding:15px;border-radius:5px;background:#fff;margin-bottom:12px}.signUp-container .form-submit .from_box[data-v-e163b4c6]{padding:15px;margin:0 0 12px;border-radius:5px;background:#fff}.signUp-container .form-button[data-v-e163b4c6]{width:100%;text-align:center;padding:20px;background:#fff}.auto-item p[data-v-e163b4c6]{font-size:15px;font-weight:900}.auto-item span[data-v-e163b4c6]{font-size:10px}@media (max-width: 768px){.el-cascader-menu[data-v-e163b4c6]{width:120px;min-width:120px}.signUp-container .steps-container[data-v-e163b4c6],.signUp-container .form-submit[data-v-e163b4c6]{width:100%}}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
[data-v-dbe46851] .el-upload--picture-card,[data-v-dbe46851] .el-upload-list__item{width:96px;height:96px;text-align:center;flex-direction:column;color:#666;line-height:20px}.signUp-container[data-v-dbe46851]{display:flex;padding-top:12px;flex-direction:column;align-items:center;justify-content:center;background:#eee}.signUp-container .tit[data-v-dbe46851]{font-size:16px;margin-bottom:15px}.signUp-container .steps-container[data-v-dbe46851]{width:50%;padding:15px;border-radius:5px;background:#fff;margin-bottom:12px}.signUp-container[data-v-dbe46851] .upload-hidden .el-upload--picture-card{display:none}.signUp-container .form-submit[data-v-dbe46851]{width:50%}.signUp-container .form-submit[data-v-dbe46851] .el-form{max-width:100%!important}.signUp-container .form-submit .from_box[data-v-dbe46851]{width:100%;padding:15px;margin:0 0 12px;border-radius:5px;background:#fff}.signUp-container .form-button[data-v-dbe46851]{width:100%;text-align:center;padding:20px;background:#fff}.auto-item p[data-v-dbe46851]{font-size:15px;font-weight:900}.auto-item span[data-v-dbe46851]{font-size:10px}@media (max-width: 768px){.el-cascader-menu[data-v-dbe46851]{width:120px;min-width:120px}.signUp-container .steps-container[data-v-dbe46851],.signUp-container .form-submit[data-v-dbe46851]{width:100%}}

1
dist/static/css/start-D4Y64k89.css vendored Normal file
View File

@ -0,0 +1 @@
[data-v-54fe267d] .el-upload--picture-card,[data-v-54fe267d] .el-upload-list__item{width:96px;height:96px;text-align:center;flex-direction:column;color:#666;line-height:20px}.signUp-container[data-v-54fe267d]{display:flex;padding-top:12px;flex-direction:column;align-items:center;justify-content:center;background:#eee}.signUp-container .tit[data-v-54fe267d]{font-size:16px;margin-bottom:15px}.signUp-container .steps-container[data-v-54fe267d]{width:50%;padding:15px;border-radius:5px;background:#fff;margin-bottom:12px}.signUp-container[data-v-54fe267d] .upload-hidden .el-upload--picture-card{display:none}.signUp-container .form-submit[data-v-54fe267d]{width:50%}.signUp-container .form-submit[data-v-54fe267d] .el-form{max-width:100%!important}.signUp-container .form-submit .from_box[data-v-54fe267d]{width:100%;padding:15px;margin:0 0 12px;border-radius:5px;background:#fff}.signUp-container .form-button[data-v-54fe267d]{width:100%;text-align:center;padding:20px;background:#fff}.bank_name_tip[data-v-54fe267d]{display:flex;align-items:center;margin-left:10px}.bank_name_cont[data-v-54fe267d]{width:360px}.bank_name_cont h3[data-v-54fe267d]{margin-bottom:12px}.bank_name_cont p[data-v-54fe267d]{font-size:14px;margin-bottom:12px}.myui_check_text[data-v-54fe267d]{color:#999;padding-bottom:10px;text-align:center;font-size:14px}.auto-item p[data-v-54fe267d]{font-size:15px;font-weight:900}.auto-item span[data-v-54fe267d]{font-size:10px}@media (max-width: 768px){.el-cascader-menu[data-v-54fe267d]{width:120px;min-width:120px}.signUp-container .steps-container[data-v-54fe267d],.signUp-container .form-submit[data-v-54fe267d]{width:100%}.bank_name_tip[data-v-54fe267d]{margin-left:0}}

View File

@ -1 +1 @@
import{H as r,v as d,J as t,X as e,B as a,y as o,Q as i,N as _}from"./element-plus-AsKvoHIC.js";import{_ as l}from"./_plugin-vue_export-helper-DlAUqK2U.js";const n="/static/jpg/ppt2-B63Md0hi.jpg",g="/static/jpg/ppt3-DJQEMBTC.jpg",m="/static/jpg/ppt4-N3gNKzlq.jpg",v="/static/jpg/ppt5-BECJkVjl.jpg",j="/static/jpg/target4-mqvy_N_v.jpg",u="/static/jpg/target5-D9hq6y0k.jpg",f="/static/jpg/target3-BFOCR9f2.jpg",x={},B={class:"about_container"},N={class:"brandTarget"};function b(C,s){const c=i,p=_;return d(),r("div",null,[t("div",B,[s[3]||(s[3]=e('<h1 data-v-53582c83>品牌介绍</h1><p data-v-53582c83> 小发同城是2024成立的创新型同城服务企业。自成立以来秉持着 “以用户需求为核心,用贴心服务点亮城市生活” 的使命,不断整合各类优质资源, 搭建起一个涵盖配送、生活服务、商业服务等多元领域的综合性服务网络。 </p><p data-v-53582c83> 随着城市生活节奏的不断加快和人们对生活品质要求的日益提高, 同城服务市场有着广阔的发展前景。小发同城将继续秉承创新、高效、贴心的服务理念, 不断拓展服务领域,提升服务质量,为用户创造更多价值。同时,小发同城也将积极与各类商家、合作 伙伴携手共进,共同推动同城服务行业的发展,为打造更加便捷、美好的城市生活贡献自己的力量。 </p><div class="ppt" data-v-53582c83><img src="'+n+'" data-v-53582c83><img src="'+g+'" data-v-53582c83><img src="'+m+'" data-v-53582c83><img src="'+v+'" data-v-53582c83></div><h1 data-v-53582c83>品牌主张</h1>',5)),t("div",N,[a(p,{gutter:20},{default:o(()=>[a(c,{xs:24,sm:24,md:24,lg:8,xl:8},{default:o(()=>s[0]||(s[0]=[t("div",{class:"brandTarget_one"},[t("img",{src:j}),t("p",null,"服务到位")],-1)])),_:1}),a(c,{xs:24,sm:24,md:24,lg:8,xl:8},{default:o(()=>s[1]||(s[1]=[t("div",{class:"brandTarget_two"},[t("img",{src:u}),t("p",null,"快速解决")],-1)])),_:1}),a(c,{xs:24,sm:24,md:24,lg:8,xl:8},{default:o(()=>s[2]||(s[2]=[t("div",{class:"brandTarget_three"},[t("img",{src:f}),t("p",null,"客户放心")],-1)])),_:1})]),_:1})])])])}const k=l(x,[["render",b],["__scopeId","data-v-53582c83"]]);export{k as default};
import{H as r,v as d,J as t,X as e,B as a,y as o,Q as i,N as _}from"./element-plus-CrqYkJa0.js";import{_ as l}from"./_plugin-vue_export-helper-DlAUqK2U.js";const n="/static/jpg/ppt2-B63Md0hi.jpg",g="/static/jpg/ppt3-DJQEMBTC.jpg",m="/static/jpg/ppt4-N3gNKzlq.jpg",v="/static/jpg/ppt5-BECJkVjl.jpg",j="/static/jpg/target4-mqvy_N_v.jpg",u="/static/jpg/target5-D9hq6y0k.jpg",f="/static/jpg/target3-BFOCR9f2.jpg",x={},B={class:"about_container"},N={class:"brandTarget"};function b(C,s){const c=i,p=_;return d(),r("div",null,[t("div",B,[s[3]||(s[3]=e('<h1 data-v-53582c83>品牌介绍</h1><p data-v-53582c83> 小发同城是2024成立的创新型同城服务企业。自成立以来秉持着 “以用户需求为核心,用贴心服务点亮城市生活” 的使命,不断整合各类优质资源, 搭建起一个涵盖配送、生活服务、商业服务等多元领域的综合性服务网络。 </p><p data-v-53582c83> 随着城市生活节奏的不断加快和人们对生活品质要求的日益提高, 同城服务市场有着广阔的发展前景。小发同城将继续秉承创新、高效、贴心的服务理念, 不断拓展服务领域,提升服务质量,为用户创造更多价值。同时,小发同城也将积极与各类商家、合作 伙伴携手共进,共同推动同城服务行业的发展,为打造更加便捷、美好的城市生活贡献自己的力量。 </p><div class="ppt" data-v-53582c83><img src="'+n+'" data-v-53582c83><img src="'+g+'" data-v-53582c83><img src="'+m+'" data-v-53582c83><img src="'+v+'" data-v-53582c83></div><h1 data-v-53582c83>品牌主张</h1>',5)),t("div",N,[a(p,{gutter:20},{default:o(()=>[a(c,{xs:24,sm:24,md:24,lg:8,xl:8},{default:o(()=>s[0]||(s[0]=[t("div",{class:"brandTarget_one"},[t("img",{src:j}),t("p",null,"服务到位")],-1)])),_:1}),a(c,{xs:24,sm:24,md:24,lg:8,xl:8},{default:o(()=>s[1]||(s[1]=[t("div",{class:"brandTarget_two"},[t("img",{src:u}),t("p",null,"快速解决")],-1)])),_:1}),a(c,{xs:24,sm:24,md:24,lg:8,xl:8},{default:o(()=>s[2]||(s[2]=[t("div",{class:"brandTarget_three"},[t("img",{src:f}),t("p",null,"客户放心")],-1)])),_:1})]),_:1})])])])}const k=l(x,[["render",b],["__scopeId","data-v-53582c83"]]);export{k as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{j as f,a as b,r as v,H as V,J as d,B as t,y as o,_ as k,K as x,v as B,a3 as E,a4 as y,a7 as w,a8 as F,u as I,a9 as C,P as N}from"./element-plus-AsKvoHIC.js";import{u as U}from"./upload-BgHUQXsa.js";import{_ as g}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./http-BM7ZymMx.js";const j={class:"feedback-container"},R={class:"main"},h={class:"submit"},q=f({__name:"FeedBack",setup(H){const l=b({describe:"",img:"",contact:""}),c=v(),u=({file:r})=>{U(r,{}).then(a=>{console.log(a)}).catch(a=>{console.error(a)})};return(r,e)=>{const a=y,n=E,i=F,m=w,p=k,_=x;return B(),V("div",j,[d("div",R,[e[4]||(e[4]=d("div",{class:"title"}," 意见反馈 ",-1)),t(p,{model:l,"label-width":"150px"},{default:o(()=>[t(n,{label:"描述问题"},{default:o(()=>[t(a,{modelValue:l.describe,"onUpdate:modelValue":e[0]||(e[0]=s=>l.describe=s),rows:6,type:"textarea",style:{width:"95%"}},null,8,["modelValue"])]),_:1}),t(n,{label:"上传图片"},{default:o(()=>[t(m,{ref_key:"uploadRef",ref:c,multiple:"",limit:3,"list-type":"picture-card","http-request":u,"auto-upload":!1},{default:o(()=>[t(i,{class:"avatar-uploader-icon"},{default:o(()=>[t(I(C))]),_:1})]),_:1},512)]),_:1}),t(n,{label:"您的联系方式"},{default:o(()=>[t(a,{modelValue:l.contact,"onUpdate:modelValue":e[1]||(e[1]=s=>l.contact=s),style:{width:"95%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),d("div",h,[t(_,{color:"#f34d2c",plain:"",onClick:e[2]||(e[2]=s=>c.value.submit())},{default:o(()=>e[3]||(e[3]=[N("提交反馈")])),_:1})])])])}}}),S=g(q,[["__scopeId","data-v-8b6b8404"]]);export{S as default};
import{j as f,a as b,r as v,H as V,J as d,B as t,y as o,_ as k,K as x,v as B,a3 as E,a4 as y,a7 as w,a8 as F,u as I,a9 as C,P as N}from"./element-plus-CrqYkJa0.js";import{u as U}from"./upload-DmqG8Ita.js";import{_ as g}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./http-rCcLLANw.js";const j={class:"feedback-container"},R={class:"main"},h={class:"submit"},q=f({__name:"FeedBack",setup(H){const l=b({describe:"",img:"",contact:""}),c=v(),u=({file:r})=>{U(r,{}).then(a=>{console.log(a)}).catch(a=>{console.error(a)})};return(r,e)=>{const a=y,n=E,i=F,m=w,p=k,_=x;return B(),V("div",j,[d("div",R,[e[4]||(e[4]=d("div",{class:"title"}," 意见反馈 ",-1)),t(p,{model:l,"label-width":"150px"},{default:o(()=>[t(n,{label:"描述问题"},{default:o(()=>[t(a,{modelValue:l.describe,"onUpdate:modelValue":e[0]||(e[0]=s=>l.describe=s),rows:6,type:"textarea",style:{width:"95%"}},null,8,["modelValue"])]),_:1}),t(n,{label:"上传图片"},{default:o(()=>[t(m,{ref_key:"uploadRef",ref:c,multiple:"",limit:3,"list-type":"picture-card","http-request":u,"auto-upload":!1},{default:o(()=>[t(i,{class:"avatar-uploader-icon"},{default:o(()=>[t(I(C))]),_:1})]),_:1},512)]),_:1}),t(n,{label:"您的联系方式"},{default:o(()=>[t(a,{modelValue:l.contact,"onUpdate:modelValue":e[1]||(e[1]=s=>l.contact=s),style:{width:"95%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),d("div",h,[t(_,{color:"#f34d2c",plain:"",onClick:e[2]||(e[2]=s=>c.value.submit())},{default:o(()=>e[3]||(e[3]=[N("提交反馈")])),_:1})])])])}}}),S=g(q,[["__scopeId","data-v-8b6b8404"]]);export{S as default};

View File

@ -1 +1 @@
import{H as t,v as o,J as e}from"./element-plus-AsKvoHIC.js";import{_ as c}from"./_plugin-vue_export-helper-DlAUqK2U.js";const a="/static/png/help_temp-BLQ8f-Sb.png",n={},r={class:"help_container"};function _(i,s){return o(),t("div",r,s[0]||(s[0]=[e("div",{class:"main"},[e("div",{class:"help_img"},[e("img",{src:a})])],-1)]))}const m=c(n,[["render",_],["__scopeId","data-v-f6b367b9"]]);export{m as default};
import{H as t,v as o,J as e}from"./element-plus-CrqYkJa0.js";import{_ as c}from"./_plugin-vue_export-helper-DlAUqK2U.js";const a="/static/png/help_temp-BLQ8f-Sb.png",n={},r={class:"help_container"};function _(i,s){return o(),t("div",r,s[0]||(s[0]=[e("div",{class:"main"},[e("div",{class:"help_img"},[e("img",{src:a})])],-1)]))}const m=c(n,[["render",_],["__scopeId","data-v-f6b367b9"]]);export{m as default};

View File

@ -1 +0,0 @@
import{H as c,v as _,B as e,y as o,K as l,P as u,ag as i}from"./element-plus-AsKvoHIC.js";import{u as p}from"./index-DDVLVyDd.js";import{_ as m}from"./_plugin-vue_export-helper-DlAUqK2U.js";const d={class:"mycontainer"},f={__name:"PageNotFound",setup(x){const a=p(),s=()=>{a.replace("/index")};return(g,t)=>{const n=l,r=i;return _(),c("div",d,[e(r,{icon:"warning",title:"404请求资源不存在","sub-title":"抱歉!未找到页面"},{extra:o(()=>[e(n,{type:"primary",onClick:s},{default:o(()=>t[0]||(t[0]=[u("返回首页")])),_:1})]),_:1})])}}},P=m(f,[["__scopeId","data-v-56a57e43"]]);export{P as default};

View File

@ -0,0 +1 @@
import{H as c,v as _,B as e,y as o,K as i,P as l,ai as u}from"./element-plus-CrqYkJa0.js";import{u as p}from"./index-B8s36E3W.js";import{_ as m}from"./_plugin-vue_export-helper-DlAUqK2U.js";const d={class:"mycontainer"},f={__name:"PageNotFound",setup(x){const a=p(),s=()=>{a.replace("/index")};return(g,t)=>{const n=i,r=u;return _(),c("div",d,[e(r,{icon:"warning",title:"404请求资源不存在","sub-title":"抱歉!未找到页面"},{extra:o(()=>[e(n,{type:"primary",onClick:s},{default:o(()=>t[0]||(t[0]=[l("返回首页")])),_:1})]),_:1})])}}},P=m(f,[["__scopeId","data-v-56a57e43"]]);export{P as default};

File diff suppressed because one or more lines are too long

1
dist/static/js/check-DQxgOzIg.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{d as g}from"./index-DDVLVyDd.js";import{r as s,G as d}from"./element-plus-AsKvoHIC.js";import{s as a}from"./http-BM7ZymMx.js";const y=g("user",()=>{const r=s(localStorage.getItem("token")||""),o=s(!1),t=s(localStorage.getItem("mobilePhone")||""),e=n=>{r.value=n,o.value=!0;const p=Date.now()+31536e3*1e3;localStorage.setItem("token",n),localStorage.setItem("tokenExpiry",p.toString())},i=n=>{t.value=n,localStorage.setItem("mobilePhone",n)},l=()=>{localStorage.removeItem("mobilePhone")},c=()=>{try{r.value="",o.value=!1,localStorage.removeItem("userInfo"),localStorage.removeItem("token"),localStorage.removeItem("tokenExpiry")}catch(n){console.error("Error clearing token from localStorage:",n)}},m=()=>{try{const n=localStorage.getItem("tokenExpiry");return n?Date.now()>parseInt(n,10):!0}catch(n){return console.error("Error checking token expiry:",n),!0}},u=n=>{localStorage.setItem("Identity",n)},h=()=>{localStorage.removeItem("Identity")};return d(()=>{try{const n=localStorage.getItem("token");n&&!m()?(r.value=n,o.value=!0):c()}catch(n){console.error("Error retrieving token from localStorage:",n)}}),{token:r,isLoggedIn:o,mobilePhone:t,setToken:e,clearToken:c,setMobilePhone:i,removeMobilePhone:l,setIdentity:u,removeIdentity:h}});function S(r){return r.isFilter=!0,new Promise((o,t)=>{a({url:"/api/mobile/account/login/doMerchSmsRegisterAndLogin",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function v(r){return r.isFilter=!0,new Promise((o,t)=>{a({url:"/api/mobile/account/login/sendVerifyCode",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function I(){return new Promise((r,o)=>{a({url:"/api/mobile/shop/shop-base-store-category/list",method:"post"}).then(t=>{r(t)}).catch(t=>o(console.warn(t)))})}function k(r){return r.map(o=>({value:o.store_category_id,label:o.store_category_name,children:o.children?[{value:o.store_category_id,label:`${o.store_category_name} 分割比例(${o.split_ratio}%)`},...o.children.map(t=>({value:t.store_category_id,label:`${t.store_category_name} 分割比例(${t.split_ratio}%)`}))]:[]}))}function P(r){return r.isFilter=!0,new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/baidu/place/v2/suggestion",method:"get",params:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function _(r){return new Promise((o,t)=>{a({url:"/api/mobile/shop/lakala/tk/bank/search",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function G(r){return new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/apply",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function x(){const r={mobile:localStorage.getItem("mobilePhone")};return new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/fresh/approval/status",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function E(r){return new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/re-apply",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function A(r){return new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/detail",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function T(r){return new Promise((o,t)=>{a({url:"/api/admin/account/account-user-base/doLogin",method:"post",params:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function C(r){return new Promise((o,t)=>{a({url:"/api/admin/shop/shop-base-config/image",method:"GET",params:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function L(){return new Promise((r,o)=>{a({url:"/api/mobile/shop/shop-base-district/getAppDistrict",method:"get"}).then(t=>{r(t)}).catch(t=>o(console.warn(t)))})}export{I as G,L as a,_ as b,P as c,A as d,T as e,C as f,x as g,S as h,v as i,G as m,E as r,k as t,y as u};
import{d as g}from"./index-B8s36E3W.js";import{r as s,G as d}from"./element-plus-CrqYkJa0.js";import{s as a}from"./http-rCcLLANw.js";const y=g("user",()=>{const r=s(localStorage.getItem("token")||""),o=s(!1),t=s(localStorage.getItem("mobilePhone")||""),e=n=>{r.value=n,o.value=!0;const p=Date.now()+31536e3*1e3;localStorage.setItem("token",n),localStorage.setItem("tokenExpiry",p.toString())},i=n=>{t.value=n,localStorage.setItem("mobilePhone",n)},l=()=>{localStorage.removeItem("mobilePhone")},c=()=>{try{r.value="",o.value=!1,localStorage.removeItem("userInfo"),localStorage.removeItem("token"),localStorage.removeItem("tokenExpiry")}catch(n){console.error("Error clearing token from localStorage:",n)}},m=()=>{try{const n=localStorage.getItem("tokenExpiry");return n?Date.now()>parseInt(n,10):!0}catch(n){return console.error("Error checking token expiry:",n),!0}},u=n=>{localStorage.setItem("Identity",n)},h=()=>{localStorage.removeItem("Identity")};return d(()=>{try{const n=localStorage.getItem("token");n&&!m()?(r.value=n,o.value=!0):c()}catch(n){console.error("Error retrieving token from localStorage:",n)}}),{token:r,isLoggedIn:o,mobilePhone:t,setToken:e,clearToken:c,setMobilePhone:i,removeMobilePhone:l,setIdentity:u,removeIdentity:h}});function S(r){return r.isFilter=!0,new Promise((o,t)=>{a({url:"/api/mobile/account/login/doMerchSmsRegisterAndLogin",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function v(r){return r.isFilter=!0,new Promise((o,t)=>{a({url:"/api/mobile/account/login/sendVerifyCode",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function I(){return new Promise((r,o)=>{a({url:"/api/mobile/shop/shop-base-store-category/list",method:"post"}).then(t=>{r(t)}).catch(t=>o(console.warn(t)))})}function k(r){return r.map(o=>({value:o.store_category_id,label:o.store_category_name,children:o.children?[{value:o.store_category_id,label:`${o.store_category_name} 分割比例(${o.split_ratio}%)`},...o.children.map(t=>({value:t.store_category_id,label:`${t.store_category_name} 分割比例(${t.split_ratio}%)`}))]:[]}))}function P(r){return r.isFilter=!0,new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/baidu/place/v2/suggestion",method:"get",params:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function _(r){return new Promise((o,t)=>{a({url:"/api/mobile/shop/lakala/tk/bank/search",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function G(r){return new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/apply",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function x(){const r={mobile:localStorage.getItem("mobilePhone")};return new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/fresh/approval/status",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function E(r){return new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/re-apply",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function A(r){return new Promise((o,t)=>{a({url:"/api/mobile/shop/merch/detail",method:"post",data:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function T(r){return new Promise((o,t)=>{a({url:"/api/admin/account/account-user-base/doLogin",method:"post",params:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function C(r){return new Promise((o,t)=>{a({url:"/api/admin/shop/shop-base-config/image",method:"GET",params:r}).then(e=>{o(e)}).catch(e=>t(console.warn(e)))})}function L(){return new Promise((r,o)=>{a({url:"/api/mobile/shop/shop-base-district/getAppDistrict",method:"get"}).then(t=>{r(t)}).catch(t=>o(console.warn(t)))})}export{I as G,L as a,_ as b,P as c,A as d,T as e,C as f,x as g,S as h,v as i,G as m,E as r,k as t,y as u};

View File

@ -1 +1 @@
import{j as o,r as a,H as r,v as c}from"./element-plus-AsKvoHIC.js";import{s}from"./http-BM7ZymMx.js";const i={getAgreement(n){const e=new URLSearchParams(n).toString();return s({method:"GET",url:`/api/mobile/account/login/protocol?${e}`})}},m=["innerHTML"],g=o({__name:"privacy",setup(n){const e=a("");return(async()=>{const t=await i.getAgreement({protocols_key:"joininPrivacyAgreement"});(t==null?void 0:t.status)===200&&(e.value=t.data.document)})(),(t,p)=>(c(),r("div",{class:"container",innerHTML:e.value},null,8,m))}});export{g as default};
import{j as o,r as a,H as r,v as c}from"./element-plus-CrqYkJa0.js";import{s}from"./http-rCcLLANw.js";const i={getAgreement(n){const e=new URLSearchParams(n).toString();return s({method:"GET",url:`/api/mobile/account/login/protocol?${e}`})}},m=["innerHTML"],g=o({__name:"privacy",setup(n){const e=a("");return(async()=>{const t=await i.getAgreement({protocols_key:"joininPrivacyAgreement"});(t==null?void 0:t.status)===200&&(e.value=t.data.document)})(),(t,p)=>(c(),r("div",{class:"container",innerHTML:e.value},null,8,m))}});export{g as default};

1
dist/static/js/start-CijRpnIc.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{s as r}from"./http-BM7ZymMx.js";function l(n,a={}){a.isFilter=!0;const o=new FormData;o.append("upfile",n);for(const e in a)a.hasOwnProperty(e)&&o.append(e,a[e]);return new Promise((e,i)=>{r({url:"/api/mobile/shop/oss/upload",method:"post",data:o}).then(t=>{e(t)}).catch(t=>i(console.warn(t)))})}function s(n,a){const o=new FormData;return o.append("upfile",n),o.append("imgType",a),new Promise((e,i)=>{r({url:"/api/mobile/shop/lakala/tk/uploadOcrImg",method:"post",data:o}).then(t=>{e(t)}).catch(t=>i(console.warn(t)))})}function u(n){return r({url:"/api/mobile/shop/lakala/tk/imgOcrResult",method:"POST",data:n})}export{s as b,u as i,l as u};
import{s as r}from"./http-rCcLLANw.js";function l(n,a={}){a.isFilter=!0;const o=new FormData;o.append("upfile",n);for(const e in a)a.hasOwnProperty(e)&&o.append(e,a[e]);return new Promise((e,i)=>{r({url:"/api/mobile/shop/oss/upload",method:"post",data:o}).then(t=>{e(t)}).catch(t=>i(console.warn(t)))})}function s(n,a){const o=new FormData;return o.append("upfile",n),o.append("imgType",a),new Promise((e,i)=>{r({url:"/api/mobile/shop/lakala/tk/uploadOcrImg",method:"post",data:o}).then(t=>{e(t)}).catch(t=>i(console.warn(t)))})}function u(n){return r({url:"/api/mobile/shop/lakala/tk/imgOcrResult",method:"POST",data:n})}export{s as b,u as i,l as u};

87
src/utils/file.js Normal file
View File

@ -0,0 +1,87 @@
export async function compressImage(file, options = {}) {
// 提取选项参数,设置默认值
const {
quality = 0.75,
maxWidth = 800,
maxHeight = 600
} = options;
// 验证输入是否为有效的File对象
if (!(file instanceof File)) {
throw new Error('输入参数必须是一个File对象');
}
// 检查文件类型是否为图片
if (!file.type.startsWith('image/')) {
throw new Error('输入文件必须是图片类型');
}
// 创建一个Promise来处理异步操作
return new Promise((resolve, reject) => {
// 创建Image对象用于加载图片
const img = new Image();
// 监听图片加载完成事件
img.onload = () => {
// 创建Canvas元素
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
// 获取原始图片尺寸
let width = img.width;
let height = img.height;
// 计算调整后的尺寸(保持原始比例)
if (width > maxWidth) {
height = height * (maxWidth / width);
width = maxWidth;
}
if (height > maxHeight) {
width = width * (maxHeight / height);
height = maxHeight;
}
// 设置Canvas尺寸
canvas.width = width;
canvas.height = height;
// 在Canvas上绘制图片
ctx.drawImage(img, 0, 0, width, height);
// 将Canvas内容转换为Blob对象
canvas.toBlob(
(blob) => {
if (!blob) {
reject(new Error('图片转换失败'));
return;
}
// 创建新的File对象
const compressedFile = new File(
[blob],
file.name,
{ type: blob.type, lastModified: Date.now() }
);
resolve(compressedFile);
},
file.type, // 使用原始图片类型
quality // 压缩质量
);
};
// 监听图片加载错误事件
img.onerror = () => reject(new Error('图片加载失败'));
// 读取图片数据
const reader = new FileReader();
reader.onload = () => {
img.src = reader.result;
};
reader.onerror = () => reject(new Error('文件读取失败'));
// 开始读取文件
reader.readAsDataURL(file);
});
}

View File

@ -10,7 +10,7 @@ const service = axios.create({
// "X-Requested-With": "XMLHttpRequest",
// "Content-Type": "application/json",
},
timeout: 5000, // request timeout
timeout: 1000 * 60 * 5, // request timeout
});
// 拦截前
// request interceptor

View File

@ -33,7 +33,7 @@
<div class="avatar" v-if="isLoggedIn">
<div class="icon_avatar">
<el-icon size="20"><Avatar /></el-icon>
<el-icon size="20" color="#ccc"><Avatar /></el-icon>
</div>
<el-button
link

View File

@ -181,6 +181,7 @@ import { Plus,Search } from "@element-plus/icons-vue";
import cityData from "../../stores/cityData";
import type { CityDataStructure } from "../../stores/cityData";
import { useUserStore } from "@/stores/userStore";
import { compressImage } from "@/utils/file";
import {
GetStoreCategories,
@ -803,6 +804,7 @@ const handlePictureCardPreview = (uploadFile) => {
const getBatchNo = async (file, type) => {
loading.value = true;
file = await compressImage(file);
const rsp = await batchNoApi(file, type).then((res) => {
return res;
});
@ -854,7 +856,7 @@ const handleOcrText = async (batchNo, imgType) => {
applyFormData.biz_license_content = res.bizLicenseScope;
break;
case "legal_person_id_images":
var res = (await getOcrText(batchNo, orcImgTypeConf.ID_CARD_FRONT)) as any;
var res = (await getOcrText(batchNo, orcImgTypeConf.FR_ID_CARD_FRONT)) as any;
console.log("legal_person_id_images", res);
applyFormData.legal_person_id_number = res.idNumber;
@ -863,7 +865,7 @@ const handleOcrText = async (batchNo, imgType) => {
case "legal_person_id_images2":
var res = (await getOcrText(
batchNo,
orcImgTypeConf.ID_CARD_BEHIND
orcImgTypeConf.FR_ID_CARD_BEHIND
)) as any;
var validity = res.validity.split('-')
@ -879,7 +881,7 @@ const handleOcrText = async (batchNo, imgType) => {
case "individual_id_images":
var res = (await getOcrText(
batchNo,
orcImgTypeConf.FR_ID_CARD_FRONT
orcImgTypeConf.ID_CARD_FRONT
)) as any;
console.log("individual_id_images", res);
@ -936,17 +938,17 @@ const handleUploadSuccess = async (response, file, fileList, field) => {
handleOcrText(res.batchNo, field)
break;
case "legal_person_id_images":
var res = await getBatchNo(file.raw, orcImgTypeConf.ID_CARD_FRONT);
var res = await getBatchNo(file.raw, orcImgTypeConf.FR_ID_CARD_FRONT);
currentBbatchNo.value = res.batchNo
handleOcrText(res.batchNo, field)
break;
case "legal_person_id_images2":
var res = await getBatchNo(file.raw, orcImgTypeConf.ID_CARD_BEHIND);
var res = await getBatchNo(file.raw, orcImgTypeConf.FR_ID_CARD_BEHIND);
currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field);
break;
case "individual_id_images":
var res = await getBatchNo(file.raw, orcImgTypeConf.FR_ID_CARD_FRONT);
var res = await getBatchNo(file.raw, orcImgTypeConf.ID_CARD_FRONT);
currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field);
break;

View File

@ -186,7 +186,11 @@
prop="biz_license_image"
>
<el-upload
:ref="(el)=>{ el && (uploadRefs.biz_license_image = el) }"
:ref="
(el) => {
el && (uploadRefs.biz_license_image = el);
}
"
v-model:file-list="uploadFiles.biz_license_image"
multiple
:limit="1"
@ -226,7 +230,7 @@
plain
v-if="
applyFormData.biz_license_image &&
!applyFormData.biz_license_company &&
!applyFormData.biz_license_company &&
currentBbatchNo
"
@click="handleOcrText(currentBbatchNo, 'biz_license_image')"
@ -362,7 +366,11 @@
prop="legal_person_id_images"
>
<el-upload
:ref="(el)=>{ el && (uploadRefs.legal_person_id_images = el) }"
:ref="
(el) => {
el && (uploadRefs.legal_person_id_images = el);
}
"
v-model:file-list="uploadFiles.legal_person_id_images"
:limit="1"
list-type="picture-card"
@ -400,7 +408,7 @@
plain
v-if="
applyFormData.legal_person_id_images &&
!applyFormData.legal_person_id_number &&
!applyFormData.legal_person_id_number &&
currentBbatchNo
"
@click="
@ -414,7 +422,11 @@
prop="legal_person_id_images2"
>
<el-upload
:ref="(el)=>{ el && (uploadRefs.legal_person_id_images2 = el) }"
:ref="
(el) => {
el && (uploadRefs.legal_person_id_images2 = el);
}
"
v-model:file-list="uploadFiles.legal_person_id_images2"
:limit="1"
list-type="picture-card"
@ -503,7 +515,11 @@
prop="individual_id_images"
>
<el-upload
:ref="(el)=>{ el && (uploadRefs.individual_id_images = el) }"
:ref="
(el) => {
el && (uploadRefs.individual_id_images = el);
}
"
v-model:file-list="uploadFiles.individual_id_images"
:limit="1"
list-type="picture-card"
@ -543,7 +559,11 @@
prop="individual_id_images2"
>
<el-upload
:ref="(el)=>{ el && (uploadRefs.individual_id_images2 = el) }"
:ref="
(el) => {
el && (uploadRefs.individual_id_images2 = el);
}
"
v-model:file-list="uploadFiles.individual_id_images2"
:limit="1"
list-type="picture-card"
@ -641,7 +661,11 @@
<div class="tit">结算信息</div>
<el-form-item label="银行卡" prop="bank_image">
<el-upload
:ref="(el)=>{ el && (uploadRefs.bank_image = el) }"
:ref="
(el) => {
el && (uploadRefs.bank_image = el);
}
"
v-model:file-list="uploadFiles.bank_image"
:limit="1"
list-type="picture-card"
@ -671,7 +695,11 @@
<el-button
type="info"
plain
v-if="applyFormData.bank_image && !applyFormData.account_number && currentBbatchNo"
v-if="
applyFormData.bank_image &&
!applyFormData.account_number &&
currentBbatchNo
"
@click="handleOcrText(currentBbatchNo, 'bank_image')"
>点击免填卡号</el-button
>
@ -680,10 +708,16 @@
v-if="applyFormData.entity_type == 1 || applyFormData.bank_image"
>
<el-form-item label="开户名称" prop="account_holder_name">
<el-input v-model="applyFormData.account_holder_name" />
<el-input
v-model="applyFormData.account_holder_name"
placeholder="请输入开户名称"
/>
</el-form-item>
<el-form-item label="银行卡号" prop="account_number">
<el-input v-model="applyFormData.account_number" />
<el-input
v-model="applyFormData.account_number"
placeholder="请输入银行卡号"
/>
</el-form-item>
<el-form-item label="开户银行" prop="bank_branch_name">
<el-select-v2
@ -704,6 +738,34 @@
</el-icon>
</template>
</el-select-v2>
<div class="bank_name_tip">
<el-tooltip placement="top" effect="light">
<template #content>
<div class="bank_name_cont">
<h3>开店时搜不到我的开户银行怎么处理?</h3>
<p>
1.
目前小店的结算账户仅支持下拉框中包含的银行无法搜索到的银行在后续经营中可能无法正常结算提现等功能因此暂不支持
</p>
<p>
2.
若遇到这类问题请商户使用下拉框选项中包含的银行账户进行入驻如开户地为县级市或乡镇区无法搜索到可选择相同银行的市级网点否则将无法进行身份验证
</p>
<p>
3.
为了顺利注册开店与保障账号资产安全推荐优先使用四大国有银行开户注册
</p>
</div>
</template>
<el-button type="info" link>
<el-icon color="#e6a23c" size="14"
><WarningFilled /></el-icon
>搜不到我的开户银行怎么处理</el-button
>
</el-tooltip>
</div>
</el-form-item>
</template>
</div>
@ -711,9 +773,8 @@
</div>
<div class="form-button">
<el-button type="primary" @click="merchToApply" class="custom-button"
>提交审核</el-button
>
<div class="myui_check_text">检查并确认店铺信息和证件信息无误</div>
<el-button type="primary" @click="merchToApply">提交审核</el-button>
</div>
<el-dialog v-model="dialogVisible" width="max-content">
@ -726,7 +787,7 @@
import { ref, reactive, onMounted, watch } from "vue";
import { useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import { Plus, Search } from "@element-plus/icons-vue";
import { Plus, Search, WarningFilled } from "@element-plus/icons-vue";
import cityData from "../../stores/cityData";
import type { CityDataStructure } from "../../stores/cityData";
@ -741,6 +802,7 @@ import {
GetAppDistrict,
} from "@/api/login";
import { batchNoApi, imgOcrResultApi } from "@/api/upload";
import { compressImage } from "@/utils/file";
interface Bank {
id: number;
@ -1307,10 +1369,10 @@ const handleSelect = (item) => {
(formRef.value as any).validate();
};
const beforeUpload = (file) => {
const beforeUpload = async (file) => {
const isJPG = file.type === "image/jpeg";
const isPNG = file.type === "image/png";
const isLt2M = file.size / 1024 / 1024 < 10;
const isLarge = file.size / 1024 / 1024 < 10;
loading.value = true;
@ -1319,11 +1381,13 @@ const beforeUpload = (file) => {
ElMessage.error("上传的图片必须是JPG或PNG格式");
return false;
}
if (!isLt2M) {
if (!isLarge) {
loading.value = false;
ElMessage.error("上传的图片大小不能超过10MB");
return false;
}
return true;
};
@ -1365,21 +1429,24 @@ const handlePictureCardPreview = (uploadFile) => {
const getBatchNo = async (file, type, field) => {
loading.value = true;
currentBbatchNo.value = "";
const rsp = await batchNoApi(file, type).then((res) => {
loading.value = false;
return res;
}).catch(()=> {
loading.value = false;
const _uploadRef = uploadRefs.value[field]
if(_uploadRef){
_uploadRef.clearFiles()
uploadFiles[field] = []
cleanFile(field)
}
ElMessage.error('网络异常,请重试!')
});
file = await compressImage(file);
const rsp = await batchNoApi(file, type)
.then((res) => {
loading.value = false;
return res;
})
.catch(() => {
loading.value = false;
const _uploadRef = uploadRefs.value[field];
if (_uploadRef) {
_uploadRef.clearFiles();
uploadFiles[field] = [];
cleanFile(field);
}
ElMessage.error("网络异常,请重试!");
});
if (rsp?.code==0 && rsp?.status == 200) {
if (rsp?.code == 0 && rsp?.status == 200) {
return rsp?.data;
} else {
return null;
@ -1396,7 +1463,7 @@ const getOcrText = async (batchNo, type) => {
clearTimeout(orcTimeout);
orcTimeout = setTimeout(async () => {
const imgOcrRes = await imgOcrResultApi(formData).finally(()=> {
const imgOcrRes = await imgOcrResultApi(formData).finally(() => {
loading.value = false;
});
@ -1434,7 +1501,7 @@ const handleOcrText = async (batchNo, imgType) => {
case "legal_person_id_images":
var res = (await getOcrText(
batchNo,
orcImgTypeConf.ID_CARD_FRONT
orcImgTypeConf.FR_ID_CARD_FRONT
)) as any;
console.log("legal_person_id_images", res);
@ -1444,7 +1511,7 @@ const handleOcrText = async (batchNo, imgType) => {
case "legal_person_id_images2":
var res = (await getOcrText(
batchNo,
orcImgTypeConf.ID_CARD_BEHIND
orcImgTypeConf.FR_ID_CARD_BEHIND
)) as any;
var validity = res.validity.split("-");
@ -1461,7 +1528,7 @@ const handleOcrText = async (batchNo, imgType) => {
case "individual_id_images":
var res = (await getOcrText(
batchNo,
orcImgTypeConf.FR_ID_CARD_FRONT
orcImgTypeConf.ID_CARD_FRONT
)) as any;
console.log("individual_id_images", res);
@ -1499,14 +1566,14 @@ const handleOcrText = async (batchNo, imgType) => {
(formRef.value as any).validate();
};
const cleanFile = (field)=>{
const cleanFile = (field) => {
if (field === "license_image") {
applyFormData[field]=[];
} else {
applyFormData[field] = "";
}
currentFile.value = null;
}
applyFormData[field] = [];
} else {
applyFormData[field] = "";
}
currentFile.value = null;
};
const handleUploadSuccess = async (response, file, fileList, field) => {
if (response && response.status === 200 && response.code === 0) {
@ -1524,27 +1591,47 @@ const handleUploadSuccess = async (response, file, fileList, field) => {
switch (field) {
case "biz_license_image":
var res = await getBatchNo(file.raw, orcImgTypeConf.BUSINESS_LICENCE, field);
var res = await getBatchNo(
file.raw,
orcImgTypeConf.BUSINESS_LICENCE,
field
);
currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field);
break;
case "legal_person_id_images":
var res = await getBatchNo(file.raw, orcImgTypeConf.ID_CARD_FRONT, field);
var res = await getBatchNo(
file.raw,
orcImgTypeConf.FR_ID_CARD_FRONT,
field
);
currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field);
break;
case "legal_person_id_images2":
var res = await getBatchNo(file.raw, orcImgTypeConf.ID_CARD_BEHIND, field);
var res = await getBatchNo(
file.raw,
orcImgTypeConf.FR_ID_CARD_BEHIND,
field
);
currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field);
break;
case "individual_id_images":
var res = await getBatchNo(file.raw, orcImgTypeConf.FR_ID_CARD_FRONT, field);
var res = await getBatchNo(
file.raw,
orcImgTypeConf.ID_CARD_FRONT,
field
);
currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field);
break;
case "individual_id_images2":
var res = await getBatchNo(file.raw, orcImgTypeConf.ID_CARD_BEHIND, field);
var res = await getBatchNo(
file.raw,
orcImgTypeConf.ID_CARD_BEHIND,
field
);
currentBbatchNo.value = res.batchNo;
handleOcrText(res.batchNo, field);
break;
@ -1598,9 +1685,9 @@ const clearOtherFields = () => {
};
onMounted(() => {
if(!isLoggedIn.value){
if (!isLoggedIn.value) {
router.push({ name: "index" });
return
return;
}
GetStoreCategories()
.then((res) => {
@ -1688,6 +1775,29 @@ onMounted(() => {
}
}
.bank_name_tip {
display: flex;
align-items: center;
margin-left: 10px;
}
.bank_name_cont {
width: 360px;
h3{
margin-bottom: 12px;
}
p {
font-size: 14px;
margin-bottom: 12px;
}
}
.myui_check_text {
color: #999;
padding-bottom: 10px;
text-align: center;
font-size: 14px;
}
.auto-item {
p {
font-size: 15px;
@ -1714,5 +1824,9 @@ onMounted(() => {
width: 100%;
}
}
.bank_name_tip {
margin-left: 0px;
}
}
</style>