registerMerchant.vue 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  1. <template>
  2. <view class="content">
  3. <view class="content">
  4. <view class="inner">
  5. <view class="bg">
  6. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/74645f3b57bc45b08b35e2449fdf90c7.jpg"></image>
  7. <view class="title">商家入驻</view>
  8. </view>
  9. <view class="my-form" >
  10. <u-form :rules="rules" :model="form" ref="uForm" labelPosition="top" errorType="toast">
  11. <u-form-item required labelWidth="auto" label="企业LOGO" prop="logoUrl">
  12. <u-upload
  13. :fileList="fileList1"
  14. @afterRead="afterRead"
  15. @delete="deletePic"
  16. name="1"
  17. :maxCount="1"
  18. ></u-upload>
  19. </u-form-item>
  20. <u-form-item required labelWidth="auto" borderBottom label="企业简称" prop="storeName">
  21. <u-input border="none" placeholder="请输入企业简称" v-model="form.storeName" maxlength="60" />
  22. </u-form-item>
  23. <u-form-item required labelWidth="auto" borderBottom label="企业全称" prop="fullName">
  24. <u-input border="none" placeholder="请输入企业全称" v-model="form.fullName" maxlength="60" />
  25. </u-form-item>
  26. <u-form-item required labelWidth="auto" borderBottom label="电话号码" prop="phone">
  27. <u-input border="none" placeholder="请输入电话号码;" v-model="form.phone" maxlength="20" />
  28. </u-form-item>
  29. <u-form-item required labelWidth="auto" borderBottom label="所在城市" prop="cityIds" @click="cityShow=true">
  30. <!-- <u-input border="none" placeholder="请输入所在城市" v-model="form.cityIds" /> -->
  31. <u-input
  32. v-model="form.address"
  33. disabled
  34. disabledColor="#ffffff"
  35. placeholder="请选择所在城市"
  36. border="none"
  37. ></u-input>
  38. <template #right>
  39. <u-icon
  40. name="arrow-right"
  41. ></u-icon>
  42. </template>
  43. </u-form-item>
  44. <u-form-item required labelWidth="auto" borderBottom label="企业地址" prop="enterpriseAddress">
  45. <u-input border="none" placeholder="请输入企业地址" v-model="form.enterpriseAddress" maxlength="100" />
  46. </u-form-item>
  47. <u-form-item required labelWidth="auto" borderBottom label="法人姓名" prop="legalPersonName">
  48. <u-input border="none" placeholder="请输入法人姓名" v-model="form.legalPersonName" maxlength="20" />
  49. </u-form-item>
  50. <u-form-item required labelWidth="auto" borderBottom label="统一社会信用代码" prop="unifiedSocialCreditCode">
  51. <u-input border="none" placeholder="请输入统一社会信用代码" v-model="form.unifiedSocialCreditCode" maxlength="60" />
  52. </u-form-item>
  53. <u-form-item required labelWidth="auto" borderBottom label="营业执照" prop="businessLicense">
  54. <u-upload
  55. :fileList="fileList2"
  56. @afterRead="afterRead"
  57. @delete="deletePic"
  58. name="2"
  59. :maxCount="1"
  60. ></u-upload>
  61. </u-form-item>
  62. <u-form-item required labelWidth="auto" borderBottom label="营业执照编码" prop="businessCode">
  63. <u-input border="none" placeholder="请输入营业执照编码" v-model="form.businessCode" maxlength="100" />
  64. </u-form-item>
  65. <u-form-item required labelWidth="auto" borderBottom label="营业执照是否长期有效" prop="isBusinessLicensePermanent">
  66. <u-radio-group placement="row" v-model="form.isBusinessLicensePermanent" >
  67. <u-radio activeColor="#2583EB" :customStyle="{marginRight: '8px'}" key="1" label="是" :name="1" > </u-radio>
  68. <u-radio activeColor="#2583EB" :customStyle="{marginRight: '8px'}" key="0" label="否" :name="0" > </u-radio>
  69. </u-radio-group>
  70. </u-form-item>
  71. <template v-if="form.isBusinessLicensePermanent==0">
  72. <!-- <u-form-item required labelWidth="auto" borderBottom label="营业执照有效期" prop="businessLicenseExpireStart" @click="openCalendar(1)">
  73. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择营业执照有效期" v-model="businessLicenseExpire" />
  74. <template #right> <u-icon name="arrow-right"></u-icon> </template>
  75. </u-form-item> -->
  76. <u-form-item :required="form.isBusinessLicensePermanent==0" labelWidth="auto" borderBottom label="营业执照有效期开始时间" prop="businessLicenseExpireStart">
  77. <picker :value="form.businessLicenseExpireStart" mode="date" fields="day" @change="pickerChange($event,'businessLicenseExpireStart')">
  78. <view class="x-f" style="justify-content: space-between;">
  79. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择开始时间" v-model="form.businessLicenseExpireStart" />
  80. <u-icon name="arrow-right"></u-icon>
  81. </view>
  82. </picker>
  83. </u-form-item>
  84. <u-form-item :required="form.isBusinessLicensePermanent==0" labelWidth="auto" borderBottom label="营业执照有效期结束时间" prop="businessLicenseExpireEnd">
  85. <picker :value="form.businessLicenseExpireEnd" mode="date" fields="day" @change="pickerChange($event,'businessLicenseExpireEnd')">
  86. <view class="x-f" style="justify-content: space-between;">
  87. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择结束时间" v-model="form.businessLicenseExpireEnd" />
  88. <u-icon name="arrow-right"></u-icon>
  89. </view>
  90. </picker>
  91. </u-form-item>
  92. </template>
  93. <u-form-item required labelWidth="auto" borderBottom label="经营范围" prop="businessScope">
  94. <u-input border="none" placeholder="请输入经营范围" v-model="form.businessScope" maxlength="1000" />
  95. </u-form-item>
  96. <u-form-item required labelWidth="auto" borderBottom label="药品经营许可证" prop="drugLicense">
  97. <u-upload
  98. :fileList="fileList3"
  99. @afterRead="afterRead"
  100. @delete="deletePic"
  101. name="3"
  102. :maxCount="1"
  103. ></u-upload>
  104. </u-form-item>
  105. <u-form-item required labelWidth="auto" borderBottom label="药品经营许可证编码" prop="drugCode">
  106. <u-input border="none" placeholder="请输入药品经营许可证编码" v-model="form.drugCode" maxlength="100" />
  107. </u-form-item>
  108. <u-form-item required labelWidth="auto" borderBottom label="药品经营许可证编号有效期开始时间" prop="drugLicenseExpiryStart">
  109. <!-- <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择药品经营许可证编号有效期" v-model="drugLicenseExpiry" />
  110. <template #right> <u-icon name="arrow-right"></u-icon> </template> -->
  111. <picker :value="form.drugLicenseExpiryStart" mode="date" fields="day" @change="pickerChange($event,'drugLicenseExpiryStart')">
  112. <view class="x-f" style="justify-content: space-between;">
  113. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择开始时间" v-model="form.drugLicenseExpiryStart" />
  114. <u-icon name="arrow-right"></u-icon>
  115. </view>
  116. </picker>
  117. </u-form-item>
  118. <u-form-item required labelWidth="auto" borderBottom label="药品经营许可证编号有效期结束时间" prop="drugLicenseExpiryEnd">
  119. <picker :value="form.drugLicenseExpiryStart" mode="date" fields="day" @change="pickerChange($event,'drugLicenseExpiryEnd')">
  120. <view class="x-f" style="justify-content: space-between;">
  121. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择结束时间" v-model="form.drugLicenseExpiryEnd" />
  122. <u-icon name="arrow-right"></u-icon>
  123. </view>
  124. </picker>
  125. </u-form-item>
  126. <u-form-item required labelWidth="auto" borderBottom label="2类器械经营备案" prop="medicalDevice2">
  127. <u-upload
  128. :fileList="fileList4"
  129. @afterRead="afterRead"
  130. @delete="deletePic"
  131. name="4"
  132. :maxCount="1"
  133. ></u-upload>
  134. </u-form-item>
  135. <u-form-item required labelWidth="auto" borderBottom label="2类器械经营备案编码" prop="medicalDevice2Code">
  136. <u-input border="none" placeholder="请输入2类器械经营备案编码" v-model="form.medicalDevice2Code" maxlength="100" />
  137. </u-form-item>
  138. <u-form-item required labelWidth="auto" borderBottom label="2类器械经营备案有效期开始时间" prop="medicalDevice2ExpiryStart">
  139. <picker :value="form.medicalDevice2ExpiryStart" mode="date" fields="day" @change="pickerChange($event,'medicalDevice2ExpiryStart')">
  140. <view class="x-f" style="justify-content: space-between;">
  141. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择开始时间" v-model="form.medicalDevice2ExpiryStart" />
  142. <u-icon name="arrow-right"></u-icon>
  143. </view>
  144. </picker>
  145. </u-form-item>
  146. <u-form-item required labelWidth="auto" borderBottom label="2类器械经营备案有效期结束时间" prop="medicalDevice2ExpiryEnd">
  147. <picker :value="form.medicalDevice2ExpiryEnd" mode="date" fields="day" @change="pickerChange($event,'medicalDevice2ExpiryEnd')">
  148. <view class="x-f" style="justify-content: space-between;">
  149. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择结束时间" v-model="form.medicalDevice2ExpiryEnd" />
  150. <u-icon name="arrow-right"></u-icon>
  151. </view>
  152. </picker>
  153. </u-form-item>
  154. <u-form-item labelWidth="auto" borderBottom label="1类器械生产备案" prop="medicalDevice1">
  155. <u-upload
  156. :fileList="fileList5"
  157. @afterRead="afterRead"
  158. @delete="deletePic"
  159. name="5"
  160. :maxCount="1"
  161. ></u-upload>
  162. </u-form-item>
  163. <u-form-item labelWidth="auto" borderBottom label="1类器械生产备案编码" prop="medicalDevice1Code">
  164. <u-input border="none" placeholder="请输入1类器械生产备案编码" v-model="form.medicalDevice1Code" maxlength="100" />
  165. </u-form-item>
  166. <u-form-item labelWidth="auto" borderBottom label="1类器械生产备案有效期开始时间" prop="medicalDevice1ExpiryStart">
  167. <picker :value="form.medicalDevice1ExpiryStart" mode="date" fields="day" @change="pickerChange($event,'medicalDevice1ExpiryStart')">
  168. <view class="x-f" style="justify-content: space-between;">
  169. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择开始时间" v-model="form.medicalDevice1ExpiryStart" />
  170. <u-icon name="arrow-right"></u-icon>
  171. </view>
  172. </picker>
  173. </u-form-item>
  174. <u-form-item labelWidth="auto" borderBottom label="1类器械生产备案有效期结束时间" prop="medicalDevice1ExpiryEnd">
  175. <picker :value="form.medicalDevice1ExpiryEnd" mode="date" fields="day" @change="pickerChange($event,'medicalDevice1ExpiryEnd')">
  176. <view class="x-f" style="justify-content: space-between;">
  177. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择结束时间" v-model="form.medicalDevice1ExpiryEnd" />
  178. <u-icon name="arrow-right"></u-icon>
  179. </view>
  180. </picker>
  181. </u-form-item>
  182. <u-form-item labelWidth="auto" borderBottom label="3类器械经营许可证" prop="medicalDevice3">
  183. <u-upload
  184. :fileList="fileList6"
  185. @afterRead="afterRead"
  186. @delete="deletePic"
  187. name="6"
  188. :maxCount="1"
  189. ></u-upload>
  190. </u-form-item>
  191. <u-form-item labelWidth="auto" borderBottom label="3类器械生产备案编码" prop="medicalDevice3Code">
  192. <u-input border="none" placeholder="请输入3类器械生产备案编码" v-model="form.medicalDevice3Code" maxlength="100" />
  193. </u-form-item>
  194. <u-form-item labelWidth="auto" borderBottom label="3类器械经营许可证有效期开始时间" prop="medicalDevice3ExpiryStart">
  195. <picker :value="form.medicalDevice3ExpiryStart" mode="date" fields="day" @change="pickerChange($event,'medicalDevice3ExpiryStart')">
  196. <view class="x-f" style="justify-content: space-between;">
  197. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择开始时间" v-model="form.medicalDevice3ExpiryStart" />
  198. <u-icon name="arrow-right"></u-icon>
  199. </view>
  200. </picker>
  201. </u-form-item>
  202. <u-form-item labelWidth="auto" borderBottom label="3类器械经营许可证有效期结束时间" prop="medicalDevice3ExpiryEnd">
  203. <picker :value="form.medicalDevice3ExpiryEnd" mode="date" fields="day" @change="pickerChange($event,'medicalDevice3ExpiryEnd')">
  204. <view class="x-f" style="justify-content: space-between;">
  205. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择结束时间" v-model="form.medicalDevice3ExpiryEnd" />
  206. <u-icon name="arrow-right"></u-icon>
  207. </view>
  208. </picker>
  209. </u-form-item>
  210. <u-form-item labelWidth="auto" borderBottom label="食品经营许可证" prop="foodLicense">
  211. <u-upload
  212. :fileList="fileList7"
  213. @afterRead="afterRead"
  214. @delete="deletePic"
  215. name="7"
  216. :maxCount="1"
  217. ></u-upload>
  218. </u-form-item>
  219. <u-form-item labelWidth="auto" borderBottom label="食品经营许可证编码" prop="foodCode">
  220. <u-input border="none" placeholder="请输入食品经营许可证编码" v-model="form.foodCode" maxlength="100" />
  221. </u-form-item>
  222. <u-form-item labelWidth="auto" borderBottom label="食品经营许可证有效期开始时间" prop="foodLicenseExpiryStart">
  223. <picker :value="form.foodLicenseExpiryStart" mode="date" fields="day" @change="pickerChange($event,'foodLicenseExpiryStart')">
  224. <view class="x-f" style="justify-content: space-between;">
  225. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择开始时间" v-model="form.foodLicenseExpiryStart" />
  226. <u-icon name="arrow-right"></u-icon>
  227. </view>
  228. </picker>
  229. </u-form-item>
  230. <u-form-item labelWidth="auto" borderBottom label="食品经营许可证有效期结束时间" prop="foodLicenseExpiryEnd">
  231. <picker :value="form.foodLicenseExpiryEnd" mode="date" fields="day" @change="pickerChange($event,'foodLicenseExpiryEnd')">
  232. <view class="x-f" style="justify-content: space-between;">
  233. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择结束时间" v-model="form.foodLicenseExpiryEnd" />
  234. <u-icon name="arrow-right"></u-icon>
  235. </view>
  236. </picker>
  237. </u-form-item>
  238. <u-form-item required labelWidth="auto" borderBottom label="医疗机构执业许可证" prop="medicalLicense">
  239. <u-upload
  240. :fileList="fileList8"
  241. @afterRead="afterRead"
  242. @delete="deletePic"
  243. name="8"
  244. :maxCount="1"
  245. ></u-upload>
  246. </u-form-item>
  247. <u-form-item required labelWidth="auto" borderBottom label="医疗机构执业许可证编码" prop="medicalCode">
  248. <u-input border="none" placeholder="请输入医疗机构执业许可证编码" v-model="form.medicalCode" maxlength="100" />
  249. </u-form-item>
  250. <u-form-item required labelWidth="auto" borderBottom label="医疗机构执业许可证有效期开始时间" prop="medicalLicenseExpiryStart">
  251. <picker :value="form.medicalLicenseExpiryStart" mode="date" fields="day" @change="pickerChange($event,'medicalLicenseExpiryStart')">
  252. <view class="x-f" style="justify-content: space-between;">
  253. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选开始时间" v-model="form.medicalLicenseExpiryStart" />
  254. <u-icon name="arrow-right"></u-icon>
  255. </view>
  256. </picker>
  257. </u-form-item>
  258. <u-form-item required labelWidth="auto" borderBottom label="医疗机构执业许可证有效期择结束时间" prop="medicalLicenseExpiryEnd">
  259. <picker :value="form.medicalLicenseExpiryEnd" mode="date" fields="day" @change="pickerChange($event,'medicalLicenseExpiryEnd')">
  260. <view class="x-f" style="justify-content: space-between;">
  261. <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择结束时间" v-model="form.medicalLicenseExpiryEnd" />
  262. <u-icon name="arrow-right"></u-icon>
  263. </view>
  264. </picker>
  265. </u-form-item>
  266. <u-form-item required labelWidth="auto" borderBottom label="发货联系电话" prop="sendPhone">
  267. <u-input border="none" placeholder="请输入发货联系电话" v-model="form.sendPhone" maxlength="20" />
  268. </u-form-item>
  269. <u-form-item required labelWidth="auto" borderBottom label="配送方式" prop="shippingType">
  270. <u-radio-group placement="row" v-model="form.shippingType" >
  271. <u-radio activeColor="#2583EB" :customStyle="{marginRight: '8px'}" key="1" label="配送" name="1" > </u-radio>
  272. <u-radio activeColor="#2583EB" :customStyle="{marginRight: '8px'}" key="2" label="到店自提" name="2" > </u-radio>
  273. <u-radio activeColor="#2583EB" :customStyle="{marginRight: '8px'}" key="3" label="配送、自提" name="3" > </u-radio>
  274. </u-radio-group>
  275. </u-form-item>
  276. <u-form-item required labelWidth="auto" borderBottom label="退货联系人" prop="refundConsignee">
  277. <u-input border="none" placeholder="请输入退货联系人" v-model="form.refundConsignee" maxlength="20" />
  278. </u-form-item>
  279. <u-form-item required labelWidth="auto" borderBottom label="退货联系电话" prop="refundPhone">
  280. <u-input border="none" placeholder="请输入退货联系电话" v-model="form.refundPhone" maxlength="20" />
  281. </u-form-item>
  282. <u-form-item required labelWidth="auto" borderBottom label="退货地址" prop="refundAddress">
  283. <u-input border="none" placeholder="请输入退货地址" v-model="form.refundAddress" maxlength="100" />
  284. </u-form-item>
  285. <u-form-item required labelWidth="auto" borderBottom label="佣金类型" prop="brokerageType">
  286. <u-radio-group placement="row" v-model="form.brokerageType" >
  287. <u-radio activeColor="#2583EB" :customStyle="{marginRight: '8px'}" key="1" label="每盒" name="1" > </u-radio>
  288. <u-radio activeColor="#2583EB" :customStyle="{marginRight: '8px'}" key="2" label="总价" name="2" > </u-radio>
  289. </u-radio-group>
  290. </u-form-item>
  291. <u-form-item required labelWidth="auto" borderBottom label="登录帐号" prop="account">
  292. <u-input border="none" placeholder="请输入登录帐号" v-model="form.account" maxlength="50" />
  293. </u-form-item>
  294. </u-form>
  295. </view>
  296. <u-picker ref="cityPicker" @cancel="cityShow = false" keyName="n" @confirm="citySelect" @change="cityChangeHandler" :show="cityShow" :columns="citys"></u-picker>
  297. <u-picker ref="deptPicker" @cancel="deptShow = false" keyName="deptName" @confirm="deptSelect" :show="deptShow" :columns="depts"></u-picker>
  298. <u-picker @cancel="hospitalShow = false" keyName="hospitalName" @confirm="hospitalSelect" :show="hospitalShow" :columns="hospitals"></u-picker>
  299. <u-picker ref="positionPicker" @cancel="positionShow = false" keyName="dictLabel" @confirm="positionSelect" :show="positionShow" :columns="positions"></u-picker>
  300. <uni-calendar ref="calendar" :range="true" :insert="false" @confirm="confirmCalendar" />
  301. </view>
  302. <view class="btn-box">
  303. <view class="sub-btn" @click="submit()">提交</view>
  304. </view>
  305. </view>
  306. </view>
  307. </template>
  308. <script>
  309. import {getDictByKey,getHospitalList,getDepartmentList,sendSmsCode,uploadOSS,getCitys} from '@/api/common.js'
  310. import {storeAdd} from './api/shopping.js'
  311. export default {
  312. data() {
  313. return {
  314. cityIndex1:0,
  315. cityIndex2:0,
  316. allCitys:[],
  317. citys:[[],[],[]],
  318. cityShow:false,
  319. depts:[[]],
  320. deptShow:false,
  321. hospitals:[[]],
  322. hospitalShow:false,
  323. positions:[[]],
  324. positionShow:false,
  325. fileList1:[],
  326. fileList2:[],
  327. fileList3:[],
  328. fileList4:[],
  329. fileList5:[],
  330. fileList6:[],
  331. fileList7:[],
  332. fileList8:[],
  333. checked:0,
  334. form:{
  335. isBusinessLicensePermanent: 1,
  336. storeName:'',
  337. fullName:'',
  338. phone:'',
  339. cityIds:'',
  340. enterpriseAddress:'',
  341. legalPersonName:'',
  342. unifiedSocialCreditCode:'',
  343. logoUrl:'',
  344. businessLicense:'',
  345. businessLicenseExpireStart:'',
  346. businessLicenseExpireEnd:'',
  347. drugLicense:'',
  348. drugLicenseExpiryStart:'',
  349. drugLicenseExpiryEnd:'',
  350. medicalDevice1:'',
  351. medicalDevice1ExpiryStart:'',
  352. medicalDevice1ExpiryEnd:'',
  353. medicalDevice2:'',
  354. medicalDevice2ExpiryStart:'',
  355. medicalDevice2ExpiryEnd:'',
  356. medicalDevice3:'',
  357. medicalDevice3ExpiryStart:'',
  358. medicalDevice3ExpiryEnd:'',
  359. foodLicense:'',
  360. foodLicenseExpiryStart:'',
  361. foodLicenseExpiryEnd:'',
  362. medicalLicense:'',
  363. medicalLicenseExpiryStart:'',
  364. medicalLicenseExpiryEnd:'',
  365. businessScope:'',
  366. address:'',
  367. refundPhone:'',
  368. refundAddress:'',
  369. refundConsignee:'',
  370. brokerageType: undefined,
  371. account:'',
  372. sendPhone:'',
  373. shippingType: undefined,
  374. medicalCode: '',
  375. foodCode: '',
  376. medicalDevice3Code: '',
  377. medicalDevice2Code: '',
  378. medicalDevice1Code: '',
  379. drugCode: '',
  380. businessCode: ''
  381. },
  382. rules: {
  383. logoUrl: [{required: true, message: '请上传企业LOGO'}],
  384. storeName: [{required: true, message: '请输入企业简称'}],
  385. fullName: [{required: true, message: '请输入企业全称'}],
  386. phone: [{required: true, message: '请输入电话号码'}],
  387. cityIds: [{required: true, message: '请选择所在城市'}],
  388. enterpriseAddress: [{required: true, message: '请输入企业地址'}],
  389. legalPersonName: [{required: true, message: '请输入法人姓名'}],
  390. unifiedSocialCreditCode: [{required: true, message: '请输入统一社会信用代码'}],
  391. businessLicense: [{required: true, message: '请上传营业执照'}],
  392. businessCode: [{required: true, message: '请输入营业执照编码'}],
  393. businessLicenseExpireStart: [],
  394. businessLicenseExpireEnd: [],
  395. drugLicense: [{required: true, message: '请上传药品经营许可证'}],
  396. drugCode: [{required: true, message: '请输入药品经营许可证编码'}],
  397. drugLicenseExpiryStart: [{required: true, message: '请选择药品经营许可证编号有效期'}],
  398. medicalDevice2: [{required: true, message: '请上传2类医疗器械备案'}],
  399. medicalDevice2Code: [{required: true, message: '请输入2类医疗器械备案编码'}],
  400. medicalDevice2ExpiryStart: [{required: true, message: '请选择2类医疗器械备案有效期'}],
  401. medicalLicense: [{required: true, message: '请上传医疗机构执业许可证'}],
  402. medicalCode: [{required: true, message: '请输入医疗机构执业许可证编码'}],
  403. medicalLicenseExpiryStart: [{required: true, message: '请选择医疗机构执业许可证有效期'}],
  404. refundPhone: [{required: true, message: '请输入退货联系电话'}],
  405. businessScope: [{required: true, message: '请输入经营范围'}],
  406. refundAddress: [{required: true, message: '请输入退货地址'}],
  407. refundConsignee: [{required: true, message: '请输入退货联系人'}],
  408. brokerageType: [{required: true, message: '请选择佣金类型'}],
  409. account: [{required: true, message: '请输入登录帐号'}],
  410. shippingType: [{required: true, message: '请选择配送方式'}],
  411. isBusinessLicensePermanent: [{required: true, message: '请选择营业执照是否长期有效'}],
  412. },
  413. calendarType: 0,
  414. businessLicenseExpire:'',
  415. drugLicenseExpiry:'',
  416. medicalDevice2Expiry:'',
  417. medicalDevice1Expiry:'',
  418. medicalDevice3Expiry:'',
  419. foodLicenseExpiry:'',
  420. medicalLicenseExpiry:''
  421. }
  422. },
  423. onLoad(options) {
  424. this.form.doctorType=options.type;
  425. this.getCitys()
  426. // this.getHospitalList();
  427. // this.getDepartmentList();
  428. // this.getDictByKey("sys_doc_position");
  429. },
  430. onShow() {
  431. },
  432. onReady() {
  433. this.$refs.uForm.setRules(this.rules);
  434. },
  435. methods: {
  436. pickerChange(e,type) {
  437. this.form[type] = e.detail.value
  438. },
  439. openCalendar(calendarType){
  440. this.calendarType=calendarType
  441. this.$refs.calendar.open();
  442. },
  443. confirmCalendar(e) {
  444. if(!e.range.before||!e.range.after) {
  445. uni.showToast({
  446. title: '请选择正确的时间范围',
  447. icon: 'none'
  448. })
  449. return
  450. }
  451. if(this.calendarType==1) {
  452. this.form.businessLicenseExpireStart = e.range.before;
  453. this.form.businessLicenseExpireEnd = e.range.after;
  454. this.businessLicenseExpire = this.form.businessLicenseExpireStart+'至'+this.form.businessLicenseExpireEnd
  455. }else if(this.calendarType==2) {
  456. this.form.drugLicenseExpiryStart = e.range.before;
  457. this.form.drugLicenseExpiryEnd = e.range.after;
  458. this.drugLicenseExpiry = this.form.drugLicenseExpiryStart+'至'+this.form.drugLicenseExpiryEnd
  459. }else if(this.calendarType==3) {
  460. this.form.medicalDevice2ExpiryStart = e.range.before;
  461. this.form.medicalDevice2ExpiryEnd = e.range.after;
  462. this.medicalDevice2Expiry = this.form.medicalDevice2ExpiryStart+'至'+this.form.medicalDevice2ExpiryEnd
  463. }else if(this.calendarType==4) {
  464. this.form.medicalDevice1ExpiryStart = e.range.before;
  465. this.form.medicalDevice1ExpiryEnd = e.range.after;
  466. this.medicalDevice1Expiry = this.form.medicalDevice1ExpiryStart+'至'+this.form.medicalDevice1ExpiryEnd
  467. }else if(this.calendarType==5) {
  468. this.form.medicalDevice3ExpiryStart = e.range.before;
  469. this.form.medicalDevice3ExpiryEnd = e.range.after;
  470. this.medicalDevice3Expiry = this.form.medicalDevice3ExpiryStart+'至'+this.form.medicalDevice3ExpiryEnd
  471. }else if(this.calendarType==6) {
  472. this.form.foodLicenseExpiryStart = e.range.before;
  473. this.form.foodLicenseExpiryEnd = e.range.after;
  474. this.foodLicenseExpiry = this.form.foodLicenseExpiryStart+'至'+this.form.foodLicenseExpiryEnd
  475. }else if(this.calendarType==7) {
  476. this.form.medicalLicenseExpiryStart = e.range.before;
  477. this.form.medicalLicenseExpiryEnd = e.range.after;
  478. this.medicalLicenseExpiry = this.form.medicalLicenseExpiryStart+'至'+this.form.medicalLicenseExpiryEnd
  479. }
  480. console.log(e);
  481. },
  482. hospitalSelect(e){
  483. this.form.hospitalId=this.hospitals[0][e.indexs[0]].hospitalId;
  484. this.form.hospitalName=this.hospitals[0][e.indexs[0]].hospitalName;
  485. this.hospitalShow=false;
  486. },
  487. deptSelect(e){
  488. console.log(e)
  489. this.form.deptId=this.depts[0][e.indexs[0]].deptId;
  490. this.form.deptName=this.depts[0][e.indexs[0]].deptName;
  491. this.deptShow=false;
  492. },
  493. positionSelect(e){
  494. console.log(e)
  495. this.form.position=this.positions[0][e.indexs[0]].dictLabel;
  496. this.positionShow=false;
  497. },
  498. getDictByKey(key){
  499. var data={key:key}
  500. getDictByKey(data).then(
  501. res => {
  502. if(res.code==200){
  503. this.positions[0]=res.data;
  504. }
  505. },
  506. err => {
  507. }
  508. );
  509. },
  510. openContent(type){
  511. uni.navigateTo({
  512. url:"agreement?type="+type
  513. })
  514. },
  515. cityChangeHandler(e) {
  516. const {
  517. columnIndex,
  518. index,
  519. // 微信小程序无法将picker实例传出来,只能通过ref操作
  520. picker = this.$refs.cityPicker
  521. } = e
  522. if(columnIndex==0){
  523. this.cityIndex1=index
  524. console.log(this.cityIndex1)
  525. //获取第二列数据
  526. var citys1 = this.allCitys[this.cityIndex1].c;
  527. console.log(citys1)
  528. picker.setColumnValues(1,citys1)
  529. this.cityIndex2=0
  530. var citys2 = this.allCitys[this.cityIndex1].c[this.cityIndex2].c;
  531. picker.setColumnValues(2,citys2)
  532. }
  533. if(columnIndex==1){
  534. this.cityIndex2=index
  535. //获取第三列数据
  536. var citys = this.allCitys[this.cityIndex1].c[this.cityIndex2].c;
  537. console.log(citys)
  538. picker.setColumnValues(2,citys)
  539. }
  540. },
  541. citySelect(e){
  542. console.log(e)
  543. this.form.address=e.value[0].n+""+e.value[1].n+""+e.value[2].n
  544. this.form.cityIds=e.value[0].v+","+e.value[1].v+","+e.value[2].v;
  545. this.cityShow=false;
  546. },
  547. getCitys(){
  548. var that=this;
  549. var data={}
  550. getCitys(data).then(
  551. res => {
  552. if(res.code==200){
  553. that.allCitys=res.data;
  554. that.citys=[[],[],[]];
  555. that.citys[0]=that.allCitys;
  556. that.citys[1]=that.allCitys[0].c;
  557. that.citys[2]=that.allCitys[0].c[0].c;
  558. console.log(that.citys)
  559. }
  560. },
  561. err => {
  562. }
  563. );
  564. },
  565. getHospitalList(){
  566. var that=this;
  567. var data={}
  568. getHospitalList(data).then(
  569. res => {
  570. if(res.code==200){
  571. that.hospitals[0]=res.data;
  572. console.log(111)
  573. console.log(that.hospitals)
  574. }
  575. },
  576. err => {
  577. }
  578. );
  579. },
  580. getDepartmentList(){
  581. var that=this;
  582. var data={}
  583. getDepartmentList(data).then(
  584. res => {
  585. if(res.code==200){
  586. that.depts[0]=res.data;
  587. }
  588. },
  589. err => {
  590. }
  591. );
  592. },
  593. deletePic(event) {
  594. this[`fileList${event.name}`].splice(event.index, 1)
  595. },
  596. async afterRead(event) {
  597. // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
  598. let lists = [].concat(event.file)
  599. let fileListLen = this[`fileList${event.name}`].length
  600. lists.map((item) => {
  601. this[`fileList${event.name}`].push({
  602. ...item,
  603. status: 'uploading',
  604. message: '上传中'
  605. })
  606. })
  607. for (let i = 0; i < lists.length; i++) {
  608. const result = await this.uploadFilePromise(lists[i].url)
  609. let item = this[`fileList${event.name}`][fileListLen]
  610. this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
  611. status: 'success',
  612. message: '',
  613. url: result
  614. }))
  615. fileListLen++
  616. }
  617. },
  618. uploadFilePromise(url) {
  619. return new Promise((resolve, reject) => {
  620. let a = uni.uploadFile({
  621. url: uni.getStorageSync('requestPath')+'/app/common/uploadOSS',
  622. filePath: url,
  623. name: 'file',
  624. formData: {
  625. user: 'test'
  626. },
  627. success: (res) => {
  628. setTimeout(() => {
  629. console.log(JSON.parse(res.data).url)
  630. resolve(JSON.parse(res.data).url)
  631. }, 1000)
  632. }
  633. });
  634. })
  635. },
  636. register(){
  637. storeAdd(this.form).then(
  638. res => {
  639. console.log(res)
  640. if(res.code==200){
  641. uni.showToast({
  642. icon:'none',
  643. title:res.msg,
  644. });
  645. setTimeout(function() {
  646. uni.navigateBack({
  647. delta: 1
  648. })
  649. }, 2000);
  650. }else{
  651. uni.showToast({
  652. icon:'none',
  653. title: res.msg,
  654. });
  655. }
  656. },
  657. rej => {
  658. console.log(rej)
  659. }
  660. );
  661. },
  662. submit(){
  663. var that=this;
  664. if(this.fileList1.length>0){
  665. this.form.logoUrl=this.fileList1[0].url
  666. }
  667. if(this.fileList2.length>0){
  668. this.form.businessLicense=this.fileList2[0].url
  669. }
  670. if(this.fileList3.length>0){
  671. this.form.drugLicense=this.fileList3[0].url
  672. }
  673. if(this.fileList4.length>0){
  674. this.form.medicalDevice2=this.fileList4[0].url
  675. }
  676. if(this.fileList5.length>0){
  677. this.form.medicalDevice1=this.fileList5[0].url
  678. }
  679. if(this.fileList6.length>0){
  680. this.form.medicalDevice3=this.fileList6[0].url
  681. }
  682. if(this.fileList7.length>0){
  683. this.form.foodLicense=this.fileList7[0].url
  684. }
  685. if(this.fileList8.length>0){
  686. this.form.medicalLicense=this.fileList8[0].url
  687. }
  688. console.log(this.form)
  689. const requiredFlag = this.form.isBusinessLicensePermanent == 0
  690. if(requiredFlag==2&&!this.form.businessLicenseExpireStart) {
  691. uni.showToast({
  692. title: '请选择营业执照有效期开始时间',
  693. icon: 'none'
  694. })
  695. return
  696. }
  697. if(requiredFlag==2&&!this.form.businessLicenseExpireEnd) {
  698. uni.showToast({
  699. title: '请选择营业执照有效期开始时间',
  700. icon: 'none'
  701. })
  702. return
  703. }
  704. /* 关键:改的是原来就存在的数组,保证响应式 */
  705. // this.rules.businessLicenseExpireStart = requiredFlag
  706. // ? [{ required: true, message: '请选择营业执照有效期开始时间' }]
  707. // : []
  708. // this.rules.businessLicenseExpireEnd = requiredFlag
  709. // ? [{ required: true, message: '请选择营业执照有效期结束时间' }]
  710. // : []
  711. // this.$refs.uForm.setRules(this.rules);
  712. console.log("下发")
  713. // this.$nextTick(() => {
  714. this.$refs.uForm.validate().then(res => {
  715. if(res) {
  716. this.register()
  717. }
  718. })
  719. // })
  720. },
  721. }
  722. }
  723. </script>
  724. <style scoped lang="scss">
  725. .es-ml-14 {
  726. margin-right: 14rpx;
  727. }
  728. .content{
  729. display: flex;
  730. flex-direction: column;
  731. justify-content: flex-start;
  732. .inner{
  733. padding: 20upx 20rpx 120rpx;
  734. .bg{
  735. width: 100%;
  736. height: 300rpx;
  737. position: relative;
  738. display: flex;
  739. flex-direction: column;
  740. justify-content: center;
  741. align-items: flex-start;
  742. image{
  743. position: absolute;
  744. border-radius: 30rpx 30rpx 0rpx 0rpx;
  745. width: 100%;
  746. height: 100%;
  747. }
  748. .title{
  749. z-index: 999;
  750. padding: 0rpx 30rpx;
  751. font-size: 40upx;
  752. font-family: PingFang SC;
  753. font-weight: bold;
  754. color: #FFFFFF;
  755. }
  756. .desc{
  757. z-index: 999;
  758. padding: 0rpx 30rpx;
  759. margin-top: 20rpx;
  760. font-size: 28upx;
  761. opacity: 0.5;
  762. font-family: PingFang SC;
  763. color: #FFFFFF;
  764. }
  765. }
  766. .my-form{
  767. z-index: 1;
  768. background-color: #FFFFFF;
  769. padding: 0 30upx;
  770. input{
  771. text-align: right;
  772. }
  773. }
  774. }
  775. .agree{
  776. padding: 10rpx 20rpx;
  777. display: flex;
  778. align-items: center;
  779. justify-content: flex-start;
  780. .label{
  781. font-size: 24rpx;
  782. }
  783. .text{
  784. margin-left: 10rpx;
  785. color: royalblue;
  786. font-size: 24rpx;
  787. }
  788. }
  789. .btn-box{
  790. z-index: 90;
  791. width: 100%;
  792. position: fixed;
  793. bottom: 0;
  794. height: 120upx;
  795. padding: 0 30upx;
  796. display: flex;
  797. align-items: center;
  798. justify-content: center;
  799. background: #FFFFFF;
  800. .sub-btn{
  801. width: 100%;
  802. height: 88upx;
  803. line-height: 88upx;
  804. text-align: center;
  805. font-size: 30upx;
  806. font-family: PingFang SC;
  807. font-weight: bold;
  808. color: #FFFFFF;
  809. background: #2583EB;
  810. border-radius: 44upx;
  811. }
  812. }
  813. }
  814. </style>