registerMerchant.vue 38 KB

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