workbranch.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726
  1. <template>
  2. <view>
  3. <gui-page :custom-header="true" :is-header-sized="false" :header-class="['gui-bg-gray', 'gui-dark-bg-level-1']">
  4. <template #gHeader>
  5. <view style="height:44px;" class="gui-flex gui-nowrap gui-rows gui-align-items-center">
  6. <!-- 导航文本此处也可以是其他自定义内容 -->
  7. <text class="gui-h4 gui-blod gui-flex1 gui-text-center gui-ellipsis gui-primary-text">工作台</text>
  8. <!-- 此处加一个右侧展位元素与左侧同宽,实现标题居中 -->
  9. <!-- 实际宽度请根据自己情况设置 -->
  10. <!-- 如果右侧有其他内容可以利用条件编译和定位来实现-->
  11. </view>
  12. </template>
  13. <template #gBody>
  14. <view class="uni-margin-wrap">
  15. <!-- <swiper class="swiper" circular indicator-dots="indicatorDots" interval="2000" duration="500">
  16. <swiper-item>
  17. <image class="adapt-image" src="@/static/material/156017341021.jpg" mode="aspectFill"></image>
  18. </swiper-item>
  19. <swiper-item>
  20. <image class="adapt-image" src="@/static/material/wallhaven-k7v9yq.png" mode="aspectFill">
  21. </image>
  22. </swiper-item>
  23. <swiper-item>
  24. <image class="adapt-image" src="@/static/material/wallhaven-m9xyg8.jpg" mode="aspectFill">
  25. </image>
  26. </swiper-item>
  27. </swiper> -->
  28. </view>
  29. <div class="gridBody">
  30. <!-- v-show="$permission('home:system:list')" -->
  31. <div class="grid-box">
  32. <view class="panel">
  33. <text class="panel-title">系统管理</text>
  34. </view>
  35. <view
  36. class="grid-list"
  37. :style="[isPad == true?'grid-template-columns: repeat(5, 1fr)':
  38. isPhone == true?'grid-template-columns: repeat(4, 1fr)':
  39. 'grid-template-columns: repeat(3, 1fr)']"
  40. >
  41. <view v-for="(item, key) in systemList" :key="key" class="gui-grid">
  42. <view class="gui-grid-item" @click="handleTap(item)">
  43. <text
  44. :class="['gui-grid-icon', item.iconClass ?? 'font-icons']"
  45. >{{ item.iconBase }}</text>
  46. <text class="gui-grid-text gui-color-black">{{ item.name }}</text>
  47. </view>
  48. </view>
  49. <!-- <view class="gui-grid">
  50. <view class="gui-grid-item" @click="takePhoto">
  51. <text :class="['gui-grid-icon','font-icons']">&#xe6d4;</text>
  52. <text class="gui-grid-text gui-color-black">测试拍照</text>
  53. </view>
  54. </view>
  55. <image v-for="item in srcs" :src="item" mode="aspectFit" /> -->
  56. </view>
  57. </div>
  58. <div class="grid-box">
  59. <view class="panel">
  60. <text class="panel-title">仓库管理</text>
  61. </view>
  62. <view
  63. class="grid-list"
  64. :style="[isPad == true?'grid-template-columns: repeat(5, 1fr)':
  65. isPhone == true?'grid-template-columns: repeat(4, 1fr)':
  66. 'grid-template-columns: repeat(3, 1fr)']"
  67. >
  68. <view
  69. v-for="(item, key) in WMSList"
  70. v-show="$permission(item.permission)"
  71. :key="key"
  72. class="gui-grid"
  73. >
  74. <view class="gui-grid-item" @click="handleTap(item)">
  75. <text
  76. :class="['gui-grid-icon', item.iconClass ?? 'font-icons']"
  77. >{{ item.iconBase }}</text>
  78. <text class="gui-grid-text gui-color-black">{{ item.name }}</text>
  79. </view>
  80. </view>
  81. </view>
  82. </div>
  83. <!-- <div class="grid-box">
  84. <view class="panel">
  85. <text class="panel-title">生产管理</text>
  86. </view>
  87. <view
  88. class="grid-list"
  89. :style="[isPad == true?'grid-template-columns: repeat(5, 1fr)':
  90. isPhone == true?'grid-template-columns: repeat(4, 1fr)':
  91. 'grid-template-columns: repeat(3, 1fr)']"
  92. >
  93. <view
  94. v-for="(item, key) in MESList"
  95. v-show="$permission(item.permission)"
  96. :key="key"
  97. class="gui-grid"
  98. >
  99. <view class="gui-grid-item" @click="handleTap(item)">
  100. <text
  101. :class="['gui-grid-icon', item.iconClass ?? 'font-icons']"
  102. style="background-color: #2cb755;"
  103. >{{ item.iconBase }}</text>
  104. <text class="gui-grid-text gui-color-black">{{ item.name }}</text>
  105. </view>
  106. </view>
  107. </view>
  108. </div> -->
  109. <!-- <div class="grid-box">
  110. <view class="panel">
  111. <text class="panel-title">设备管理</text>
  112. </view>
  113. <view
  114. class="grid-list"
  115. :style="[isPad == true?'grid-template-columns: repeat(5, 1fr)':
  116. isPhone == true?'grid-template-columns: repeat(4, 1fr)':
  117. 'grid-template-columns: repeat(3, 1fr)']"
  118. >
  119. <view v-for="(item, key) in ETMList" :key="key" class="gui-grid">
  120. <view class="gui-grid-item" @click="handleTap(item)">
  121. <text
  122. :class="['gui-grid-icon', item.iconClass ?? 'font-icons']"
  123. style="background-color: #30c6c8;"
  124. >{{ item.iconBase }}</text>
  125. <text class="gui-grid-text gui-color-black">{{ item.name }}</text>
  126. </view>
  127. </view>
  128. </view>
  129. </div> -->
  130. <!-- <div class="grid-box">
  131. <view class="panel">
  132. <text class="panel-title">供应商管理</text>
  133. </view>
  134. <view
  135. class="grid-list"
  136. :style="[isPad == true?'grid-template-columns: repeat(5, 1fr)':
  137. isPhone == true?'grid-template-columns: repeat(4, 1fr)':
  138. 'grid-template-columns: repeat(3, 1fr)']"
  139. >
  140. <view v-for="(item, key) in SRMList" :key="key" class="gui-grid">
  141. <view class="gui-grid-item" @click="handleTap(item)">
  142. <text
  143. :class="['gui-grid-icon', item.iconClass ?? 'font-icons']"
  144. style="background-color: #ff800e;"
  145. >{{ item.iconBase }}</text>
  146. <text class="gui-grid-text gui-color-black">{{ item.name }}</text>
  147. </view>
  148. </view>
  149. </view>
  150. </div> -->
  151. </div>
  152. <uni-popup ref="errorTip" type="dialog">
  153. <uni-popup-dialog
  154. type="error"
  155. cancel-text="关闭"
  156. confirm-text="确认"
  157. title="提示"
  158. :content="errorTipMessage"
  159. @confirm="handleCloseErrorTipsModal"
  160. @close="handleCloseErrorTipsModal"
  161. />
  162. </uni-popup>
  163. </template>
  164. </gui-page>
  165. </view>
  166. </template>
  167. <script>
  168. // import { getCLodop } from "../../unit/CLodopfuncs2.js"
  169. import {
  170. ref,
  171. getCurrentInstance
  172. } from 'vue'
  173. export default {
  174. setup() {
  175. const {
  176. proxy
  177. } = getCurrentInstance()
  178. console.log(proxy)
  179. const errorTip = ref('')
  180. const errorTipMessage = ref('')
  181. const srcs = ref([])
  182. const systemList = ref([
  183. {
  184. iconClass: 'font-icons',
  185. iconBase: '\ue6aa',
  186. name: '打印测试'
  187. },
  188. // {
  189. // iconClass: 'font-icons',
  190. // iconBase: '\ue673',
  191. // name: '扫码'
  192. // },
  193. // {
  194. // iconClass: "font-icons",
  195. // iconBase: "\ue6d4",
  196. // name: "蓝牙测试"
  197. // },
  198. {
  199. iconClass: 'font-icons',
  200. iconBase: '\ue6d8',
  201. name: '蓝牙配置'
  202. }
  203. ])
  204. const SRMList = ref([{
  205. iconClass: 'font-icons',
  206. iconBase: '\ue692',
  207. name: '预收单'
  208. }])
  209. const ETMList = ref([{
  210. iconClass: 'font-icons',
  211. iconBase: '\ue7f2',
  212. name: '模具保养'
  213. }])
  214. const MESList = ref([{
  215. iconClass: 'font-icons',
  216. iconBase: '\ue692',
  217. permission: 'system:home:glue',
  218. name: '点胶机'
  219. }, {
  220. iconClass: 'font-icons',
  221. iconBase: '\ue692',
  222. permission: 'system:home:ipqc',
  223. name: 'IPQC检验'
  224. }, {
  225. iconClass: 'font-icons',
  226. iconBase: '\ue692',
  227. permission: 'system:home:oqc',
  228. name: 'FQC检验'
  229. }, {
  230. iconClass: 'font-icons',
  231. iconBase: '\ue692',
  232. permission: 'system:home:cutting',
  233. name: '分切'
  234. }, {
  235. iconClass: 'font-icons',
  236. iconBase: '\ue692',
  237. permission: '',
  238. name: '工序执行'
  239. }, {
  240. iconClass: 'font-icons',
  241. iconBase: '\ue692',
  242. permission: '',
  243. name: '全检执行'
  244. }])
  245. const WMSList = ref([
  246. // {
  247. // iconClass: "font-icons",
  248. // iconBase: "\ue613",
  249. // name: "基础设置"
  250. // },
  251. // {
  252. // iconClass: "font-icons",
  253. // iconBase: "\ue7da",
  254. // name: "报表中心"
  255. // },
  256. {
  257. iconClass: 'font-icons',
  258. iconBase: '\ue6b7',
  259. permission: '',
  260. name: '扫码出入库'
  261. },
  262. // {
  263. // iconClass: 'font-icons',
  264. // iconBase: '\ue6b7',
  265. // permission: '',
  266. // name: '扫码出库'
  267. // },
  268. // {
  269. // iconClass: 'font-icons',
  270. // iconBase: '\ue6b7',
  271. // permission: '',
  272. // name: '扫码入库'
  273. // },
  274. {
  275. iconClass: 'font-icons',
  276. iconBase: '\ue7d4',
  277. permission: '',
  278. name: '来料登记'
  279. },
  280. {
  281. iconClass: 'font-icons',
  282. iconBase: '\ue660',
  283. permission: '',
  284. name: '物料上架'
  285. },
  286. {
  287. iconClass: 'font-icons',
  288. iconBase: '\ue660',
  289. permission: '',
  290. name: '入库申请'
  291. },
  292. // {
  293. // iconClass: 'font-icons',
  294. // iconBase: '\ue660',
  295. // permission: '',
  296. // name: '分切备料'
  297. // },
  298. // {
  299. // iconClass: 'font-icons',
  300. // iconBase: '\ue660',
  301. // permission: '',
  302. // name: '送货单回签'
  303. // },
  304. {
  305. iconClass: 'font-icons',
  306. iconBase: '\uebb6',
  307. permission: '',
  308. name: '退料申请'
  309. },
  310. {
  311. iconClass: 'font-icons',
  312. iconBase: '\ue7eb',
  313. permission: '',
  314. name: '货位调整'
  315. },
  316. // {
  317. // iconClass: 'font-icons',
  318. // iconBase: '\ue64c',
  319. // permission: '',
  320. // name: '栈板拆合批'
  321. // },
  322. // {
  323. // iconClass: 'font-icons',
  324. // iconBase: '\ue64a',
  325. // permission: '',
  326. // name: '成品拆合箱'
  327. // },
  328. // {
  329. // iconClass: 'font-icons',
  330. // iconBase: '\ue64d',
  331. // permission: '',
  332. // name: '物料拆合批'
  333. // },
  334. {
  335. iconClass: 'font-icons',
  336. iconBase: '\ue7dd',
  337. permission: '',
  338. name: '生产领料'
  339. },
  340. {
  341. iconClass: 'font-icons',
  342. iconBase: '\ue7dd',
  343. permission: '',
  344. name: '委外备料'
  345. },
  346. // {
  347. // iconClass: 'font-icons',
  348. // iconBase: '\uebb6',
  349. // permission: '',
  350. // name: '生产发料'
  351. // },
  352. // {
  353. // iconClass: 'font-icons',
  354. // iconBase: '\ue697',
  355. // permission: '',
  356. // name: '条码拆分'
  357. // },
  358. // {
  359. // iconClass: 'font-icons',
  360. // iconBase: '\ue681',
  361. // permission: '',
  362. // name: '条码合并'
  363. // },
  364. // {
  365. // iconClass: 'font-icons',
  366. // iconBase: '\ue60e',
  367. // permission: '',
  368. // name: '出货标签'
  369. // },
  370. {
  371. iconClass: 'font-icons',
  372. iconBase: '\ue641',
  373. permission: '',
  374. name: '出货列表'
  375. },
  376. {
  377. iconClass: 'font-icons',
  378. iconBase: '\ue60e',
  379. // permission: 'wms:sale-out-order:permission',
  380. permission: '',
  381. name: '销售出货'
  382. },
  383. // {
  384. // iconClass: 'font-icons',
  385. // iconBase: '\ue60e',
  386. // permission: '',
  387. // name: '出入冷库'
  388. // },
  389. // {
  390. // iconClass: 'font-icons',
  391. // iconBase: '\ue60e',
  392. // permission: '',
  393. // name: '半成品流转'
  394. // }
  395. ])
  396. const handleTap = function(row) {
  397. uni.$grace.msg(row.name + '模块正在火速开发中')
  398. // #ifdef APP-PLUS
  399. const mpaasScanModule = uni.requireNativePlugin('Mpaas-Scan-Module')
  400. // #endif
  401. switch (row.name) {
  402. case '扫码':
  403. // #ifdef APP-PLUS
  404. mpaasScanModule.mpaasScan({
  405. // 扫码识别类型,参数可多选,qrCode、barCode,不设置,默认识别所有
  406. 'scanType': ['qrCode', 'barCode'],
  407. // 是否隐藏相册,默认false不隐藏
  408. 'hideAlbum': false
  409. },
  410. (ret) => {
  411. uni.showModal({
  412. title: '弹窗标题',
  413. // 返回值中,resp_code 表示返回结果值,10:用户取消,11:其他错误,1000:成功
  414. // 返回值中,resp_message 表示返回结果信息
  415. // 返回值中,resp_result 表示扫码结果,只有成功才会有返回
  416. content: JSON.stringify(ret),
  417. showCancel: false,
  418. confirmText: '确定'
  419. })
  420. })
  421. // #endif
  422. break
  423. case '打印测试':
  424. uni.navigateTo({
  425. url: "/pages/tabbar/printTest"
  426. })
  427. // // #ifdef APP-PLUS
  428. // const Activity = plus.android.runtimeMainActivity()
  429. // const Intent = plus.android.importClass('android.content.Intent')
  430. // const Uri = plus.android.importClass('android.net.Uri')
  431. // const browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(`${uni.$baseUrl}/jmreport/view/828502348750999552?token=32701364ce02496ba2b8a5f17c06dae4`))
  432. // Activity.startActivity(browserIntent)
  433. // // #endif
  434. // // #ifdef H5
  435. // const dom = document.createElement('a')
  436. // dom.setAttribute('href',
  437. // `http://192.168.1.101:48080/jmreport/view/828502348750999552?hotPressId=1664178203920498689`
  438. // )
  439. // dom.setAttribute('target', '_blank')
  440. // dom.click()
  441. // // #endif
  442. break
  443. case '蓝牙测试':
  444. uni.navigateTo({
  445. url: '/pages/workbranch/system/bluetooth'
  446. })
  447. break
  448. case '蓝牙配置':
  449. uni.navigateTo({
  450. url: '/pages/workbranch/system/bluetoothConfig'
  451. })
  452. break
  453. case '生产领料':
  454. uni.navigateTo({
  455. url: '/pages/workbranch/warehouse/production/prepareMaterials'
  456. })
  457. break
  458. case '委外备料':
  459. uni.navigateTo({
  460. url: '/pages/workbranch/warehouse/outSourceMaterial/outSourceList'
  461. })
  462. break
  463. case '来料登记':
  464. uni.navigateTo({
  465. url: '/pages/workbranch/warehouse/materialRegister/registerType'
  466. })
  467. break
  468. case '物料上架':
  469. uni.navigateTo({
  470. url: '/pages/workbranch/warehouse/feeding/shelfType'
  471. })
  472. break
  473. case '入库申请':
  474. uni.navigateTo({
  475. url: '/pages/workbranch/warehouse/warehousing/warehousingType'
  476. })
  477. break
  478. case '退料申请':
  479. uni.navigateTo({
  480. url: '/pages/workbranch/warehouse/returnMaterial/returnMaterialType'
  481. })
  482. break
  483. case '送货单回签':
  484. uni.navigateTo({
  485. url: '/pages/workbranch/warehouse/deliveryNote/deliveryNoteList'
  486. })
  487. break
  488. case '分切备料':
  489. uni.navigateTo({
  490. url: '/pages/workbranch/production/cutting/cuttingMaterialPreparation'
  491. })
  492. break
  493. case '货位调整':
  494. uni.navigateTo({
  495. url: '/pages/workbranch/warehouse/location/locationPage'
  496. })
  497. break
  498. case '物料拆合批':
  499. uni.navigateTo({
  500. url: '/pages/workbranch/warehouse/materialDisass/materialWorkBranch'
  501. })
  502. break
  503. case '栈板拆合批':
  504. uni.navigateTo({
  505. url: '/pages/workbranch/warehouse/trestle/trestleList'
  506. })
  507. break
  508. case '成品拆合箱':
  509. uni.navigateTo({
  510. url: '/pages/workbranch/warehouse/box/boxList'
  511. })
  512. break
  513. // case '生产发料':
  514. // uni.navigateTo({
  515. // url: '/pages/workbranch/warehouse/productionIssue/productionIssue'
  516. // })
  517. // break
  518. case '条码拆分':
  519. uni.navigateTo({
  520. url: '/pages/workbranch/warehouse/codeSplitOrMerge/codeSplit'
  521. })
  522. break
  523. case '条码合并':
  524. uni.navigateTo({
  525. url: '/pages/workbranch/warehouse/codeSplitOrMerge/codeMerge'
  526. })
  527. break
  528. case '出货标签':
  529. uni.navigateTo({
  530. url: '/pages/workbranch/production/shipment/shipmentPage'
  531. })
  532. break
  533. case '出货列表':
  534. uni.navigateTo({
  535. url: '/pages/workbranch/production/shipment/shipmentPatchworkPage'
  536. })
  537. break
  538. case '销售出货':
  539. uni.navigateTo({
  540. url: '/pages/workbranch/production/shipmentMHT/shipmentPage'
  541. })
  542. break
  543. case '点胶机':
  544. uni.navigateTo({
  545. url: '/pages/workbranch/production/glue/indexPage'
  546. })
  547. break
  548. case 'IPQC检验':
  549. uni.navigateTo({
  550. url: '/pages/workbranch/production/IPQC/ipqcList'
  551. })
  552. break
  553. case 'FQC检验':
  554. uni.navigateTo({
  555. url: '/pages/workbranch/production/FQC/fqcList'
  556. })
  557. break
  558. case '分切':
  559. uni.navigateTo({
  560. url: '/pages/workbranch/production/cutting/cuttingList'
  561. })
  562. break
  563. case '工序执行':
  564. uni.navigateTo({
  565. url: '/pages/workbranch/production/processExecution/processList'
  566. })
  567. break
  568. case '全检执行':
  569. uni.navigateTo({
  570. url: '/pages/workbranch/production/processExecution/processFullInspection'
  571. })
  572. break
  573. case '模具保养':
  574. uni.navigateTo({
  575. url: '/pages/workbranch/ETM/moldPreserve/indexPage'
  576. })
  577. break
  578. case '出入冷库':
  579. uni.navigateTo({
  580. url: '/pages/workbranch/warehouse/coldStorage/indexPage'
  581. })
  582. break
  583. case '半成品流转':
  584. uni.navigateTo({
  585. url: '/pages/workbranch/warehouse/SemiFinishedProducts/indexPage'
  586. })
  587. break
  588. case '扫码出入库':
  589. uni.navigateTo({
  590. url: '/pages/workbranch/warehouse/scanInOut/scanInOutType'
  591. })
  592. break
  593. case '扫码入库':
  594. uni.navigateTo({
  595. url: '/pages/workbranch/warehouse/scanInOut/In/scanInPage'
  596. })
  597. break
  598. case '扫码出库':
  599. uni.navigateTo({
  600. url: '/pages/workbranch/warehouse/scanInOut/Out/scanOutPage'
  601. })
  602. break
  603. }
  604. }
  605. const takePhoto = function() {
  606. uni.chooseImage({
  607. count: 6, // count: 6, //默认9
  608. sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
  609. sourceType: ['album', 'camera'], // 从相册选择
  610. success: function(res) {
  611. srcs.value = res.tempFilePaths
  612. console.log(res, JSON.stringify(res.tempFilePaths))
  613. }
  614. })
  615. }
  616. // 关闭错误信息弹窗
  617. const handleCloseErrorTipsModal = async function() {
  618. errorTip.value.close()
  619. }
  620. return {
  621. WMSList,
  622. systemList,
  623. MESList,
  624. SRMList,
  625. ETMList,
  626. handleTap,
  627. srcs,
  628. takePhoto,
  629. errorTip,
  630. errorTipMessage,
  631. handleCloseErrorTipsModal
  632. }
  633. }
  634. }
  635. </script>
  636. <style lang="scss" scoped>
  637. .gridBody {
  638. margin: 80px 0;
  639. overflow-y: scroll;
  640. }
  641. .grid-box {
  642. width: calc(100vw - 16px);
  643. margin: 14px 8px;
  644. display: flex;
  645. flex-direction: column;
  646. border-radius: 4px;
  647. box-shadow: 0 0 9px 0 rgba(121, 118, 118, 0.34);
  648. .panel {
  649. height: 2.2rem;
  650. width: calc(100vw - 32px);
  651. padding-left: 16px;
  652. border-top-left-radius: 4px;
  653. border-top-right-radius: 4px;
  654. background: linear-gradient(to right, rgb(78, 188, 250), rgb(0, 239, 239));
  655. .panel-title {
  656. width: calc(100vw / 4 - 2px);
  657. height: inherit;
  658. line-height: 2.2rem;
  659. text-align: center;
  660. font-size: 16px;
  661. color: white;
  662. }
  663. }
  664. .grid-list {
  665. width: calc(100vw - 16px);
  666. /* 设置容器布局为grid布局 */
  667. display: grid;
  668. /* 指定每一行的宽度 每个宽度中间用空格隔开 */
  669. grid-template-rows: auto;
  670. /* 指定每一列的宽度 每个宽度中间用空格隔开 */
  671. grid-template-columns: 1fr 1fr 1fr;
  672. border-bottom-left-radius: 10px;
  673. border-bottom-right-radius: 10px;
  674. background-color: white;
  675. .gui-grid {
  676. display: flex;
  677. justify-content: center;
  678. .font-icons {
  679. width: 40px;
  680. height: 40px;
  681. border-radius: 6px;
  682. display: flex;
  683. justify-content: center;
  684. align-items: center;
  685. font-size: 26px;
  686. color: #f4f4f4;
  687. box-shadow: 2px 2px 1px 0 #d5dffd;
  688. background-color: #539cf8;
  689. }
  690. .gui-grid-item {
  691. width: 85px;
  692. height: 85px;
  693. margin-top: 4px;
  694. display: flex;
  695. justify-content: center;
  696. align-items: center;
  697. uni-text:nth-of-type(2) {
  698. padding-top: 4px;
  699. padding-left: 3px;
  700. font-size: 14px;
  701. }
  702. }
  703. }
  704. }
  705. }
  706. .adapt-image {
  707. width: 750rpx;
  708. }
  709. </style>