index.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893
  1. <template>
  2. <div class="order">
  3. <div class="warp">
  4. <el-tabs type="border-card" @tab-click="changeTab" v-model="activeName">
  5. <el-tab-pane label="项目订单" name="first">
  6. <div class="user-list">
  7. <el-table
  8. ref="multipleTable"
  9. :data="projectData"
  10. tooltip-effect="dark"
  11. height="354"
  12. style="width: 100%; border-radius: 8px"
  13. @row-click="handleSelectionChange"
  14. >
  15. <el-table-column prop="goods" label="项目名称" width="200">
  16. <template slot-scope="scope">
  17. <div v-for="(val, index) in scope.row.goods" :key="index">
  18. <div>{{ val.name }}</div>
  19. </div>
  20. </template>
  21. </el-table-column>
  22. <el-table-column prop="goods" label="数量" show-overflow-tooltip>
  23. <template slot-scope="scope">
  24. <div>{{ scope.row.goods.length }}</div>
  25. </template>
  26. </el-table-column>
  27. <el-table-column
  28. prop="price"
  29. label="总价格"
  30. show-overflow-tooltip
  31. ></el-table-column>
  32. <el-table-column
  33. prop="order_time"
  34. label="预约时间"
  35. width="180"
  36. show-overflow-tooltip
  37. ></el-table-column>
  38. <el-table-column
  39. prop="store_name"
  40. label="预约店铺"
  41. show-overflow-tooltip
  42. ></el-table-column>
  43. <el-table-column prop="status" label="状态" show-overflow-tooltip>
  44. <template slot-scope="scope">
  45. <div :class="'color' + scope.row.status">
  46. {{
  47. scope.row.status != 5
  48. ? statusStr[scope.row.status]
  49. : statusStr[statusStr.length - 1]
  50. }}
  51. </div>
  52. </template>
  53. </el-table-column>
  54. </el-table>
  55. <div class="pagin">
  56. <el-pagination
  57. background
  58. layout="prev, pager, next"
  59. @current-change="handleCurrentChange"
  60. :current-page.sync="currentPage1"
  61. :total="total"
  62. ></el-pagination>
  63. </div>
  64. </div>
  65. </el-tab-pane>
  66. <el-tab-pane label="次卡订单" name="second">
  67. <div class="user-list">
  68. <el-table
  69. ref="multipleTable"
  70. :data="cardListData"
  71. tooltip-effect="dark"
  72. height="354"
  73. @row-click="openDetail"
  74. style="width: 100%; border-radius: 8px"
  75. >
  76. <el-table-column prop="card_name" label="卡券名称" width="200">
  77. <template slot-scope="scope">
  78. <div>{{ scope.row.card_name | ellipsis(8) }}</div>
  79. </template>
  80. </el-table-column>
  81. <el-table-column
  82. prop="total_num"
  83. label="总次数"
  84. show-overflow-tooltip
  85. align="center"
  86. >
  87. </el-table-column>
  88. <el-table-column
  89. prop="num"
  90. label="剩余次数"
  91. show-overflow-tooltip
  92. align="center"
  93. ></el-table-column>
  94. <el-table-column
  95. prop="used_num"
  96. label="已用次数"
  97. width="180"
  98. show-overflow-tooltip
  99. align="center"
  100. ></el-table-column>
  101. <el-table-column
  102. prop="expir_time"
  103. label="过期时间"
  104. width="180"
  105. show-overflow-tooltip
  106. >
  107. <template slot-scope="{ row }">
  108. <div class="expir_time" @click.stop="amendCardTime(row)">
  109. {{ row.expir_time }}
  110. </div>
  111. </template>
  112. </el-table-column>
  113. <el-table-column
  114. prop="create_time"
  115. label="创建时间"
  116. width="180"
  117. show-overflow-tooltip
  118. ></el-table-column>
  119. <el-table-column prop="status" label="状态" show-overflow-tooltip>
  120. <template slot-scope="scope">
  121. <div :class="'color' + scope.row.status">
  122. {{
  123. scope.row.status == -1
  124. ? "已过期"
  125. : scope.row.status == -0
  126. ? "已使用"
  127. : "待使用"
  128. }}
  129. </div>
  130. </template>
  131. </el-table-column>
  132. </el-table>
  133. <div class="pagin">
  134. <el-pagination
  135. background
  136. layout="prev, pager, next"
  137. @current-change="handleCurrentChange"
  138. :current-page.sync="currentPage1"
  139. :total="total"
  140. ></el-pagination>
  141. </div>
  142. </div>
  143. </el-tab-pane>
  144. <el-tab-pane label="商品订单" name="third">
  145. <div class="user-list">
  146. <el-table
  147. ref="multipleTable"
  148. :data="goodData"
  149. tooltip-effect="dark"
  150. height="354"
  151. style="width: 100%; border-radius: 8px"
  152. >
  153. <!-- create_time: "2022-03-19 22:53:40"
  154. goods: [{order_id: 47, name: "润百颜玻尿酸屏障调理面膜", num: 1}]
  155. id: 47
  156. price: "0.01"
  157. status: 5 -->
  158. <el-table-column prop="goods" label="商品名称" width="200">
  159. <template slot-scope="scope">
  160. <div v-for="(val, index) in scope.row.goods" :key="index">
  161. <div>{{ val.name }}</div>
  162. </div>
  163. </template>
  164. </el-table-column>
  165. <el-table-column prop="goods" label="数量" show-overflow-tooltip>
  166. <template slot-scope="scope">
  167. <div>{{ scope.row.goods.length }}</div>
  168. </template>
  169. </el-table-column>
  170. <el-table-column
  171. prop="price"
  172. label="实付款"
  173. show-overflow-tooltip
  174. ></el-table-column>
  175. <el-table-column
  176. prop="create_time"
  177. label="下单时间"
  178. width="180"
  179. show-overflow-tooltip
  180. ></el-table-column>
  181. <el-table-column prop="status" label="状态" show-overflow-tooltip>
  182. <template slot-scope="scope">
  183. <div :class="'classShow' + scope.$index">
  184. <!-- {{
  185. scope.row.status == 1 || scope.row.status == 2
  186. ? goodStatus[scope.row.status]
  187. : goodStatus[goodStatus.length - 1]
  188. }} -->
  189. {{
  190. scope.row.status == 2 || scope.row.status == 3
  191. ? "已取货"
  192. : scope.row.status == 0
  193. ? "未支付"
  194. : scope.row.status == 1
  195. ? "待取货"
  196. : "已取消"
  197. }}
  198. </div>
  199. </template>
  200. </el-table-column>
  201. </el-table>
  202. <div class="pagin">
  203. <el-pagination
  204. background
  205. layout="prev, pager, next"
  206. @current-change="handleCurrentChange"
  207. :current-page.sync="currentPage1"
  208. :total="total"
  209. ></el-pagination>
  210. </div>
  211. </div>
  212. </el-tab-pane>
  213. <el-tab-pane label="优惠券" name="fourth">
  214. <div class="user-list">
  215. <el-table
  216. ref="multipleTable"
  217. :data="couponData"
  218. tooltip-effect="dark"
  219. height="354"
  220. style="width: 100%; border-radius: 8px"
  221. >
  222. <!-- create_time: "2022-03-10 10:39:19"
  223. ex_time: "2022.03.17 23:59"
  224. id: 2517
  225. name: "新人体验券"
  226. status: 2
  227. type: "全额券" -->
  228. <el-table-column
  229. prop="name"
  230. label="卡卷名称"
  231. width="200"
  232. ></el-table-column>
  233. <el-table-column
  234. prop="type"
  235. label="卡卷类型"
  236. show-overflow-tooltip
  237. ></el-table-column>
  238. <el-table-column
  239. prop="price"
  240. label="总价格"
  241. show-overflow-tooltip
  242. ></el-table-column>
  243. <el-table-column
  244. prop="ex_time"
  245. label="到期时间"
  246. width="180"
  247. show-overflow-tooltip
  248. ></el-table-column>
  249. <el-table-column
  250. prop="create_time"
  251. label="创建时间"
  252. width="180"
  253. show-overflow-tooltip
  254. ></el-table-column>
  255. <el-table-column prop="status" label="状态" show-overflow-tooltip>
  256. <template slot-scope="scope">
  257. <div :class="'color' + scope.row.status">
  258. {{ couponStatus[scope.row.status] }}
  259. </div>
  260. </template>
  261. </el-table-column>
  262. </el-table>
  263. <div class="pagin">
  264. <el-pagination
  265. background
  266. layout="prev, pager, next"
  267. @current-change="handleCurrentChange"
  268. :current-page.sync="currentPage1"
  269. :total="total"
  270. ></el-pagination>
  271. </div>
  272. </div>
  273. </el-tab-pane>
  274. </el-tabs>
  275. </div>
  276. <!-- 次卡详情 -->
  277. <mine-pupop :show="isPore">
  278. <div class="pore-block">
  279. <div class="delete-pupop" @click="isPore = false">
  280. <img
  281. src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/delete.png"
  282. alt
  283. />
  284. </div>
  285. <div class="pore-content">
  286. <div class="card-title">订单详情</div>
  287. <div class="project">
  288. <div class="project-title">项目名称:</div>
  289. <div class="project-list">
  290. <div
  291. class="project-info"
  292. v-for="(item, index) in cardInfo.project_list"
  293. :key="index"
  294. >
  295. <div class="name-text">{{ item.project_name }}</div>
  296. <div class="change-num">
  297. <div class="num-content">
  298. <div class="content-left" @click="reduce(index)">-</div>
  299. <div class="content-num">{{ item.num || 0 }}</div>
  300. <div class="content-right" @click="item.num++">+</div>
  301. </div>
  302. </div>
  303. </div>
  304. </div>
  305. </div>
  306. <div class="common">
  307. <span class="common-title">支付方式:</span
  308. ><span>{{ cardInfo.pay_way }}</span>
  309. </div>
  310. <div class="common">
  311. <span class="common-title">有效期限:</span
  312. ><span>{{ cardInfo.ex_time }}</span>
  313. </div>
  314. <div class="common">
  315. <span class="common-title">实付金额:</span
  316. ><span>¥{{ cardInfo.price }}</span>
  317. </div>
  318. <div class="consume-list">
  319. <div class="consume-title">消耗信息:</div>
  320. <div
  321. class="consume-info min-size"
  322. v-for="(item, index) in cardLogList"
  323. :key="index"
  324. >
  325. <div class="shop">{{ item.store_name }}</div>
  326. <div class="project-tips">{{ item.remark }}</div>
  327. <div class="project-ts">{{ item.create_time }}</div>
  328. </div>
  329. </div>
  330. </div>
  331. <div class="confirm" @click="confirm">确定</div>
  332. </div>
  333. </mine-pupop>
  334. <!-- 修改次卡时间 -->
  335. <mine-pupop :show="isAmend">
  336. <div class="amendTime">
  337. <div class="image">
  338. <img
  339. src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/delete.png"
  340. alt
  341. @click="closeAmend"
  342. />
  343. </div>
  344. <div class="admendTime-content">
  345. <div class="oldTime">
  346. 次卡过期时间 :<span> {{ amendCardInfo.expir_time }}</span>
  347. </div>
  348. <div class="newTime">
  349. 选择更改日期:
  350. <el-date-picker
  351. class="date"
  352. v-model="cardTime"
  353. type="date"
  354. placeholder="选择日期"
  355. value-format="yyyy-MM-dd"
  356. @focus="forbid"
  357. >
  358. </el-date-picker>
  359. </div>
  360. <div class="radio">
  361. <button class="cancelBtn" @click="cancel">取消</button>
  362. <button class="affirmBtn" @click="affirm">确定</button>
  363. </div>
  364. </div>
  365. </div>
  366. </mine-pupop>
  367. </div>
  368. </template>
  369. <script>
  370. import api from "../../../server/home";
  371. import minePupop from "../../../components/minePupop/index.vue";
  372. export default {
  373. components: {
  374. minePupop,
  375. },
  376. data() {
  377. return {
  378. couponList: [
  379. {
  380. value: "选项1",
  381. label: "黄金糕",
  382. },
  383. {
  384. value: "选项2",
  385. label: "双皮奶",
  386. },
  387. ],
  388. tableData: [
  389. {
  390. date: "2022.04.25 14:30",
  391. name: "滴滴滴",
  392. headImg:
  393. "https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/unpaid.png",
  394. phone: "13346783645",
  395. numberList: 2,
  396. price: 100,
  397. shop: "运用店",
  398. status: 2,
  399. },
  400. {
  401. date: "2022.04.25 14:30",
  402. name: "滴滴滴",
  403. headImg:
  404. "https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/home/unpaid.png",
  405. phone: "13346783645",
  406. numberList: 5,
  407. price: 800,
  408. shop: "武昌店",
  409. status: 1,
  410. },
  411. ],
  412. statusStr: ["未支付", "待使用", "正在使用", "已结算", "已取消"],
  413. couponStatus: ["待使用", "已使用", "已过期"],
  414. goodStatus: ["未支付", "已支付", "已取货"],
  415. activeName: "first",
  416. currentPage1: 1,
  417. couponData: [],
  418. goodData: [],
  419. projectData: [],
  420. cardOrderData: [],
  421. total: 100,
  422. limit: 10,
  423. isPore: false,
  424. cardInfo: {}, //订单详情
  425. cardLogList: [], //次卡消耗记录
  426. cardListData: [], //用户次卡列表
  427. isAmend: false, //修改次卡时间弹窗
  428. amendCardInfo: "", // 要修改次卡的信息
  429. cardTime: "", //次卡修改时间(年月日)
  430. };
  431. },
  432. computed: {},
  433. watch: {},
  434. methods: {
  435. // 阻止修改次卡时间时键盘弹出
  436. forbid() {
  437. //禁止软键盘弹出
  438. document.activeElement.blur();
  439. },
  440. // 修改次卡时间取消
  441. cancel() {
  442. this.isAmend = false;
  443. this.cardTime = "";
  444. },
  445. // 修改次卡时间确定
  446. affirm() {
  447. this.amendCardTimeApi();
  448. },
  449. // 修改次卡时间
  450. amendCardTime(e) {
  451. this.isAmend = true;
  452. this.amendCardInfo = e;
  453. console.log(e);
  454. },
  455. // 关闭修改次卡时间弹窗
  456. closeAmend() {
  457. this.isAmend = false;
  458. this.cardTime = "";
  459. },
  460. // 发起修改次卡订单请求
  461. amendCardTimeApi() {
  462. api
  463. .amendCardTime({
  464. id: this.amendCardInfo.id,
  465. expire_date: this.cardTime,
  466. })
  467. .then((res) => {
  468. if (res.code == 200) {
  469. this.$message({
  470. message: res.msg,
  471. type: "success",
  472. });
  473. this.isAmend = false;
  474. // 更新次卡列表
  475. this.getCardList();
  476. }
  477. });
  478. },
  479. // 获取优惠券订单
  480. getUserCoupon() {
  481. let params = {
  482. page: this.currentPage1,
  483. limit: this.limit,
  484. id: this.id,
  485. };
  486. api.getUserCoupon(params).then((res) => {
  487. this.couponData = res.data.list;
  488. this.total = res.data.total;
  489. });
  490. },
  491. reduce(index) {
  492. this.cardInfo.project_list[index].num--;
  493. if (this.cardInfo.project_list[index].num < 0) {
  494. this.cardInfo.project_list[index].num = 0;
  495. }
  496. },
  497. //次卡订单详情
  498. openDetail(row, column, event) {
  499. this.isPore = true;
  500. api.cardInfo({ id: row.id }).then((res) => {
  501. if (res.code == 200) {
  502. this.cardInfo = res.data;
  503. }
  504. });
  505. api.cardLog({ id: row.id }).then((res) => {
  506. if (res.code == 200) {
  507. this.cardLogList = res.data.list;
  508. }
  509. });
  510. },
  511. confirm() {
  512. // 项目ID,json字符,格式如:[{"project_id":"10","num":5}],project_id:适用项目ID,num:剩余次数
  513. let project_data = [],
  514. project_info = {};
  515. this.cardInfo.project_list.forEach((res) => {
  516. project_info = {
  517. project_id: res.id,
  518. num: res.num,
  519. };
  520. project_data.push(project_info);
  521. });
  522. api
  523. .cardUpdate({
  524. id: this.cardInfo.id,
  525. project_data: JSON.stringify(project_data),
  526. })
  527. .then((res) => {
  528. if (res.code == 200) {
  529. this.$message.success("更改成功!");
  530. this.isPore = false;
  531. }
  532. });
  533. },
  534. // 获取商品订单
  535. getUserGoods() {
  536. let params = {
  537. page: this.currentPage1,
  538. limit: this.limit,
  539. id: this.id,
  540. };
  541. api.getUserGoods(params).then((res) => {
  542. this.goodData = res.data.list;
  543. this.total = res.data.total;
  544. });
  545. },
  546. // 获取获取项目订单
  547. getUserProject() {
  548. let params = {
  549. page: this.currentPage1,
  550. limit: this.limit,
  551. id: this.id,
  552. };
  553. api.getUserProject(params).then((res) => {
  554. this.projectData = res.data.list;
  555. this.total = res.data.total;
  556. });
  557. },
  558. // 获取卡券订单
  559. // async getCardOrders() {
  560. // let params = {
  561. // page: this.currentPage1,
  562. // limit: this.limit,
  563. // id: this.id,
  564. // };
  565. // let resp = await api.getCardOrders(params);
  566. // if (resp.code === 200) {
  567. // console.log(resp, "adadasdasdadsadsadasd");
  568. // this.cardOrderData = resp.data.list;
  569. // this.total = resp.data.total;
  570. // }
  571. // },
  572. //获取用户次卡列表
  573. async getCardList() {
  574. let params = {
  575. page: this.currentPage1,
  576. limit: this.limit,
  577. id: this.id,
  578. };
  579. let resp = await api.getCardList(params);
  580. if (resp.code === 200) {
  581. console.log(resp, "asdasdasd");
  582. this.cardListData = resp.data.list;
  583. this.total = resp.data.total;
  584. }
  585. },
  586. handleCurrentChange(val) {
  587. this.currentPage1 = val;
  588. if (this.activeName == "first") {
  589. this.getUserProject();
  590. } else if (this.activeName == "second") {
  591. // this.getCardOrders();
  592. this.getCardList();
  593. } else if (this.activeName == "third") {
  594. this.getUserGoods();
  595. } else if (this.activeName == "fourth") {
  596. this.getUserCoupon();
  597. }
  598. },
  599. handleSelectionChange(row, column, event) {
  600. this.$router.push({
  601. path: "/historicalOrder/details",
  602. query: {
  603. id: row.id,
  604. },
  605. });
  606. },
  607. onSubmit() {},
  608. submitFrequency() {},
  609. changeTab(e) {
  610. this.currentPage1 = 1;
  611. if (e.index == 0) {
  612. this.getUserProject();
  613. } else if (e.index == 1) {
  614. // this.getCardOrders();
  615. this.getCardList();
  616. } else if (e.index == 2) {
  617. this.getUserGoods();
  618. } else if (e.index == 3) {
  619. this.getUserCoupon();
  620. }
  621. },
  622. },
  623. created() {
  624. let id = this.$route.query.id;
  625. let activeName = this.$route.query.activeName;
  626. this.activeName = activeName;
  627. this.id = id;
  628. if (this.activeName == "first") {
  629. this.getUserProject();
  630. } else if (this.activeName == "second") {
  631. // this.getCardOrders();
  632. this.getCardList();
  633. } else if (this.activeName == "third") {
  634. this.getUserGoods();
  635. } else if (this.activeName == "fourth") {
  636. this.getUserCoupon();
  637. }
  638. },
  639. mounted() {},
  640. };
  641. </script>
  642. <style lang='less' scoped>
  643. .order {
  644. height: 100%;
  645. width: 100%;
  646. .pagin {
  647. padding: 20px 0;
  648. .el-pagination {
  649. text-align: center;
  650. }
  651. }
  652. .colorList {
  653. color: green;
  654. }
  655. }
  656. .color0 {
  657. color: #fc3019;
  658. }
  659. .color1 {
  660. color: #3ef3ed;
  661. }
  662. .color2 {
  663. color: #00eeee;
  664. }
  665. .color3 {
  666. color: #61d09d;
  667. }
  668. .color4 {
  669. color: #3115cc;
  670. }
  671. .color5 {
  672. color: #fc3019;
  673. }
  674. .color6 {
  675. color: #a999ea;
  676. }
  677. .priceColor {
  678. color: #ff3007;
  679. }
  680. .pore-block {
  681. width: 540px;
  682. height: 400px;
  683. background: #ffffff;
  684. border-radius: 8px;
  685. position: relative;
  686. padding: 26px 72px 80px 30px;
  687. .delete-pupop {
  688. width: 32px;
  689. position: absolute;
  690. right: 5px;
  691. top: 5px;
  692. img {
  693. width: 100%;
  694. }
  695. }
  696. .pore-content {
  697. overflow: scroll;
  698. height: 310px;
  699. .card-title {
  700. font-size: 14px;
  701. font-family: PingFangSC-Medium, PingFang SC;
  702. font-weight: 500;
  703. color: #333333;
  704. line-height: 20px;
  705. text-align: center;
  706. }
  707. .project {
  708. display: flex;
  709. font-size: 13px;
  710. font-family: PingFangSC-Regular, PingFang SC;
  711. font-weight: 400;
  712. color: #333333;
  713. line-height: 18px;
  714. .project-title {
  715. color: #999999;
  716. }
  717. .project-list {
  718. flex: 1;
  719. .project-info {
  720. flex: 1;
  721. .change-num {
  722. margin-top: 6px;
  723. width: 100%;
  724. display: flex;
  725. justify-content: end;
  726. .num-content {
  727. width: 104px;
  728. height: 28px;
  729. background: #ffffff;
  730. border-radius: 2px;
  731. border: 1px solid #fa7d22;
  732. display: flex;
  733. align-items: center;
  734. .content-left,
  735. .content-right {
  736. width: 28px;
  737. height: 100%;
  738. background: #fa7d22;
  739. font-size: 20px;
  740. line-height: 24px;
  741. color: #ffffff;
  742. text-align: center;
  743. }
  744. .content-num {
  745. flex: 1;
  746. font-size: 12px;
  747. font-family: PingFangSC-Regular, PingFang SC;
  748. font-weight: 400;
  749. color: rgba(0, 0, 0, 0.65);
  750. text-align: center;
  751. }
  752. }
  753. }
  754. }
  755. }
  756. }
  757. .common {
  758. margin-top: 6px;
  759. font-size: 13px;
  760. font-family: PingFangSC-Regular, PingFang SC;
  761. font-weight: 400;
  762. color: #333333;
  763. line-height: 18px;
  764. .common-title {
  765. color: #999999;
  766. }
  767. }
  768. .consume-list {
  769. margin-top: 6px;
  770. .consume-title {
  771. font-size: 13px;
  772. font-family: PingFangSC-Regular, PingFang SC;
  773. font-weight: 400;
  774. color: #999999;
  775. line-height: 18px;
  776. }
  777. .consume-info {
  778. margin-top: 6px;
  779. font-size: 10px;
  780. font-family: PingFangSC-Regular, PingFang SC;
  781. font-weight: 400;
  782. color: #333333;
  783. line-height: 14px;
  784. display: flex;
  785. justify-content: space-between;
  786. .shop {
  787. }
  788. .project-tips {
  789. flex: 1;
  790. margin: 0 10px;
  791. }
  792. .project-ts {
  793. }
  794. }
  795. }
  796. }
  797. .confirm {
  798. background: #fa7d22;
  799. border-radius: 14px;
  800. position: absolute;
  801. bottom: 42px;
  802. left: 50%;
  803. transform: translateX(-50%);
  804. width: 176px;
  805. height: 28px;
  806. font-size: 14px;
  807. font-family: PingFangSC-Medium, PingFang SC;
  808. font-weight: 500;
  809. color: #ffffff;
  810. line-height: 28px;
  811. text-align: center;
  812. }
  813. }
  814. // 修改次卡时间
  815. .amendTime {
  816. width: 440px;
  817. height: 300px;
  818. background-color: #fff;
  819. border-radius: 12px;
  820. padding: 15px;
  821. .image {
  822. height: 30px;
  823. width: 30px;
  824. img {
  825. width: 100%;
  826. }
  827. }
  828. .oldTime {
  829. color: #333;
  830. margin-left: 20px;
  831. margin-top: 30px;
  832. span {
  833. margin-left: 20px;
  834. }
  835. }
  836. .newTime {
  837. margin-left: 20px;
  838. margin-top: 10px;
  839. .time {
  840. margin-top: 20px;
  841. margin-left: 110px;
  842. }
  843. .date {
  844. margin-top: 20px;
  845. margin-left: 20px;
  846. }
  847. }
  848. .radio {
  849. width: 100%;
  850. display: flex;
  851. justify-content: space-evenly;
  852. button {
  853. width: 176px;
  854. height: 28px;
  855. border-radius: 14px;
  856. background-color: #fff;
  857. border: none;
  858. margin-top: 90px;
  859. }
  860. .cancelBtn {
  861. border: 1px solid #fa7d22;
  862. color: #fa7d22;
  863. }
  864. .affirmBtn {
  865. background-color: #fa7d22;
  866. color: #fff;
  867. margin-left: 15px;
  868. }
  869. }
  870. }
  871. .expir_time {
  872. color: #3115cc;
  873. }
  874. </style>