list.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855
  1. <template>
  2. <div class="sld_order_list sld_point_order_list">
  3. <MemberTitle memberTitle="积分兑换订单"></MemberTitle>
  4. <div class="container">
  5. <h3>{{ L["积分订单"] }}</h3>
  6. <div class="sld_order_nav">
  7. <div class="sld_order_nav_con flex_row_start_center pointer">
  8. <div
  9. :class="{ item: true, active: current_state == '' }"
  10. @click="changeState('')"
  11. >
  12. {{ L["全部订单"] }}
  13. </div>
  14. <div
  15. :class="{ item: true, active: current_state == 10 }"
  16. @click="changeState(10)"
  17. >
  18. {{ L["待付款"] }}
  19. </div>
  20. <div
  21. :class="{ item: true, active: current_state == 20 }"
  22. @click="changeState(20)"
  23. >
  24. {{ L["待发货"] }}
  25. </div>
  26. <div
  27. :class="{ item: true, active: current_state == 30 }"
  28. @click="changeState(30)"
  29. >
  30. {{ L["待收货"] }}
  31. </div>
  32. </div>
  33. <div class="search_con flex_row_start_center search_info">
  34. <div class="search_incon flex_row_start_center">
  35. <el-input
  36. class="search_input"
  37. v-model="orderSn"
  38. :placeholder="L['商品名称/订单编号']"
  39. clearable
  40. @clear="clear"
  41. >
  42. </el-input>
  43. <div class="search pointer" @click="getOrderList">
  44. {{ L["搜索"] }}
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. <div class="order_title_info flex_row_start_center all_order_info">
  50. <!-- <div class="all_orders all_item">
  51. <div class="allorders">近三个月订单<img src="../../../assets/downarrow.png" alt=""></div>
  52. <div class="all_item_more">
  53. <p>近三个月订单</p>
  54. <p>今年内订单</p>
  55. <p>2021年订单</p>
  56. <p>2020年订单</p>
  57. <p>2020年以前订单</p>
  58. </div>
  59. </div> -->
  60. <el-select
  61. size="small"
  62. v-model="selectTime"
  63. placeholder="请选择"
  64. @change="changeTime"
  65. v-if="selectList.data.length > 0"
  66. class="select_el"
  67. :popper-append-to-body="false"
  68. >
  69. <el-option
  70. v-for="item in selectList.data"
  71. :key="item"
  72. :value="item.id"
  73. :label="item.name"
  74. >
  75. </el-option>
  76. </el-select>
  77. <div class="time_select select_time">订单详情</div>
  78. <div class="good_price">{{ L["单价"] }}</div>
  79. <div class="num">{{ L["数量"] }}</div>
  80. <div class="order_price">{{ L["订单金额"] }}</div>
  81. <div class="state">{{ L["订单状态"] }}</div>
  82. <div class="oprate">{{ L["操作"] }}</div>
  83. </div>
  84. <div
  85. class="order_item"
  86. v-for="(orderItem, index) in order_list.data"
  87. :key="index"
  88. >
  89. <div class="title flex_row_start_center">
  90. <div>兑换时间:{{ orderItem.createTime }}</div>
  91. <div class="order_num" @click="goDetail(orderItem.orderSn)">
  92. 兑换单号: {{ orderItem.orderSn }}
  93. </div>
  94. </div>
  95. <div class="good_info_con flex_row_start_center">
  96. <div class="good_info flex_column_center_start">
  97. <div
  98. class="item flex_row_start_center"
  99. v-for="(goodItem, index) in orderItem.orderProductList"
  100. :key="index"
  101. >
  102. <div class="good flex_row_start_center">
  103. <div class="left">
  104. <div class="virtual_tag" v-if="orderItem.isVirtualGoods == 2">
  105. 虚拟
  106. </div>
  107. <coverImage
  108. :src="goodItem.productImage"
  109. @click="goGoodsDetail(goodItem.productId)"
  110. width="100"
  111. height="100"
  112. ></coverImage>
  113. </div>
  114. <div class="right">
  115. <div
  116. class="good_name overflow_ellipsis_two"
  117. @click="goGoodsDetail(goodItem.productId)"
  118. >
  119. {{ goodItem.goodsName }}
  120. </div>
  121. <div class="spec overflow_ellipsis">
  122. {{ goodItem.specValues }}
  123. </div>
  124. </div>
  125. </div>
  126. <div class="good_price">
  127. {{ goodItem.integralPrice }}积分 + ¥{{ goodItem.cashPrice }}
  128. </div>
  129. <div class="num">*{{ goodItem.productNum }}</div>
  130. </div>
  131. </div>
  132. <!-- <div class="after flex_row_center_center">--</div> -->
  133. <div class="order_price flex_row_center_center">
  134. {{ orderItem.integral }}积分 + ¥{{ orderItem.cashAmount }}
  135. </div>
  136. <div class="state flex_column_center_center">
  137. <span class="state_value">{{ orderItem.orderStateValue }}</span>
  138. </div>
  139. <div class="oprate flex_column_center_center">
  140. <!-- 待付款、待发货订单可以修改地址 -->
  141. <div class="detail" @click="goDetail(orderItem.orderSn)">
  142. {{ L["订单详情"] }}
  143. </div>
  144. <!-- 待收货、已完成订单可以查看物流 -->
  145. <div
  146. v-if="
  147. (orderItem.orderState == 30 || orderItem.orderState == 40) &&
  148. orderItem.isVirtualGoods == 1
  149. "
  150. class="action-btn flex_row_center_center"
  151. @click="
  152. lookLogistics(orderItem.orderSn, orderItem.productLeadLittle)
  153. "
  154. >
  155. {{ L["查看物流"] }}
  156. </div>
  157. <!-- 待收货订单可以确认收货 -->
  158. <div
  159. v-if="orderItem.orderState == 30"
  160. class="action-btn recom flex_row_center_center"
  161. @click="confirmReceipt(orderItem.orderSn)"
  162. >
  163. {{ L["确认收货"] }}
  164. </div>
  165. <!-- 待付款订单可以取消订单 -->
  166. <div
  167. v-if="orderItem.orderState == 10"
  168. class="action-btn flex_row_center_center"
  169. @click="showSelectReasonDialog(orderItem.parentSn)"
  170. >
  171. {{ L["取消订单"] }}
  172. </div>
  173. <!-- 待付款订单可以立即支付 -->
  174. <div
  175. v-if="orderItem.orderState == 10"
  176. class="action-btn recom flex_row_center_center"
  177. @click="goPay(orderItem.paySn)"
  178. >
  179. {{ L["立即支付"] }}
  180. </div>
  181. <!-- 已取消、全部评价完成订单可以删除订单 -->
  182. <div
  183. v-if="orderItem.orderState == 0 || orderItem.orderState == 40"
  184. class="action-btn flex_row_center_center"
  185. @click="delOrder(orderItem.orderSn)"
  186. >
  187. {{ L["删除订单"] }}
  188. </div>
  189. <!-- <div v-if="(orderItem.orderState == 20)&&orderItem.isVirtualGoods==1"
  190. class="action-btn flex_row_center_center" @click="editAddress(orderItem.orderSn)">
  191. {{L['修改地址']}}</div> -->
  192. </div>
  193. </div>
  194. </div>
  195. <el-pagination
  196. @current-change="handleCurrentChange"
  197. :currentPage="pageData.current"
  198. :page-size="pageData.pageSize"
  199. layout="prev, pager, next, jumper"
  200. :total="pageData.total"
  201. :hide-on-single-page="true"
  202. class="flex_row_end_center"
  203. ></el-pagination>
  204. <SldCommonEmpty
  205. v-if="order_list.data.length == 0"
  206. :tip="L['暂无订单~']"
  207. totalWidth="934px"
  208. />
  209. </div>
  210. <!-- 取消理由弹窗 start -->
  211. <el-dialog
  212. :title="L['取消订单理由']"
  213. v-model="cancel_order"
  214. customClass="select_reason_width"
  215. :before-close="handleClose"
  216. lock-sroll="false"
  217. >
  218. <div class="cancel_list_con">
  219. <div
  220. v-for="(reasonItem, index) in cancel_list.data"
  221. :key="index"
  222. :class="{
  223. reason_item: true,
  224. flex_row_between_center: true,
  225. active: current_reason_id == reasonItem.reasonId,
  226. }"
  227. @click="selectReason(reasonItem.reasonId)"
  228. >
  229. <span class="reason_text">{{ reasonItem.content }}</span>
  230. <img
  231. :src="
  232. current_reason_id == reasonItem.reasonId ? selected : not_select
  233. "
  234. alt
  235. />
  236. </div>
  237. </div>
  238. <div class="confirm_cancel_btn" @click="confirmCancel()">
  239. {{ L["确定"] }}
  240. </div>
  241. </el-dialog>
  242. <!-- 取消地址理由弹窗 end -->
  243. <!-- 查看物流弹窗 start -->
  244. <el-dialog
  245. :title="L['物流信息']"
  246. v-model="show_logistics"
  247. customClass="select_reason_width"
  248. :before-close="handleClose"
  249. lock-sroll="false"
  250. >
  251. <div class="logistics_info">
  252. <p>
  253. {{ logistics_info.data.type == 1 ? L["联系电话"] : L["承运人"] }}:{{
  254. logistics_info.data.expressName
  255. }}
  256. </p>
  257. <p>
  258. {{ logistics_info.data.type == 1 ? L["联系人"] : L["运单号"] }}:{{
  259. logistics_info.data.expressNumber
  260. }}
  261. </p>
  262. </div>
  263. <div class="logistics_list_con">
  264. <el-timeline>
  265. <el-timeline-item
  266. v-for="(logistics, index) in logistics_info.data.routeList"
  267. :key="index"
  268. :timestamp="logistics.remark"
  269. >{{ logistics.acceptTime }}</el-timeline-item
  270. >
  271. </el-timeline>
  272. </div>
  273. </el-dialog>
  274. <!-- 查看物流弹窗 end -->
  275. <!-- 地址选择弹窗 start -->
  276. <el-dialog
  277. :title="L['更换地址']"
  278. v-model="show_select_address"
  279. customClass="select_address_width"
  280. :before-close="handleClose"
  281. lock-sroll="false"
  282. >
  283. <div class="out_stock_dialog address_con">
  284. <div
  285. v-for="(item, index) in address_list.data"
  286. :key="index"
  287. @click="selectAddress(index)"
  288. :class="{
  289. address_item: true,
  290. flex_column_start_start: true,
  291. select: current_address_index == index,
  292. }"
  293. >
  294. <span>{{ L["收货人"] }}:{{ item.memberName }}</span>
  295. <span>{{ L["联系方式"] }}:{{ item.telMobile }}</span>
  296. <span class="overflow_ellipsis address_text" title="sss"
  297. >{{ L["收货地址"] }}:{{ item.addressAll }}</span
  298. >
  299. <img
  300. v-if="current_address_index == index"
  301. class="selected"
  302. :src="invoice_selected"
  303. alt
  304. />
  305. </div>
  306. </div>
  307. <div class="btn_con flex_row_center_center">
  308. <div class="confirm_cancel_btn" @click="confirmChangeAddress()">
  309. {{ L["提交修改"] }}
  310. </div>
  311. </div>
  312. </el-dialog>
  313. <!-- 地址选择弹窗 end -->
  314. </div>
  315. </template>
  316. <script setup>
  317. import { reactive, getCurrentInstance, ref, onMounted } from "vue";
  318. import {
  319. ElInput,
  320. ElMessage,
  321. ElMessageBox,
  322. ElTimeline,
  323. ElDialog,
  324. ElTimelineItem,
  325. } from "element-plus";
  326. import { useRouter, useRoute } from "vue-router";
  327. // import { lang_zn } from "@/assets/language/zh";
  328. import { getCurLanguage } from '@/composables/common.js';
  329. // const L = lang_zn;
  330. const L = getCurLanguage();
  331. definePageMeta({
  332. layout: "member",
  333. middleware: ["auth"],
  334. });
  335. const router = useRouter();
  336. const route = useRoute();
  337. const { proxy } = getCurrentInstance();
  338. const current_state = ref(""); //当前列表订单状态
  339. const evaluate_state = ref(0); //是否是待评价
  340. const order_list = reactive({ data: [] });
  341. const orderSn = ref("");
  342. const cancel_order = ref(false); //是否显示取消订单弹窗
  343. const not_select = ref("/order/not_select.png");
  344. const selected = ref("/order/selected.png");
  345. const invoice_selected = ref("/buy/invoice_selected.png");
  346. const cancel_list = reactive({ data: [] });
  347. const current_reason_id = ref(); //记录当前已选择理由id
  348. const order_sn = ref(); //记录当前操作的订单号
  349. const show_logistics = ref(false);
  350. const logistics_info = reactive({ data: {} });
  351. const show_select_address = ref(false); //是否显示选择地址弹窗
  352. const address_list = reactive({ data: [] }); //地址列表
  353. const current_address_index = ref(0); //记录当前选择的地址
  354. const pageData = reactive({
  355. current: 1,
  356. pageSize: 10,
  357. total: 0,
  358. });
  359. const selectTime = ref("");
  360. const selectList = reactive({ data: [] });
  361. //去商品详情页
  362. const goGoodsDetail = (productId) => {
  363. let newWin = router.resolve({
  364. path: "/point/detail",
  365. query: {
  366. productId,
  367. },
  368. });
  369. window.open(newWin.href, "_blank");
  370. };
  371. //获取下拉时间
  372. const getTime = () => {
  373. get("v3/business/front/orderInfo/timeList").then((res) => {
  374. if (res.data.length > 0) {
  375. selectList.data = res.data;
  376. selectTime.value = selectList.data[0].id;
  377. }
  378. });
  379. };
  380. //改变订单状态
  381. const changeState = (state) => {
  382. current_state.value = state;
  383. pageData.current = 1;
  384. router.push({
  385. path: "/member/pointorder/list",
  386. query: {
  387. state,
  388. },
  389. });
  390. getOrderList();
  391. };
  392. //获取订单列表
  393. const getOrderList = () => {
  394. var param = {};
  395. if (current_state.value) {
  396. param.orderState = current_state.value;
  397. }
  398. param.current = pageData.current;
  399. param.pageSize = pageData.pageSize;
  400. param.orderSn = orderSn.value;
  401. get("v3/integral/front/integral/order/list", param).then((res) => {
  402. if (res.state == 200) {
  403. order_list.data = res.data.list;
  404. pageData.total = res.data.pagination.total;
  405. } else {
  406. ElMessage(res.msg);
  407. }
  408. });
  409. };
  410. //清空搜索订单
  411. const clear = () => {
  412. orderSn.value = "";
  413. getOrderList();
  414. };
  415. // 获取订单取消理由列表
  416. const getCancelList = () => {
  417. get("v3/system/front/reason/list", { type: 104 }).then((res) => {
  418. if (res.state == 200) {
  419. cancel_list.data = res.data;
  420. } else {
  421. ElMessage(res.msg);
  422. }
  423. });
  424. };
  425. //选择理由
  426. const selectReason = (id) => {
  427. current_reason_id.value = id;
  428. };
  429. //显示选择理由弹窗
  430. const showSelectReasonDialog = (orderSn) => {
  431. cancel_order.value = true;
  432. order_sn.value = orderSn;
  433. };
  434. //显示查看物流信息
  435. const lookLogistics = (orderSn) => {
  436. get("v3/integral/front/integral/order/getTrace", { orderSn })
  437. .then((res) => {
  438. if (res.state == 200) {
  439. show_logistics.value = true;
  440. logistics_info.data = res.data;
  441. } else {
  442. ElMessage(res.msg);
  443. }
  444. });
  445. };
  446. //删除订单
  447. const delOrder = (orderSn) => {
  448. ElMessageBox.confirm(L["确认删除该订单?"], L["提示"], {
  449. confirmButtonText: L["确定"],
  450. cancelButtonText: L["取消"],
  451. type: "warning",
  452. }).then(() => {
  453. post("v3/integral/front/integral/orderOperate/delete", { orderSn })
  454. .then((res) => {
  455. if (res.state == 200) {
  456. ElMessage.success(L["删除订单成功"]);
  457. getOrderList();
  458. } else {
  459. ElMessage(res.msg);
  460. }
  461. });
  462. });
  463. };
  464. //确认取消订单
  465. const confirmCancel = () => {
  466. if (!current_reason_id.value) {
  467. ElMessage.warning(L["请选择取消理由"]);
  468. return;
  469. }
  470. proxy
  471. .$post("v3/integral/front/integral/orderOperate/cancel", {
  472. parentSn: order_sn.value,
  473. reasonId: current_reason_id.value,
  474. })
  475. .then((res) => {
  476. if (res.state == 200) {
  477. ElMessage.success(L["取消订单成功"]);
  478. cancel_order.value = false;
  479. getOrderList();
  480. } else {
  481. ElMessage(res.msg);
  482. }
  483. });
  484. };
  485. //确认收货
  486. const confirmReceipt = (orderSn) => {
  487. ElMessageBox.confirm(L["确认收货?"], L["提示"], {
  488. confirmButtonText: L["确定"],
  489. cancelButtonText: L["取消"],
  490. type: "warning",
  491. }).then(() => {
  492. post("v3/integral/front/integral/orderOperate/receive", { orderSn })
  493. .then((res) => {
  494. if (res.state == 200) {
  495. ElMessage.success(L["确认收货成功"]);
  496. getOrderList();
  497. } else {
  498. ElMessage(res.msg);
  499. }
  500. });
  501. });
  502. };
  503. //立即支付
  504. const goPay = (orderSn) => {
  505. router.push({
  506. path: "/point/pay",
  507. query: {
  508. paySn: orderSn,
  509. payFrom: 2,
  510. },
  511. });
  512. };
  513. //选择地址
  514. const editAddress = (orderSn) => {
  515. show_select_address.value = true;
  516. order_sn.value = orderSn;
  517. };
  518. //获取地址列表
  519. const getAddressList = () => {
  520. get("v3/member/front/memberAddress/list").then((res) => {
  521. if (res.state == 200) {
  522. address_list.data = res.data.list;
  523. } else {
  524. ElMessage(res.msg);
  525. }
  526. });
  527. };
  528. //切换地址
  529. const selectAddress = (index) => {
  530. current_address_index.value = index;
  531. };
  532. //确认修改地址
  533. const confirmChangeAddress = () => {
  534. post("v3/integral/front/integral/orderOperate/updateAddress", {
  535. orderSn: order_sn.value,
  536. addressId: address_list.data[current_address_index.value].addressId,
  537. })
  538. .then((res) => {
  539. if (res.state == 200) {
  540. ElMessage.success(L["切换地址成功"]);
  541. show_select_address.value = false;
  542. } else {
  543. ElMessage(res.msg);
  544. }
  545. });
  546. };
  547. //详情
  548. const goDetail = (orderSn) => {
  549. router.push({
  550. path: "/member/pointOrder/detail",
  551. query: {
  552. orderSn: orderSn,
  553. },
  554. });
  555. };
  556. //向前翻页
  557. const handlePrevCilickChange = (e) => {
  558. pageData.current = e;
  559. getOrderList();
  560. };
  561. //向后翻页
  562. const handleNextCilickChange = () => {
  563. pageData.current++;
  564. getOrderList();
  565. };
  566. //页数改变
  567. const handleCurrentChange = (current) => {
  568. pageData.current = current;
  569. getOrderList();
  570. };
  571. onMounted(() => {
  572. if (route.query.state) {
  573. current_state.value = route.query.state;
  574. } else {
  575. current_state.value = "";
  576. }
  577. getTime();
  578. getOrderList();
  579. getCancelList();
  580. getAddressList();
  581. });
  582. router.beforeEach((to, from, next) => {
  583. if (to.query.state) {
  584. current_state.value = to.query.state;
  585. } else {
  586. current_state.value = "";
  587. }
  588. if (to.path == "/member/pointOrder/list") {
  589. getOrderList();
  590. }
  591. next();
  592. });
  593. </script>
  594. <style lang="scss">
  595. @import "@/assets/style/orderList.scss";
  596. .el-pager li.active {
  597. color: $colorMain;
  598. cursor: default;
  599. }
  600. .el-pager li:hover {
  601. color: $colorMain;
  602. }
  603. .sld_point_order_list {
  604. .el-select-dropdown__item.selected {
  605. color: $colorMain;
  606. }
  607. .container {
  608. .all_orders {
  609. width: 190px;
  610. position: relative;
  611. .allorders {
  612. display: flex;
  613. align-items: center;
  614. justify-content: center;
  615. cursor: default;
  616. }
  617. img {
  618. width: 12px;
  619. height: 6px;
  620. margin-left: 10px;
  621. }
  622. }
  623. .all_item {
  624. &:hover {
  625. &.has_more {
  626. &:before {
  627. border-top-color: $colorMain;
  628. }
  629. }
  630. .all_item_more {
  631. display: block;
  632. cursor: default;
  633. }
  634. }
  635. .all_item_more {
  636. position: absolute;
  637. width: 110px;
  638. padding: 5px 3px;
  639. left: 50%;
  640. transform: translateX(-50%);
  641. top: 35px;
  642. background: #fff;
  643. box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
  644. z-index: 999;
  645. display: none;
  646. &:before,
  647. &:after {
  648. position: absolute;
  649. top: -11px;
  650. left: 50%;
  651. transform: translateX(-50%);
  652. -webkit-transform: translateX(-50%);
  653. display: block;
  654. content: " ";
  655. width: 0;
  656. height: 0;
  657. border: 5px solid transparent;
  658. border-bottom: 6px solid #dedede;
  659. }
  660. &:after {
  661. top: -10px;
  662. border-bottom: 6px solid #fff;
  663. }
  664. p {
  665. display: block;
  666. text-align: center;
  667. color: #333333;
  668. line-height: 12px;
  669. padding: 8px 0;
  670. border-bottom: 1px dotted #c0c4cc;
  671. &:hover {
  672. color: #f40213;
  673. }
  674. &:last-child {
  675. border-bottom: 0;
  676. }
  677. }
  678. }
  679. }
  680. .sld_order_nav {
  681. display: flex;
  682. justify-content: space-between;
  683. .search_info {
  684. width: auto;
  685. border-top: 0;
  686. .search_input {
  687. height: 38px;
  688. }
  689. }
  690. .sld_order_nav_con {
  691. .item {
  692. margin-left: 18px;
  693. margin-right: 18px;
  694. padding-left: 0;
  695. padding-right: 0;
  696. }
  697. .active {
  698. color: #e2231a;
  699. }
  700. }
  701. }
  702. .search_incon {
  703. width: 321px;
  704. height: 34px;
  705. background: #ffffff;
  706. border: 1px solid #e8e8f1;
  707. }
  708. .order_item {
  709. .good_info_con {
  710. .oprate {
  711. width: 120px;
  712. }
  713. .state {
  714. width: 121px;
  715. }
  716. .order_price {
  717. width: 190px;
  718. }
  719. .good_info {
  720. width: 534px;
  721. border-right: 1px solid #e8e8f1;
  722. .item {
  723. .good {
  724. width: 333px;
  725. align-items: flex-start;
  726. }
  727. .good_price {
  728. width: 113px;
  729. }
  730. }
  731. }
  732. }
  733. }
  734. .order_title_info {
  735. position: relative;
  736. .time_select {
  737. width: 358px;
  738. }
  739. .good_price,
  740. .num {
  741. width: 103px;
  742. }
  743. .order_price {
  744. width: 180px;
  745. }
  746. .oprate {
  747. width: 113px;
  748. }
  749. }
  750. .all_order_info {
  751. position: relative;
  752. .select_el {
  753. position: absolute;
  754. border: 0;
  755. left: 20px;
  756. }
  757. .el-input__inner {
  758. border: 0;
  759. background-color: #f7f7f7;
  760. max-width: 123px;
  761. // height: 36px;
  762. font-size: 13px;
  763. padding: 0;
  764. }
  765. .el-select-dropdown__item {
  766. padding: 0;
  767. font-size: 13px;
  768. text-align: left;
  769. padding-left: 10px;
  770. // height: 39px;
  771. &::after {
  772. content: " ";
  773. width: 104px;
  774. height: 1px;
  775. border-bottom: 1px dotted #c0c4cc;
  776. opacity: 0.3;
  777. display: block;
  778. }
  779. &:last-child {
  780. &::after {
  781. content: "";
  782. width: 0;
  783. height: 0;
  784. border-bottom: 0;
  785. opacity: 0.3;
  786. display: block;
  787. }
  788. }
  789. &:hover {
  790. background-color: transparent;
  791. }
  792. }
  793. .el-select-dropdown__item.hover {
  794. background-color: transparent;
  795. }
  796. // .el-scrollbar__wrap{
  797. // height: 247px;
  798. // }
  799. }
  800. .detail {
  801. margin-top: 10px;
  802. cursor: pointer;
  803. }
  804. .select_time {
  805. padding-left: 52px;
  806. }
  807. }
  808. }
  809. </style>