shop-info.vue 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473
  1. <template>
  2. <view>
  3. <u-navbar title="店铺资料" :border-bottom="false"></u-navbar>
  4. <block >
  5. <view class="title u-flex u-row-between u-col-center">
  6. <text v-if="step==1">请选择商家类型</text>
  7. <text v-else>完善商家资料</text>
  8. <text v-show="stepShow" @click="prevStep" class="u-font-24" style="color: #999">上一步</text>
  9. </view>
  10. <view class="card">
  11. <view class="margin-bottom-30" v-if="$isNotEmpty(failReason)">
  12. <u-alert-tips @close="failReason=null" type="error" :close-able="true" :show-icon="true"
  13. title="审核意见" :description="failReason"></u-alert-tips>
  14. </view>
  15. <u-form :model="form" :label-width="labelWidth" ref="uForm">
  16. <view v-if="step==1" class="steps1" style="padding-bottom: 40rpx;">
  17. <view @click="clickType(1)" class="item u-border-bottom">
  18. <view class="flex">
  19. <view class="center">
  20. <image class="icon" src="../../static/icon/shop2.png" mode=""></image>
  21. </view>
  22. <view class="item-content">
  23. <text>小微商户</text>
  24. <text>小微商户,需提供店铺门头照及实景照,店主身份证件及银行账户</text>
  25. </view>
  26. </view>
  27. <view class="center">
  28. <image v-if="typeIndex==1" style="width: 40rpx;height: 40rpx;"
  29. src="../../static/icon/check.png" mode=""></image>
  30. <image v-else style="width: 40rpx;height: 40rpx;" src="../../static/icon/uncheck.png"
  31. mode=""></image>
  32. </view>
  33. </view>
  34. <view @click="clickType(0)" class="item ">
  35. <view class="flex">
  36. <view class="center">
  37. <image class="icon" src="../../static/icon/shop1.png" mode=""></image>
  38. </view>
  39. <view class="item-content">
  40. <text>企业商户/个体工商户</text>
  41. <text>企业商户,需提供营业执照,企业法人证件,企业对公结算银行账户,特殊行业还需提供生产经营许可证(例如:食品、化妆品、药品等)</text>
  42. </view>
  43. </view>
  44. <view class="center">
  45. <image v-if="typeIndex==0" style="width: 40rpx;height: 40rpx;"
  46. src="../../static/icon/check.png" mode=""></image>
  47. <image v-else style="width: 40rpx;height: 40rpx;" src="../../static/icon/uncheck.png"
  48. mode=""></image>
  49. </view>
  50. </view>
  51. </view>
  52. <view v-show="step==2">
  53. <view class="border">
  54. <u-form-item v-if="typeIndex==1" label="店铺全称" prop="name" label-position="top">
  55. <u-input :border="false" placeholder="比如:哈尔滨杨国福麻辣烫餐饮服务有限公司"
  56. v-model="auditForm.signName">
  57. </u-input>
  58. </u-form-item>
  59. </view>
  60. <view class="border">
  61. <u-form-item label="商户简称" prop="name">
  62. <u-input :border="false" placeholder="比如:杨国福麻辣烫(时尚天河2店)" v-model="form.name"></u-input>
  63. </u-form-item>
  64. </view>
  65. <view class="border">
  66. <u-form-item label="商户联系人手机号" prop="personTel" label-width="250">
  67. <u-input disabled placeholder="请输入联系方式" v-model="form.personTel" type="number"></u-input>
  68. </u-form-item>
  69. </view>
  70. <view class="border">
  71. <u-form-item label="所在商场" prop="phone">
  72. <u-input @click="mallShow=true" :select-open="mallShow" :border="false"
  73. placeholder="请选择所在商场(非必填项)" v-model="mallLabel" type="select"></u-input>
  74. <u-icon class="clear" color="#999" v-if="mallLabel" name="close-circle-fill"
  75. @click.stop="clear('mallLabel')"></u-icon>
  76. </u-form-item>
  77. </view>
  78. <view class="border">
  79. <u-form-item label="商户联系人邮箱" prop="email" label-width="240">
  80. <u-input :border="false" placeholder="请输入商户联系人邮箱" v-model="form.email"></u-input>
  81. </u-form-item>
  82. </view>
  83. <view class="border" v-if="form.mallId&&!$isEmpty(mallAreaList)">
  84. <u-form-item label="所在区域" prop="phone">
  85. <u-input @click="mallAreaShow=true" :border="false" placeholder="请选择所在区域"
  86. v-model="mallAreaLabel" type="select"></u-input>
  87. <u-icon class="clear" color="#999" v-if="mallAreaLabel" name="close-circle-fill"
  88. @click.stop="clear('mallAreaLabel')"></u-icon>
  89. </u-form-item>
  90. </view>
  91. <view class="border">
  92. <u-form-item label="店铺标语" prop="name">
  93. <u-input :border="false" placeholder="请输入店铺标语(非必填项)" v-model="form.slogan"></u-input>
  94. </u-form-item>
  95. </view>
  96. <view class="border">
  97. <u-form-item label-width="200" label="公司种类" left-icon="grid">
  98. <view class="flex justify-between " @click="chooseLabel">
  99. <view class="u-flex u-flex-wrap">
  100. <text v-if="form.labelKey" class="text-cut-1">{{form.labelKey}}</text>
  101. <text v-else style="color: #c0c4cc;">请选择</text>
  102. </view>
  103. <view>
  104. <u-icon name="arrow-right" color="#737373"></u-icon>
  105. </view>
  106. </view>
  107. </u-form-item>
  108. </view>
  109. <view class="border">
  110. <u-form-item label="所在地区" prop="address">
  111. <u-input :disabled="true" :border="false" placeholder="请选择所在地区" @click="regionShow=true"
  112. v-model="form.location"></u-input>
  113. </u-form-item>
  114. </view>
  115. <view class="border">
  116. <u-form-item label="具体地址" label-position="top" prop="address">
  117. <u-input :border="false" placeholder="请详细写到门店编号" v-model="form.address"></u-input>
  118. <view slot="right">
  119. <u-button @click="chooseAddress" size="mini">获取地址</u-button>
  120. </view>
  121. </u-form-item>
  122. </view>
  123. <view class="border">
  124. <view style="padding: 30rpx 0 10rpx;">
  125. <text>店铺封面</text>
  126. <text style="font-size: 24rpx;color: #999999;">(请上传店铺封面)</text>
  127. <mp-upload-img style="height: 120rpx;" ref="mpUploadCover" @click='uploadShopCover'
  128. col="4" :count="1"></mp-upload-img>
  129. </view>
  130. </view>
  131. <view class="border">
  132. <view style="padding: 30rpx 0 10rpx;">
  133. <text>店铺实况</text>
  134. <text style="font-size: 24rpx;color: #999999;">(请依次上传门头、店内照片)</text>
  135. <mp-upload-img ref="mpUploadImg" @click='uploadShopPics' :count="2" col="4">
  136. </mp-upload-img>
  137. </view>
  138. </view>
  139. </view>
  140. <view v-show="merchantSubjectShow">
  141. <view class="border">
  142. <u-form-item label="上传营业执照" prop="businessLicense" label-position="top" label-width="180">
  143. <upload-img title="请上传营业执照" @click="chooseBizilicense"
  144. :model="auditForm.businessLicense" dataName="businessLicense"></upload-img>
  145. </u-form-item>
  146. </view>
  147. <view class="border">
  148. <u-form-item label="公司主体" prop="entity" label-width="210">
  149. <u-input :border="false" placeholder="请输入公司主体" v-model="auditForm.entity">
  150. </u-input>
  151. </u-form-item>
  152. </view>
  153. <view class="border">
  154. <u-form-item label="营业执照编号" prop="licenceNo" label-width="210">
  155. <u-input :border="false" placeholder="请填写营业执照编号" v-model="auditForm.licenceNo">
  156. </u-input>
  157. </u-form-item>
  158. </view>
  159. <view class="border">
  160. <u-form-item label="开户许可证编号" prop="licenceNo" label-width="210">
  161. <u-input :border="false" placeholder="请填写开户许可证编号"
  162. v-model="auditForm.openAccountLicenceNo">
  163. </u-input>
  164. </u-form-item>
  165. <u-form-item label="开户许可证照片" prop="openAccountLicenceUrl" label-position="top">
  166. <upload-img title="请上传开户许可证照片" @click="chooseImageAudit"
  167. :model="auditForm.openAccountLicenceUrl" dataName="openAccountLicenceUrl">
  168. </upload-img>
  169. </u-form-item>
  170. </view>
  171. <view class="border">
  172. <u-form-item label="手持营业执照在经营场所的照片" prop="handLicenceUrl" label-position="top">
  173. <upload-img title="请上传手持营业执照在经营场所的照片" @click="chooseImageAudit"
  174. :model="auditForm.handLicenceUrl" dataName="handLicenceUrl"></upload-img>
  175. </u-form-item>
  176. </view>
  177. </view>
  178. <view v-show="merchantCorporationShow">
  179. <view class="photo border">
  180. <text>请拿出商户法人有效二代身份证件准备拍摄</text>
  181. <view class="box">
  182. <ocr-navigator @onSuccess="idCardSuccess" certificateType="idCard" :opposite="false">
  183. <upload-img :width="520" :height="300" title="上传人像面照片"
  184. :model="auditForm.idCardFront" dataName="idCardFront" :enableImg="true">
  185. </upload-img>
  186. </ocr-navigator>
  187. </view>
  188. <view class="box" style="margin-top: 0;">
  189. <ocr-navigator @onSuccess="idCardSuccess" certificateType="idCard" :opposite="true">
  190. <upload-img :width="520" :height="300" title="上传国徽面照片"
  191. :model="auditForm.idCardContrary" dataName="idCardContrary" :enableImg="true"
  192. :bgImg="idCardContraryBgImg"></upload-img>
  193. </ocr-navigator>
  194. </view>
  195. <view style="margin: 30rpx 0;" class="tips">
  196. <text>拍摄时确保身份证边框完整,字体清晰,亮度均匀</text>
  197. </view>
  198. </view>
  199. <view class="border">
  200. <u-form-item label="商户法人姓名" prop="legalPerson" label-width="230">
  201. <u-input :border="false" placeholder="请输入公司法人姓名" v-model="auditForm.legalPerson">
  202. </u-input>
  203. </u-form-item>
  204. </view>
  205. <view class="border" v-if="typeIndex==1">
  206. <u-form-item label="商户法人手机号" prop="mobile" label-width="230">
  207. <u-input :border="false" placeholder="请输入商户法人手机号" v-model="auditForm.contactMobile">
  208. </u-input>
  209. </u-form-item>
  210. </view>
  211. <view class="border">
  212. <u-form-item label="商户法人身份证号码" prop="personIdCard" label-position="top">
  213. <u-input :border="false" placeholder="请输入商户法人身份证号码" v-model="auditForm.idCard">
  214. </u-input>
  215. </u-form-item>
  216. </view>
  217. <view class="border" v-if="typeIndex==0">
  218. <u-form-item label="商户联系人姓名" prop="personName" label-width="230">
  219. <u-input :disabled="isEdit" :border="false" placeholder="商户联系人姓名"
  220. v-model="form.personName">
  221. </u-input>
  222. </u-form-item>
  223. </view>
  224. <view class="border" v-if="typeIndex==0">
  225. <u-form-item label="商户联系人身份证号" prop="email" label-position="top">
  226. <u-input :border="false" placeholder="请输入商户联系人身份证号"
  227. v-model="auditForm.contactLicenceNo">
  228. </u-input>
  229. </u-form-item>
  230. </view>
  231. </view>
  232. <view v-show="settlementAccountShow" style="padding-bottom: 40rpx;">
  233. <view class="">
  234. <u-form-item :request="true" label="请填写结算银行账户号码" prop="bankCardNo" label-position="top">
  235. <u-input :border="false" placeholder="请填写结算银行账户号码" v-model="auditForm.bankCardNo">
  236. </u-input>
  237. <ocr-navigator slot="right" hover-class="none" @onSuccess="bankSuccess"
  238. certificateType="bankCard">
  239. <u-icon name="scan" size="42"></u-icon>
  240. </ocr-navigator>
  241. </u-form-item>
  242. <u-form-item :request="true" label="银行类型" label-position="top">
  243. <u-input :border="false" :select-open="bankCodeShow" type="select" placeholder="请选择银行类型"
  244. v-model="auditForm.bankCodeLabel" @click="bankCodeShow = true" />
  245. </u-form-item>
  246. <u-form-item :request="true" label="账户类型" label-position="top">
  247. <!-- <u-input type="select" placeholder="请选银行择账户类型" v-model="auditForm.bankAccountTypeLabel" @click="bankAccountTypeShow = true"/> -->
  248. <u-input :border="false" disabled placeholder="请选银行择账户类型"
  249. v-model="auditForm.bankAccountTypeLabel" />
  250. </u-form-item>
  251. </view>
  252. </view>
  253. </u-form>
  254. </view>
  255. <view v-if="step<totalStep" class="center flex-direction" style="margin: 100rpx 0 ;">
  256. <view @click="nextStep" class="btn cu-btn round" style="width:90%;height: 90rpx;font-size: 34rpx;">
  257. 下一步
  258. </view>
  259. </view>
  260. <view v-else class="center flex-direction margin-bottom-30" style="margin-top: 100rpx;">
  261. <view v-if="!isEdit" class=" margin-bottom-20 text-sm center ">
  262. <text style="color: #949494;">确认注册即代表已阅读并同意</text>
  263. <text style="color: #104DFF;" @click="protocol">《联兑通软件服务协议》</text>
  264. </view>
  265. <view @click="submit" class="btn cu-btn round" style="width:90%;height: 90rpx;font-size: 34rpx;">
  266. 提交资料
  267. </view>
  268. </view>
  269. </block>
  270. <!-- 商场 -->
  271. <u-popup border-radius="8" height="60%" mode="bottom" v-model="mallShow">
  272. <view class="fixed cu-bar search bg-white">
  273. <view class="search-form radius">
  274. <text class="cuIcon-search"></text>
  275. <u-input style="width: 90%;" v-model="mallKeyWord" type="text" :adjust-position="false"
  276. placeholder="请输入关键字搜索" confirm-type="search" />
  277. </view>
  278. </view>
  279. <scroll-view v-if="!$isEmpty(mallList)" style="padding-top: 110rpx;height: 100%;" :scroll-y="true">
  280. <view @click="selectMall(item)" hover-class="hoverClass"
  281. :class="{'solid-bottom':mallList.length!=(index+1)} " class="text-center padding-30"
  282. v-for="(item,index) in mallList" :key="index">
  283. <text>{{item.mallName}}</text>
  284. </view>
  285. <u-divider fontSize="24" v-if="mallList.length>=8" height="80">只显示8条数据,其余数据请搜索</u-divider>
  286. </scroll-view>
  287. <u-empty v-else name="search"></u-empty>
  288. </u-popup>
  289. <u-popup border-radius="8" height="60%" mode="bottom" v-model="bankCodeShow">
  290. <view class="fixed cu-bar search bg-white">
  291. <view class="search-form radius">
  292. <text class="cuIcon-search"></text>
  293. <u-input style="width: 100%;" v-model="bankKeyword" type="text" :adjust-position="false"
  294. placeholder="请输入关键字搜索" confirm-type="search" />
  295. </view>
  296. </view>
  297. <scroll-view v-if="!$isEmpty(bankCodeList)" style="padding-top: 110rpx;height: 100%;" :scroll-y="true">
  298. <view @click="bankTypeConfirm(item)" hover-class="hoverClass"
  299. :class="{'solid-bottom':bankCodeList.length!=(index+1)} " class="item text-center padding-30 "
  300. v-for="(item,index) in bankCodeList" :key="index">
  301. <text>{{item.label}}</text>
  302. </view>
  303. <u-divider fontSize="24" v-if="bankCodeList.length>=8" height="80">只显示8条数据,其余数据请搜索</u-divider>
  304. </scroll-view>
  305. <u-empty v-else name="search"></u-empty>
  306. </u-popup>
  307. <u-select confirm-color="#EF9944" v-model="mallAreaShow" label-name="name" value-name="id" mode="single-column" :list="mallAreaList"
  308. @confirm="mallAreaConfirm"></u-select>
  309. <!-- 地区 -->
  310. <!-- <u-picker confirm-color="#EF9944" @confirm="regionConfirm" v-model="regionShow" mode="region"></u-picker> -->
  311. <city-select :defaultRegion="defaultRegion" v-model="regionShow" @city-change="regionConfirm"></city-select>
  312. <!-- <u-select v-model="bankCodeShow" :list="bankCodeList" @confirm="bankTypeConfirm"></u-select> -->
  313. <u-select confirm-color="#EF9944" v-model="bankAccountTypeShow" :list="bankAccountTypeList" @confirm="bankAccountTypeConfirm">
  314. </u-select>
  315. <toast ref="toast"></toast>
  316. <loading ref="loading" type="3" />
  317. </view>
  318. </template>
  319. <script>
  320. import citySelect from './u-city-select.vue';
  321. import mpUploadImg from "@/components/mp-uploadImg/mp-uploadImg.vue"
  322. import uploadImg from "@/components/uploadimg/uploadImg.vue"
  323. export default {
  324. components: {
  325. citySelect,
  326. uploadImg,
  327. mpUploadImg
  328. },
  329. computed: {
  330. stepShow: {
  331. get() {
  332. if (this.isEdit) {
  333. if (this.step <= this.totalStep && this.step != 2) {
  334. return true
  335. }
  336. return false
  337. }
  338. if (this.step <= this.totalStep && this.step != 1) {
  339. return true
  340. } else {
  341. return false
  342. }
  343. }
  344. },
  345. settlementAccountShow: {
  346. get() {
  347. if (!this.needBankInfo) {
  348. return false
  349. }
  350. if (this.typeIndex == 0 && this.step == 5) {
  351. return true
  352. }
  353. if (this.typeIndex == 1 && this.step == 4) {
  354. return true
  355. }
  356. return false
  357. }
  358. },
  359. merchantCorporationShow: {
  360. get() {
  361. if (this.typeIndex == 0 && this.step == 4) {
  362. return true
  363. }
  364. if (this.typeIndex == 1 && this.step == 3) {
  365. return true
  366. }
  367. return false
  368. }
  369. },
  370. merchantSubjectShow: {
  371. get() {
  372. if (this.typeIndex == 0 && this.step == 3) {
  373. return true
  374. }
  375. return false
  376. }
  377. },
  378. },
  379. data() {
  380. return {
  381. loading: true,
  382. typeIndex: 1,
  383. //银行类型
  384. bankKeyword: '',
  385. bankCodeShow: false,
  386. bankCodeList: [],
  387. //账户类型
  388. bankAccountTypeShow: false,
  389. bankAccountTypeList: [],
  390. //身份证正面背景图
  391. idCardContraryBgImg: 'https://guosen-bucket-ldt.obs.cn-south-1.myhuaweicloud.com:443/525724b4977d457eafea331f8595a675-6MM5CLdbBt1z7042ac12465719c764f2ca05a37ffee9.png',
  392. //上传图片
  393. imgList: [],
  394. title: '',
  395. labelWidth: 170,
  396. form: {
  397. /**
  398. * 主键
  399. */
  400. id: "",
  401. /**
  402. * 商户名称
  403. */
  404. name: "",
  405. /**
  406. * 代理人
  407. */
  408. agenter: "",
  409. /**
  410. * 代理人头像
  411. */
  412. agentAvatar: "",
  413. /**
  414. * 代理人姓名
  415. */
  416. agentName: "",
  417. /**
  418. * 商场id
  419. */
  420. mallId: "",
  421. /**
  422. * 商场label
  423. */
  424. mallLabel: "",
  425. /**
  426. * 负责人
  427. */
  428. personName: "",
  429. /**
  430. * 联系方式
  431. */
  432. personTel: "",
  433. /**
  434. * 区域编码
  435. */
  436. locationCode: "",
  437. /**
  438. * 所在地区
  439. */
  440. location: "",
  441. /**
  442. * 商户封面
  443. */
  444. cover: "",
  445. /**
  446. * 商户logo
  447. */
  448. logo: "",
  449. /**
  450. * 父标签ids,逗号分割
  451. */
  452. labelParentIds: "",
  453. /**
  454. * 商户标签json字符串
  455. */
  456. labelJson: "",
  457. /**
  458. * 商户标签key
  459. */
  460. labelKey: "",
  461. /**
  462. * 店铺图片
  463. */
  464. shopPic: "",
  465. /**
  466. * 邮箱
  467. */
  468. email: "",
  469. /**
  470. * 标语,逗号分割
  471. */
  472. slogan: "",
  473. /**
  474. * 审核状态
  475. */
  476. auditStatus: "",
  477. /**
  478. * 审核意见
  479. */
  480. auditAdvice: "",
  481. /**
  482. * 经度
  483. */
  484. longitude: "",
  485. /**
  486. * 纬度
  487. */
  488. latitude: "",
  489. /**
  490. * 详细地址
  491. */
  492. address: "",
  493. /**
  494. * 易宝商户编号
  495. */
  496. merchantNo: "",
  497. /**
  498. * openId
  499. */
  500. openId: "",
  501. },
  502. //审核表单
  503. auditForm: {
  504. /**
  505. * 主键
  506. */
  507. id: "",
  508. /**
  509. * 流程定义主键
  510. */
  511. processDefinitionId: "",
  512. /**
  513. * 流程实例主键
  514. */
  515. processInstanceId: "",
  516. /**
  517. * 主体信息
  518. */
  519. entity: "",
  520. /**
  521. * 商场或商店ID
  522. */
  523. entityId: "",
  524. /**
  525. * 身份证号
  526. */
  527. idCard: "",
  528. /**
  529. * 商户名称
  530. */
  531. shopName: "",
  532. /**
  533. * 商户logo
  534. */
  535. shopLogo: "",
  536. /**
  537. * 审核状态
  538. */
  539. auditStatus: "",
  540. /**
  541. * 商户申请号
  542. */
  543. requestNo: "",
  544. /**
  545. * 入网商户的业务角色
  546. */
  547. businessRole: "",
  548. /**
  549. * 商户签约类型
  550. */
  551. signType: "ENTERPRISE",
  552. /**
  553. * 企业名称【商户全称】
  554. */
  555. enterpriseName: "",
  556. /**
  557. * 组成形式
  558. */
  559. typeOfOrganization: "",
  560. /**
  561. * 企业类型
  562. */
  563. typeOfEnterprise: "MINICRO",
  564. /**
  565. * 经营范围
  566. */
  567. businessScope: "",
  568. /**
  569. * 注册资本
  570. */
  571. registeredCapital: "",
  572. /**
  573. * 实收资本
  574. */
  575. paidInCapital: "",
  576. /**
  577. * 营业期限
  578. */
  579. validPeriod: "",
  580. /**
  581. * 成立日期
  582. */
  583. registeredDate: "",
  584. /**
  585. * 注册号
  586. */
  587. regNum: "",
  588. /**
  589. * 商户证件编号
  590. */
  591. licenceNo: "",
  592. /**
  593. * 营业执照【易宝:商户证件照片】
  594. */
  595. businessLicense: "",
  596. /**
  597. * 商户签约名称
  598. */
  599. signName: "",
  600. /**
  601. * 商户简称
  602. */
  603. shortName: "",
  604. /**
  605. * 开户许可证编号
  606. */
  607. openAccountLicenceNo: "",
  608. /**
  609. * 开户许可证照片
  610. */
  611. openAccountLicenceUrl: "",
  612. /**
  613. * 手持营业执照在经营场所的照片
  614. */
  615. handLicenceUrl: "",
  616. /**
  617. * 法人姓名【legalName】
  618. */
  619. legalPerson: "",
  620. /**
  621. * 法人证件类型
  622. */
  623. legalLicenceType: "ID_CARD",
  624. /**
  625. * 法人证件号码
  626. */
  627. legalLicenceNo: "",
  628. /**
  629. * 身份证-正面【legalLicenceFrontUrl】
  630. */
  631. idCardFront: "",
  632. /**
  633. * 身份证-反面【legalLicenceBackUrl】
  634. */
  635. idCardContrary: "",
  636. /**
  637. * 性别
  638. */
  639. gender: "",
  640. /**
  641. * 住址
  642. */
  643. addr: "",
  644. /**
  645. * 民族
  646. */
  647. nationality: "",
  648. /**
  649. * 有效日期
  650. */
  651. validDate: "",
  652. /**
  653. * 商户联系人姓名
  654. */
  655. contactName: "",
  656. /**
  657. * 商户联系人证件号码
  658. */
  659. contactLicenceNo: "",
  660. /**
  661. * 商户联系人手机号
  662. */
  663. contactMobile: "",
  664. /**
  665. * 商户联系人邮箱
  666. */
  667. contactEmail: "",
  668. /**
  669. * 客服电话
  670. */
  671. servicePhone: "",
  672. /**
  673. * 商户实际经营地所在省
  674. */
  675. province: "",
  676. /**
  677. * 商户实际经营地所在市
  678. */
  679. city: "",
  680. /**
  681. * 商户实际经营地所在区
  682. */
  683. district: "",
  684. /**
  685. * 商户实际经营详细地址
  686. */
  687. address: "",
  688. /**
  689. * 结算方向
  690. */
  691. settlementDirection: "",
  692. /**
  693. * 银行账户类型
  694. */
  695. bankAccountType: "",
  696. /**
  697. * 银行账户类型label
  698. */
  699. bankAccountTypeLabel: "",
  700. /**
  701. * 银行账户号码
  702. */
  703. bankCardNo: "",
  704. /**
  705. * 银行账户开户总行编码
  706. */
  707. bankCode: "",
  708. /**
  709. * 银行账户开户总行编码label
  710. */
  711. bankCodeLabel: "",
  712. /**
  713. * 注册地址
  714. */
  715. officeAddress: ""
  716. },
  717. //OCR营业执照
  718. OCRBizilicenseInfo: {},
  719. //OCR身份证
  720. OCRBiziIdCardInfo: {},
  721. //商场
  722. mallShow: false,
  723. mallKeyWord: '',
  724. mallList: [],
  725. mallLabel: '',
  726. //区域
  727. mallAreaShow: false,
  728. mallAreaList: [],
  729. mallAreaLabel: '',
  730. //所在地区
  731. regionShow: false,
  732. defaultRegion:[],
  733. //门店地址
  734. shopAddress: '',
  735. step: 1,
  736. totalStep: 4,
  737. needBankInfo: true,
  738. //编辑还是修改
  739. isEdit: false,
  740. //审核失败,重新申请
  741. isFail: false,
  742. shopId: "",
  743. flowDetail: {},
  744. failReason: "",
  745. flowList: []
  746. }
  747. },
  748. watch: {
  749. mallKeyWord() {
  750. let that = this
  751. //节流函数
  752. if (this.timer) {
  753. clearTimeout(this.timer)
  754. }
  755. this.timer = setTimeout(() => {
  756. this.mallList = []
  757. that.fetchMallList()
  758. }, 500)
  759. },
  760. bankKeyword() {
  761. console.log("1111");
  762. let that = this
  763. //节流函数
  764. if (this.timer) {
  765. clearTimeout(this.timer)
  766. }
  767. this.timer = setTimeout(() => {
  768. this.bankCodeList = []
  769. that.getBankType()
  770. }, 500)
  771. },
  772. imgList() {
  773. if (!this.$isEmpty(this.imgList)) {
  774. this.form.shopPic = this.imgList.join(",")
  775. }
  776. },
  777. },
  778. onShow() {
  779. uni.hideLoading()
  780. },
  781. async onLoad(options) {
  782. this.form.personTel = this.$cache.get('phone')
  783. this.auditForm.contactMobile = this.form.personTel
  784. //监听从chooseLable页面返回的数据
  785. uni.$on('labelData', (labelData) => {
  786. this.form.labelJson = labelData.labelJson
  787. this.form.labelKey = labelData.labelKey
  788. this.form.labelParentIds = labelData.labelParentIds
  789. this.$forceUpdate()
  790. })
  791. if (options.edit) {
  792. //修改资料
  793. this.isEdit = true
  794. this.step = 2
  795. await this.fetchShopDetail(this.vuex_shopId)
  796. await this.fetchAuditDetail(this.vuex_shopId)
  797. } else if (options.isFail) {
  798. //审核失败,重新申请
  799. this.isFail = true
  800. this.shopId = options.shopId
  801. await this.fetchShopDetail(this.shopId)
  802. await this.fetchAuditDetail(this.shopId)
  803. } else {
  804. this.initCacheData()
  805. //新增数据时才跑流程
  806. this.getProcessDefinitionId()
  807. }
  808. await this.initDict()
  809. await this.fetchMallList()
  810. },
  811. methods: {
  812. clickType(index) {
  813. this.typeIndex = index
  814. if (this.typeIndex == 0) {
  815. //企业
  816. this.auditForm.bankAccountType = 'PUBLIC_CARD'
  817. this.auditForm.bankAccountTypeLabel = '对公卡'
  818. }
  819. if (this.typeIndex == 1) {
  820. //小微企业
  821. this.auditForm.bankAccountType = 'DEBIT_CARD'
  822. this.auditForm.bankAccountTypeLabel = '借记卡'
  823. }
  824. },
  825. async getHistoryFlowList() {
  826. let processInstanceId = this.auditForm.processInstanceId
  827. this.flowList = (await this.$api.flow.historyFlowList({
  828. processInstanceId
  829. })).data
  830. let failList = this.flowList.filter(item => !item.pass && item.comment)
  831. if (this.$isNotEmpty(failList)) {
  832. let index = failList.length - 1
  833. this.failReason = failList[index].comment
  834. }
  835. },
  836. getTaskId() {
  837. let params = {
  838. assignee: '$INITIATOR',
  839. processInstanceId: this.auditForm.processInstanceId
  840. }
  841. this.$api.flow.getTaskId(params).then(res => {
  842. this.flowDetail = res.data.records[0]
  843. })
  844. },
  845. initCacheData() {
  846. let shopAuditInfo = this.$cache.get('shopAuditInfo')
  847. if (shopAuditInfo) {
  848. this.form = shopAuditInfo.shop
  849. this.auditForm = shopAuditInfo.audit
  850. this.mallLabel = this.form.mallLabel
  851. this.imgList = this.$isNotEmpty(this.form.shopPic) ? this.form.shopPic.split(",") : []
  852. this.$refs.mpUploadCover.changeImgList([this.form.cover])
  853. this.$refs.mpUploadImg.changeImgList(this.imgList)
  854. }
  855. },
  856. async getOpenId() {
  857. if (this.$isEmpty(this.form.openId)) {
  858. let code = (await this.$mpi.wxLogin()).code
  859. let params = {
  860. code,
  861. type: "SHOP"
  862. }
  863. let res = await this.$api.wxApp.getOpenId(params)
  864. this.form.openId = res.data.openid
  865. }
  866. },
  867. //获取商户审核流程id
  868. getProcessDefinitionId() {
  869. let params = {
  870. category: 'flow_3',
  871. mode: 1
  872. }
  873. this.$api.flow.getProcessDefinitionId(params).then(res => {
  874. this.auditForm.processDefinitionId = res.data.records[0].id
  875. if (this.$isEmpty(this.auditForm.processDefinitionId)) {
  876. this.$dialog.showModalAndBack("系统错误,获取流程主键失败")
  877. return
  878. }
  879. })
  880. },
  881. //所在地区
  882. regionConfirm(e) {
  883. this.form.location=e.location
  884. this.form.locationCode=e.locationCode
  885. // this.form.location = e.province.label + "-" + e.city.label + "-" + e.area.label
  886. // this.form.locationCode = e.province.value + "0000," + e.city.value + "00," + e.area.value
  887. },
  888. //具体地址
  889. chooseAddress() {
  890. var _this = this
  891. uni.chooseLocation({
  892. success(res) {
  893. console.log(res);
  894. _this.form.address = res.address
  895. _this.form.longitude = res.longitude
  896. _this.form.latitude = res.latitude
  897. }
  898. })
  899. },
  900. //选择标签
  901. chooseLabel() {
  902. uni.navigateTo({
  903. url: "../chooseLable/chooseLable?label=" + this.form.labelJson
  904. })
  905. },
  906. uploadShopCover(data) {
  907. this.form.cover = data[0]
  908. this.$refs.mpUploadCover.changeImgList(data)
  909. },
  910. uploadShopPics(data) {
  911. this.imgList = data
  912. this.$refs.mpUploadImg.changeImgList(this.imgList)
  913. },
  914. bankSuccess(e) {
  915. console.log(e);
  916. this.auditForm.bankCardNo = e.detail.number.text
  917. },
  918. async chooseBank() {
  919. let image = (await this.$mpi.chooseImage())[0]
  920. this.$api.ocr.bank(image).then(res => {
  921. console.log(res);
  922. })
  923. console.log(res);
  924. },
  925. async fetchShopDetail(id) {
  926. let params = {
  927. id
  928. }
  929. let res = await this.$api.shop.detail(params)
  930. this.$util.objectCopy(this.form, res.data)
  931. if (this.$isNotEmpty(res.data.mallId) && res.data.mallId != -1) {
  932. this.mallLabel = (await this.$api.mall.detail({
  933. id: res.data.mallId
  934. })).data.mallName
  935. }
  936. console.log(this.form.location.split('-'));
  937. this.defaultRegion=this.form.location.split('-')
  938. this.imgList = this.$isNotEmpty(this.form.shopPic) ? this.form.shopPic.split(",") : []
  939. this.$refs.mpUploadCover.changeImgList([this.form.cover])
  940. this.$refs.mpUploadImg.changeImgList(this.imgList)
  941. },
  942. async fetchAuditDetail(id) {
  943. let params = {
  944. entityId: id
  945. }
  946. let res = await this.$api.audit.detail(params)
  947. this.$util.objectCopy(this.auditForm, res.data)
  948. if (this.isFail) {
  949. //获取流程历史
  950. this.getHistoryFlowList()
  951. this.getTaskId()
  952. }
  953. },
  954. prevStep() {
  955. this.step--
  956. },
  957. nextStep() {
  958. if (this.step == 1) {
  959. if (this.typeIndex == 0) {
  960. this.auditForm.typeOfEnterprise = 'ENTERPRISE'
  961. //企业
  962. if (this.needBankInfo) {
  963. this.totalStep = 5
  964. } else {
  965. this.totalStep = 4
  966. }
  967. }
  968. if (this.typeIndex == 1) {
  969. //小微企业
  970. this.auditForm.typeOfEnterprise = 'MINICRO'
  971. if (this.needBankInfo) {
  972. this.totalStep = 4
  973. } else {
  974. this.totalStep = 3
  975. }
  976. }
  977. }
  978. if (this.step == 2) {
  979. if (this.$isEmpty(this.auditForm.signName) && this.typeIndex == 1) {
  980. this.$refs.toast.info('请输入店铺全称')
  981. return
  982. }
  983. if (this.$isEmpty(this.form.name)) {
  984. this.$refs.toast.info('请输入店铺简称')
  985. return
  986. }
  987. if (this.$isEmpty(this.form.personTel)) {
  988. this.$refs.toast.info('请输入商户联系人手机号')
  989. return
  990. }
  991. if (this.$isEmpty(this.form.email)) {
  992. this.$refs.toast.info('请输入商户联系人邮箱')
  993. return
  994. }
  995. if (this.$isEmpty(this.form.labelKey)) {
  996. this.$refs.toast.info('请选择公司种类')
  997. return
  998. }
  999. if (this.$isEmpty(this.form.location)) {
  1000. this.$refs.toast.info('请选择所在地区')
  1001. return
  1002. }
  1003. if (this.$isEmpty(this.form.address)) {
  1004. this.$refs.toast.info('请选择具体地址')
  1005. return
  1006. }
  1007. if (this.$isEmpty(this.form.cover)) {
  1008. this.$refs.toast.info('请上传店铺封面')
  1009. return
  1010. }
  1011. if (this.$isEmpty(this.form.shopPic)) {
  1012. this.$refs.toast.info('请上传店铺实况')
  1013. return
  1014. }
  1015. if (this.imgList.length < 2) {
  1016. this.$refs.toast.info('请依次上传门头,店内照片')
  1017. return
  1018. }
  1019. }
  1020. if (this.step == 3 && this.typeIndex == 0) {
  1021. if (this.$isEmpty(this.auditForm.businessLicense)) {
  1022. this.$refs.toast.info('请上传营业执照')
  1023. return
  1024. }
  1025. if (this.$isEmpty(this.auditForm.openAccountLicenceNo)) {
  1026. this.$refs.toast.info('请填写开户许可证编号')
  1027. return
  1028. }
  1029. if (this.$isEmpty(this.auditForm.openAccountLicenceUrl)) {
  1030. this.$refs.toast.info('请上传开户许可证照片')
  1031. return
  1032. }
  1033. if (this.$isEmpty(this.auditForm.openAccountLicenceUrl)) {
  1034. this.$refs.toast.info('请上传手持营业执照在经营场所的照片')
  1035. return
  1036. }
  1037. }
  1038. if (this.step > 0 && this.step < this.totalStep) {
  1039. this.step++
  1040. }
  1041. },
  1042. clear(t) {
  1043. if (t == 'mallAreaLabel') {
  1044. this.mallAreaLabel = ''
  1045. } else if (t == 'mallLabel') {
  1046. this.mallLabel = ''
  1047. this.form.mallId = null
  1048. }
  1049. },
  1050. async chooseImageShop(name) {
  1051. let res = await this.$mpi.chooseImage()
  1052. this.$api.uploadFile(res[0]).then(res => {
  1053. this.form[name] = res.data.link
  1054. })
  1055. },
  1056. async chooseImageAudit(name) {
  1057. if (this.isEdit) {
  1058. this.$refs.toast.info('不可修改')
  1059. return
  1060. }
  1061. let res = await this.$mpi.chooseImage()
  1062. this.$api.uploadFile(res[0]).then(res => {
  1063. this.auditForm[name] = res.data.link
  1064. })
  1065. },
  1066. idCardSuccess(e){
  1067. console.log(e,"e********");
  1068. let data=e.detail
  1069. console.log(data,"data******");
  1070. if (data.type==0) {
  1071. //身份证正面
  1072. this.auditForm.addr=data.address.text
  1073. this.auditForm.gender=data.gender.text
  1074. this.auditForm.idCard=data.id.text
  1075. this.auditForm.nationality=data.nationality.text
  1076. this.auditForm.name=data.name.text
  1077. this.auditForm.legalPerson = data.name.text
  1078. this.form.personName = data.name.text
  1079. this.auditForm.contactLicenceNo = data.id.text
  1080. }else{
  1081. this.auditForm.validDate = data.valid_date.text
  1082. }
  1083. this.$api.uploadFile(data.image_path).then(res=>{
  1084. if (data.type==0) {
  1085. //正面
  1086. this.auditForm.idCardFront=res.data.link
  1087. }else{
  1088. //反面
  1089. this.auditForm.idCardContrary=res.data.link
  1090. }
  1091. })
  1092. },
  1093. async chooseIdCard(name) {
  1094. if (this.isEdit) {
  1095. this.$refs.toast.info('不可修改')
  1096. return
  1097. }
  1098. let image = (await this.$mpi.chooseImage())[0]
  1099. this.$dialog.showLoading('证件上传中...')
  1100. this.$api.ocr.idcard(image).then(res => {
  1101. if (res.data[0].errmsg != "ok") {
  1102. this.$refs.toast.error('非法证件照')
  1103. return
  1104. }
  1105. if (name == 'idCardFront') {
  1106. //上传身份证正面照解析数据
  1107. this.OCRBiziIdCardInfo = res.data[0]
  1108. this.OCRBiziIdCardInfo.idCard = this.OCRBiziIdCardInfo.id
  1109. //删除OCRBiziIdCardInfo 的id防止将id值覆盖调auditForm的id值
  1110. delete this.OCRBiziIdCardInfo.id
  1111. delete this.OCRBiziIdCardInfo.validDate
  1112. Object.assign(this.auditForm, this.OCRBiziIdCardInfo)
  1113. this.auditForm.legalPerson = this.OCRBiziIdCardInfo.name
  1114. this.form.personName = this.OCRBiziIdCardInfo.name
  1115. this.auditForm.contactLicenceNo = this.OCRBiziIdCardInfo.idCard
  1116. } else {
  1117. this.OCRBiziIdCardInfo.validDate = res.data[0].validDate
  1118. this.auditForm.validDate = res.data[0].validDate
  1119. }
  1120. this.auditForm[name] = res.data[1].link
  1121. uni.hideLoading()
  1122. }).catch(err => {
  1123. uni.hideLoading()
  1124. })
  1125. },
  1126. async chooseBizilicense() {
  1127. if (this.isEdit) {
  1128. this.$refs.toast.info('不可修改')
  1129. return
  1130. }
  1131. let image = (await this.$mpi.chooseImage())[0]
  1132. this.$dialog.showLoading('证件上传中...')
  1133. this.$api.ocr.bizilicense(image).then(res => {
  1134. if (res.data[0].errmsg != "ok") {
  1135. this.$refs.toast.error('非法证件照')
  1136. return
  1137. }
  1138. this.OCRBizilicenseInfo = res.data[0]
  1139. delete this.OCRBizilicenseInfo.typeOfEnterprise
  1140. Object.assign(this.auditForm, this.OCRBizilicenseInfo)
  1141. this.auditForm.businessLicense = res.data[1].link
  1142. this.auditForm.licenceNo = this.OCRBizilicenseInfo.serial
  1143. this.auditForm.officeAddress = this.OCRBizilicenseInfo.address
  1144. this.auditForm.entity = this.OCRBizilicenseInfo.enterpriseName
  1145. uni.hideLoading()
  1146. }).catch(err => {
  1147. uni.hideLoading()
  1148. })
  1149. },
  1150. async fetchMallList() {
  1151. let params = {
  1152. name: this.mallKeyWord,
  1153. auditStatus:'PASS',
  1154. size: 20
  1155. }
  1156. let res = await this.$api.mall.list(params)
  1157. this.mallList = res.data.records
  1158. },
  1159. fetchMallAreaList() {
  1160. this.$api.mall.getMallAreaByMallId(this.form.mallId).then(res => {
  1161. this.mallAreaList = res.data
  1162. })
  1163. },
  1164. selectMall(item) {
  1165. this.mallLabel = item.mallName
  1166. this.form.mallId = item.id
  1167. this.form.mallLabel = this.mallLabel
  1168. this.mallShow = false
  1169. // this.fetchMallAreaList()
  1170. },
  1171. mallAreaConfirm(e) {
  1172. this.mallAreaLabel = e[0].label
  1173. this.form.mallAreaId = e[0].value
  1174. },
  1175. async submit() {
  1176. let _this=this
  1177. if (this.$isEmpty(this.auditForm.idCardFront)) {
  1178. this.$refs.toast.info('请上传身份证正面照')
  1179. return
  1180. }
  1181. if (this.$isEmpty(this.auditForm.idCardContrary)) {
  1182. this.$refs.toast.info('请上传身份证反面照')
  1183. return
  1184. }
  1185. if (this.$isEmpty(this.form.personName)) {
  1186. this.$refs.toast.info('请填写商户联系人姓名')
  1187. return
  1188. }
  1189. if (this.$isEmpty(this.auditForm.contactLicenceNo)) {
  1190. this.$refs.toast.info('请填写商户联系人身份证号')
  1191. return
  1192. }
  1193. if (this.$isEmpty(this.auditForm.bankCardNo)) {
  1194. this.$refs.toast.info('请填写结算银行账户号码')
  1195. return
  1196. }
  1197. if (this.$cache.get('promotionCode')) {
  1198. this.form.agenter = this.$cache.get('promotionCode')
  1199. }
  1200. this.$refs.loading.showLoading('资料提交中..')
  1201. this.initAuditInfo()
  1202. await this.getOpenId()
  1203. let params = {
  1204. shop: this.form,
  1205. audit: this.auditForm,
  1206. }
  1207. this.$cache.put('shopAuditInfo', params)
  1208. this.$api.shop.submitAudit(params).then(res => {
  1209. setTimeout(()=>{
  1210. if (res.success == true) {
  1211. _this.$cache.remove('shopAuditInfo')
  1212. _this.doReSubmit()
  1213. _this.jump()
  1214. }
  1215. _this.$refs.loading.hide()
  1216. },300)
  1217. }).catch(err => {
  1218. setTimeout(()=>{
  1219. _this.$refs.loading.hide()
  1220. },300)
  1221. })
  1222. },
  1223. jump() {
  1224. let jumpData = {
  1225. path: '/pages/index/index',
  1226. title: this.isEdit ? '资料修改成功' : '资料提交成功,请耐心等待审核'
  1227. }
  1228. uni.redirectTo({
  1229. url: '/pages/login/submit-success?params=' + JSON.stringify(jumpData)
  1230. })
  1231. },
  1232. protocol() {
  1233. uni.navigateTo({
  1234. url: "/pages/webView/webView?url=" + this.$global.shopRegister
  1235. })
  1236. },
  1237. doReSubmit() {
  1238. if (this.isFail) {
  1239. this.flowDetail.comment = '重新修改并提交'
  1240. this.flowDetail.flag = 'ok'
  1241. this.flowDetail.variables.pass = true
  1242. this.flowDetail.variables.applyPass = false
  1243. this.$api.flow.flowAuditSubmit(this.flowDetail)
  1244. }
  1245. },
  1246. //获取推荐人的信息
  1247. async initAgenterInfo() {
  1248. if (this.$cache.get('promotionCode')) {
  1249. let agenter = this.$cache.get('promotionCode')
  1250. let records = (await this.$api.loginUser.list({
  1251. id: agenter
  1252. })).data.records
  1253. let user = records[0]
  1254. this.form.agenter = this.$isNotEmpty(user) ? user.id : ""
  1255. this.form.agentAvatar = user.avatar
  1256. this.form.agentName = user.nickName
  1257. }
  1258. },
  1259. //经营地址
  1260. initAuditInfo() {
  1261. let locationCode = this.form.locationCode.split(",")
  1262. this.auditForm.province = locationCode[0],
  1263. this.auditForm.city = locationCode[1],
  1264. this.auditForm.district = locationCode[2],
  1265. this.auditForm.address = this.form.address
  1266. this.auditForm.contactEmail = this.form.email
  1267. this.auditForm.shopName = this.form.name
  1268. this.auditForm.shopLogo = this.form.cover
  1269. this.auditForm.contactMobile = this.form.personTel
  1270. this.auditForm.contactName = this.form.personName
  1271. this.auditForm.shortName = this.form.name
  1272. if (this.$isEmpty(this.auditForm.signName)) {
  1273. this.auditForm.signName = this.auditForm.enterpriseName
  1274. }
  1275. this.auditForm.legalLicenceNo = this.auditForm.idCard
  1276. },
  1277. //字典 begin
  1278. async initDict() {
  1279. await this.getBankType()
  1280. await this.getBankAccountType()
  1281. },
  1282. async getBankType() {
  1283. let params = {
  1284. code: 'bank_type',
  1285. size: 9
  1286. }
  1287. if (this.$isNotEmpty(this.bankKeyword)) {
  1288. params.keyword = this.bankKeyword
  1289. }
  1290. let res = await this.$api.dict.dictionaryPage(params)
  1291. let list = res.data.records
  1292. if (list[0].parentId == '0') {
  1293. list.shift()
  1294. }
  1295. list.forEach(item => {
  1296. let obj = {
  1297. label: JSON.parse(item.dictValue).name,
  1298. value: item.dictKey
  1299. }
  1300. this.bankCodeList.push(obj)
  1301. })
  1302. if (this.$isEmpty(this.auditForm.bankCodeLabel) && this.$isEmpty(this.auditForm.bankCode)) {
  1303. this.auditForm.bankCodeLabel = this.bankCodeList[0].label
  1304. this.auditForm.bankCode = this.bankCodeList[0].value
  1305. }
  1306. },
  1307. async getBankAccountType() {
  1308. let res = await this.$api.dict.list({
  1309. code: 'bank_account_type'
  1310. })
  1311. res.data.forEach(item => {
  1312. let obj = {
  1313. label: item.dictValue,
  1314. value: item.dictKey
  1315. }
  1316. this.bankAccountTypeList.push(obj)
  1317. this.auditForm.bankAccountType = this.bankAccountTypeList[0].value
  1318. this.auditForm.bankAccountTypeLabel = this.bankAccountTypeList[0].label
  1319. })
  1320. },
  1321. //字典 end
  1322. bankTypeConfirm(e) {
  1323. this.bankCodeShow = false
  1324. this.auditForm.bankCodeLabel = e.label
  1325. this.auditForm.bankCode = e.value
  1326. },
  1327. bankAccountTypeConfirm(e) {
  1328. this.auditForm.bankAccountTypeLabel = e[0].label
  1329. this.auditForm.bankAccountType = e[0].value
  1330. },
  1331. }
  1332. }
  1333. </script>
  1334. <style lang="scss" scoped>
  1335. .clear {
  1336. position: absolute;
  1337. right: 50rpx;
  1338. top: 50%;
  1339. transform: translateY(-50%);
  1340. z-index: 99;
  1341. }
  1342. .title {
  1343. padding: 30rpx 40rpx;
  1344. font-size: 34rpx;
  1345. color: #000;
  1346. font-weight: 800;
  1347. }
  1348. .bg {
  1349. height: 220rpx;
  1350. background-image: linear-gradient(#D18C42, #C99864);
  1351. border-radius: 0 0 30% 30%;
  1352. }
  1353. .btn {
  1354. background-color: #EF9944;
  1355. color: #FFFFFF;
  1356. }
  1357. .border {
  1358. // border-bottom: 1rpx solid #F4F4F4;
  1359. }
  1360. .tips {
  1361. color: $color;
  1362. text-align: right;
  1363. margin-top: 10rpx;
  1364. font-size: 22rpx;
  1365. }
  1366. .card {
  1367. background-color: #FFFFFF;
  1368. padding: 40rpx;
  1369. .photo {
  1370. font-size: 26rpx;
  1371. padding-top: 20rpx;
  1372. .box {
  1373. display: flex;
  1374. justify-content: center;
  1375. align-items: center;
  1376. margin-top: 30rpx;
  1377. }
  1378. }
  1379. }
  1380. .steps1 {
  1381. display: flex;
  1382. justify-content: flex-start;
  1383. flex-direction: column;
  1384. .item {
  1385. background-color: #FFFFFF;
  1386. display: flex;
  1387. width: 100%;
  1388. justify-content: space-between;
  1389. padding: 60rpx 0rpx;
  1390. border-radius: 30rpx;
  1391. .icon {
  1392. width: 120rpx;
  1393. height: 120rpx;
  1394. border-radius: 50%;
  1395. }
  1396. .item-content {
  1397. display: flex;
  1398. flex-direction: column;
  1399. width: 70%;
  1400. margin-left: 20rpx;
  1401. text:first-child {
  1402. color: #353535;
  1403. font-size: 32rpx;
  1404. font-weight: 800;
  1405. }
  1406. text:last-child {
  1407. margin-top: 20rpx;
  1408. color: #999999;
  1409. font-size: 26rpx;
  1410. }
  1411. }
  1412. }
  1413. }
  1414. .ocr-wrapper {
  1415. margin: 40rpx auto;
  1416. width: 375rpx;
  1417. }
  1418. .intro {
  1419. margin: 40rpx;
  1420. }
  1421. </style>