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.

740 lines
25 KiB

2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
2 months ago
1 month ago
2 months ago
2 months ago
1 month ago
2 months ago
2 months ago
1 month ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
1 month ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
1 month ago
2 months ago
1 month ago
2 months ago
2 months ago
2 months ago
1 month ago
1 month ago
1 month ago
2 months ago
1 month ago
1 month ago
2 months ago
1 month ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
2 months 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
2 months ago
1 month ago
2 months ago
1 month ago
2 months ago
1 month ago
1 month ago
2 months ago
1 month ago
1 month ago
2 months ago
  1. <!-- 客服 -->
  2. <template>
  3. <el-card style="margin-bottom: 0.5vh;background-color: rgb(243,250,254);">
  4. <div class="condition">
  5. <div class="item1">
  6. <el-text size="large" style="width:4vw;">精网号</el-text>
  7. <el-input v-model="searchForm.jwcode" placeholder="请输入精网号" style="width:9vw;" clearable />
  8. </div>
  9. <div class="item1">
  10. <el-text size="large" style="width:4vw;">客户姓名</el-text>
  11. <el-input v-model="searchForm.name" placeholder="请输入客户姓名" style="width:9vw;" clearable />
  12. </div>
  13. <div class="item1">
  14. <el-text size="large" style="width:4vw;">所属地区</el-text>
  15. <el-cascader style="width: 9vw;" v-model="searchForm.market" :options="market" placeholder="请选择所属地区"
  16. clearable @change="handleMarketChange" />
  17. </div>
  18. <div class="item1">
  19. <el-text size="large" style="width:4vw;">产品名称</el-text>
  20. <el-cascader v-model="searchForm.goodsName" :options="productList" style="width: 10vw;" clearable />
  21. </div>
  22. <div class="item1">
  23. <el-text size="large" style="width:4vw;" multiple>订单状态</el-text>
  24. <el-select v-model="searchForm.statuses" style="width:9vw;" clearable>
  25. <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />
  26. </el-select>
  27. </div>
  28. </div>
  29. <div class="condition">
  30. <div class="item2">
  31. <el-text size="large" style="width:4vw;">付款币种</el-text>
  32. <el-select v-model="searchForm.paymentCurrency" style="width:9vw;" clearable>
  33. <el-option v-for="item in currencies" :key="item.value" :label="item.label" :value="item.value" />
  34. </el-select>
  35. </div>
  36. <div class="item2">
  37. <el-text size="large" style="width:4vw;">支付方式</el-text>
  38. <el-select v-model="searchForm.payType" style="width:9vw;" clearable>
  39. <el-option v-for="item in channelOptions" :key="item.value" :label="item.label"
  40. :value="item.value" />
  41. </el-select>
  42. </div>
  43. <div class="item2" style="width: 28.5vw;">
  44. <el-text size="large" style="width:4vw;">付款时间</el-text>
  45. <el-date-picker v-model="dateRange" type="datetimerange" range-separator="" start-placeholder="起始时间"
  46. end-placeholder="结束时间" style="width:22vw;" :disabled-date="disabledDate" :default-time="defaultTime" clearable />
  47. </div>
  48. <div>
  49. <el-button type="primary" @click="getRefund">查询</el-button>
  50. <!-- <el-button type="warning">导出excel</el-button>
  51. <el-button type="primary">查看导出列表</el-button> -->
  52. <el-button type="success" @click="reset">重置</el-button>
  53. </div>
  54. </div>
  55. </el-card>
  56. <el-card style="margin-top: 0.5vh;background-color: rgb(231,244,253);">
  57. <el-table :data="tableData" style="height:64vh;width:82vw;background-color: rgb(243,250,254);">
  58. <el-table-column type="index" label="序号" width="60" fixed="left" />
  59. <el-table-column prop="jwcode" label="Homily ID" width="120" fixed="left" />
  60. <el-table-column prop="name" label="姓名" width="120" fixed="left" show-overflow-tooltip />
  61. <el-table-column prop="market" label="所属地区" width="120" />
  62. <el-table-column prop="activity" label="活动名称" width="120px" show-overflow-tooltip />
  63. <el-table-column prop="goodsName" label="产品名称" width="130" show-overflow-tooltip />
  64. <el-table-column prop="goodNum" label="产品数量" width="120" />
  65. <el-table-column prop="paymentCurrency" label="付款币种" width="120" />
  66. <el-table-column prop="paymentAmount" label="付款金额" width="120" />
  67. <el-table-column prop="payType" label="支付方式" width="140" />
  68. <el-table-column prop="payTime" label="付款时间" width="180" />
  69. <el-table-column prop="voucher" label="转账凭证" width="120" show-overflow-tooltip>
  70. <template #default="scope">
  71. <img v-if="scope.row.voucher" :src="scope.row.voucher" style="width: 40px; height: 40px;" />
  72. <span v-else>无转账凭证</span>
  73. </template>
  74. </el-table-column>
  75. <el-table-column prop="remark" label="备注" width="150" show-overflow-tooltip />
  76. <el-table-column prop="status" label="订单状态" width="120">
  77. <template #default="scope">
  78. {{
  79. [10, 20, 30, 40].includes(scope.row.status) ? '审核中' :
  80. [12, 22, 32].includes(scope.row.status) ? '已驳回' :
  81. [11].includes(scope.row.status) ? '已撤回' :
  82. scope.row.status === 41 ? '退款完成' : scope.row.status
  83. }}
  84. </template>
  85. </el-table-column>
  86. <el-table-column prop="operation" label="操作" fixed="right" width="100px">
  87. <template #default="scope">
  88. <div class="operation">
  89. <el-button v-if="scope.row.status === 10" type="primary" text
  90. @click="showBackDialog(scope.row)">
  91. 撤回
  92. </el-button>
  93. <el-button v-if="scope.row.status === 11" type="primary" text
  94. @click="showEditDialog(scope.row)">
  95. 编辑
  96. </el-button>
  97. </div>
  98. </template>
  99. </el-table-column>
  100. </el-table>
  101. <el-pagination v-model:current-page="pagination.pageNum" v-model:page-size="pagination.pageSize"
  102. layout="total, sizes, prev, pager, next, jumper" :total="pagination.total"
  103. @size-change="handlePageSizeChange" @current-change="handleCurrentChange"
  104. style="margin-top: 1vh;"></el-pagination>
  105. </el-card>
  106. <el-dialog v-model="showEdit" title="退款" class="editDialog" overflow draggable style="width: 40vw;">
  107. <div style="display: flex;">
  108. <div class="left">
  109. <div class="add-item">
  110. <el-text style="width:4vw;">精网号</el-text>
  111. <el-input v-model="editRow.jwcode" style="width:10vw;" disabled />
  112. </div>
  113. <div class="add-item">
  114. <el-text style="width:4vw;">客户姓名</el-text>
  115. <el-input v-model="editRow.name" style="width:10vw;" disabled />
  116. </div>
  117. <div class="add-item">
  118. <el-text style="width:4vw;">所属地区</el-text>
  119. <el-input v-model="editRow.marketName" style="width:10vw;" disabled />
  120. </div>
  121. <div class="add-item">
  122. <el-text style="width:4vw;">活动名称</el-text>
  123. <el-input v-model="editRow.activity" style="width:10vw;" disabled />
  124. </div>
  125. <div class="add-item">
  126. <el-text style="width:4vw;">产品名称</el-text>
  127. <el-input v-model="editRow.goodsName" style="width:10vw;" disabled />
  128. </div>
  129. <div class="add-item">
  130. <el-text style="width:4vw;">产品数量</el-text>
  131. <el-input v-model="editRow.goodNum" style="width:10vw;" disabled />
  132. &nbsp;
  133. </div>
  134. <div class="add-item">
  135. <el-text style="width:4vw;">付款币种</el-text>
  136. <el-input v-model="editRow.paymentCurrency" style="width:10vw;" disabled />
  137. </div>
  138. <div class="add-item">
  139. <el-text style="width:4vw;">付款金额</el-text>
  140. <el-input v-model="editRow.paymentAmount" style="width:10vw;" disabled />
  141. </div>
  142. <div class="add-item">
  143. <el-text style="width:4vw;">支付方式</el-text>
  144. <el-input v-model="editRow.payType" style="width:10vw;" disabled />
  145. </div>
  146. <div class="add-item">
  147. <el-text style="width:4vw;">付款时间</el-text>
  148. <el-date-picker v-model="editRow.payTime" type="datetime" style="width:10vw;" disabled />
  149. </div>
  150. <div class="add-item">
  151. <el-text style="width:4vw;">转账凭证</el-text>
  152. <img v-if="editRow.voucher" :src="editRow.voucher"
  153. style="width: 80px; height: 80px; object-fit: cover;">
  154. <div v-else>
  155. 无转账凭证
  156. </div>
  157. </div>
  158. <div class="add-item">
  159. <el-text style="width:4vw;">备注</el-text>
  160. <el-input v-model="editRow.remark" style="width:10vw;" :rows="3" type="textarea" maxLength="100"
  161. disabled show-word-limit />
  162. </div>
  163. </div>
  164. <div class="right">
  165. <div class="add-item">
  166. <el-text style="width:4vw;">退款类型</el-text>
  167. <el-radio-group v-model="editForm.refundModel">
  168. <el-radio value="0">全部退款</el-radio>
  169. <el-radio value="1">部分退款</el-radio>
  170. </el-radio-group>
  171. </div>
  172. <div class="add-item">
  173. <el-text style="width:4vw;">退款理由</el-text>
  174. <el-input v-model="editForm.refundReason" style="width:10vw;" :rows="5" maxlength="150"
  175. show-word-limit type="textarea" />
  176. </div>
  177. <div>ps:请在退款理由表明用户的退款需求</div>
  178. <div style="display:flex;justify-content: center;margin-top: 5vh;">
  179. <el-button type="default" @click="resetEdit">重置</el-button>
  180. <el-button type="primary" @click="submitEdit">提交</el-button>
  181. </div>
  182. </div>
  183. </div>
  184. </el-dialog>
  185. <ConfirmDialog v-model="showBack" message="撤回该信息!" @confirm="recall" @cancel="showBack = false"
  186. @close="showBack = false" />
  187. <el-dialog v-model="showError" overflow draggable class="back-dialog" :style="{
  188. backgroundImage: 'url(/src/assets/images/撤回.png)',
  189. backgroundSize: 'cover',
  190. backgroundPosition: 'center'
  191. }">
  192. <div class="back-text">退 </div>
  193. <div class="back-btn">
  194. <el-button type="default" @click="showError = false">取消</el-button>
  195. <el-button type="primary" @click="" style="margin-left: 2vw;">确定</el-button>
  196. </div>
  197. </el-dialog>
  198. </template>
  199. <script setup>
  200. import { ref, onMounted } from 'vue'
  201. import { ElMessage } from 'element-plus'
  202. import API from '@/util/http.js'
  203. const uploadUrl = 'https://api.homilychart.com/hljw/api/aws/upload'
  204. import { useAdminStore } from "@/store/index.js"
  205. import { storeToRefs } from "pinia"
  206. import dayjs from 'dayjs'
  207. const adminStore = useAdminStore()
  208. const { adminData, menuTree } = storeToRefs(adminStore)
  209. import { permissionMapping, findMenuById, hasMenuPermission } from "@/utils/menuTreePermission.js"
  210. import ConfirmDialog from '@/components/dialogs/ConfirmDialog.vue'
  211. import { pa } from 'element-plus/es/locales.mjs'
  212. const dateRange = ref([])
  213. const searchForm = ref({
  214. jwcode: '',
  215. market: [],
  216. statuses: []
  217. })
  218. const market = ref([])
  219. const backRow = ref({})// 撤回存数据
  220. const editRow = ref({})// 编辑存数据
  221. const editForm = ref({
  222. refundModel: '',
  223. refundReason: ''
  224. })
  225. const auditForm = ref({
  226. refundType: ''
  227. })
  228. const pagination = ref({
  229. pageNum: 1,
  230. pageSize: 50,
  231. total: 0
  232. })
  233. const tableData = ref([])
  234. const showEdit = ref(false)
  235. const uploadRef = ref(null)
  236. const showBack = ref(false)
  237. const showError = ref(false)
  238. const isKF = adminData.value.adminName.includes('客服')
  239. const statusList = ref([
  240. {
  241. value: 'waiting',
  242. label: '待审核',
  243. },
  244. {
  245. value: 'pending',
  246. label: '审核中'
  247. },
  248. {
  249. value: 'completed',
  250. label: '退款完成'
  251. }
  252. ])
  253. // 查全部
  254. const getRefund = async function () {
  255. if (!hasMenuPermission(menuTree.value, permissionMapping.refundServiceShow)) {
  256. ElMessage.error('无此权限')
  257. return
  258. }
  259. try {
  260. if (searchForm.value.statuses === 'completed') {
  261. searchForm.value.statuses = [41]
  262. } else if (searchForm.value.statuses === 'pending') {
  263. searchForm.value.statuses = [20, 30, 40]
  264. } else if (searchForm.value.statuses === 'waiting') {
  265. searchForm.value.statuses = [10]
  266. }
  267. const params = {
  268. pageNum: pagination.value.pageNum,
  269. pageSize: pagination.value.pageSize,
  270. cashRecordDone: {
  271. jwcode: searchForm.value.jwcode,//精网号
  272. name: searchForm.value.name,//姓名
  273. markets: searchForm.value.market,//地区
  274. goodsNames: searchForm.value.goodsName,//商品名
  275. statuses: searchForm.value.statuses,//10:地区财务待审核;12:地区财务驳回;
  276. // 20:地区负责人待审核;22:地区负责人驳回;
  277. // 30:总部财务待审核;32:总部财务驳回;
  278. // 40:执行人待处理;41:执行人已处理,退款完成;
  279. paymentCurrency: searchForm.value.paymentCurrency,//付款币种
  280. payType: searchForm.value.payType,//支付方式
  281. startTime: dateRange.value && dateRange.value[0] ? dayjs(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss') : "",
  282. endTime: dateRange.value && dateRange.value[1] ? dayjs(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss') : "",
  283. submitterId: adminData.value.id
  284. }
  285. }
  286. const result = await API({
  287. url: '/Money/selecta',
  288. method: 'POST',
  289. data: params
  290. })
  291. tableData.value = result.data.list || []
  292. pagination.value.total = result.data.total || 0
  293. } catch (error) {
  294. ElMessage.error(error.message || '查询失败')
  295. }
  296. }
  297. // 撤回
  298. const recall = async function () {
  299. if (!hasMenuPermission(menuTree.value, permissionMapping.refundServiceBack)) {
  300. ElMessage.error('无此权限')
  301. return
  302. }
  303. try {
  304. console.log(backRow.value)
  305. const params = {
  306. id: backRow.value.id,
  307. status: backRow.value.status,
  308. orderType: backRow.value.orderType
  309. }
  310. const result = await API({
  311. url: '/Money/update',
  312. data: params
  313. })
  314. if (result.code === 200) {
  315. ElMessage.success(result.msg || '退款成功')
  316. showBack.value = false
  317. getRefund()
  318. } else {
  319. ElMessage.error(result.msg || '退款失败')
  320. }
  321. } catch (error) {
  322. ElMessage.error(error.message || '退款失败')
  323. }
  324. }
  325. // 编辑
  326. const submitEdit = async function () {
  327. if (!hasMenuPermission(menuTree.value, permissionMapping.refundServiceEdit)) {
  328. ElMessage.error('无此权限')
  329. return
  330. }
  331. try {
  332. console.log(editRow.value)
  333. const params = {
  334. id: editRow.value.id,
  335. status: editRow.value.status,
  336. refundModel: editForm.value.refundModel,
  337. refundReason: editForm.value.refundReason,
  338. jwcode: editRow.value.jwcode,
  339. paymentAmount: editRow.value.paymentAmount,
  340. paymentCurrency: editRow.value.paymentCurrency
  341. }
  342. const result = await API({
  343. url: '/Money/update',
  344. data: params
  345. })
  346. if (result.code === 200) {
  347. ElMessage.success(result.msg || '编辑成功')
  348. showEdit.value = false
  349. getRefund()
  350. } else {
  351. ElMessage.error(result.msg || '编辑失败')
  352. }
  353. } catch (error) {
  354. ElMessage.error(error.message || '编辑失败')
  355. }
  356. }
  357. const getMarket = async function () {
  358. try {
  359. const result = await API({
  360. url: '/market/selectMarket',
  361. })
  362. console.log('看看地区树', result)
  363. const transformTree = (nodes) => {
  364. const allChildren = nodes.flatMap(node => node.children || []);
  365. return allChildren.map(child => {
  366. const grandchildren = child.children && child.children.length
  367. ? transformTree([child])
  368. : null;
  369. return {
  370. value: child.name,
  371. label: child.name,
  372. children: grandchildren
  373. };
  374. });
  375. };
  376. market.value = transformTree(result.data)
  377. console.log('转换后的地区树==============', market.value)
  378. } catch (error) {
  379. console.log('请求失败', error)
  380. }
  381. }
  382. const currencies = ref([
  383. {
  384. value: '新币',
  385. label: '新币'
  386. },
  387. {
  388. value: '港币',
  389. label: '港币'
  390. },
  391. {
  392. value: '马币',
  393. label: '马币'
  394. },
  395. {
  396. value: '加币',
  397. label: '加币'
  398. },
  399. {
  400. value: '泰铢',
  401. label: '泰铢'
  402. },
  403. {
  404. value: '越南盾',
  405. label: '越南盾'
  406. }
  407. ])
  408. const channelOptions = ref([{
  409. value: '银行转账',
  410. label: '银行转账'
  411. },
  412. {
  413. value: '现金',
  414. label: '现金'
  415. },
  416. {
  417. value: '支票',
  418. label: '支票'
  419. },
  420. {
  421. value: '刷卡',
  422. label: '刷卡'
  423. },
  424. {
  425. value: 'Grabpay',
  426. label: 'Grabpay'
  427. },
  428. {
  429. value: 'Nets',
  430. label: 'Nets'
  431. },
  432. {
  433. value: 'PayPal',
  434. label: 'PayPal'
  435. },
  436. {
  437. value: 'Stripe-链接收款',
  438. label: 'Stripe-链接收款'
  439. },
  440. {
  441. value: 'Ipay88-链接收款',
  442. label: 'Ipay88-链接收款'
  443. },
  444. {
  445. value: 'PaymentAsia-链接收款',
  446. label: 'PaymentAsia-链接收款'
  447. },
  448. {
  449. value: 'Stripe-Link平台',
  450. label: 'Stripe-Link平台'
  451. },
  452. {
  453. value: 'PaymentAsia-Link平台',
  454. label: 'PaymentAsia-Link平台'
  455. },
  456. {
  457. value: 'FirstData-Link平台-Link平台',
  458. label: 'FirstData-Link平台-Link平台'
  459. },
  460. {
  461. value: 'IOS-Link平台',
  462. label: 'IOS-Link平台'
  463. },
  464. {
  465. value: 'Ipay88-Link平台',
  466. label: 'Ipay88-Link平台'
  467. }
  468. ])
  469. const productList = [
  470. {
  471. "value": "金币产品",
  472. "label": "金币产品",
  473. "children": [
  474. {
  475. "value": "金币充值",
  476. "label": "金币充值",
  477. }
  478. ]
  479. },
  480. {
  481. "value": "软件产品",
  482. "label": "软件产品",
  483. "children": [
  484. {
  485. "value": "美股",
  486. "label": "美股",
  487. "children": [
  488. {
  489. "value": "美股软件",
  490. "label": "美股软件"
  491. }
  492. ]
  493. },
  494. {
  495. "value": "港股",
  496. "label": "港股",
  497. "children": [
  498. {
  499. "value": "港股软件",
  500. "label": "港股软件"
  501. }
  502. ]
  503. },
  504. {
  505. "value": "A股",
  506. "label": "A股",
  507. "children": [
  508. {
  509. "value": "A股软件",
  510. "label": "A股软件"
  511. }
  512. ]
  513. },
  514. {
  515. "value": "新加坡股",
  516. "label": "新加坡股",
  517. "children": [
  518. {
  519. "value": "新加坡股软件",
  520. "label": "新加坡股软件"
  521. }
  522. ]
  523. },
  524. {
  525. "value": "马股",
  526. "label": "马股",
  527. "children": [
  528. {
  529. "value": "马股软件",
  530. "label": "马股软件"
  531. }
  532. ]
  533. },
  534. {
  535. "value": "日本股",
  536. "label": "日本股",
  537. "children": [
  538. {
  539. "value": "日本股软件",
  540. "label": "日本股软件"
  541. }
  542. ]
  543. },
  544. {
  545. "value": "泰股",
  546. "label": "泰股",
  547. "children": [
  548. {
  549. "value": "泰股软件",
  550. "label": "泰股软件"
  551. }
  552. ]
  553. },
  554. {
  555. "value": "越南股",
  556. "label": "越南股",
  557. "children": [
  558. {
  559. "value": "越南股软件",
  560. "label": "越南股软件"
  561. }
  562. ]
  563. },
  564. {
  565. "value": "印尼股",
  566. "label": "印尼股",
  567. "children": [
  568. {
  569. "value": "印尼股软件",
  570. "label": "印尼股软件"
  571. }
  572. ]
  573. },
  574. {
  575. "value": "韩国股",
  576. "label": "韩国股",
  577. "children": [
  578. {
  579. "value": "韩国股软件",
  580. "label": "韩国股软件"
  581. }
  582. ]
  583. },
  584. {
  585. "value": "台湾股",
  586. "label": "台湾股",
  587. "children": [
  588. {
  589. "value": "台湾股软件",
  590. "label": "台湾股软件"
  591. }
  592. ]
  593. }
  594. ]
  595. },
  596. ]
  597. const reset = function () {
  598. searchForm.value = {
  599. jwcode: '',
  600. market: searchForm.value.market,
  601. statuses: searchForm.value.statuses
  602. }
  603. dateRange.value = []
  604. getRefund()
  605. }
  606. const resetEdit = function () {
  607. editForm.value = {
  608. refundModel: '',
  609. refundReason: ''
  610. }
  611. }
  612. const showBackDialog = function (row) {
  613. backRow.value = row
  614. showBack.value = true
  615. }
  616. const showEditDialog = function (row) {
  617. editRow.value = row
  618. showEdit.value = true
  619. }
  620. const handlePageSizeChange = function (val) {
  621. pagination.value.pageSize = val
  622. getRefund()
  623. }
  624. const handleCurrentChange = function (val) {
  625. pagination.value.pageNum = val
  626. getRefund()
  627. }
  628. const disabledDate = (time) => {
  629. const limitDate = new Date(2025, 0, 1);
  630. return time.getTime() < limitDate.getTime();
  631. }
  632. const handleMarketChange = (value) => {
  633. searchForm.value.market = value || []
  634. }
  635. const defaultTime = [
  636. new Date(2000, 1, 1, 0, 0, 0),
  637. new Date(2000, 2, 1, 23, 59, 59),
  638. ]
  639. onMounted(() => {
  640. getRefund()
  641. getMarket()
  642. console.log('???????????????????', adminData.value)
  643. })
  644. </script>
  645. <style scoped lang="scss">
  646. :deep(.el-table__header-wrapper),
  647. :deep(.el-table__body-wrapper),
  648. :deep(.el-table__cell),
  649. :deep(.el-table__body td) {
  650. background-color: #F3FAFE !important;
  651. }
  652. :deep(.el-table__header th) {
  653. background-color: #F3FAFE !important;
  654. }
  655. .condition {
  656. width: 82vw;
  657. display: flex;
  658. align-items: center;
  659. height: 4vh;
  660. .item1 {
  661. width: 18%;
  662. display: flex;
  663. align-items: center;
  664. margin-bottom: 1vh;
  665. margin-right: 0.5vw;
  666. }
  667. .item2 {
  668. width: 18%;
  669. display: flex;
  670. align-items: center;
  671. margin-right: 0.5vw;
  672. }
  673. }
  674. .editDialog {
  675. .left {
  676. width: 50%;
  677. height: 70vh;
  678. padding: 0 2vw;
  679. .add-item {
  680. display: flex;
  681. align-items: center;
  682. margin-bottom: 1vh;
  683. }
  684. .image {
  685. width: 4vw !important;
  686. height: 4vw !important;
  687. }
  688. }
  689. .right {
  690. width: 50%;
  691. height: 50vh;
  692. .add-item {
  693. display: flex;
  694. align-items: center;
  695. margin-bottom: 1vh;
  696. }
  697. }
  698. }
  699. .back-dialog {
  700. width: 700px;
  701. height: auto;
  702. .back-text {
  703. font-size: 60px;
  704. font-weight: bold;
  705. color: #000000;
  706. text-align: center;
  707. justify-content: center;
  708. margin-top: 22vh;
  709. }
  710. .back-btn {
  711. height: 20vh;
  712. display: flex;
  713. justify-content: center;
  714. align-items: center;
  715. }
  716. }
  717. </style>