BuyAD.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648
  1. <template>
  2. <!-- 购买广告 -->
  3. <div class="buyAD">
  4. <div class="inner">
  5. <!-- tab栏标题 -->
  6. <div class="tabTitle">
  7. <span class="title">
  8. <span class="number">1</span>
  9. 填写广告信息
  10. </span>
  11. <span class="title">
  12. <span class="icon">
  13. <el-icon>
  14. <DArrowRight />
  15. </el-icon>
  16. </span>
  17. <span class="number">2</span>
  18. 选择相应网站
  19. </span>
  20. <span class="title">
  21. <span class="icon">
  22. <el-icon>
  23. <DArrowRight />
  24. </el-icon>
  25. </span>
  26. <span class="number">3</span>
  27. 提交工单信息
  28. </span>
  29. </div>
  30. <!-- 填写广告信息内容 -->
  31. <div class="textOne" v-show="ad == 1">
  32. <p>
  33. <label for="adName">广告名称:</label>
  34. <el-input id="adName" v-model="adName" style="width: 980px;height: 44px;" placeholder="请输入广告名称" />
  35. <span v-show="!adName">请输入广告名称。</span>
  36. </p>
  37. <p>
  38. <label for="adLink">广告链接:</label>
  39. <el-input class="adLink" v-model="adLink" style="width: 980px;height: 44px;"
  40. placeholder="请输入广告链接" />
  41. <span v-show="!adLink">请输入广告链接。</span>
  42. </p>
  43. <p>
  44. <label>广告持续时间:</label>
  45. <el-date-picker v-model="startTime" type="date" placeholder="请选择开始时间" :size="size" />
  46. <strong>至</strong>
  47. <el-date-picker v-model="endTime" type="date" placeholder="请选择结束时间" :size="size" />
  48. <span v-show="!endTime">请选择广告开始时间和结束时间</span>
  49. </p>
  50. <p class="AdSize">
  51. <label>广告尺寸:</label>
  52. <el-radio-group v-model="adSize" :size="size">
  53. <el-radio :value="1"> 1200 x 90px </el-radio>
  54. <el-radio :value="2"> 420 x 560px </el-radio>
  55. </el-radio-group>
  56. <span v-show="!adSize">请选择广告尺寸。</span>
  57. </p>
  58. <p>
  59. <label>广告图:</label>
  60. <el-upload class="upload-demo" drag
  61. action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" multiple>
  62. <el-icon class="el-icon--upload">
  63. <Plus />
  64. </el-icon>
  65. <div class="el-upload__text">
  66. 选择图片
  67. </div>
  68. </el-upload>
  69. <span>请添加广告图,不大于500k。</span>
  70. </p>
  71. </div>
  72. <!-- 选择相应网站的内容 -->
  73. <div class="textTwo" v-show="ad == 2">
  74. <div class="inner">
  75. <!-- 搜索部分 -->
  76. <div class="pageTop">
  77. <div class="left">
  78. 网站:
  79. <el-select v-model="value" placeholder="请选择网站名称" size="large"
  80. style="width: 244px;height: 44px;">
  81. <el-option v-for="item in options" :key="item.value" :label="item.label"
  82. :value="item.value" />
  83. </el-select>
  84. <a href="#">查看示意图</a>
  85. </div>
  86. <div class="right">
  87. <button class="reset">重置</button>
  88. <button class="search">搜索</button>
  89. </div>
  90. </div>
  91. <!-- 表格部分 -->
  92. <div class="pageTable">
  93. <el-table :data="tableData" border select-on-indeterminate style="width: 100%"
  94. :header-row-style="{ height: '60px' }" :row-style="{ height: '74px' }"
  95. :header-cell-style="{ backgroundColor: '#fafafa', color: '#666' }">
  96. <el-table-column type="selection" width="152" align="center" />
  97. <el-table-column prop="网站" label="网站" width="240" />
  98. <el-table-column prop="广告位名称" label="广告位名称" width="240" />
  99. <el-table-column prop="广告尺寸" label="广告尺寸" width="268" />
  100. <el-table-column prop="金额" label="金额 (元) / 天" />
  101. </el-table>
  102. </div>
  103. <!-- 页码部分 -->
  104. <div class="pagination">
  105. <HomePagination></HomePagination>
  106. </div>
  107. </div>
  108. </div>
  109. <!-- 提交工单信息 -->
  110. <div class="submit" v-show="ad == 3">
  111. <div class="inner">
  112. <h1>广告信息已提交成功,请等待审核......</h1>
  113. <p>
  114. 工单编号:
  115. <span>21323411</span>
  116. </p>
  117. <div class="btn">
  118. <button class="check">查看工单</button>
  119. <button class="apply">再次申请</button>
  120. </div>
  121. <span>如有疑问,可联系客服人员。</span>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. </template>
  127. <script setup>
  128. import { ref, onMounted } from 'vue'
  129. import { ElRadioGroup, ElRadio, ElDatePicker, ElInput, ElUpload, ElIcon, ElSelect, ElOption, ElTable, ElTableColumn } from 'element-plus'
  130. import { Plus, DArrowRight } from '@element-plus/icons-vue'
  131. // 通过变量ad控制tab栏标题的颜色及每一步下的不同的内容
  132. let ad = useState("ad", () => 1)
  133. const size = ref<'default' | 'large' | 'small'>('default')
  134. let adName = useState("adName", () => "")
  135. let adLink = useState("adLink", () => "")
  136. let startTime = useState("startTime", () => "")
  137. let endTime = useState("endTime", () => "")
  138. let adSize = useState("adSize", () => 1)
  139. console.log(adName.value);
  140. const nuxtApp = useNuxtApp();
  141. const axios = nuxtApp.$axios;
  142. //获取广告位
  143. const getAD = async () => {
  144. try {
  145. const response = await axios.post("/order/getAD");
  146. console.log(response.data);
  147. // navigation1.value = response.data;
  148. } catch (error) {
  149. console.error(error);
  150. }
  151. }
  152. //获取广告状态
  153. const getStauts = async () => {
  154. try {
  155. const response = await axios.post("/order/getStauts");
  156. console.log(response.data);
  157. // navigation1.value = response.data;
  158. } catch (error) {
  159. console.error(error);
  160. }
  161. }
  162. onMounted(() => {
  163. //获取广告位
  164. getAD()
  165. //获取广告状态
  166. getStauts()
  167. })
  168. const value = ref('')
  169. const options = [
  170. {
  171. value: 'Option1',
  172. label: 'Option1',
  173. },
  174. {
  175. value: 'Option2',
  176. label: 'Option2',
  177. },
  178. {
  179. value: 'Option3',
  180. label: 'Option3',
  181. },
  182. {
  183. value: 'Option4',
  184. label: 'Option4',
  185. },
  186. {
  187. value: 'Option5',
  188. label: 'Option5',
  189. },
  190. ]
  191. // 表格中的数据
  192. const tableData = [
  193. {
  194. id: 1,
  195. 网站: '三农资讯网',
  196. 广告位名称: '一号广告位',
  197. 广告尺寸: '1200 x 90 px',
  198. 金额: '260'
  199. },
  200. {
  201. id: 2,
  202. 网站: '三农资讯网',
  203. 广告位名称: '二号广告位',
  204. 广告尺寸: '1200 x 90 px',
  205. 金额: '260'
  206. },
  207. {
  208. id: 3,
  209. 网站: '三农资讯网',
  210. 广告位名称: '三号广告位',
  211. 广告尺寸: '1200 x 90 px',
  212. 金额: '260'
  213. },
  214. {
  215. id: 4,
  216. 网站: '三农资讯网',
  217. 广告位名称: '一号广告位',
  218. 广告尺寸: '1200 x 90 px',
  219. 金额: '260'
  220. },
  221. {
  222. id: 5,
  223. 网站: '三农资讯网',
  224. 广告位名称: '二号广告位',
  225. 广告尺寸: '1200 x 90 px',
  226. 金额: '260'
  227. },
  228. {
  229. id: 6,
  230. 网站: '三农资讯网',
  231. 广告位名称: '三号广告位',
  232. 广告尺寸: '1200 x 90 px',
  233. 金额: '260'
  234. },
  235. {
  236. id: 7,
  237. 网站: '三农资讯网',
  238. 广告位名称: '三号广告位',
  239. 广告尺寸: '1200 x 90 px',
  240. 金额: '260'
  241. },
  242. {
  243. id: 8,
  244. 网站: '三农资讯网',
  245. 广告位名称: '一号广告位',
  246. 广告尺寸: '1200 x 90 px',
  247. 金额: '260'
  248. },
  249. {
  250. id: 9,
  251. 网站: '三农资讯网',
  252. 广告位名称: '二号广告位',
  253. 广告尺寸: '1200 x 90 px',
  254. 金额: '260'
  255. },
  256. {
  257. id: 10,
  258. 网站: '三农资讯网',
  259. 广告位名称: '三号广告位',
  260. 广告尺寸: '1200 x 90 px',
  261. 金额: '260'
  262. },
  263. ]
  264. </script>
  265. <style lang="less" scoped>
  266. // 广告购买
  267. .buyAD {
  268. width: 1200px;
  269. overflow: hidden;
  270. .inner {
  271. width: 1200px;
  272. overflow: hidden;
  273. position: relative;
  274. // 填写信息页tab标题
  275. .tabTitle {
  276. width: 1100px;
  277. height: 80px;
  278. padding-top: 26px;
  279. margin: 0 auto;
  280. box-sizing: border-box;
  281. border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  282. .icon,
  283. .title {
  284. font-family: Microsoft YaHei, Microsoft YaHei;
  285. font-weight: bold;
  286. font-size: 16px;
  287. color: #D5D5D5;
  288. text-align: center;
  289. font-style: normal;
  290. text-transform: none;
  291. }
  292. .number {
  293. display: inline-block;
  294. width: 32px;
  295. height: 32px;
  296. line-height: 32px;
  297. color: #ffffff;
  298. background-color: #d5d5d5;
  299. border-radius: 50%;
  300. }
  301. .bgc {
  302. background-color: #139602;
  303. }
  304. .color {
  305. color: #139602;
  306. }
  307. // 填写广告信息字体及背景颜色
  308. .title:first-child {
  309. color: #139602;
  310. }
  311. .title:first-child .number {
  312. background-color: #139602;
  313. }
  314. // 图标>>
  315. .icon {
  316. padding: 0 165px;
  317. }
  318. }
  319. // 1.填写信息内容
  320. .textOne {
  321. width: 1100px;
  322. height: 515px;
  323. margin-top: 30px;
  324. margin-left: 50px;
  325. /deep/.el-radio-group {
  326. height: 55px;
  327. }
  328. >p {
  329. width: 1110px;
  330. height: 75px;
  331. strong {
  332. font-weight: 500;
  333. color: #333333;
  334. padding: 0 14px;
  335. }
  336. label {
  337. display: inline-block;
  338. width: 125px;
  339. text-align: right;
  340. padding-right: 10px;
  341. box-sizing: border-box;
  342. font-family: Microsoft YaHei, Microsoft YaHei;
  343. font-weight: 400;
  344. font-size: 16px;
  345. color: #333333;
  346. line-height: 19px;
  347. font-style: normal;
  348. text-transform: none;
  349. }
  350. >label::before {
  351. content: "*";
  352. display: inline-block;
  353. width: 10px;
  354. height: 2px;
  355. color: #fe0101;
  356. }
  357. span {
  358. color: #fe0101;
  359. display: block;
  360. padding-left: 135px;
  361. height: 30px;
  362. }
  363. .upload-demo {
  364. display: inline-block;
  365. width: 112px;
  366. height: 112px;
  367. vertical-align: -93px;
  368. }
  369. /deep/.el-input__wrapper.is-focus {
  370. box-shadow: 0 0 0 1px #c0c4cc;
  371. }
  372. /deep/.el-date-editor.el-input,
  373. .el-date-editor.el-input__wrapper {
  374. height: 44px;
  375. width: 470px;
  376. }
  377. /deep/.el-input__inner {
  378. font-size: 16px;
  379. }
  380. /deep/.el-upload-dragger {
  381. padding: 0;
  382. margin: 0;
  383. border: 1px solid #ededed;
  384. }
  385. /deep/.el-upload-dragger .el-icon--upload {
  386. font-size: 67px;
  387. line-height: 50px;
  388. padding: 0;
  389. margin: 0;
  390. }
  391. /deep/.el-upload-dragger .el-upload__text {
  392. font-size: 18px;
  393. font-weight: 400;
  394. color: #999;
  395. text-align: center;
  396. margin-bottom: 14px;
  397. margin-top: 5px;
  398. }
  399. /deep/.el-icon svg {
  400. width: 34px;
  401. height: 34px;
  402. }
  403. }
  404. }
  405. // 2.选择相应网站
  406. .textTwo {
  407. width: 1200px;
  408. overflow: hidden;
  409. // 页面头部搜索和按钮
  410. .pageTop {
  411. width: 1150px;
  412. height: 44px;
  413. margin: 30px 0 40px 50px;
  414. >.left {
  415. font-family: Microsoft YaHei, Microsoft YaHei;
  416. font-weight: 400;
  417. font-size: 16px;
  418. color: #333333;
  419. line-height: 19px;
  420. >a {
  421. width: 80px;
  422. height: 21px;
  423. padding-left: 30px;
  424. font-family: Microsoft YaHei, Microsoft YaHei;
  425. font-weight: 400;
  426. font-size: 16px;
  427. color: #47ACFF;
  428. line-height: 19px;
  429. text-align: left;
  430. font-style: normal;
  431. text-transform: none;
  432. }
  433. /deep/.el-select__wrapper.is-focused {
  434. box-shadow: 0 0 0 1px var(--el-border-color) inset;
  435. }
  436. }
  437. >.right {
  438. button {
  439. width: 94px;
  440. height: 36px;
  441. line-height: 36px;
  442. font-family: Microsoft YaHei, Microsoft YaHei;
  443. font-weight: 400;
  444. font-size: 16px;
  445. color: #33B023;
  446. line-height: 19px;
  447. text-align: center;
  448. border: none;
  449. border-radius: 7px;
  450. }
  451. .reset {
  452. border: 1px solid #33B023;
  453. color: #33B023;
  454. background-color: #fff;
  455. margin-right: 25px;
  456. }
  457. .search {
  458. background-color: #33B023;
  459. color: #ffffff;
  460. }
  461. }
  462. }
  463. // 页面中的表格
  464. .pageTable {
  465. width: 100%;
  466. overflow: hidden;
  467. padding-bottom: 60px;
  468. /deep/.el-checkbox__input.is-checked .el-checkbox__inner {
  469. background-color: #333;
  470. border-color: #333;
  471. }
  472. /deep/.el-table tr {
  473. background-color: #fafafa;
  474. height: 74px;
  475. }
  476. /deep/.el-table .cell {
  477. text-align: center;
  478. box-sizing: border-box;
  479. line-height: 23px;
  480. overflow-wrap: break-word;
  481. padding: 0 12px;
  482. text-overflow: ellipsis;
  483. white-space: normal;
  484. font-family: Microsoft YaHei, Microsoft YaHei;
  485. font-weight: 400;
  486. font-size: 16px;
  487. color: #333333;
  488. line-height: 19px;
  489. font-style: normal;
  490. text-transform: none;
  491. }
  492. }
  493. // 页码
  494. .pagination {
  495. height: 34px;
  496. text-align: center;
  497. padding-bottom: 90px;
  498. }
  499. }
  500. // 3.提交工单信息
  501. .submit {
  502. width: 1200px;
  503. overflow: hidden;
  504. text-align: center;
  505. .inner {
  506. width: 1100px;
  507. padding-left: 50px;
  508. padding-bottom: 130px;
  509. font-family: Microsoft YaHei, Microsoft YaHei;
  510. font-style: normal;
  511. text-transform: none;
  512. // 标题
  513. >h1 {
  514. margin-top: 80px;
  515. margin-bottom: 30px;
  516. font-weight: bold;
  517. font-size: 26px;
  518. color: #333333;
  519. line-height: 30px;
  520. text-align: center;
  521. }
  522. // 工单编号
  523. >p {
  524. margin-bottom: 257px;
  525. font-weight: 400;
  526. font-size: 22px;
  527. color: #333333;
  528. text-align: center;
  529. }
  530. // 按钮
  531. >.btn {
  532. margin-bottom: 30px;
  533. button {
  534. width: 134px;
  535. height: 50px;
  536. border: none;
  537. font-weight: 400;
  538. font-size: 16px;
  539. text-align: center;
  540. border-radius: 7px;
  541. }
  542. .check {
  543. background-color: #fff;
  544. color: #33B023;
  545. border: 1px solid #33B023;
  546. margin-right: 160px;
  547. }
  548. .apply {
  549. background-color: #33B023;
  550. color: #fff;
  551. }
  552. }
  553. // 提示文字
  554. >span {
  555. font-weight: 400;
  556. font-size: 14px;
  557. color: #999999;
  558. }
  559. }
  560. }
  561. }
  562. }
  563. </style>