金币系统前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

802 lines
23 KiB

1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
4 days ago
1 month ago
4 days ago
1 month ago
1 month ago
3 weeks ago
1 month ago
1 month ago
4 days ago
4 days ago
4 days ago
4 days ago
1 month ago
4 days ago
  1. <script setup>
  2. import { ref, onMounted, reactive, computed } from 'vue'
  3. import ElementPlus from 'element-plus'
  4. import { ElMessage, ElMessageBox } from 'element-plus'
  5. import { AiFillRead } from 'vue-icons-plus/ai'
  6. import axios from 'axios'
  7. import moment from 'moment'
  8. import API from '@/util/http'
  9. //这是获取用户信息的接口
  10. const adminData = ref({})
  11. const getAdminData = async function () {
  12. try {
  13. const result = await API({ url: '/admin/userinfo', data: {} })
  14. adminData.value = result
  15. rechargeVo.value.adminId = adminData.value.adminId
  16. console.log('请求成功', result)
  17. console.log('用户信息', adminData.value)
  18. } catch (error) {
  19. console.log('请求失败', error)
  20. }
  21. }
  22. // 变量
  23. // 充值明细表格
  24. const tableData = ref([])
  25. // 搜索===========================================
  26. // 搜索recharge
  27. const rechargeVo = ref({
  28. adminId: adminData.value.adminId
  29. })
  30. // 搜索对象
  31. const getObj = ref({
  32. pageNum: 1,
  33. pageSize: 50
  34. })
  35. //分页总条目
  36. const total = ref(100)
  37. // 搜索对象时间
  38. const getTime = ref([])
  39. // 搜索活动列表
  40. const activity = ref([])
  41. // 所有信息
  42. const allData = ref([])
  43. // 搜索地区列表
  44. const area = ref([])
  45. //标签页默认高亮选项
  46. const activeName = ref('all')
  47. // 支付方式选项
  48. const payWay = [
  49. {
  50. value: '微信',
  51. label: '微信'
  52. },
  53. {
  54. value: '支付宝',
  55. label: '支付宝'
  56. },
  57. {
  58. value: '银联',
  59. label: '银联'
  60. },
  61. {
  62. value: '信用卡',
  63. label: '信用卡'
  64. },
  65. {
  66. value: '借记卡',
  67. label: '借记卡'
  68. },
  69. {
  70. value: '现金充值',
  71. label: '现金充值'
  72. }
  73. ]
  74. // 删除==========================================================
  75. // 删除对象
  76. const delObj = ref({})
  77. // //表格高度
  78. // const tableHeight = computed(function () {
  79. // return (getObj.value.pageSize + 2) * 60 + "px";
  80. // });
  81. // 方法
  82. // 合计数存储
  83. const trueGold = ref(0)
  84. const trueRGold = ref(0)
  85. const trueFGold = ref(0)
  86. //全部
  87. const totalmoney = ref(0)
  88. const totalRcoin = ref(0)
  89. const totalFcoin = ref(0)
  90. //待审核
  91. const pendingGold = ref(0)
  92. const pendingRGold = ref(0)
  93. const pendingFGold = ref(0)
  94. // 已通过金币数
  95. const approvedGold = ref(0)
  96. const approvedRGold = ref(0)
  97. const approvedFGold = ref(0)
  98. // 已驳回金币数
  99. const rejectedGold = ref(0)
  100. const rejectedRGold = ref(0)
  101. const rejectedFGold = ref(0)
  102. // 搜索===========================================================================
  103. // 搜索方法
  104. const get = async function (val) {
  105. try {
  106. // 地区赋值
  107. if (adminData.value.area === '泰国') {
  108. rechargeVo.value.areas = ['泰国', '越南']
  109. } else if (adminData.value.area !== '总部') {
  110. rechargeVo.value.area = adminData.value.area
  111. }
  112. // 搜索参数页码赋值
  113. if (typeof val === 'number') {
  114. getObj.value.pageNum = val
  115. }
  116. // 搜索参数时间赋值
  117. if (getTime.value != null) {
  118. if (getTime.value.startDate != '' && getTime.value.endDate != '') {
  119. rechargeVo.value.startDate = getTime.value[0]
  120. rechargeVo.value.endDate = getTime.value[1]
  121. }
  122. } else {
  123. rechargeVo.value.startDate = ''
  124. rechargeVo.value.endDate = ''
  125. }
  126. // 搜索参数赋值
  127. rechargeVo.value.sortField = sortField.value
  128. rechargeVo.value.sortOrder = sortOrder.value
  129. console.log('搜索参数', getObj.value)
  130. // 发送POST请求
  131. const result = await API({
  132. url: '/recharge/recharge',
  133. data: { ...getObj.value, rechargeVo: { ...rechargeVo.value } }
  134. })
  135. // 复制一份 rechargeVo.value 并移除排序字段和排序方式
  136. const detailWithoutSort = ref({
  137. area: rechargeVo.value.area,
  138. adminId: rechargeVo.value.adminId,
  139. startDate: rechargeVo.value.startDate,
  140. endDate: rechargeVo.value.endDate
  141. })
  142. const result2 = await API({
  143. url: '/recharge/recharge/RechargeA',
  144. data: {
  145. ...detailWithoutSort.value
  146. }
  147. })
  148. // 检查 result2 是否为空
  149. if (!result2 || !result2.data || result2.data.length === 0) {
  150. totalmoney.value = 0
  151. totalRcoin.value = 0
  152. totalFcoin.value = 0
  153. }
  154. if (result2.data) {
  155. result2.data.forEach((item) => {
  156. switch (item.auditStatus) {
  157. case '待审核':
  158. // 若 item.raudit 为空则赋值为 0
  159. // 若 item.sumRaudit 为空则赋值为 0
  160. pendingGold.value = item.sumRaudit || 0
  161. pendingRGold.value = item.sumRaudit1 || 0
  162. pendingFGold.value = item.sumRaudit2 || 0
  163. break
  164. case '已通过':
  165. approvedGold.value = item.sumRaudit || 0
  166. approvedRGold.value = item.sumRaudit1 || 0
  167. approvedFGold.value = item.sumRaudit2 || 0
  168. break
  169. case '已驳回':
  170. rejectedGold.value = item.sumRaudit || 0
  171. rejectedRGold.value = item.sumRaudit1 || 0
  172. rejectedFGold.value = item.sumRaudit2 || 0
  173. break
  174. }
  175. })
  176. }
  177. trueGold.value = pendingGold.value + approvedGold.value + rejectedGold.value
  178. trueRGold.value =
  179. pendingRGold.value + approvedRGold.value + rejectedRGold.value
  180. trueFGold.value =
  181. pendingFGold.value + approvedFGold.value + rejectedFGold.value
  182. // 将响应结果存储到响应式数据中
  183. console.log('请求成功', result)
  184. // 存储表格数据
  185. tableData.value = result.data.list
  186. console.log('tableData', tableData.value)
  187. // 存储分页总数
  188. total.value = result.data.total
  189. console.log('total', total.value)
  190. } catch (error) {
  191. console.log('请求失败', error)
  192. // 在这里可以处理错误逻辑,比如显示错误提示等
  193. }
  194. }
  195. // 搜索
  196. const search = function () {
  197. getObj.value.pageNum = 1
  198. get()
  199. }
  200. // 重置
  201. const reset = function () {
  202. delete rechargeVo.value.activityId
  203. delete rechargeVo.value.payWay
  204. delete rechargeVo.value.area
  205. delete rechargeVo.value.startDate
  206. delete rechargeVo.value.endDate
  207. delete sortField.value
  208. delete sortOrder.value
  209. getTime.value = {}
  210. }
  211. // 今天
  212. const getToday = function () {
  213. const today = new Date()
  214. const startDate = new Date(
  215. today.getFullYear(),
  216. today.getMonth(),
  217. today.getDate()
  218. )
  219. const endDate = new Date(
  220. today.getFullYear(),
  221. today.getMonth(),
  222. today.getDate() + 1
  223. )
  224. getTime.value = [startDate, endDate]
  225. console.log('getTime', getTime.value)
  226. get()
  227. }
  228. const handlePageSizeChange = function (val) {
  229. getObj.value.pageSize = val
  230. get()
  231. }
  232. const handleCurrentChange = function (val) {
  233. getObj.value.pageNum = val
  234. get()
  235. }
  236. // 昨天
  237. const getYesterday = function () {
  238. const yesterday = new Date()
  239. yesterday.setDate(yesterday.getDate() - 1)
  240. const startDate = new Date(
  241. yesterday.getFullYear(),
  242. yesterday.getMonth(),
  243. yesterday.getDate()
  244. )
  245. const endDate = new Date(
  246. yesterday.getFullYear(),
  247. yesterday.getMonth(),
  248. yesterday.getDate() + 1
  249. )
  250. getTime.value = [startDate, endDate]
  251. console.log('getTime', getTime.value)
  252. get()
  253. }
  254. // 近7天
  255. const get7Days = function () {
  256. const today = new Date()
  257. const startDate = new Date(
  258. today.getFullYear(),
  259. today.getMonth(),
  260. today.getDate() - 6
  261. )
  262. const endDate = new Date(
  263. today.getFullYear(),
  264. today.getMonth(),
  265. today.getDate() + 1
  266. )
  267. getTime.value = [startDate, endDate]
  268. console.log('getTime', getTime.value)
  269. get()
  270. }
  271. //全部充值明细
  272. const adminAll = function () {
  273. console.log('adminAll')
  274. rechargeVo.value.status = ''
  275. getObj.value.pageNum = 1
  276. get()
  277. }
  278. //待审核充值明细
  279. const adminWait = async function () {
  280. rechargeVo.value.status = 0
  281. getObj.value.pageNum = 1
  282. await get()
  283. console.log('adminWait')
  284. trueGold.value = pendingGold.value
  285. trueRGold.value = pendingRGold.value
  286. trueFGold.value = pendingFGold.value
  287. }
  288. //已通过充值明细
  289. const adminPass = async function () {
  290. rechargeVo.value.status = 1
  291. getObj.value.pageNum = 1
  292. await get()
  293. trueGold.value = approvedGold.value
  294. trueRGold.value = approvedRGold.value
  295. trueFGold.value = approvedFGold.value
  296. console.log('adminPass')
  297. }
  298. //已驳回充值明细
  299. const adminReject = async function () {
  300. rechargeVo.value.status = 2
  301. getObj.value.pageNum = 1
  302. await get()
  303. console.log('adminReject')
  304. trueGold.value = rejectedGold.value
  305. trueRGold.value = rejectedRGold.value
  306. trueFGold.value = rejectedFGold.value
  307. }
  308. //点击标签页
  309. const handleClick = function (tab, event) {
  310. if (tab.props.name === 'all') {
  311. adminAll()
  312. } else if (tab.props.name === 'wait') {
  313. adminWait()
  314. } else if (tab.props.name === 'pass') {
  315. adminPass()
  316. } else if (tab.props.name === 'reject') {
  317. adminReject()
  318. }
  319. }
  320. // 获取活动名称
  321. const getActivity = async function () {
  322. try {
  323. // 发送POST请求
  324. const result = await API({ url: '/recharge/activity/select', data: {} })
  325. // 将响应结果存储到响应式数据中
  326. console.log('请求成功', result)
  327. // 存储表格数据
  328. activity.value = result.data
  329. console.log('activity', activity.value)
  330. } catch (error) {
  331. console.log('请求失败', error)
  332. // 在这里可以处理错误逻辑,比如显示错误提示等
  333. }
  334. }
  335. // 获取地区
  336. // 获取地区
  337. const getArea = async function () {
  338. try {
  339. // 发送POST请求
  340. const result = await API({ url: 'recharge/user/search', data: {} })
  341. // 将响应结果存储到响应式数据中
  342. console.log('请求成功', result)
  343. // 存储地区信息
  344. area.value = result.data
  345. console.log('地区', area.value)
  346. } catch (error) {
  347. console.log('请求失败', error)
  348. // 在这里可以处理错误逻辑,比如显示错误提示等
  349. }
  350. }
  351. // 删除=================================
  352. // 点击删除按钮
  353. const del = function (row) {
  354. delObj.value.rechargeId = row.rechargeId
  355. console.log('delObj1', delObj.value)
  356. }
  357. // 确认删除按钮
  358. const delConfirm = async function () {
  359. try {
  360. console.log('delObj2', delObj.value)
  361. const result = await API({
  362. url: '/recharge/recharge/edit',
  363. data: delObj.value
  364. })
  365. console.log('删除成功', result)
  366. // 刷新表格数据
  367. get()
  368. } catch (error) {
  369. console.log('请求失败', error)
  370. // 在这里可以处理错误逻辑,比如显示错误提示等
  371. }
  372. }
  373. // 验证跳转输入框的数字是否合法
  374. const checkNumber = function () {
  375. if (typeof parseInt(getObj.value.pageNum) === 'number') {
  376. console.log('总共有多少页' + Math.ceil(total.value / getObj.value.pageSize))
  377. if (
  378. getObj.value.pageNum > 0 &&
  379. getObj.value.pageNum <= Math.ceil(total.value / getObj.value.pageSize)
  380. ) {
  381. getObj.value.pageNum = parseInt(getObj.value.pageNum)
  382. console.log('输入的数字合法')
  383. get()
  384. } else {
  385. //提示
  386. ElMessage({
  387. type: 'error',
  388. message: '请检查输入内容'
  389. })
  390. }
  391. } else {
  392. //提示
  393. ElMessage({
  394. type: 'error',
  395. message: '请检查输入内容'
  396. })
  397. }
  398. }
  399. // 挂载
  400. onMounted(async function () {
  401. await getAdminData()
  402. await get()
  403. await getActivity()
  404. await getArea()
  405. })
  406. // 新增排序字段和排序方式
  407. const sortField = ref('')
  408. const sortOrder = ref('')
  409. // 处理排序事件
  410. const handleSortChange = (column) => {
  411. get()
  412. console.log('排序字段:', column.prop)
  413. console.log('排序方式:', column.order)
  414. if (column.prop === 'paidGold') {
  415. sortField.value = 'recharge_gold'
  416. } else if (column.prop === 'freeGold') {
  417. sortField.value = 'free_gold'
  418. } else if (column.prop === 'rechargeTime') {
  419. sortField.value = 'recharge_time'
  420. } else if (column.prop === 'createTime') {
  421. sortField.value = 'create_time'
  422. }
  423. sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC'
  424. <<<<<<< HEAD
  425. console.log('传递给后端的排序字段:', sortField.value)
  426. console.log('传递给后端的排序方式:', sortOrder.value)
  427. get()
  428. =======
  429. >>>>>>> 5aefc9797093fe880ef02c9f28fafc3a6ed2d444
  430. }
  431. </script>
  432. <template>
  433. <el-row>
  434. <el-col>
  435. <el-card style="margin-bottom: 20px">
  436. <el-row style="margin-bottom: 10px">
  437. <el-col :span="8">
  438. <div class="head-card-element">
  439. <el-text class="mx-1" size="large">活动名称</el-text>
  440. <el-select
  441. v-model="rechargeVo.activityId"
  442. placeholder="请选择活动名称"
  443. size="large"
  444. style="width: 240px"
  445. clearable
  446. >
  447. <el-option
  448. v-for="item in activity"
  449. :key="item.activityId"
  450. :label="item.activityName"
  451. :value="item.activityId"
  452. />
  453. </el-select>
  454. </div>
  455. </el-col>
  456. <el-col :span="8">
  457. <!-- <div class="head-card-element">
  458. <el-text class="mx-1" size="large">支付方式</el-text>
  459. <el-select
  460. v-model="rechargeVo.payWay"
  461. placeholder="请选择支付方式"
  462. size="large"
  463. style="width: 240px"
  464. clearable
  465. >
  466. <el-option
  467. v-for="item in payWay"
  468. :key="item.value"
  469. :label="item.label"
  470. :value="item.value"
  471. />
  472. </el-select>
  473. </div> -->
  474. </el-col>
  475. <el-col :span="8">
  476. <div class="head-card-element" v-if="adminData.area == '总部'">
  477. <el-text class="mx-1" size="large">所属地区</el-text>
  478. <el-select
  479. v-model="rechargeVo.area"
  480. placeholder="请选择所属地区"
  481. size="large"
  482. style="width: 240px"
  483. clearable
  484. >
  485. <el-option
  486. v-for="item in area"
  487. :key="item"
  488. :label="item"
  489. :value="item"
  490. />
  491. </el-select>
  492. </div>
  493. </el-col>
  494. </el-row>
  495. <el-row>
  496. <el-col :span="21">
  497. <div class="head-card-element">
  498. <el-text class="mx-1" size="large">充值时间</el-text>
  499. <el-date-picker
  500. v-model="getTime"
  501. type="datetimerange"
  502. range-separator="至"
  503. start-placeholder="起始时间"
  504. end-placeholder="结束时间"
  505. />
  506. <el-button style="margin-left: 10px" @click="getToday()"
  507. ></el-button
  508. >
  509. <el-button @click="getYesterday()"></el-button>
  510. <el-button @click="get7Days()">近7天</el-button>
  511. </div>
  512. </el-col>
  513. <el-col :span="3">
  514. <div class="head-card-btn">
  515. <el-button type="success" @click="reset()">重置</el-button>
  516. <el-button type="primary" @click="search()">查询</el-button>
  517. </div>
  518. </el-col>
  519. </el-row>
  520. </el-card>
  521. </el-col>
  522. </el-row>
  523. <el-row>
  524. <el-col>
  525. <el-card>
  526. <el-tabs
  527. v-model="activeName"
  528. type="card"
  529. class="demo-tabs"
  530. @tab-click="handleClick"
  531. >
  532. <el-tab-pane label="全部" name="all"></el-tab-pane>
  533. <el-tab-pane label="待审核" name="wait"></el-tab-pane>
  534. <el-tab-pane label="已通过" name="pass"></el-tab-pane>
  535. <el-tab-pane label="已驳回" name="reject"></el-tab-pane>
  536. <div>
  537. 充值金额{{ trueRGold.toFixed(2) }}新币永久金币{{
  538. trueRGold.toFixed(2)
  539. }}金币免费金币{{ trueFGold }}金币
  540. </div>
  541. </el-tabs>
  542. <!-- 设置表格容器的高度和滚动样式 -->
  543. <div style="height: 520px; overflow-y: auto">
  544. <el-table
  545. :data="tableData"
  546. style="width: 100%"
  547. height="520px"
  548. @sort-change="handleSortChange"
  549. >
  550. <el-table-column
  551. type="index"
  552. label="序号"
  553. width="100px"
  554. fixed="left"
  555. >
  556. <template #default="scope">
  557. <span>{{
  558. scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
  559. }}</span>
  560. </template>
  561. </el-table-column>
  562. <el-table-column
  563. fixed="left"
  564. prop="username"
  565. label="姓名"
  566. width="100px"
  567. />
  568. <el-table-column
  569. fixed="left"
  570. prop="jwcode"
  571. label="精网号"
  572. width="110px"
  573. />
  574. <el-table-column prop="area" label="所属地区" width="100px" />
  575. <el-table-column
  576. prop="activityName"
  577. label="活动名称"
  578. width="150px"
  579. />
  580. <!-- <el-table-column prop="" label="货币名称" width="120px" /> -->
  581. <el-table-column
  582. prop="paidGold"
  583. sortable="custom"
  584. label="充值金额"
  585. width="120px"
  586. />
  587. <el-table-column
  588. prop="paidGold"
  589. label="永久金币"
  590. sortable="custom"
  591. width="110px"
  592. />
  593. <el-table-column
  594. prop="freeGold"
  595. label="免费金币"
  596. sortable="custom"
  597. width="110px"
  598. />
  599. <el-table-column
  600. prop="remark"
  601. label="备注"
  602. width="200px"
  603. show-overflow-tooltip
  604. />
  605. <el-table-column prop="payWay" label="支付方式" width="100px" />
  606. <el-table-column
  607. prop="rechargeVoucher"
  608. label="支付凭证"
  609. width="150px"
  610. >
  611. <template #default="scope">
  612. <el-image
  613. :preview-src-list="[scope.row.rechargeVoucher]"
  614. preview-teleported="true"
  615. :src="scope.row.rechargeVoucher"
  616. alt="凭证"
  617. style="width: 50px; height: 50px"
  618. />
  619. </template>
  620. </el-table-column>
  621. <el-table-column prop="name" label="提交人" width="100px" />
  622. <el-table-column prop="status" label="状态" width="100px">
  623. <template #default="scope">
  624. <span v-if="scope.row.status === 1">
  625. <div class="status">
  626. <span class="green-dot"></span>
  627. <span>已通过</span>
  628. </div>
  629. </span>
  630. <span v-if="scope.row.status === 0">
  631. <div class="status">
  632. <span class="grey-dot"></span>
  633. <span>待审核</span>
  634. </div>
  635. </span>
  636. <span v-if="scope.row.status === 2">
  637. <div class="status">
  638. <span class="red-dot"></span>
  639. <span>已驳回</span>
  640. </div>
  641. </span>
  642. </template>
  643. </el-table-column>
  644. <el-table-column
  645. prop="reson"
  646. label="驳回理由"
  647. width="200px"
  648. show-overflow-tooltip
  649. />
  650. <el-table-column
  651. prop="rechargeTime"
  652. <<<<<<< HEAD
  653. sortable="custom"
  654. =======
  655. sortable
  656. >>>>>>> 5aefc9797093fe880ef02c9f28fafc3a6ed2d444
  657. label="交款时间"
  658. width="200px"
  659. >
  660. <template #default="scope">
  661. {{
  662. moment(scope.row.rechargeTime).format('YYYY-MM-DD HH:mm:ss')
  663. }}
  664. </template>
  665. </el-table-column>
  666. <el-table-column
  667. prop="createTime"
  668. sortable="custom"
  669. label="提交时间"
  670. width="200px"
  671. />
  672. <el-table-column
  673. fixed="right"
  674. prop="operation"
  675. label="操作"
  676. width="150px"
  677. >
  678. <template #default="scope">
  679. <el-popconfirm
  680. title="确定将此条活动删除吗?"
  681. @confirm="delConfirm"
  682. >
  683. <template #reference>
  684. <el-button type="primary" text @click="del(scope.row)">
  685. 删除
  686. </el-button>
  687. </template>
  688. <template #actions="{ confirm, cancel }">
  689. <el-button size="small" @click="cancel">取消</el-button>
  690. <el-button type="primary" size="small" @click="confirm">
  691. 确定
  692. </el-button>
  693. </template>
  694. </el-popconfirm>
  695. </template>
  696. </el-table-column>
  697. </el-table>
  698. </div>
  699. <!-- 分页 -->
  700. <div class="pagination" style="margin-top: 20px">
  701. <el-pagination
  702. background
  703. :page-size="getObj.pageSize"
  704. :page-sizes="[5, 10, 20, 50, 100]"
  705. layout="total, sizes, prev, pager, next, jumper"
  706. :total="total"
  707. @size-change="handlePageSizeChange"
  708. @current-change="handleCurrentChange"
  709. ></el-pagination>
  710. </div>
  711. </el-card>
  712. </el-col>
  713. </el-row>
  714. <!-- 编辑弹窗 -->
  715. <el-dialog
  716. v-model="editRechargeVisible"
  717. title="新增活动"
  718. width="500"
  719. :before-close="closeEditRechargeVisible"
  720. >
  721. <template #footer>
  722. <el-form :model="editObj" label-width="auto" style="max-width: 600px">
  723. <el-form-item label="活动名称:">
  724. <el-input
  725. v-model="addObj.activityName"
  726. placeholder="请输入活动名称"
  727. style="width: 220px"
  728. />
  729. </el-form-item>
  730. <el-form-item label="免费金币:">
  731. <el-radio-group v-model="addObj.freeGold">
  732. <el-radio value="0">无赠送</el-radio>
  733. <el-radio value="1">有赠送</el-radio>
  734. </el-radio-group>
  735. </el-form-item>
  736. <el-form-item label="免费金币兑换比:">
  737. <el-input
  738. v-model="addObj.rechargeRatio"
  739. placeholder="请输入"
  740. style="width: 80px"
  741. />1
  742. <div style="color: grey">(提示当前规则每10新币可兑换1免费金币)</div>
  743. </el-form-item>
  744. <el-form-item label="开始时间:">
  745. <el-time-picker v-model="addObj.startTime" />
  746. </el-form-item>
  747. <el-form-item label="结束时间:">
  748. <el-time-picker v-model="addObj.endTime" />
  749. </el-form-item>
  750. <el-form-item label="添加人:">
  751. <el-input v-model="addObj.adminName" disabled style="width: 220px" />
  752. </el-form-item>
  753. </el-form>
  754. <div class="dialog-footer">
  755. <el-button @click="closeAddActivityVisible">取消</el-button>
  756. <el-button type="primary" @click="closeAddActivityVisible">
  757. 提交
  758. </el-button>
  759. </div>
  760. </template>
  761. </el-dialog>
  762. </template>
  763. <style scoped>
  764. .pagination {
  765. display: flex;
  766. }
  767. .status {
  768. display: flex;
  769. }
  770. .head-card {
  771. display: flex;
  772. }
  773. .head-card-element {
  774. margin-right: 20px;
  775. }
  776. .head-card-btn {
  777. margin-left: auto;
  778. }
  779. </style>