activity.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877
  1. <template>
  2. <view class="content">
  3. <view class="self-inf">
  4. <view class="antu-box">
  5. <view class="img-name-box" style="margin-bottom: 5%" :style="{ 'z-index': isFirstPage ? '0' : '101' }">
  6. <image :src="userHeadImg" class="heade-img" mode="aspectFill"></image>
  7. <p class="nickname">{{userNickName}}</p>
  8. <p class="nickname">{{userPhone}}</p>
  9. </view>
  10. <view class="org-info-box" v-for="(item,index) in userPosList" :key="index">
  11. <view class="org-info">{{item.name || '-'}}</view>
  12. <!-- <view class="org-line"></view> -->
  13. <view class="org-info">{{item.position}}</view>
  14. </view>
  15. </view>
  16. <view class="bg-img"></view>
  17. <image src="/static/Intersect.svg" class="groove-img"></image>
  18. </view>
  19. <view>
  20. <view class="active-title-box">
  21. <picker :range="arrayYear" :value="dateYear" @change="bindDateChange" class="picker-class" style="margin-left: 2%; width: 15%;">
  22. <view class="uni-input display-between items-center">
  23. <view>{{dateYear}}<text v-if="dateYear!=='全部'">年</text></view>
  24. <image src="/static/calendar_icon.svg" mode="aspectFit" style="top: 18rpx;"></image>
  25. </view>
  26. </picker>
  27. <picker :range="arrayMonth" :value="dateMonth" @change="bindDateMonthChange" class="picker-class" style="margin-left: 2%; width: 10%;">
  28. <view class="uni-input display-between items-center" style="color: #707070;">
  29. <view>{{dateMonth}}<text v-if="dateMonth!=='全部'">月</text></view>
  30. <image src="/static/calendar_icon.svg" mode="aspectFit" style="top: 18rpx;"></image>
  31. </view>
  32. </picker>
  33. <picker @change="bindPickerChange" :value="branchValue" :range="branchArray" :range-key="'name'">
  34. <view class="uni-input">{{branchValue}}</view>
  35. <image src="/static/arrow_down.svg" mode="aspectFit"></image>
  36. </picker>
  37. <button @click="publish()">+发布活动</button>
  38. </view>
  39. <mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback">
  40. <view class="active-box" v-for="(item,index) in activiList" :key="index" @click="goList(item.id)">
  41. <view class="active-type" :class="{'bg-yellow':item.type == '组织建设' ,'bg-red':item.type == '学习培训','bg-blue':item.type == '参政议政','bg-gray':item.type == '社会活动'}" >
  42. <view style="width: 55%;">{{item.type}}</view>
  43. </view>
  44. <view class="active-content-box">
  45. <view class="active-content" style="margin-bottom: 3%;">
  46. <view class="active-name">{{item.name}}</view>
  47. </view>
  48. <view class="active-content" style="margin-bottom: 2%;color: #ccc;">
  49. <view style="margin-right:10rpx;">{{item.branch}}</view>
  50. <view class="author-box">{{item.author}}</view>
  51. <view style="margin-left:10rpx;">记录数:({{item.process_count}}/
  52. <text :class="{fontRed:item.process_unread_count!=0}">{{item.process_unread_count}}</text>)</view>
  53. </view>
  54. <view class="active-content" style="justify-content: space-between;">
  55. <view class="active-date">{{item.start_time}}</view>
  56. <view class="edit-icon-box">
  57. <image src="/static/edit-icon.png" mode="aspectFit" v-show="item.edit_auth" @click.stop="goEditPage(item.id)" style="margin-right: 10rpx;"></image>
  58. <image src="/static/del-icon.png" mode="aspectFit" v-show="item.del_auth" @click.stop="delActive(item.id)"></image>
  59. </view>
  60. </view>
  61. </view>
  62. <!-- <view class="edit-icon-box">
  63. <image src="/static/edit-icon.png" mode="aspectFit" v-show="item.edit_auth" @click.stop="goEditPage(item.id)" style="margin-right: 20rpx;"></image>
  64. <image src="/static/del-icon.png" mode="aspectFit" v-show="item.del_auth" @click.stop="delActive(item.id)"></image>
  65. </view> -->
  66. </view>
  67. </mescroll-body>
  68. </view>
  69. <uni-popup ref="popup" type="center" :is-mask-click="false">
  70. <view class="auth-pop">
  71. <image src="/static/logo.png" mode="aspectFill"></image>
  72. <text class="margin-top-3 auth-title">欢迎使用农工笔记小程序</text>
  73. <text class="margin-top-3 auth-content">此页面是微信授权页面,授权之后你可以获取更优质的服务,您的隐私将会受到保护</text>
  74. <view class="margin-top-3">
  75. <!-- <button type='default' class="refuse" @click="goAuthPage">去授权</button>-->
  76. <button type='primary' class="allow" @click="getUserInfo()" v-if="!isAuth">登录授权</button>
  77. <button type="primary" class="allow" open-type="getPhoneNumber" style="font-size: 12px;"
  78. @getphonenumber="getPhoneNumber" v-if="isAuth && !isNeedPhone">手机号码授权</button>
  79. </view>
  80. </view>
  81. </uni-popup>
  82. <share-modal @closeShare="closeShare" :isShowShare="isShowShareModal" :isFirstPage="isFirstPage" :class="{ shareParent: isShowShareModal}"></share-modal>
  83. </view>
  84. </template>
  85. <script>
  86. import md5 from "@/common/md5.js";
  87. import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
  88. import shareModal from '@/components/share-modal/share-modal.vue'
  89. export default {
  90. components: {
  91. "share-modal": shareModal,
  92. },
  93. mixins: [MescrollMixin], // 使用mixin
  94. data() {
  95. return {
  96. dateYear:'全部',
  97. arrayYear:[],
  98. dateMonth:'全部',
  99. arrayMonth:['全部',"1","2","3","4","5","6","7","8","9","10","11","12"],
  100. isAuth: true,
  101. userHeadImg:'',
  102. userNickName:'',
  103. userPhone:'',
  104. userPosList:[],
  105. isNeedPhone:getApp().globalData.user_phone,
  106. branchArray: [],
  107. branchValue:'全部',
  108. branchId:'0',
  109. page:1,
  110. pageSize:10,
  111. activiList:[],
  112. isShowShareModal:false,
  113. isFirstPage:false
  114. };
  115. },
  116. onShow() {
  117. // this.getActiveList(this.branchId)
  118. },
  119. onShareAppMessage() {
  120. return {
  121. title: '农工笔记',
  122. path:'/pages/index/activity/activity'
  123. }
  124. },
  125. async onLoad(option) {
  126. await this.$getOpenId
  127. this.getUserInfoData()
  128. this.makeYearArr()
  129. },
  130. methods: {
  131. open(){
  132. // 通过组件定义的ref调用uni-popup方法 ,如果传入参数 ,type 属性将失效 ,仅支持 ['top','left','bottom','right','center']
  133. uni.hideTabBar();
  134. this.$refs.popup.open('center')
  135. },
  136. pageShowShare(obj){
  137. this.isShowShareModal = true;
  138. this.isFirstPage = true;
  139. },
  140. closeShare(e){
  141. this.isShowShareModal = false;
  142. },
  143. getUserInfo() {
  144. uni.getUserProfile({
  145. desc:'登录',
  146. success:(res)=> {
  147. getApp().globalData.user_headUrl = res.userInfo.avatarUrl;
  148. getApp().globalData.user_name = res.userInfo.nickName;
  149. this.userHeadImg = res.userInfo.avatarUrl;
  150. this.userNickName = res.userInfo.nickName;
  151. this.iv = res.iv;
  152. this.encryptedData = res.encryptedData;
  153. this.isAuth = true;
  154. getApp().globalData.isAuth = true;
  155. getApp().globalData.globalAuth = true;
  156. this.loginUserInfo()
  157. },
  158. fail:(err)=> {
  159. getApp().globalData.isAuth = false;
  160. getApp().globalData.globalAuth = false;
  161. this.isAuth = false;
  162. }
  163. })
  164. },
  165. getPhoneNumber(e){
  166. let that = this;
  167. if (e.detail.errMsg == 'getPhoneNumber:ok') { //允许授权执行跳转
  168. that.phoneRequest(e.detail.iv, e.detail.encryptedData, getApp().globalData.session_key)
  169. } else { //
  170. that.isNeedPhone = false;
  171. }
  172. },
  173. phoneRequest(myIv,myEncryptedData,sKey){
  174. let that = this;
  175. let md5Sign = md5("method="+'user'+"&timestamp="+getApp().globalData.globalTimestamp+"&secret="+getApp().globalData.secret)
  176. let url = getApp().globalData.shareUrl+'api/api.php'+'?method=user&source=user&action=phone&timestamp='+getApp().globalData.globalTimestamp +'&sign='+md5Sign
  177. uni.request({
  178. url:url,
  179. method: 'POST',
  180. header: {
  181. 'content-type': 'application/x-www-form-urlencoded'
  182. },
  183. data: {
  184. iv:myIv,
  185. sessionKey:sKey,
  186. encryptedData:myEncryptedData,
  187. openid:getApp().globalData.open_id
  188. },
  189. success: (res) => {
  190. console.log(res)
  191. if(res.data.code === 200){
  192. getApp().globalData.user_phone = res.data.data;
  193. this.userPhone = res.data.data.substr(0, 3) + '****' + res.data.data.substr(7) ;
  194. this.$refs.popup.close()
  195. uni.showTabBar({})
  196. this.getUserInfoBranch();
  197. this.getActiveList(this.branchId)
  198. this.getActiveInfoBranch()
  199. }else {
  200. uni.showToast({
  201. title: res.data.msg,
  202. duration: 2500,
  203. icon: "none",
  204. });
  205. }
  206. },
  207. fail: () => {
  208. console.log("连接失败");
  209. }
  210. });
  211. },
  212. loginUserInfo(){
  213. let md5Sign = md5(
  214. "method=" +
  215. "user" +
  216. "&timestamp=" +
  217. getApp().globalData.globalTimestamp +
  218. "&secret=" +
  219. getApp().globalData.secret
  220. );
  221. let url =
  222. getApp().globalData.shareUrl +
  223. "api/api.php" +
  224. "?method=user&action=update&timestamp=" +
  225. getApp().globalData.globalTimestamp +
  226. "&sign=" +
  227. md5Sign;
  228. uni.request({
  229. url: url,
  230. method: "POST",
  231. header: {
  232. "content-type": "application/x-www-form-urlencoded",
  233. },
  234. data: {
  235. nickname:getApp().globalData.user_name,
  236. headimg:getApp().globalData.user_headUrl,
  237. openid:getApp().globalData.open_id
  238. },
  239. success: (res) => {
  240. if (res.data.code === 200) {
  241. }
  242. },
  243. fail: () => {
  244. console.log("连接失败");
  245. },
  246. });
  247. },
  248. getUserInfoData() {
  249. let md5Sign = md5(
  250. "method=" +
  251. "user" +
  252. "&timestamp=" +
  253. getApp().globalData.globalTimestamp +
  254. "&secret=" +
  255. getApp().globalData.secret
  256. );
  257. let url =
  258. getApp().globalData.shareUrl +
  259. "api/api.php" +
  260. "?method=user&action=info_by_openid&timestamp=" +
  261. getApp().globalData.globalTimestamp +
  262. "&sign=" +
  263. md5Sign;
  264. uni.request({
  265. url: url,
  266. method: "POST",
  267. header: {
  268. "content-type": "application/x-www-form-urlencoded",
  269. },
  270. data: {
  271. openid:getApp().globalData.open_id,
  272. },
  273. success: (res) => {
  274. if (res.data.code === 200) {
  275. if (res.data.data.nickname) {
  276. this.isAuth = true;
  277. this.userHeadImg = res.data.data.headimg;
  278. this.userNickName = res.data.data.nickname;
  279. if(res.data.data.phone){
  280. this.userPhone = res.data.data.phone.substr(0, 3) + '****' + res.data.data.phone.substr(7)
  281. this.getUserInfoBranch();
  282. this.getActiveList(this.branchId);
  283. }else {
  284. this.open()
  285. }
  286. getApp().globalData.globalAuth = true;
  287. getApp().globalData.user_name = res.data.data.nickname;
  288. getApp().globalData.user_headUrl = res.data.data.headimg;
  289. getApp().globalData.user_department = res.data.data.department;
  290. getApp().globalData.user_real_name = res.data.data.real_name;
  291. getApp().globalData.user_phone = res.data.data.phone;
  292. getApp().globalData.isAuth = true;
  293. this.isAuth = true;
  294. this.isNeedPhone = false;
  295. }else {
  296. this.open();
  297. this.isAuth = false;
  298. getApp().globalData.globalAuth = false;
  299. getApp().globalData.user_name = '';
  300. getApp().globalData.isAuth = false;
  301. this.isAuth = false;
  302. }
  303. }
  304. },
  305. fail: () => {
  306. console.log("连接失败");
  307. },
  308. });
  309. },
  310. makeYearArr(){
  311. let nowYear = new Date().getFullYear(),yearList = ['全部'];
  312. for(let i = 0; i < 10 ; i ++){
  313. yearList.push(nowYear--)
  314. }
  315. this.arrayYear = yearList;
  316. },
  317. pageRefresh(object) {
  318. if (object) {
  319. this.getActiveList(this.branchId)
  320. } else {
  321. return
  322. }
  323. },
  324. getUserInfoBranch() {
  325. let md5Sign = md5(
  326. "method=" + "member" +"&timestamp=" + getApp().globalData.globalTimestamp +"&secret=" +getApp().globalData.secret
  327. );
  328. let url =
  329. getApp().globalData.shareUrl + "api/api.php" + "?method=member&action=my_branch&timestamp=" + getApp().globalData.globalTimestamp +
  330. "&sign=" + md5Sign;
  331. uni.request({
  332. url: url,
  333. method: "POST",
  334. header: {
  335. "content-type": "application/x-www-form-urlencoded",
  336. },
  337. data: {
  338. openid:getApp().globalData.open_id,
  339. },
  340. success: (res) => {
  341. if (res.data.code === 200) {
  342. this.userPosList = res.data.data;
  343. }
  344. },
  345. fail: () => {
  346. console.log("连接失败");
  347. },
  348. });
  349. },
  350. goEditPage(id){
  351. uni.navigateTo({
  352. url:'edit_page?id=' + id
  353. })
  354. },
  355. delActiveRequeset(delId){
  356. let md5Sign = md5(
  357. "method=" +"activity" + "&timestamp=" + getApp().globalData.globalTimestamp +
  358. "&secret=" + getApp().globalData.secret
  359. );
  360. let url = getApp().globalData.shareUrl +"api/api.php" +
  361. "?method=activity&action=del&timestamp=" +
  362. getApp().globalData.globalTimestamp + "&sign=" + md5Sign;
  363. uni.request({
  364. url: url,
  365. method: "POST",
  366. header: {
  367. "content-type": "application/x-www-form-urlencoded",
  368. },
  369. data: {
  370. openid: getApp().globalData.open_id,
  371. id:delId
  372. },
  373. success: (res) => {
  374. if (res.data.code === 200) {
  375. uni.showToast({
  376. title: "删除成功",
  377. icon: "none",
  378. duration: 2500,
  379. });
  380. this.getActiveList(this.branchId)
  381. }
  382. },
  383. fail: () => {
  384. console.log("连接失败");
  385. },
  386. });
  387. },
  388. delActive(id){
  389. let that = this;
  390. uni.showModal({
  391. title: "确定删除此活动吗?",
  392. success(res) {
  393. if (res.confirm) {
  394. that.delActiveRequeset(id);
  395. } else if (res.cancel) {
  396. console.log("用户点击取消");
  397. }
  398. },
  399. });
  400. },
  401. getActiveInfoBranch() {
  402. let md5Sign = md5("method=" + "activity" +"&timestamp=" + getApp().globalData.globalTimestamp +"&secret=" +getApp().globalData.secret);
  403. let url =
  404. getApp().globalData.shareUrl + "api/api.php" + "?method=activity&action=list_branch&timestamp=" + getApp().globalData.globalTimestamp +
  405. "&sign=" + md5Sign;
  406. uni.request({
  407. url: url,
  408. method: "POST",
  409. header: {
  410. "content-type": "application/x-www-form-urlencoded",
  411. },
  412. data: {
  413. openid:getApp().globalData.open_id,
  414. },
  415. success: (res) => {
  416. if (res.data.code === 200) {
  417. let obj = {
  418. name:'全部',
  419. id:'0'
  420. }
  421. let arr = res.data.data;
  422. arr.unshift(obj);
  423. this.branchArray = arr;
  424. }
  425. },
  426. fail: () => {
  427. console.log("连接失败");
  428. },
  429. });
  430. },
  431. bindDateChange(e){
  432. this.dateYear = this.arrayYear[e.target.value];
  433. this.getActiveList(this.branchId)
  434. },
  435. bindDateMonthChange(e){
  436. this.dateMonth = this.arrayMonth[e.target.value];
  437. this.getActiveList(this.branchId)
  438. },
  439. bindPickerChange: function(e) {
  440. this.branchValue = this.branchArray[e.target.value].name;
  441. this.branchId = this.branchArray[e.target.value].id;
  442. this.getActiveList(this.branchId)
  443. },
  444. getActiveList(bId){
  445. let md5Sign = md5(
  446. "method=" +"activity" + "&timestamp=" + getApp().globalData.globalTimestamp +
  447. "&secret=" + getApp().globalData.secret
  448. );
  449. let url = getApp().globalData.shareUrl +"api/api.php" +
  450. "?method=activity&action=list&timestamp=" +
  451. getApp().globalData.globalTimestamp +
  452. "&sign=" +
  453. md5Sign;
  454. uni.request({
  455. url: url,
  456. method: "POST",
  457. header: {
  458. "content-type": "application/x-www-form-urlencoded",
  459. },
  460. data: {
  461. openid: getApp().globalData.open_id,
  462. year:this.dateYear,
  463. month:this.dateMonth,
  464. s:'',
  465. branch_id:bId,
  466. page:this.page,
  467. page_size:this.pageSize
  468. },
  469. success: (res) => {
  470. if (res.data.code === 200) {
  471. // 接口返回的当前页数据列表 (数组)
  472. let curPageData = res.data.data.list;
  473. // 接口返回的当前页数据长度 (如列表有26个数据,当前页返回8个,则curPageLen=8)
  474. let curPageLen = curPageData.length;
  475. // 接口返回的总页数 (如列表有26个数据,每页10条,共3页; 则totalPage=3)
  476. let totalPage = res.data.data.page_count;
  477. // 接口返回的总数据量(如列表有26个数据,每页10条,共3页; 则totalSize=26)
  478. let totalSize = res.data.data.count;
  479. // // 接口返回的是否有下一页 (true/false)
  480. // let hasNext = data.xxx;
  481. this.activiList = res.data.data.list;
  482. this.mescroll.endByPage(curPageLen || 0, totalPage);
  483. // this.activiList=res.data.data.list;
  484. }
  485. },
  486. fail: () => {
  487. console.log("连接失败");
  488. },
  489. });
  490. },
  491. upCallback(page) {
  492. let pageNum = page.num; // 页码, 默认从1开始
  493. let pageSize = page.size; // 页长, 默认每页10条
  494. let md5Sign = md5(
  495. "method=" +"activity" + "&timestamp=" + getApp().globalData.globalTimestamp +
  496. "&secret=" + getApp().globalData.secret
  497. );
  498. let url = getApp().globalData.shareUrl +"api/api.php" +
  499. "?method=activity&action=list&timestamp=" +
  500. getApp().globalData.globalTimestamp +
  501. "&sign=" +
  502. md5Sign;
  503. uni.request({
  504. url: url,
  505. method: "POST",
  506. header: {
  507. "content-type": "application/x-www-form-urlencoded",
  508. },
  509. data: {
  510. openid: getApp().globalData.open_id,
  511. year:this.dateYear,
  512. month:this.dateMonth,
  513. s:'',
  514. branch_id:this.branchId,
  515. page:pageNum,
  516. page_size:pageSize
  517. },
  518. success: (res) => {
  519. if (res.data.code === 200) {
  520. // 接口返回的当前页数据列表 (数组)
  521. let curPageData = res.data.data.list;
  522. // 接口返回的当前页数据长度 (如列表有26个数据,当前页返回8个,则curPageLen=8)
  523. let curPageLen = curPageData.length;
  524. // 接口返回的总页数 (如列表有26个数据,每页10条,共3页; 则totalPage=3)
  525. let totalPage = res.data.data.page_count;
  526. // 接口返回的总数据量(如列表有26个数据,每页10条,共3页; 则totalSize=26)
  527. let totalSize = res.data.data.count;
  528. // // 接口返回的是否有下一页 (true/false)
  529. // let hasNext = data.xxx;
  530. if(page.num == 1) this.activiList = []; //如果是第一页需手动制空列表
  531. // let list = res.data.data.list;
  532. // list.forEach((item)=>{
  533. // item.pic_url = this.shareUrl + item.pic_url;
  534. // item.pic_url_resize = this.shareUrl + item.pic_url_resize;
  535. // })
  536. this.activiList=this.activiList.concat(res.data.data.list); //追加新数据
  537. this.mescroll.endByPage(curPageLen || 0, totalPage);
  538. }
  539. },
  540. fail: () => {
  541. console.log("连接失败");
  542. this.mescroll.endErr();
  543. },
  544. });
  545. },
  546. getPublishBranch() {
  547. let md5Sign = md5(
  548. "method=" +"activity" + "&timestamp=" + getApp().globalData.globalTimestamp +
  549. "&secret=" +getApp().globalData.secret
  550. );
  551. let url = getApp().globalData.shareUrl +"api/api.php" +
  552. "?method=activity&action=activity_branch&timestamp=" +
  553. getApp().globalData.globalTimestamp +"&sign=" + md5Sign;
  554. uni.request({
  555. url: url,
  556. method: "POST",
  557. header: {
  558. "content-type": "application/x-www-form-urlencoded",
  559. },
  560. data: {
  561. openid:getApp().globalData.open_id,
  562. },
  563. success: (res) => {
  564. if (res.data.code === 200) {
  565. let publishList = res.data.data;
  566. if(publishList.length >= 2){
  567. uni.navigateTo({
  568. url:'./create1?list=' + JSON.stringify(publishList)
  569. })
  570. }else {
  571. uni.navigateTo({
  572. url:'./create2?list=' + JSON.stringify(publishList)
  573. })
  574. }
  575. }
  576. },
  577. fail: () => {
  578. console.log("连接失败");
  579. },
  580. });
  581. },
  582. publish(){
  583. this.getPublishBranch()
  584. },
  585. goList(ids){
  586. uni.navigateTo({
  587. url:'./list?id='+ ids
  588. })
  589. }
  590. },
  591. };
  592. </script>
  593. <style lang="scss" scoped>
  594. .content {
  595. display: flex;
  596. flex-direction: column;
  597. // .self-inf {
  598. // // border-radius: 0rpx 0rpx 100% 100%;
  599. // .img-name-box {
  600. // height: 150rpx;
  601. // margin-top: 20rpx;
  602. // margin-bottom: 20rpx;
  603. // display: flex;
  604. // align-items: center;
  605. // width: 85%;
  606. // .auth-btn {
  607. // margin-left: 30rpx;
  608. // margin-top: 20rpx;
  609. // font-size: 28rpx;
  610. // background-color: #02a7f0;
  611. // color: #fff;
  612. // }
  613. // .heade-img {
  614. // z-index: 1;
  615. // width: 100rpx;
  616. // height: 100rpx;
  617. // border-radius: 50%;
  618. // // margin-left: 80rpx;
  619. // }
  620. // }
  621. // .nickname {
  622. // font-weight: 600;
  623. // font-size: 28rpx;
  624. // margin-left: 30rpx;
  625. // margin-top: 20rpx;
  626. // color: #555;
  627. // letter-spacing: 1rpx;
  628. // }
  629. // }
  630. }
  631. .auth-pop{
  632. background-color: #fff;
  633. text-align: center;
  634. display: flex;
  635. flex-direction: column;
  636. justify-content: center;
  637. align-items: center;
  638. width: 75%;
  639. margin: 0 auto;
  640. border-radius: 10rpx;
  641. padding: 20rpx;
  642. }
  643. .auth-pop image{
  644. width: 200upx;
  645. height: 200upx;
  646. margin-top: 10%;
  647. }
  648. .auth-pop view {
  649. // display: flex;
  650. // width: 490upx;
  651. // justify-content: space-between;
  652. }
  653. .auth-title {
  654. font-size: 32upx;
  655. }
  656. .auth-content {
  657. font-size: 26upx;
  658. color: #a7aaa9;
  659. }
  660. .allow {
  661. background-color: #27BCEF;
  662. margin: 20rpx 0 75rpx;
  663. text-align: center;
  664. vertical-align: middle;
  665. touch-action: manipulation;
  666. cursor: pointer;
  667. background-image: none;
  668. white-space: nowrap;
  669. user-select: none;
  670. font-size: 14px;
  671. border: 0 !important;
  672. position: relative;
  673. text-decoration: none;
  674. height: 44px;
  675. width: 250rpx;
  676. line-height: 44px;
  677. box-shadow: inset 0 0 0 1px #27BCEF;
  678. background: #fff !important;
  679. color: #27BCEF !important;
  680. display: inline-block;
  681. border-radius: 10rpx;
  682. }
  683. .self-inf {
  684. position: relative;
  685. height: 440rpx;
  686. width: 100%;
  687. display: flex;
  688. // margin-bottom: 80rpx;
  689. border-radius: 0rpx 0rpx 100% 100%;
  690. .img-name-box {
  691. height: 150rpx;
  692. margin-top:80rpx;
  693. display: flex;
  694. align-items: center;
  695. z-index: 101;
  696. .auth-btn {
  697. margin-left: 30rpx;
  698. margin-top: 20rpx;
  699. font-size: 28rpx;
  700. background-color: #02a7f0;
  701. color: #fff;
  702. }
  703. .heade-img {
  704. z-index: 1;
  705. width: 100rpx;
  706. height: 100rpx;
  707. border-radius: 50%;
  708. margin-left: 80rpx;
  709. }
  710. }
  711. .bg-img {
  712. z-index: -1;
  713. position: absolute;
  714. width: 100%;
  715. height: 100%;
  716. background-color: #c2e3e6
  717. // border-radius: 0rpx 0rpx 70rpx 70rpx;
  718. }
  719. .groove-img {
  720. width: 100%;
  721. height: 100rpx;
  722. bottom: -22rpx;
  723. position: absolute;
  724. }
  725. .nickname {
  726. font-weight: 600;
  727. font-size: 28rpx;
  728. margin-left: 30rpx;
  729. margin-top: 20rpx;
  730. color: #ffffff;
  731. letter-spacing: 1rpx;
  732. }
  733. }
  734. .antu-box {
  735. display: flex;
  736. flex-direction: column;
  737. width: 100%;
  738. }
  739. .org-info-box {
  740. display: flex;
  741. justify-content: space-evenly;
  742. height: 50rpx;
  743. align-items: center;
  744. width: 100%;
  745. font-size: 30rpx;
  746. color: #fff;
  747. }
  748. .org-info {
  749. width: 50%;
  750. padding-left: 15%;
  751. }
  752. .active-title-box {
  753. display: flex;
  754. align-items: center;
  755. // margin-top: 10rpx;
  756. font-size: 26rpx;
  757. height: 100rpx;
  758. border-bottom: 1px solid #d7d7d7;
  759. .time-select-box {
  760. width: 32%;
  761. margin-left: 5%;
  762. }
  763. picker {
  764. width: 29%;
  765. border: 1px solid #d7d7d7;
  766. height: 60rpx;
  767. line-height: 60rpx;
  768. border-radius: 10rpx;
  769. margin-left: 20rpx;
  770. padding: 0 10rpx;
  771. position: relative;
  772. image {
  773. width: 20rpx;
  774. height: 20rpx;
  775. position: absolute;
  776. top: 11px;
  777. right: 5px;
  778. }
  779. }
  780. button {
  781. width: 25%;
  782. font-size: 25rpx;
  783. background: #4988fd;
  784. color: #fff;
  785. margin-left: 20rpx;
  786. margin-right: 20rpx;
  787. }
  788. }
  789. .active-box {
  790. // display: flex;
  791. // align-items: flex-start;
  792. // position: relative;
  793. // font-size: 28rpx;
  794. // padding: 20rpx;
  795. // border-bottom: 1px solid #d7d7d7;
  796. display: flex;
  797. align-items: flex-start;
  798. position: relative;
  799. font-size: 28rpx;
  800. padding: 3%;
  801. box-shadow: 0px 4rpx 32rpx rgba(0, 0, 0, 0.1);
  802. width: 90%;
  803. margin: 2% 0 0 2%;
  804. border-radius: 10rpx;
  805. .active-type {
  806. width: 100rpx;
  807. height: 100rpx;
  808. border-radius: 50%;
  809. background-color: aquamarine;
  810. text-align: center;
  811. display: flex;
  812. align-items: center;
  813. font-size: 26rpx;
  814. color: #fff;
  815. justify-content: center;
  816. }
  817. .active-content-box {
  818. width:83%;
  819. // height: 120rpx;
  820. display: flex;
  821. flex-direction: column;
  822. margin-left: 20rpx;
  823. justify-content: space-around;
  824. }
  825. .active-content {
  826. display: flex;
  827. align-items: center;
  828. // height: 45rpx;
  829. font-size: 26rpx;
  830. .author-box {
  831. border-left: 1px solid #d7d7d7;
  832. border-right: 1px solid #d7d7d7;
  833. padding: 0 30rpx 0 30rpx;
  834. margin: 0 20rpx 0 20rpx;
  835. }
  836. .active-name {
  837. font-size: 30rpx;
  838. margin-right: 10rpx;
  839. }
  840. .active-date {
  841. font-size: 24rpx;
  842. color: #ccc;
  843. }
  844. }
  845. .edit-icon-box {
  846. // position: absolute;
  847. // right: 10px;
  848. // top: 10px;
  849. // margin-top: 10rpx;
  850. image {
  851. width: 30rpx;
  852. height: 30rpx;
  853. }
  854. }
  855. .bg-yellow {
  856. background-color: #ffdd40;
  857. }
  858. .bg-gray {
  859. // background-color: darkgrey;
  860. background-color: #AE0B29;
  861. }
  862. .bg-red {
  863. background-color: #ec808d;
  864. }
  865. .bg-blue {
  866. background-color: #81d3f8;
  867. }
  868. .fontRed {
  869. color: coral;
  870. }
  871. }
  872. </style>