details.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484
  1. <!--
  2. * @Description: 详情弹框
  3. * @Author: Sugar.
  4. * @Date: 2023-11-24 13:55:00
  5. * @LastEditors: gcz
  6. * @LastEditTime: 2024-03-15 15:13:27
  7. * @FilePath: \great_webui\src\views\order\groupBuyingMr\dialog\details.vue
  8. * @Copyright: Copyright (c) 2016~2023 by Sugar., All Rights Reserved.
  9. -->
  10. <template>
  11. <el-dialog
  12. title="详情"
  13. :visible.sync="open"
  14. width="50%"
  15. append-to-body
  16. :close-on-click-modal="false"
  17. @close="cancel"
  18. >
  19. <div v-loading="loading" class="dialog dialog-bbb" v-if="form">
  20. <div element-loading-text="加载详情中...">
  21. <!-- 基础信息 -->
  22. <div class="title-class" style="margin-top: 0">基础信息</div>
  23. <el-row>
  24. <el-col :span="12">
  25. <div class="grid-content bg-purple item-class">订单号: <span>{{ form.orderId || ''}}</span></div>
  26. </el-col>
  27. <el-col :span="12">
  28. <div class="grid-content bg-purple item-class">团队名称: <span>{{ form.teamName || ''}}</span></div>
  29. </el-col>
  30. <el-col :span="12">
  31. <div class="grid-content bg-purple item-class">是否其他团队代付: <span>{{ form.ifRepay == 0 ? '否' : '是' || ''}}</span></div>
  32. </el-col>
  33. <el-col :span="12">
  34. <div class="grid-content bg-purple item-class">代付团队: <span>{{ form.ifRepay == 1 ? form.repayName : ''}}</span></div>
  35. </el-col>
  36. <el-col :span="12">
  37. <div class="grid-content bg-purple item-class">还款状态: <span>{{ form.repaymentStatus == 0 ? '未还款' : '已还款' }}</span></div>
  38. </el-col>
  39. <el-col :span="12">
  40. <div class="grid-content bg-purple item-class">预计还款时间: <span>{{ form.repaymentTime || '' }}</span></div>
  41. </el-col>
  42. <el-col :span="12">
  43. <div class="grid-content bg-purple item-class">{{form.payWay == 'quota' ? '授信金额:' : '挂账金额:'}}<span>{{ form.orderPrice || '' }}</span></div>
  44. </el-col>
  45. <el-col :span="24" v-if="form.payWay == 'corporate'">
  46. <div class="grid-content bg-purple item-class">挂账凭证:
  47. <div class="voucher-list">
  48. <el-image
  49. v-for="(item,index) in voucherUrl1" :key="index"
  50. style="width: 100px; height: 100px"
  51. :src="item"
  52. :preview-src-list="voucherUrl1">
  53. </el-image>
  54. </div>
  55. </div>
  56. </el-col>
  57. <el-col :span="12">
  58. <div class="grid-content bg-purple item-class">创建时间: <span>{{ form.createTime || '' }}</span></div>
  59. </el-col>
  60. </el-row>
  61. <!-- 还款日期信息 -->
  62. <div>
  63. <div class="title-class">{{form.payWay == 'quota' ? '授信支付还款信息' : '对公支付信息' }} </div>
  64. <el-row>
  65. <el-col class="pay-type-remark" :span="24">
  66. 还款日期:{{ form.realPayTime }}
  67. </el-col>
  68. <el-col :span="24">
  69. <div class="grid-content bg-purple item-class">还款凭证:
  70. <div class="voucher-list">
  71. <el-image
  72. v-for="(item,index) in voucherUrl" :key="index"
  73. style="width: 100px; height: 100px"
  74. :src="item"
  75. :preview-src-list="voucherUrl1">
  76. </el-image>
  77. </div>
  78. </div>
  79. </el-col>
  80. </el-row>
  81. </div>
  82. </div>
  83. </div>
  84. <span slot="footer" class="dialog-footer">
  85. <el-button type="primary" @click="cancel">关闭</el-button>
  86. </span>
  87. </el-dialog>
  88. </template>
  89. <script>
  90. export default {
  91. name: "detailsDia",
  92. dicts: ['order_form_type', 'order_status_type', 'pay_way_type', 'personnel_type','team_type'],
  93. data() {
  94. return {
  95. title: "编辑",
  96. model: "EDIT",
  97. open: false,
  98. loading: false,
  99. form: {
  100. id: undefined
  101. },
  102. voucherUrl:[],
  103. voucherUrl1:[],
  104. };
  105. },
  106. created() {
  107. },
  108. methods: {
  109. /**
  110. * 打开弹框
  111. * @date 2023-11-22
  112. * @param {any} obj
  113. * @returns {any}
  114. */
  115. openDialog(title, obj, type) {
  116. this.open = true;
  117. this.voucherUrl = (obj.repaymentVoucherUrl && obj.repaymentVoucherUrl.split(','))||[];
  118. this.voucherUrl1 = (obj.voucherUrl && obj.voucherUrl.split(','))||[];
  119. this.form = obj
  120. },
  121. /**
  122. * 关闭弹框
  123. * @date 2023-11-22
  124. * @returns {any}
  125. */
  126. cancel() {
  127. this.open = false;
  128. },
  129. },
  130. };
  131. </script>
  132. <style lang="scss" scoped>
  133. .dialog {
  134. width: 100%;
  135. }
  136. .dialog {
  137. padding: 0 30px;
  138. .upload-btn {
  139. width: 100px;
  140. height: 100px;
  141. background-color: #fbfdff;
  142. border: dashed 1px #c0ccda;
  143. border-radius: 5px;
  144. i {
  145. font-size: 30px;
  146. margin-top: 20px;
  147. }
  148. &-text {
  149. margin-top: -10px;
  150. }
  151. }
  152. .avatar {
  153. cursor: pointer;
  154. }
  155. .title-class{
  156. font-size: 16px;
  157. font-weight: bold;
  158. color: black;
  159. margin-bottom: 20px;
  160. margin-top: 20px;
  161. }
  162. .item-class{
  163. margin-bottom: 20px;
  164. }
  165. }
  166. .voucher-list {
  167. display: grid;
  168. grid-template-columns: repeat(4, 1fr);
  169. gap: 24rpx;
  170. margin: 15px;
  171. }
  172. .pay-type-remark{
  173. margin:14px 0;
  174. }
  175. .dialog-bbb {
  176. width: 100%;
  177. display: flex;
  178. --widdd: 700px;
  179. >div:first-child {
  180. width: var(--widdd);
  181. flex-shrink: 0;
  182. overflow-y: auto;
  183. padding: 0 0 10px 0;
  184. margin-right: 10px;
  185. }
  186. .dialog-bbb_2 {
  187. width: calc(100% - var(--widdd));
  188. height: 100%;
  189. }
  190. }
  191. .dialog-bbb_2 {
  192. .seat-tool-box {
  193. height: 20px;
  194. box-sizing: border-box;
  195. display: flex;
  196. align-items: center;
  197. white-space: nowrap;
  198. span {
  199. flex-shrink: 0;
  200. font-size: 12px;
  201. white-space: nowrap;
  202. }
  203. .seat-tool-box-slider {
  204. width: 100px;
  205. margin-left: 10px;
  206. }
  207. }
  208. .seat-box {
  209. width: 100%;
  210. height: calc(100% - 50px);
  211. box-sizing: border-box;
  212. display: flex;
  213. position: relative;
  214. .seat-list-box {
  215. width: 100%;
  216. height: 100%;
  217. box-sizing: border-box;
  218. position: relative;
  219. }
  220. .seat-select-box {
  221. width: 200px;
  222. height: 100%;
  223. flex-shrink: 0;
  224. box-sizing: border-box;
  225. padding: 0 5px;
  226. margin-left: 10px;
  227. border: 1px solid #ccc;
  228. border-radius: 10px;
  229. .seat-select-info {
  230. width: 100%;
  231. height: calc(100% - 60px);
  232. overflow: hidden;
  233. overflow-y: auto;
  234. .seat-select-item {
  235. border: 1px solid #ccc;
  236. margin-bottom: 5px;
  237. padding: 5px;
  238. border-radius: 5px;
  239. display: flex;
  240. justify-content: space-between;
  241. align-items: center;
  242. font-size: 12px;
  243. >div:first-child {
  244. display: flex;
  245. flex-direction: column;
  246. span:first-child {
  247. font-weight: 600;
  248. }
  249. }
  250. >div:last-child {
  251. span:first-child {
  252. color: #f56c6c;
  253. cursor: pointer;
  254. }
  255. }
  256. }
  257. .seat-select-color-item {
  258. display: flex;
  259. align-items: center;
  260. margin-bottom: 5px;
  261. >span:first-child {
  262. width: 20px;
  263. height: 20px;
  264. flex-shrink: 0;
  265. }
  266. >span:last-child {
  267. font-size: 16px;
  268. font-weight: 600;
  269. margin-left: 10px;
  270. }
  271. }
  272. }
  273. }
  274. }
  275. .seat-list-box::before {
  276. content: "舞台";
  277. position: absolute;
  278. left: 50%;
  279. transform: translateX(-50%);
  280. width: 300px;
  281. height: 30px;
  282. background-color: rgb(204, 204, 204, 0.5);
  283. font-size: 18px;
  284. font-weight: 600;
  285. display: flex;
  286. align-items: center;
  287. justify-content: center;
  288. border-radius: 0 0 20px 20px;
  289. z-index: 99;
  290. }
  291. .dialogss {
  292. padding: 30px 10px 10px;
  293. width: 100%;
  294. height: 100%;
  295. box-sizing: border-box;
  296. overflow: auto;
  297. border-radius: 10px;
  298. border: 1px solid #323333;
  299. .dialogss-box {
  300. position: relative;
  301. }
  302. .upload-btn {
  303. width: 100px;
  304. height: 100px;
  305. background-color: #fbfdff;
  306. border: dashed 1px #c0ccda;
  307. border-radius: 5px;
  308. i {
  309. font-size: 30px;
  310. margin-top: 20px;
  311. }
  312. &-text {
  313. margin-top: -10px;
  314. }
  315. }
  316. .avatar {
  317. cursor: pointer;
  318. }
  319. .title-class {
  320. font-size: 16px;
  321. font-weight: bold;
  322. color: black;
  323. margin-bottom: 20px;
  324. margin-top: 20px;
  325. }
  326. .item-class {
  327. margin-bottom: 20px;
  328. }
  329. .seat-box-class {
  330. padding: 5px;
  331. transform-origin: 50% 0;
  332. transform: scale(var(--scaleNum));
  333. box-sizing: border-box;
  334. .disabled-class {
  335. background-color: #aaabad;
  336. user-select: none;
  337. // pointer-events: none;
  338. cursor: not-allowed !important;
  339. }
  340. .select-class {
  341. //background-color: #e85353 !important;
  342. border: 5px solid #1890ff !important;
  343. // color: #eceaea !important;
  344. position: relative;
  345. }
  346. .purchased-status:after {
  347. content: "";
  348. display: block;
  349. position: absolute;
  350. top: 0;
  351. left: 0;
  352. width: 100%;
  353. height: 100%;
  354. background-color: rgba(0, 0, 0, 0.5);
  355. z-index: -1;
  356. background-image: url('../../../../assets/renyuan.png');
  357. background-size: 50% 50%;
  358. background-position: 50% 50%;
  359. background-repeat: no-repeat;
  360. z-index: 99;
  361. }
  362. .occupy-status:after {
  363. content: "";
  364. display: block;
  365. position: absolute;
  366. top: 0;
  367. left: 0;
  368. width: 100%;
  369. height: 100%;
  370. background-color: rgba(0, 0, 0, 0.3);
  371. z-index: -1;
  372. background-image: url('../../../../assets/jinzhi_1.png');
  373. background-size: 50% 50%;
  374. background-position: 50% 50%;
  375. background-repeat: no-repeat;
  376. z-index: 99;
  377. }
  378. .occupy-status {
  379. //pointer-events: none;
  380. }
  381. /** 订单待支付锁定 */
  382. .order-occupy-status {
  383. }
  384. .order-occupy-status:after{
  385. content:"";
  386. display:block;
  387. position:absolute;
  388. top:0;
  389. left:0;
  390. width:100%;
  391. height:100%;
  392. background-color:rgba(0,0,0,0.3);
  393. z-index:-1;
  394. background-image: url('../../../../assets/jinzhi.png');
  395. background-size: 50% 50%;
  396. background-position: 50% 50%;
  397. background-repeat: no-repeat;
  398. z-index: 99;
  399. }
  400. .occupy-status-no {
  401. background-color: #f56c6c !important;
  402. user-select: none;
  403. // pointer-events: none;
  404. cursor: not-allowed !important;
  405. }
  406. .seat-item-class-box {
  407. width: 100%;
  408. display: flex;
  409. flex-wrap: nowrap;
  410. justify-content: center;
  411. margin: auto 0;
  412. text-align: center;
  413. }
  414. .seat-item-class {
  415. flex-shrink: 0;
  416. display: block;
  417. float: left;
  418. width: 60px;
  419. height: 60px;
  420. margin: 5px;
  421. border: 1px solid #4c4d4d;
  422. border-radius: 3px;
  423. cursor: pointer;
  424. position: relative;
  425. user-select: none;
  426. // transform-origin: 50% 50%;
  427. // transform: scale(var(--scaleNum));
  428. &:hover {
  429. opacity: 0.6;
  430. }
  431. .text-class {
  432. font-size: 12px;
  433. padding: 5px;
  434. line-height: 16px;
  435. margin: 0;
  436. color: #000;
  437. }
  438. }
  439. }
  440. }
  441. }
  442. </style>