douyinbind.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636
  1. <template>
  2. <view style="position: relative;">
  3. <!-- 胶囊 -->
  4. <mvBar :mysNavConfig="mysNavConfig"></mvBar>
  5. <view :style="{marginTop:navH}"></view>
  6. <view class="home">
  7. <view class="card" v-if="!loading">
  8. <view class="head">
  9. <image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/pingtai2.png" mode="aspectFill">
  10. </image>
  11. <span>抖音账号绑定</span>
  12. </view>
  13. <view class="body">
  14. <view>
  15. <!-- 放用户信息 -->
  16. <view>
  17. <p>用户抖音平台头像昵称等信息展示</p>
  18. <p>用户抖音平台头像昵称等信息展示</p>
  19. <p>用户抖音平台头像昵称等信息展示</p>
  20. </view>
  21. <!-- 分割线 -->
  22. <view class="heng-line"></view>
  23. <!-- 点击弹窗 toggle(触发)-->
  24. <button class="btn1" @click="getqrcode('center')">
  25. 添加抖音账号</button>
  26. </view>
  27. </view>
  28. </view>
  29. </view>
  30. <!-- 普通弹窗 公众号-->
  31. <uni-popup ref="popup4" class="share" background-color="#fff" @change="change" :maskClick="true">
  32. <view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
  33. <view class="sharepage">
  34. <view class="projecttext1">
  35. <span>抖音账号登录</span>
  36. </view>
  37. <view class="sharetxt">
  38. <text style="color:#9a9a9a ;">
  39. 截屏或下载二维码,使用抖音APP\n
  40. 打开[首页-搜索-扫一扫]后扫码进行
  41. </text>
  42. </view>
  43. <view class="sharemap">
  44. <!-- <image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/kefu.jpeg"
  45. style="width: 400rpx;height: 400rpx;" mode=""></image> -->
  46. <image :src="qrcodeURL" style="width: 300rpx;height: 300rpx;" mode=""></image>
  47. </view>
  48. <view style="margin: 30rpx 0;">
  49. <button class="butmin1" size="mini" @tap="freshqrcode">刷新二维码(300s后到期)</button>
  50. </view>
  51. <!--
  52. ·同步账号基础信息及查看账号运营数据\n
  53. ·获得免费领样权限\n
  54. ·获得承接抖音悬赏任务权限\n
  55. ·为达人橱窗快速选品\n
  56. ·为直播带货快速选品\n
  57. ·样叽专属高佣商品,同一商品,更高佣金\n
  58. ·变现种草任务参与资质\n -->
  59. <view class="importentInfo1">
  60. <view class="sharetxt1" style="font-size: 22rpx;">
  61. <text style="white-space: pre-line; text-align: left;line-height: 1;">
  62. 登录成功后: \n
  63. ·同步账号基础信息及查看账号运营数据\n
  64. ·获得免费领样权限\n
  65. ·获得承接抖音悬赏任务权限\n
  66. ·为达人橱窗快速选品\n
  67. ·为直播带货快速选品\n
  68. ·样叽专属高佣商品,同一商品,更高佣金\n
  69. ·变现种草任务参与资质\n
  70. </text>
  71. </view>
  72. </view>
  73. <view style="margin: 30rpx 0;">
  74. <button class="butmin" size="mini" @tap="saveImage">下载二维码至手机</button>
  75. </view>
  76. </view>
  77. </view>
  78. </uni-popup>
  79. </view>
  80. </template>
  81. <script>
  82. import mvBar from "@/components/mys_navBar/mysNavBar";
  83. import htzImageUpload from '@/components/htz-image-upload/htz-image-upload.vue';
  84. import getPolicyEncode from '@/components/obs/getPolicy.js';
  85. import getSignature from '@/components/obs/GetSignature.js';
  86. export default {
  87. components: {
  88. mvBar,
  89. htzImageUpload,
  90. },
  91. data() {
  92. return {
  93. qrcodeURL: '', // 用来保存二维码URL的变量
  94. navH: getApp().globalData.navHeight,
  95. hasClicked: false,
  96. loading: true,
  97. accountId: '',
  98. platform: {
  99. platform_id: '',
  100. platform_name: '',
  101. platform_icon: '',
  102. },
  103. isBind: true,
  104. imageData: [],
  105. formData: {
  106. platform_nickname: '',
  107. fans_count: '',
  108. home_page_url: '',
  109. home_page_capture_url: ''
  110. },
  111. // 二维码地址
  112. imageUrl: '',
  113. index: 0,
  114. fansLabel: "选择单位",
  115. fansCount: null,
  116. fansCountInfo: 1,
  117. fansRange: [{
  118. value: 1,
  119. label: '个'
  120. },
  121. {
  122. value: 10000,
  123. label: '万'
  124. },
  125. {
  126. value: 100000000,
  127. label: '亿'
  128. }
  129. ],
  130. mysNavConfig: {
  131. /* 开启单页显示首页图标 */
  132. isHome: true,
  133. /* 固定导航 */
  134. navFixed: true,
  135. /* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
  136. navTitle: {
  137. text: "社媒账号绑定",
  138. color: "",
  139. fontSize: "32rpx", // px upx rpx
  140. fontWeight: "normal", // 100 - 700
  141. },
  142. btnType: "type2",
  143. onLeftClick: '',
  144. /* type2 按钮 */
  145. type2Config: {
  146. // 左图标
  147. leftPath: "/static/img/png2.png",
  148. // 右图标
  149. rightPath: "/static/img/png4.png",
  150. // 圆角
  151. radius: "40rpx",
  152. },
  153. }, // 密码登录校验规则
  154. bindRules: {
  155. name: {
  156. rules: [{
  157. required: true,
  158. errorMessage: '请输入昵称'
  159. }]
  160. },
  161. home_img: {
  162. rules: [{
  163. required: true,
  164. errorMessage: '请上传主页截图',
  165. }]
  166. }
  167. },
  168. urlRegList: [
  169. /(.*)http(s?)\:\/\/((www\.)?)(xiaohongshu\.com)(.*)/,
  170. /(.*)http(s?)\:\/\/((www\.)?)((v\.)?)(douyin\.com)(.*)/,
  171. /(.*)http(s?)\:\/\/((www\.)?)((m\.)?)(weibo\.(com|cn))(.*)/,
  172. /(.*)http(s?)\:\/\/((www\.)?)((v|kpfshanghai)\.m\.chenzhongtech\.com)(.*)/,
  173. /(.*)http(s?)\:\/\/((www\.)?)(b23\.tv)(.*)/,
  174. /(.*)http(s?)\:\/\/((www\.)?)((m\.)?)(dianping\.(com|cn))(.*)/,
  175. /(.*)http(s?)\:\/\/((www\.)?)(zhihu\.com)(.*)/,
  176. ]
  177. }
  178. },
  179. onReady() {},
  180. async onShow() {},
  181. async onLoad(options) {
  182. this.platform.platform_id = parseInt(options.platform_id)
  183. if (options.account_id) {
  184. this.accountId = parseInt(options.account_id)
  185. this.isBind = false
  186. }
  187. this.loading = true;
  188. uni.showLoading({
  189. title: '加载中'
  190. });
  191. await this.getinfo();
  192. if (!this.isBind) {
  193. await this.getaccount()
  194. };
  195. this.loading = false;
  196. uni.hideLoading();
  197. },
  198. methods: {
  199. // 获得二维码
  200. getqrcode(type) {
  201. this.type4 = type;
  202. this.$refs.popup4.open(type);
  203. console.log('into func*************');
  204. uni.request({
  205. url: 'https://open.douyin.com/oauth/get_qrcode/?passport_jssdk_version=1.0.13&passport_jssdk_type=pro&aid=1128&language=zh&client_key=awi77xl5kpl16hmi&scope=user_info%2Ctrial.whitelist&next=https%3A%2F%2Fwww.younggee.com%2Fdouyinauth&jump_type=native&optional_scope_check=&optional_scope_uncheck=&customize_params=%7B%22comment_id%22%3A%22%22%2C%22source%22%3A%22pc_auth%22%2C%22not_skip_confirm%22%3A%22true%22%2C%22enter_from%22%3A%22%22%7D&account_sdk_source=web&account_sdk_source_info=7e276d64776172647760466a6b66707777606b667c273f3d292772606761776c736077273f63646976602927756970626c6b76273f5e27466d776a68602555414325556970626c6b272927466d776a68602555414325536c6072607727582927756077686c76766c6a6b76273f5e7e276b646860273f2762606a696a6664716c6a6b2729277671647160273f2775776a6875712778297e276b646860273f276b6a716c636c6664716c6a6b762729277671647160273f2775776a6875712778297e276b646860273f27736c61606a5a666475717077602729277671647160273f2775776a6875712778297e276b646860273f276470616c6a5a666475717077602729277671647160273f2775776a68757127785829276c6b6b60774d606c626d71273f31333729276c6b6b6077526c61716d273f343c373529276a707160774d606c626d71273f3435363529276a70716077526c61716d273f343c343d292767606d64736c6a77273f7e27716a70666d273f63646976602927686a707660273f7177706029276e607c476a647761273f717770607829277260676269273f7e27736077766c6a6b273f27526067424925342b35252d4a75606b424925405625372b3525466d776a686c70682c27292773606b616a77273f275260674e6c7127292777606b6160776077273f275260674e6c7125526067424927782927776074706076715a6d6a7671273f276a75606b2b616a707c6c6b2b666a68272927776074706076715a7564716d6b646860273f272a75696471636a77682a6a6470716d2a666a6b6b6066712a2778&passport_ztsdk=3.0.18&passport_verify=1.0.12&biz_trace_id=c8fab9c7&sign=522f8cd42965082a746c62fccfa426c5e2cc6ab2f4f13be00e433f68aa51eeb8&qs=6466666a706b715a76616e5a766a70776660296466666a706b715a76616e5a766a707766605a6c6b636a29646c6129676c7f5a71776466605a6c612966696c606b715a6e607c29667076716a686c7f605a756477646876296f7068755a717c75602969646b6270646260296b607d71296a75716c6a6b64695a76666a75605a666d60666e&msToken=DDc81_VkM-V4QJaHKg2C2Lvg5f-6Agu5VDxr9qnaheVbVQJpbU5KxsDtmpcgi20Vx1oWHiVypYFKXCiTyY-lofrSzcWtJNjZzzFek5r8scIhiFTzh1h3nOFayJFCqHo%3D&a_bogus=DjWwBR0XmDIPffWk51VLfY3q3UH3YDtV0afLMDg1VVvCj639HMTm9exL4HTvdWRjLT%2FAIegjy4hbO3xprQQ90Hwf7WhO%2F2CZmy00cMlM59TjUZ4nCfumE0DF-vUUSaBB5vlUrOXgqXlHFbYsAnAn4XKUbfqca1hMHjkrPVrUfptsH6W%3D',
  206. method: 'GET',
  207. success: (res) => {
  208. // 将响应结果存储在data中的变量中,以便在页面上显示或打印
  209. this.qrcodeURL = 'data:image/png;base64,' + res.data.data.qrcode;
  210. console.log("res ", res); // 可以在控制台打印响应结果
  211. console.log("this.qrcodeURL ", this.qrcodeURL); // 可以在控制台打印响应结果
  212. }
  213. })
  214. },
  215. // 刷新二维码 下面的url一周时间左右以后,持续请求报错非法请求
  216. freshqrcode() {
  217. uni.request({
  218. url: 'https://open.douyin.com/oauth/get_qrcode/?passport_jssdk_version=1.0.13&passport_jssdk_type=pro&aid=1128&language=zh&client_key=awi77xl5kpl16hmi&scope=user_info%2Ctrial.whitelist&next=https%3A%2F%2Fwww.younggee.com%2Fdouyinauth&jump_type=native&optional_scope_check=&optional_scope_uncheck=&customize_params=%7B%22comment_id%22%3A%22%22%2C%22source%22%3A%22pc_auth%22%2C%22not_skip_confirm%22%3A%22true%22%2C%22enter_from%22%3A%22%22%7D&account_sdk_source=web&account_sdk_source_info=7e276d64776172647760466a6b66707777606b667c273f3d292772606761776c736077273f63646976602927756970626c6b76273f5e27466d776a68602555414325556970626c6b272927466d776a68602555414325536c6072607727582927756077686c76766c6a6b76273f5e7e276b646860273f2762606a696a6664716c6a6b2729277671647160273f2775776a6875712778297e276b646860273f276b6a716c636c6664716c6a6b762729277671647160273f2775776a6875712778297e276b646860273f27736c61606a5a666475717077602729277671647160273f2775776a6875712778297e276b646860273f276470616c6a5a666475717077602729277671647160273f2775776a68757127785829276c6b6b60774d606c626d71273f31333729276c6b6b6077526c61716d273f343c373529276a707160774d606c626d71273f3435363529276a70716077526c61716d273f343c343d292767606d64736c6a77273f7e27716a70666d273f63646976602927686a707660273f7177706029276e607c476a647761273f717770607829277260676269273f7e27736077766c6a6b273f27526067424925342b35252d4a75606b424925405625372b3525466d776a686c70682c27292773606b616a77273f275260674e6c7127292777606b6160776077273f275260674e6c7125526067424927782927776074706076715a6d6a7671273f276a75606b2b616a707c6c6b2b666a68272927776074706076715a7564716d6b646860273f272a75696471636a77682a6a6470716d2a666a6b6b6066712a2778&passport_ztsdk=3.0.18&passport_verify=1.0.12&biz_trace_id=c8fab9c7&sign=522f8cd42965082a746c62fccfa426c5e2cc6ab2f4f13be00e433f68aa51eeb8&qs=6466666a706b715a76616e5a766a70776660296466666a706b715a76616e5a766a707766605a6c6b636a29646c6129676c7f5a71776466605a6c612966696c606b715a6e607c29667076716a686c7f605a756477646876296f7068755a717c75602969646b6270646260296b607d71296a75716c6a6b64695a76666a75605a666d60666e&msToken=DDc81_VkM-V4QJaHKg2C2Lvg5f-6Agu5VDxr9qnaheVbVQJpbU5KxsDtmpcgi20Vx1oWHiVypYFKXCiTyY-lofrSzcWtJNjZzzFek5r8scIhiFTzh1h3nOFayJFCqHo%3D&a_bogus=DjWwBR0XmDIPffWk51VLfY3q3UH3YDtV0afLMDg1VVvCj639HMTm9exL4HTvdWRjLT%2FAIegjy4hbO3xprQQ90Hwf7WhO%2F2CZmy00cMlM59TjUZ4nCfumE0DF-vUUSaBB5vlUrOXgqXlHFbYsAnAn4XKUbfqca1hMHjkrPVrUfptsH6W%3D',
  219. method: 'GET',
  220. success: (res) => {
  221. // 将响应结果存储在data中的变量中,以便在页面上显示或打印
  222. this.qrcodeURL = 'data:image/png;base64,' + res.data.data.qrcode;
  223. console.log("refresh ", res); // 可以在控制台打印响应结果
  224. console.log("freshqrcodeURL ", this.qrcodeURL); // 可以在控制台打印响应结果
  225. }
  226. })
  227. },
  228. //弹出层
  229. change(e) {
  230. console.log('当前模式:' + e.type + ',状态:' + e.show);
  231. },
  232. // 保存图片
  233. async saveImage() {
  234. // showToast('保存成功')
  235. wx.downloadFile({
  236. url: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/pingtai2u',
  237. success: function(res) {
  238. wx.saveImageToPhotosAlbum({
  239. filePath: res.tempFilePath,
  240. success: function(data) {
  241. wx.showToast({
  242. title: "保存成功",
  243. icon: "success",
  244. duration: 2000
  245. })
  246. },
  247. fail: function(err) {
  248. console.log(err);
  249. },
  250. complete(res) {
  251. console.log(res);
  252. }
  253. })
  254. }
  255. })
  256. },
  257. closepop() {
  258. this.$refs.popup4.close()
  259. },
  260. // 默认信息表,获取平台logo
  261. getinfo() {
  262. return this.$https.get('/youngee/c/g/get-info-tables')
  263. .then(res => {
  264. let list = res.data.data.ThirdPlatform
  265. for (var i = 0; i < list.length; ++i) {
  266. if (list[i].id == this.platform.platform_id) {
  267. this.platform.platform_icon = list[i].platform_icon
  268. this.platform.platform_name = list[i].platform_name
  269. }
  270. }
  271. })
  272. },
  273. getaccount() {
  274. return this.$https.get('/youngee/c/t/g/get-talent-account')
  275. .then(res => {
  276. console.log(res)
  277. if (res.data.code !== -3) {
  278. this.account = res.data.data
  279. this.imageData = []
  280. for (var i = 0; i < this.account.length; i++) {
  281. if (this.platform.platform_id == this.account[i].platform_id) {
  282. this.hasClicked = true
  283. this.formData.platform_nickname = this.account[i].platform_nickname
  284. this.formData.fans_count = this.account[i].fans_count
  285. this.formData.home_page_url = this.account[i].home_page_url
  286. this.imageData.push(this.account[i].home_page_capture_url);
  287. if (this.formData.fans_count >= 100000000) {
  288. this.index = 2
  289. this.fansCountInfo = this.fansRange[this.index].value;
  290. this.fansLabel = this.fansRange[this.index].label;
  291. this.fansCount = (this.formData.fans_count / 100000000).toFixed(1)
  292. } else if (this.formData.fans_count >= 10000) {
  293. this.index = 1
  294. this.fansCountInfo = this.fansRange[this.index].value;
  295. this.fansLabel = this.fansRange[this.index].label;
  296. this.fansCount = (this.formData.fans_count / 10000).toFixed(1)
  297. } else {
  298. this.index = 0
  299. this.fansCountInfo = this.fansRange[this.index].value;
  300. this.fansLabel = this.fansRange[this.index].label;
  301. this.fansCount = this.formData.fans_count
  302. }
  303. }
  304. }
  305. }
  306. })
  307. },
  308. exit() {
  309. uni.navigateBack()
  310. },
  311. // 粉丝量量级选择
  312. bindPickerChange: function(e) {
  313. if (this.index !== e.detail.value) {
  314. this.fansCount = null
  315. }
  316. this.index = e.detail.value;
  317. this.fansLabel = this.fansRange[this.index].label
  318. this.fansCountInfo = this.fansRange[this.index].value
  319. },
  320. ceshiChooseSuccess(tempFilePaths, e) { //选择图片返回
  321. console.log('ceshiChooseSuccess', tempFilePaths, e);
  322. if (e == 0) {
  323. this.store = 'talent_upload/' + this.guid() + '.png'
  324. // this.store = 'talent_upload/icon-whole-pipline.png'
  325. // this.store = 'youngee/talent_upload/icon-edit.2png'
  326. } else if (e == 1) {
  327. this.store = 'talent_upload/' + this.guid() + '.mp4'
  328. }
  329. /****************
  330. 以下代码是自定义上传逻辑,仅供参考
  331. ***************/
  332. this.imgUpload(tempFilePaths);
  333. /*******************************/
  334. },
  335. imgUpload(tempFilePaths) {
  336. let that = this
  337. let config = {
  338. AccessKeyId: 'IVW21DTGIIUBBAGXKK0Y', //AK
  339. SecretKey: 'Y01nEQNcLOATMw7uJwrk3yOdQZ2fqLhSnXcOKVDE', //SK
  340. EndPoint: 'https://horastar.obs.cn-east-3.myhuaweicloud.com', //上传文件的路径
  341. };
  342. let fileName = this.store; //指定上传到OBS桶中的对象名
  343. let OBSPolicy = { //设定policy内容
  344. "expiration": "2089-12-31T12:00:00.000Z",
  345. "conditions": [{
  346. "bucket": "horastar"
  347. }, //Bucket name
  348. // {"bucket": "goin"},
  349. {
  350. 'key': fileName
  351. }
  352. ]
  353. }
  354. let policyEncoded = getPolicyEncode(OBSPolicy); //计算policy编码值
  355. let signature = getSignature(policyEncoded, config.SecretKey); //计算signature
  356. uni.uploadFile({
  357. //url: config.EndPoint,
  358. url: config.EndPoint,
  359. filePath: tempFilePaths[0],
  360. name: 'file',
  361. formData: {
  362. 'AccessKeyID': config.AccessKeyId,
  363. 'policy': policyEncoded,
  364. 'signature': signature,
  365. 'key': fileName,
  366. },
  367. success: function(res) {
  368. console.log("res", res); //打印响应状态码
  369. if (res.statusCode == 204) {
  370. // that.imageData.push(config.EndPoint + '/' + fileName);
  371. let obs_url = config.EndPoint + '/' + fileName; //用你自己的 bucket 名替换星号
  372. that.imageData.push(obs_url)
  373. that.formData.home_page_capture_url = obs_url
  374. uni.showToast({
  375. title: '上传成功',
  376. icon: '成功'
  377. });
  378. } else {
  379. uni.showToast({
  380. title: '上传失败',
  381. icon: '失败'
  382. });
  383. }
  384. },
  385. fail: function(e) {
  386. console.log(e);
  387. uni.showToast({
  388. title: '上传失败',
  389. icon: '失败'
  390. });
  391. }
  392. })
  393. },
  394. guid() {
  395. return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
  396. var r = Math.random() * 16 | 0,
  397. v = c == 'x' ? r : (r & 0x3 | 0x8);
  398. return v.toString(16);
  399. });
  400. },
  401. onInput(e) {
  402. console.log(e)
  403. e = (e.match(/^\d*(\.?\d{0,1})/g)[0]) || null
  404. // //重新赋值给input
  405. if (e < 0 || e > 9999.9) {
  406. uni.showToast({
  407. title: '请输入[1,9999.9]区间内的数',
  408. icon: 'none'
  409. })
  410. console.log('请输入[1,9999.9]区间内的数')
  411. }
  412. this.$nextTick(() => {
  413. this.fansCount = (e > 0 && e <= 9999.9) ? e : null
  414. })
  415. },
  416. onInput1(e) {
  417. // 验证是否是纯数字
  418. const isNumber = /^\d*$/.test(e)
  419. // 过滤非数字
  420. e = e.replace(/\D/g, '')
  421. if (!isNumber || e < 0 || e > 9999) {
  422. uni.showToast({
  423. title: '请输入[0,9999]区间的整数',
  424. icon: 'none'
  425. })
  426. console.log('请输入[0,9999]区间的整数')
  427. }
  428. this.$nextTick(() => {
  429. this.fansCount = (e >= 0 && e <= 9999 && e.match(/^\d*/g)[0]) ? e : null
  430. })
  431. }
  432. },
  433. }
  434. </script>
  435. <style>
  436. /deep/ .share .uni-popup .uni-popup__wrapper {
  437. width: 70% !important;
  438. border-radius: 15rpx !important;
  439. }
  440. </style>
  441. <style lang="scss" scoped>
  442. .importentInfo1 {
  443. margin-left: 59rpx;
  444. background-color: #efefef;
  445. border-radius: 8px;
  446. height: 370rpx;
  447. width: 400rpx;
  448. }
  449. // 主体样式
  450. .card {
  451. padding: 24rpx;
  452. margin-top: 30rpx;
  453. border: 1rpx solid #F0D232;
  454. background-color: #ffffff;
  455. margin: 0 10rpx;
  456. }
  457. .head {
  458. padding-top: 5%;
  459. padding: 0 0 0 1%;
  460. height: 80rpx;
  461. margin-top: 2%;
  462. }
  463. .head span {
  464. color: #333333;
  465. font-size: 80%;
  466. font-weight: 550;
  467. text-indent: 2em;
  468. }
  469. .head image {
  470. vertical-align: middle;
  471. width: 50rpx;
  472. height: 50rpx;
  473. display: inline-block;
  474. padding-right: 14rpx;
  475. }
  476. .home-link {
  477. /deep/.uni-easyinput__content-input {
  478. background-color: #EBEBEB;
  479. border-radius: 15rpx;
  480. }
  481. }
  482. .heng-line {
  483. margin-top: 60rpx;
  484. margin-bottom: 50rpx;
  485. border-bottom: 1rpx solid #DCDCDC;
  486. }
  487. .signupbtn p {
  488. font-size: 30rpx;
  489. }
  490. .exit-btn {
  491. width: 200rpx;
  492. text-align: center;
  493. padding: 10rpx 30rpx;
  494. background-color: #C0C0C0;
  495. border: 0;
  496. border-radius: 10rpx;
  497. color: #FFFFFF;
  498. font-size: 30rpx;
  499. line-height: 180%;
  500. }
  501. .btn1 {
  502. margin: 30rpx;
  503. font-size: 35rpx;
  504. color: #000;
  505. background-color: #F0D232;
  506. border: none;
  507. border-radius: 0;
  508. }
  509. //弹窗
  510. .share {
  511. text-align: center;
  512. line-height: 10rpx;
  513. margin-top: 10rpx;
  514. }
  515. .sharepage {
  516. // width: 90%;
  517. margin: 0 auto;
  518. // position: relative;
  519. }
  520. /deep/ .share.uni-popup .uni-popup__wrapper {
  521. width: 70%;
  522. border-radius: 15rpx;
  523. }
  524. .projecttext1 {
  525. // padding-top: 5%;
  526. padding: 0 0 0 1%;
  527. margin: 5% 0;
  528. text-align: center;
  529. }
  530. .projecttext1 image {
  531. vertical-align: middle;
  532. width: 80rpx;
  533. height: 80rpx;
  534. display: inline-block;
  535. padding-right: 14rpx;
  536. }
  537. .sharemap {
  538. margin: 0 auto;
  539. text-align: center;
  540. // margin-top: 15%;
  541. // margin-bottom: 15%;
  542. }
  543. .sharemap image {
  544. width: 400rpx;
  545. height: 400rpx;
  546. }
  547. .sharetxt {
  548. height: 100rpx;
  549. display: flex;
  550. flex-direction: column;
  551. align-items: center;
  552. justify-content: center;
  553. }
  554. .sharetxt1 {
  555. padding: 10rpx;
  556. height: 345rpx;
  557. display: flex;
  558. flex-direction: column;
  559. align-items: center;
  560. justify-content: center;
  561. }
  562. .sharetxt text {
  563. font-size: 24rpx;
  564. text-align: left;
  565. line-height: 20rpx
  566. }
  567. .butmin {
  568. // height: 48rpx;
  569. width: 380rpx;
  570. height: 65rpx;
  571. background-color: #FCCF41;
  572. line-height: 60rpx;
  573. font-weight: bold;
  574. }
  575. .butmin1 {
  576. // height: 48rpx;
  577. width: 400rpx;
  578. background-color: #ffffff;
  579. border: #000000 10rpx;
  580. line-height: 48rpx;
  581. color: #FCCF41;
  582. font-weight: bold;
  583. font-size: 20rpx;
  584. }
  585. </style>