myselection.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684
  1. <template>
  2. <view>
  3. <!-- 胶囊 -->
  4. <mvBar :mysNavConfig="mysNavConfig"></mvBar>
  5. <view :style="{marginTop:navH}"></view>
  6. <view class="menu">
  7. <view class="menu-item" @click="handleClickTab(0)">
  8. <p v-bind:class="showList[0]?'lor':'unlor'">全部</p>
  9. </view>
  10. <view class="menu-item" @click="handleClickTab(1)">
  11. <p v-bind:class="showList[1]?'lor':'unlor'">已领样</p>
  12. </view>
  13. <view class="menu-item" @click="handleClickTab(2)">
  14. <p v-bind:class="showList[2]?'lor':'unlor'">已出单</p>
  15. </view>
  16. <view class="menu-item" @click="handleClickTab(3)">
  17. <p v-bind:class="showList[3]?'lor':'unlor'">已结束</p>
  18. </view>
  19. </view>
  20. <view class="home" v-if="showList[0] && !loading">
  21. <view class="task" v-for="item in secTaskLists[0]" @click="handleToSecTaskDetail(item)">
  22. <view class="task-card">
  23. <view class="task-info">
  24. <!-- 左侧图片和文字 -->
  25. <view class="task-info-left">
  26. <!-- 图片 -->
  27. <image class="project-img" :src="item.product_img_url"></image>
  28. <image v-if="item.isFinished" class="overlay-img"
  29. src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home4.png"></image>
  30. <!-- 描述 -->
  31. <view class="task-info-txt">
  32. <view class="Tasktext">
  33. <image class="platform-img" :src="item.PlatformInfo.platform_icon"></image>
  34. <span>
  35. {{item.SelectionInfo.selection_name}}
  36. </span>
  37. </view>
  38. <p style="color: #ffcb41 ;">任务截至时间:{{item.ddl}}</p>
  39. <p>售价:¥{{item.price}} 佣金率:{{item.exclusive_commission}}%</p>
  40. <!-- sectask表有已经有 -->
  41. <p>全部销售量/有效销售量:{{item.sale_num_all}}单/{{item.sale_actual}}单</p>
  42. <p v-if="item.task_mode==1">悬赏金额/悬赏有效销售量:
  43. ¥{{item.RewardStrategy[0].per_reward}}/{{item.RewardStrategy[0].sale_actual}}单</p>
  44. <p v-if="item.sample_mode==1">免费领样状态:{{ getFreeStageText(item.free_stage) }}</p>
  45. </view>
  46. </view>
  47. <!-- 右侧图标 -->
  48. <view class="task-info-right">
  49. <image
  50. src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent_upload/icon-arrow-right.png"
  51. style="height: 30rpx;width: 30rpx;"></image>
  52. </view>
  53. </view>
  54. <!-- <view style="text-align: right;" v-if="item.task_stage > 5">
  55. <p style="font-size: 25rpx;">实际收益:¥{{item.show_real_reward}}</p>
  56. </view> -->
  57. <view class="container">
  58. <p class="left-text" v-if="item.reward_stage == 1">
  59. <span style="color: red;">待领悬赏</span>
  60. </p>
  61. <!-- 当 item.reward_stage 为 2 时,显示 "已领悬赏" 并设置文字颜色为绿色 -->
  62. <p class="left-text" v-else-if="item.reward_stage == 2">
  63. <span style="color: green;">已领悬赏</span>
  64. </p>
  65. <p class="right-text" v-if="item.reward_stage==2">实际收益:<span
  66. style="color: red;">¥{{item.RewardStrategy[0].per_reward}}</span></p>
  67. </view>
  68. </view>
  69. </view>
  70. </view>
  71. <view class="home" v-if="showList[1] && !loading">
  72. <view class="task" v-for="item in secTaskLists[1]" @click="handleToSecTaskDetail(item)">
  73. <view class="task-card">
  74. <view class="task-info">
  75. <!-- 左侧图片和文字 -->
  76. <view class="task-info-left">
  77. <!-- 图片 -->
  78. <image class="project-img" :src="item.product_img_url"></image>
  79. <image v-if="item.isFinished" class="overlay-img"
  80. src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home4.png"></image>
  81. <!-- 描述 -->
  82. <view class="task-info-txt">
  83. <!-- <view class="" style="display: flex;">
  84. <image class="platform-img" :src="item.platform_icon_url"></image>
  85. <p style="font-size: 28rpx; line-height: 28rpx;color: black;">
  86. {{item.selection_name}}
  87. </p>
  88. </view> -->
  89. <view class="Tasktext">
  90. <image class="platform-img" :src="item.PlatformInfo.platform_icon"></image>
  91. <span>
  92. {{item.SelectionInfo.selection_name}}
  93. </span>
  94. </view>
  95. <p style="color: #ffcb41 ;">任务截至时间:{{item.ddl}}</p>
  96. <p>售价:¥{{item.price}} 佣金率:{{item.exclusive_commission}}%</p>
  97. <!-- sectask表有已经有 -->
  98. <p>全部销售量/有效销售量:{{item.sale_num_all}}单/{{item.sale_actual}}单</p>
  99. <p v-if="item.task_mode==1">悬赏金额/悬赏有效销售量:
  100. ¥{{item.RewardStrategy[0].per_reward}}/{{item.RewardStrategy[0].sale_actual}}单</p>
  101. <p v-if="item.sample_mode==1">免费领样状态:{{ getFreeStageText(item.free_stage) }}</p>
  102. </view>
  103. </view>
  104. <!-- 右侧图标 -->
  105. <view class="task-info-right">
  106. <image
  107. src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent_upload/icon-arrow-right.png"
  108. style="height: 30rpx;width: 30rpx;"></image>
  109. </view>
  110. </view>
  111. <view class="container">
  112. <p class="left-text" v-if="item.reward_stage == 1">
  113. <span style="color: red;">待领悬赏</span>
  114. </p>
  115. <!-- 当 item.reward_stage 为 2 时,显示 "已领悬赏" 并设置文字颜色为绿色 -->
  116. <p class="left-text" v-else-if="item.reward_stage == 2">
  117. <span style="color: green;">已领悬赏</span>
  118. </p>
  119. <p class="right-text" v-if="item.reward_stage==2">实际收益:<span
  120. style="color: red;">¥{{item.RewardStrategy[0].per_reward}}</span></p>
  121. </view>
  122. </view>
  123. </view>
  124. </view>
  125. <view class="home" v-if="showList[2] && !loading">
  126. <view class="task" v-for="item in secTaskLists[2]" @click="handleToSecTaskDetail(item)">
  127. <view class="task-card">
  128. <view class="task-info">
  129. <!-- 左侧图片和文字 -->
  130. <view class="task-info-left">
  131. <!-- 图片 -->
  132. <image class="project-img" :src="item.product_img_url"></image>
  133. <image v-if="item.isFinished" class="overlay-img"
  134. src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home4.png"></image>
  135. <!-- 描述 -->
  136. <view class="task-info-txt">
  137. <!-- <view class="" style="display: flex;">
  138. <image class="platform-img" :src="item.platform_icon_url"></image>
  139. <p style="font-size: 28rpx; line-height: 28rpx;color: black;">
  140. {{item.selection_name}}
  141. </p>
  142. </view> -->
  143. <view class="Tasktext">
  144. <image class="platform-img" :src="item.PlatformInfo.platform_icon"></image>
  145. <span>
  146. {{item.SelectionInfo.selection_name}}
  147. </span>
  148. </view>
  149. <p style="color: #ffcb41 ;">任务截至时间:{{item.ddl}}</p>
  150. <p>售价:¥{{item.price}} 佣金率:{{item.exclusive_commission}}%</p>
  151. <!-- sectask表有已经有 -->
  152. <p>全部销售量/有效销售量:{{item.sale_num_all}}单/{{item.sale_actual}}单</p>
  153. <p v-if="item.task_mode==1">悬赏金额/悬赏有效销售量:
  154. ¥{{item.RewardStrategy[0].per_reward}}/{{item.RewardStrategy[0].sale_actual}}单</p>
  155. <p v-if="item.sample_mode==1">免费领样状态:{{ getFreeStageText(item.free_stage) }}</p>
  156. </view>
  157. </view>
  158. <!-- 右侧图标 -->
  159. <view class="task-info-right">
  160. <image
  161. src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent_upload/icon-arrow-right.png"
  162. style="height: 30rpx;width: 30rpx;"></image>
  163. </view>
  164. </view>
  165. <view class="container">
  166. <p class="left-text" v-if="item.reward_stage == 1">
  167. <span style="color: red;">待领悬赏</span>
  168. </p>
  169. <!-- 当 item.reward_stage 为 2 时,显示 "已领悬赏" 并设置文字颜色为绿色 -->
  170. <p class="left-text" v-else-if="item.reward_stage == 2">
  171. <span style="color: green;">已领悬赏</span>
  172. </p>
  173. <p class="right-text" v-if="item.reward_stage==2">实际收益:<span
  174. style="color: red;">¥{{item.RewardStrategy[0].per_reward}}</span></p>
  175. </view>
  176. </view>
  177. </view>
  178. </view>
  179. <view class="home" v-if="showList[3] && !loading">
  180. <view class="task" v-for="item in secTaskLists[3]" @click="handleToSecTaskDetail(item)">
  181. <view class="task-card">
  182. <view class="task-info">
  183. <!-- 左侧图片和文字 -->
  184. <view class="task-info-left">
  185. <!-- 图片 -->
  186. <image class="project-img" :src="item.product_img_url"></image>
  187. <image v-if="item.isFinished" class="overlay-img"
  188. src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home4.png"></image>
  189. <!-- 描述 -->
  190. <view class="task-info-txt">
  191. <!-- <view class="" style="display: flex;">
  192. <image class="platform-img" :src="item.platform_icon_url"></image>
  193. <p style="font-size: 28rpx; line-height: 28rpx;color: black;">
  194. {{item.selection_name}}
  195. </p>
  196. </view> -->
  197. <view class="Tasktext">
  198. <image class="platform-img" :src="item.PlatformInfo.platform_icon"></image>
  199. <span>
  200. {{item.SelectionInfo.selection_name}}
  201. </span>
  202. </view>
  203. <p style="color: #ffcb41 ;">任务截至时间:{{item.ddl}}</p>
  204. <p>售价:¥{{item.price}} 佣金率:{{item.exclusive_commission}}%</p>
  205. <!-- sectask表有已经有 -->
  206. <p>全部销售量/有效销售量:{{item.sale_num_all}}单/{{item.sale_actual}}单</p>
  207. <p v-if="item.task_mode==1">悬赏金额/悬赏有效销售量:
  208. ¥{{item.RewardStrategy[0].per_reward}}/{{item.RewardStrategy[0].sale_actual}}单</p>
  209. <p v-if="item.sample_mode==1">免费领样状态:{{ getFreeStageText(item.free_stage) }}</p>
  210. </view>
  211. </view>
  212. <!-- 右侧图标 -->
  213. <view class="task-info-right">
  214. <image
  215. src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent_upload/icon-arrow-right.png"
  216. style="height: 30rpx;width: 30rpx;"></image>
  217. </view>
  218. </view>
  219. <view class="container">
  220. <p class="left-text" v-if="item.reward_stage == 1">
  221. <span style="color: red;">待领悬赏</span>
  222. </p>
  223. <!-- 当 item.reward_stage 为 2 时,显示 "已领悬赏" 并设置文字颜色为绿色 -->
  224. <p class="left-text" v-else-if="item.reward_stage == 2">
  225. <span style="color: green;">已领悬赏</span>
  226. </p>
  227. <p class="right-text" v-if="item.reward_stage==2">实际收益:<span
  228. style="color: red;">¥{{item.RewardStrategy[0].per_reward}}</span></p>
  229. </view>
  230. </view>
  231. </view>
  232. </view>
  233. </view>
  234. </template>
  235. <script>
  236. import mvBar from "@/components/mys_navBar/mysNavBar";
  237. import {
  238. fansview,
  239. money,
  240. getDaysAndHoursBetweenDates,
  241. } from '@/components/utils.js';
  242. export default {
  243. components: {
  244. mvBar,
  245. },
  246. data() {
  247. return {
  248. navH: getApp().globalData.navHeight,
  249. mysNavConfig: {
  250. /* 开启单页显示首页图标 */
  251. isHome: true,
  252. /* 固定导航 */
  253. navFixed: true,
  254. /* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
  255. navTitle: {
  256. text: "我的带货任务",
  257. color: "",
  258. fontSize: "32rpx", // px upx rpx
  259. fontWeight: "normal", // 100 - 700
  260. },
  261. btnType: "type2",
  262. onLeftClick: "/pages/mycenter/mycenter",
  263. /* type2 按钮 */
  264. type2Config: {
  265. // 左图标
  266. leftPath: "/static/img/png2.png",
  267. // 右图标
  268. rightPath: "/static/img/png4.png",
  269. // 圆角
  270. radius: "40rpx",
  271. },
  272. },
  273. loading: false,
  274. showList: [true, false, false, false],
  275. secTaskStageList: [],
  276. secTaskLists: [
  277. [],
  278. [],
  279. [],
  280. []
  281. ],
  282. curTab: 0,
  283. productInfo: {},
  284. }
  285. },
  286. async onLoad(options) {
  287. // 判断登录
  288. await this.isLoginApi();
  289. if (this.token === '') {
  290. uni.showModal({
  291. content: '请先登录',
  292. success: function(res) {
  293. if (res.confirm) {
  294. uni.navigateTo({
  295. url: '/pages/login/login'
  296. });
  297. } else if (res.cancel) {
  298. uni.navigateBack();
  299. }
  300. }
  301. });
  302. }
  303. console.log("options--->", options)
  304. let data = options.textObj.replace(/""/g, "");
  305. data = JSON.parse(decodeURIComponent(data))
  306. console.log("data(上级页面参数解码后)--->", data)
  307. this.curTab = data.value
  308. console.log("curTab---->", this.curTab)
  309. let that = this
  310. this.showList.forEach(function(item, index) {
  311. if (index == that.curTab) {
  312. that.showList[index] = true
  313. } else {
  314. that.showList[index] = false
  315. }
  316. })
  317. console.log("showList: ", this.showList)
  318. },
  319. async onShow() {
  320. console.log("onshow!!!!!!!!")
  321. await this.getInfoTableApi()
  322. this.handleClickTab(this.curTab)
  323. },
  324. methods: {
  325. getFreeStageText(freeStage) {
  326. switch (freeStage) {
  327. case 1:
  328. return '已申请';
  329. case 2:
  330. return '已拒绝';
  331. case 3:
  332. return '待发货';
  333. case 4:
  334. return '已发货';
  335. case 5:
  336. return '已收货';
  337. default:
  338. return '未知状态';
  339. }
  340. },
  341. async handleClickTab(value) {
  342. this.loading = true;
  343. uni.showLoading({
  344. title: '加载中'
  345. });
  346. let that = this
  347. this.showList.forEach(function(item, index) {
  348. if (index == value) {
  349. that.showList[index] = true
  350. } else {
  351. that.showList[index] = false
  352. }
  353. })
  354. console.log("handleClickTab", that.showList)
  355. // value为0123
  356. await this.getSecTaskListApi_new(parseInt(value) + 1);
  357. uni.hideLoading();
  358. this.loading = false;
  359. },
  360. handleToSecTaskDetail(item) {
  361. console.log("item--->", item)
  362. uni.navigateTo({
  363. url: '/page_workspace/selection/sectaskdetail1?taskId=' + item.task_id,
  364. success(res) {},
  365. fail(err) {}
  366. });
  367. },
  368. // 判断登陆是否过期
  369. isLoginApi() {
  370. return this.$https.get('/youngee/c/t/g/is-login')
  371. .then(res => {
  372. if (res.data.code === 403) {
  373. // 登陆已失效
  374. this.token = ""
  375. uni.clearStorage();
  376. } else {
  377. this.token = uni.getStorageSync('token')
  378. }
  379. })
  380. },
  381. // 获取所有的info_sectask_stage的状态即 任务阶段
  382. getInfoTableApi() {
  383. return this.$https.get('/youngee/c/g/get-info-tables')
  384. .then(res => {
  385. console.log("/youngee/c/g/get-info-tables", res)
  386. this.secTaskStageList = res.data.data.SecTaskStage
  387. })
  388. },
  389. getProductInfoApi(item) {
  390. return this.$https.get('/youngee/c/t/g/get-product-detail' +
  391. "?productid=" +
  392. item
  393. )
  394. .then(res => {
  395. console.log("getproductsuccess---", res)
  396. this.productInfo = res.data.data
  397. })
  398. },
  399. // 此处value为1234(在后端处理后,每个数字会对应多个状态) 更多task_stage参考info_sectask_stage
  400. async getSecTaskListApi(value) {
  401. return this.$https.get('/youngee/c/api/t/secTask/list?task_stage=' + value).then(
  402. async res => { // 注意这里添加了async关键字
  403. if (res.data.code === 1) {
  404. console.log("res--->", res)
  405. let secTaskList = res.data.data.sec_task
  406. console.log("secTaskList--->", secTaskList)
  407. let num = res.data.data.count
  408. for (let i = 0; i < num; ++i) {
  409. //通过prouctid获取product表和product_photo表的信息
  410. await this.getProductInfoApi(secTaskList[i].product_id);
  411. console.log("****secTaskList[i]*******", secTaskList[i])
  412. secTaskList[i].price = this.productInfo.product_price
  413. secTaskList[i].exclusive_commission = this.productInfo.exclusive_commission
  414. // 主图
  415. if (secTaskList[i].product_photo_snap != null && secTaskList[i]
  416. .product_photo_snap !=
  417. '') {
  418. let productPhoto = JSON.parse(secTaskList[i].product_photo_snap);
  419. for (let j = 0; j < productPhoto.length; j++) {
  420. if (productPhoto[j].Symbol == 1) {
  421. secTaskList[i].product_img_url = productPhoto[j].PhotoUrl
  422. }
  423. }
  424. }
  425. //截至时间
  426. secTaskList[i].ddl = secTaskList[i].task_ddl
  427. //售价和佣金率
  428. // 待修改标识
  429. if (secTaskList[i].task_stage == 8 && secTaskList[i].assignment_status == 3) {
  430. secTaskList[i].isShowModify = true
  431. } else {
  432. secTaskList[i].isShowModify = false
  433. }
  434. // 任务阶段展示
  435. secTaskList[i].task_stage_txt = this.secTaskStageList[secTaskList[i]
  436. .task_stage - 1]
  437. .task_stage
  438. // 任务收益
  439. }
  440. this.secTaskLists[value - 1] = secTaskList
  441. }
  442. })
  443. },
  444. // 此处value为1234(在后端处理后,每个数字会对应多个状态) 更多task_stage参考info_sectask_stage
  445. async getSecTaskListApi_new(value) {
  446. return this.$https.get('/youngee/c/api/t/secTask/list-tab?tab_stage=' + value).then(
  447. async res => { // 注意这里添加了async关键字
  448. if (res.data.code === 1) {
  449. console.log("****res*******", res)
  450. let secTaskList = res.data.data.SecTaskTable
  451. let num = res.data.data.count
  452. for (let i = 0; i < num; ++i) {
  453. console.log("****secTaskList[i]*******", secTaskList[i])
  454. let product_info = secTaskList[i].YounggeeProduct
  455. let product_photo_info = secTaskList[i].YounggeeProductPhoto
  456. let selection_platform = secTaskList[i].PlatformInfo
  457. secTaskList[i].price = product_info.product_price
  458. secTaskList[i].exclusive_commission = product_info.exclusive_commission
  459. // 主图
  460. if (product_photo_info != null && product_photo_info != '') {
  461. for (let j = 0; j < product_photo_info.length; j++) {
  462. if (product_photo_info[j].symbol == 1) {
  463. secTaskList[i].product_img_url = product_photo_info[j].photo_url
  464. }
  465. }
  466. }
  467. //截至时间
  468. secTaskList[i].ddl = secTaskList[i].SelectionInfo.task_ddl
  469. // 判断是否到期
  470. secTaskList[i].isFinished = this.isFinish(secTaskList[i].ddl)
  471. }
  472. this.secTaskLists[value - 1] = secTaskList
  473. }
  474. })
  475. },
  476. isFinish(ddl) {
  477. var timeNow = new Date();
  478. var ddl = new Date(ddl.replace(/-/g, "/"));
  479. var diff = getDaysAndHoursBetweenDates(timeNow, ddl);
  480. let remain_days = diff.days;
  481. let remain_hours = diff.hours;
  482. if (remain_days <= 0 & remain_hours <= 0) return true;
  483. else return false;
  484. },
  485. }
  486. }
  487. </script>
  488. <style lang="scss" scoped>
  489. p {
  490. font-size: 32rpx;
  491. }
  492. .overlay-img {
  493. position: absolute;
  494. width: 200rpx;
  495. height: 200rpx;
  496. background-color: black;
  497. opacity: 0.5;
  498. pointer-events: none;
  499. /* This makes the overlay image not interfere with any click events on the main image */
  500. }
  501. .container {
  502. display: flex;
  503. justify-content: space-between;
  504. align-items: center;
  505. height: 20rpx;
  506. }
  507. .left-text {
  508. text-align: left;
  509. flex: 1;
  510. font-size: 30rpx;
  511. padding-left: 20rpx;
  512. }
  513. .right-text {
  514. text-align: right;
  515. flex: 1;
  516. font-size: 30rpx;
  517. padding-right: 20rpx;
  518. padding-top: 15rpx;
  519. }
  520. .Tasktext {
  521. // padding-top: 5% ;
  522. padding: 0 0 0 1%;
  523. // height: 80rpx;
  524. // margin-top: 2%;
  525. }
  526. .Tasktext span {
  527. color: #333333;
  528. font-size: 23rpx;
  529. font-weight: 550;
  530. text-indent: 2em;
  531. }
  532. .Tasktext image {
  533. vertical-align: middle;
  534. width: 50rpx;
  535. height: 50rpx;
  536. display: inline-block;
  537. padding-right: 14rpx;
  538. }
  539. .home {
  540. padding-top: 70rpx;
  541. }
  542. .menu {
  543. position: fixed;
  544. border-bottom: #FCCF41;
  545. background-color: #FFFFFF;
  546. justify-content: space-around;
  547. height: 5%;
  548. width: 100%;
  549. display: flex;
  550. z-index: 10;
  551. }
  552. .menu-item p {
  553. font-weight: 600;
  554. &.lor {
  555. border-bottom: 5rpx solid #F0D232;
  556. color: #F0D232;
  557. padding-bottom: 15rpx;
  558. }
  559. &.unlor {
  560. border-bottom: 5rpx solid #fff;
  561. color: #81838f;
  562. padding-bottom: 15rpx;
  563. }
  564. }
  565. .task-card {
  566. margin: 10rpx 0;
  567. height: 300rpx;
  568. background-color: #f2f2f2;
  569. // border-bottom: 1rpx #d7d7d7 solid;
  570. .platform-img {
  571. width: 40rpx;
  572. height: 40rpx;
  573. margin-right: 10rpx;
  574. flex-shrink: 0;
  575. }
  576. .task-head {
  577. display: flex;
  578. justify-content: space-between;
  579. align-items: center;
  580. padding: 10rpx 20rpx;
  581. .task-head-account {
  582. display: flex;
  583. }
  584. .platform-img {
  585. width: 40rpx;
  586. height: 40rpx;
  587. margin-right: 10rpx;
  588. flex-shrink: 0;
  589. }
  590. .task-head-status p {
  591. color: red;
  592. }
  593. }
  594. .task-info {
  595. display: flex;
  596. justify-content: space-between;
  597. padding: 10rpx 20rpx;
  598. .task-info-left {
  599. display: flex;
  600. // align-items: center;
  601. .project-img {
  602. height: 200rpx;
  603. width: 200rpx;
  604. flex-shrink: 0;
  605. // background-color: #b3c96b;
  606. }
  607. .task-info-txt {
  608. margin-left: 10rpx;
  609. }
  610. .task-info-txt p {
  611. font-size: 24rpx;
  612. color: #85859d;
  613. letter-spacing: 2rpx;
  614. // margin-bottom: 4rpx;
  615. }
  616. }
  617. .task-info-right {
  618. // width: 100rpx;
  619. // height: 100rpx;
  620. border-radius: 50%;
  621. // border: #ffcb41 2rpx solid;
  622. display: flex;
  623. align-items: center;
  624. justify-content: center;
  625. }
  626. .task-info-right p {
  627. font-size: 24rpx;
  628. }
  629. }
  630. }
  631. </style>