帧视界壹通告,付费看视频的微信小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

315 lines
8.1 KiB

10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
  1. <template>
  2. <view class="auth-firm">
  3. <!--顶部导航栏-->
  4. <navbar leftClick @leftClick="$utils.navigateBack" title="认证企业" />
  5. <!--身份信息页面-->
  6. <view class="container">
  7. <view class="form-item">
  8. <view class="label">法人真实姓名</view>
  9. <view class="input">
  10. <input type="text" v-model="certifiedIndividual.name" />
  11. </view>
  12. </view>
  13. <uv-divider :hairline="false" lineColor="#c0c0c0" dot></uv-divider>
  14. <view class="form-item">
  15. <view class="label">法人身份证号</view>
  16. <view class="input">
  17. <input type="text" v-model="certifiedIndividual.card" />
  18. </view>
  19. </view>
  20. <uv-divider :hairline="false" lineColor="#c0c0c0" dot></uv-divider>
  21. <view class="form-item">
  22. <view class="label">营业执照</view>
  23. <view class="avatarFace" @click="uploadImage('tradeImage')">
  24. <image v-if="certifiedIndividual.tradeImage" :src="certifiedIndividual.tradeImage" style="width: 100%;height: 100%"></image>
  25. <image v-else src="../static/auth/3.png" style="width: 50%;height: 50%"></image>
  26. </view>
  27. </view>
  28. <uv-divider :hairline="false" lineColor="#c0c0c0" dot></uv-divider>
  29. <view class="form-item">
  30. <view class="label">其他资质</view>
  31. <view class="qtzz">
  32. <!-- <image v-if="certifiedIndividual.otherImage" :src="certifiedIndividual.otherImage"
  33. style="width: 100%;height: 100%"></image>
  34. <image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image> -->
  35. <uv-upload :fileList="fileList" :maxCount="5" multiple width="150rpx" height="150rpx"
  36. @delete="deleteImage" @afterRead="afterRead" :previewFullImage="true"></uv-upload>
  37. </view>
  38. </view>
  39. </view>
  40. <!--请仔细阅读平台用户协议隐私协议-->
  41. <view class="agree">
  42. <!-- <view> -->
  43. <uv-checkbox-group v-model="checkboxValue" placement="column" size="35" activeColor="#008000"
  44. inactiveColor="#999999">
  45. <uv-checkbox shape='circle' :checked="true" name="apple" :label="labelValue ? labelValue : ''"
  46. iconSize="35">
  47. </uv-checkbox>
  48. </uv-checkbox-group>
  49. 请仔细阅读平台<span style="color:#009dff">用户协议</span><span style="color:#009dff">隐私协议</span>
  50. <!-- </view> -->
  51. </view>
  52. <!--下一步按钮-->
  53. <button @click="onNextClick" class="bottomBtn"
  54. v-if="certifiedIndividual.state != 1">
  55. 立即认证
  56. </button>
  57. <confirmationPopup ref="confirmationPopup" title="提示" cancel :cancelText="cancelText[type]" @confirm="submit"
  58. round="0" @cancel="$refs.confirmationPopup.close()" :confirmText="confirmText[type]">
  59. <view class="confirmationPopup" v-if="type == 0">
  60. <uv-parse :content="content"></uv-parse>
  61. </view>
  62. <view class="confirmationPopup" style="padding: 70rpx 20rpx;" v-if="type == 1">
  63. 本次认证需付费确认
  64. </view>
  65. </confirmationPopup>
  66. <!-- 平台审核弹框 -->
  67. <confirmationPopup ref="confirmationPopupUpload" title="提示" confirmText="确认" @confirm="confirm()">
  68. <view class="confirmationPopup">
  69. <image src="/static/image/publish/upload.png" style="width: 150rpx;height: 150rpx;" mode=""></image>
  70. <view class="info">
  71. 已由平台进行审核时间周期为24小时
  72. </view>
  73. </view>
  74. </confirmationPopup>
  75. </view>
  76. </template>
  77. <script>
  78. import '../../common.css'; // 引入公共 CSS 文件
  79. import confirmationPopup from '@/components/toast/confirmationPopup.vue';
  80. import {
  81. mapState
  82. } from 'vuex'
  83. export default {
  84. components: {
  85. confirmationPopup,
  86. },
  87. data() {
  88. return {
  89. name: 'xiaohua',
  90. idCard: '2101472154874512',
  91. cancelText: ['不同意', '取消'],
  92. confirmText: ['同意', '同意并支付'],
  93. type: 0,
  94. labelValue: '', // 如果labelValue为空,则不会显示任何内容
  95. checkboxValue: [],
  96. fileList: [],
  97. form: {},
  98. authMoney: 0,
  99. content: '',
  100. }
  101. },
  102. computed: {
  103. ...mapState(['certifiedIndividual']),
  104. ...mapState(['configList'])
  105. },
  106. mounted() {
  107. this.openConfigMenu("getPrivacyPolicy")
  108. },
  109. onShow() {
  110. let self = this
  111. console.log(this.certifiedIndividual);
  112. this.certifiedIndividual.otherImage && this.certifiedIndividual.otherImage.split(',')
  113. .forEach(url => {
  114. self.fileList.push({
  115. url
  116. })
  117. })
  118. },
  119. methods: {
  120. //打开配置信息菜单
  121. openConfigMenu(key) {
  122. this.content = this.configList[key]
  123. // this.$refs.popup.open('bottom');
  124. },
  125. deleteImage(e) {
  126. this.fileList.splice(e.index, 1)
  127. },
  128. afterRead(e) {
  129. let self = this
  130. e.file.forEach(file => {
  131. self.$Oss.ossUpload(file.url).then(url => {
  132. self.fileList.push({
  133. url
  134. })
  135. })
  136. })
  137. },
  138. uploadImage(key) {
  139. this.$Oss.ossUploadImage({
  140. success: url => {
  141. this.$nextTick(() => {
  142. // this.form.tradeImage = url
  143. this.$set(this.certifiedIndividual, key, url);
  144. // this.$set(this.form, key, url);
  145. })
  146. }
  147. })
  148. },
  149. onNextClick() {
  150. this.form.imageStraight = this.certifiedIndividual.imageStraight
  151. this.form.imageReverseSide = this.certifiedIndividual.imageReverseSide
  152. // this.form.tradeImage = this.certifiedIndividual.tradeImage
  153. if (this.$utils.verificationAll(this.certifiedIndividual, {
  154. imageReverseSide: '请上传身份证背面',
  155. imageStraight: '请上传身份证正面',
  156. card: '请输入身份证号',
  157. tradeImage: '请上传身份证正面',
  158. })) {
  159. return
  160. }
  161. this.$refs.confirmationPopup.open()
  162. },
  163. submit() {
  164. this.$refs.confirmationPopup.close()
  165. if (this.type == 0) {
  166. setTimeout(() => {
  167. this.type = 1
  168. this.$refs.confirmationPopup.open()
  169. }, 500)
  170. } else {
  171. this.certifiedIndividual.otherImage = this.fileList.map((item) => item.url).join(",")
  172. // this.form.imageStraight = this.certifiedIndividual.imageStraight
  173. // this.form.imageReverseSide = this.certifiedIndividual.imageReverseSide
  174. // this.form.tradeImage = this.certifiedIndividual.tradeImage
  175. this.$api('infoSubmitCompanyCertification', this.certifiedIndividual,
  176. res => {
  177. if (res.code == 200) {
  178. if(this.certifiedIndividual.state == 2){
  179. return self.$refs.confirmationPopupUpload.open()
  180. }
  181. const self = this
  182. uni.requestPayment({
  183. provider: 'wxpay', // 服务提提供商
  184. timeStamp: res.result.timeStamp, // 时间戳
  185. nonceStr: res.result.nonceStr, // 随机字符串
  186. package: res.result.packageValue,
  187. signType: res.result.signType, // 签名算法
  188. paySign: res.result.paySign, // 签名
  189. success: function(res) {
  190. // console.log('支付成功', res);
  191. // uni.showToast({
  192. // title: '认证成功',
  193. // icon: 'none'
  194. // })
  195. self.$refs.confirmationPopupUpload.open()
  196. },
  197. fail: function(err) {
  198. console.log('支付失败', err);
  199. self.$refs.confirmationPopup.close()
  200. uni.showToast({
  201. icon: 'none',
  202. title: "支付失败"
  203. })
  204. }
  205. });
  206. }
  207. })
  208. }
  209. },
  210. confirm() {
  211. uni.redirectTo({
  212. url: '/pages/index/center'
  213. })
  214. },
  215. }
  216. }
  217. </script>
  218. <style scoped lang="scss">
  219. * {
  220. box-sizing: border-box;
  221. margin: 0;
  222. padding: 0;
  223. }
  224. .auth-firm {
  225. .container {
  226. padding: 100rpx 50rpx 50rpx 50rpx;
  227. //border: 1px solid red;
  228. .header {
  229. margin-bottom: 40rpx;
  230. font-size: 28rpx;
  231. color: #666;
  232. }
  233. .form-item {
  234. margin-bottom: 40rpx;
  235. .label {
  236. font-size: 36rpx;
  237. margin-bottom: 10px;
  238. display: block;
  239. }
  240. .input {
  241. font-size: 30rpx;
  242. margin-top: 40rpx;
  243. background-color: #f7f7f7;
  244. padding: 20rpx;
  245. border: 1px solid #66666633;
  246. }
  247. .avatarFace {
  248. width: 150rpx;
  249. height: 150rpx;
  250. }
  251. .qtzz {
  252. // width: 150rp;
  253. height: 150rpx;
  254. }
  255. }
  256. }
  257. .agree {
  258. display: flex;
  259. justify-content: center;
  260. position: fixed;
  261. bottom: 12%;
  262. left: 5%;
  263. }
  264. .confirmationPopup {
  265. max-height: 60vh;
  266. overflow-y: auto;
  267. overflow-x: hidden;
  268. width: 600rpx;
  269. padding: 20rpx;
  270. text-align: center;
  271. }
  272. }
  273. </style>