report.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791
  1. <template>
  2. <view>
  3. <view v-if="!isAuditUser" class="report">
  4. <u-cell :border="false" :customStyle="{'background':'#f5f7fa','font-weight':'bold','padding':'10rpx 10rpx'}"
  5. :title="$t('base.common.condition')"></u-cell>
  6. <view class="condition">
  7. <u-form labelPosition="left" :model="condition" ref="form1" labelWidth='100'>
  8. <!-- <u-form-item label="开始时间" borderBottom>
  9. <uni-datetime-picker type="date" :clear-icon="false" v-model="condition.startDate"
  10. :end="condition.endDate" />
  11. </u-form-item> -->
  12. <u-form-item :label="$t('base.common.date')" borderBottom>
  13. <uni-datetime-picker :end='maxDate' :clear-icon="false" :value="condition.range" type="daterange"
  14. @change="onDatetimePickerConfirm" />
  15. </u-form-item>
  16. <!-- 客商报表筛选 -->
  17. <template>
  18. <u-form-item :label="$t('base.common.tenant')" @click="showPopup('popupTenant')" borderBottom>
  19. <u-input v-model="condition.tenantName" disabled disabledColor="#ffffff"
  20. :placeholder="$t('report.selectTenant')" border="none"></u-input>
  21. <u-icon slot="right" name="arrow-right"></u-icon>
  22. </u-form-item>
  23. <u-form-item :label="$t('order.vehicle')" borderBottom prop="vehicle"
  24. @click="showPopup('popupVehicle')" v-if="userType == '4'">
  25. <u-input readonly v-model="condition.vehicle" border="none"
  26. :placeholder="$t('base.common.placeholderS')+$t('order.vehicle')" />
  27. <u-icon slot="right" name="arrow-right"></u-icon>
  28. </u-form-item>
  29. <u-form-item :label="$t('order.vehicleType')" borderBottom v-if="userType == '3'">
  30. <!-- <u-radio-group v-model="condition.vehicleType" @change="onVehicleTypeChange" placement="row"
  31. class="p-input">
  32. <u-radio :customStyle="{marginRight: '10px'}" v-for="item in vehicleTypeOption"
  33. :key="item.value" :label="item.text" :name="item.value">
  34. </u-radio>
  35. </u-radio-group> -->
  36. <view class="uni-list">
  37. <radio-group v-model="condition.vehicleType" @change="onVehicleTypeChange" placement="row">
  38. <label class="uni-list-cell uni-list-cell-pd" v-for="item in vehicleTypeOption" :key="item.value" >
  39. <view style="flex-direction:row;align-items: center;">
  40. <radio style="transform:scale(0.8)" :value="item.value" :checked="item.value === condition.vehicleType"/>
  41. <span>{{item.text}}</span>
  42. </view>
  43. </label>
  44. </radio-group>
  45. </view>
  46. </u-form-item>
  47. <u-form-item :label="$t('order.companyName')" borderBottom prop="companyId"
  48. @click="showPopup('popupCompanyId')" v-if="userType == '3'">
  49. <!-- <u-input readonly v-model="condition.companyName" border="none"
  50. :placeholder="$t('base.common.placeholderS')+$t('order.companyName')" />
  51. <u-icon slot="right" name="arrow-right"></u-icon> -->
  52. <span>{{condition.companyName}}</span>
  53. </u-form-item>
  54. <u-form-item :label="$t('order.materialName')" borderBottom prop="materialId" @click="showPopup('popupProduct')"
  55. v-if="userType == '3'">
  56. <!-- <u-input v-model="condition.materialName" border="none"
  57. :placeholder="$t('base.common.placeholderS')+$t('order.materialName')" />
  58. <u-icon slot="right" name="arrow-right"></u-icon> -->
  59. <span>{{condition.materialName}}</span>
  60. </u-form-item>
  61. </template>
  62. </u-form>
  63. </view>
  64. <u-cell :border="false" :customStyle="{'background':'#f5f7fa','font-weight':'bold','padding':'10rpx 10rpx'}"
  65. :title="$t('report.reportType')"></u-cell>
  66. <view class="condition report-list">
  67. <view class="item" v-for="(report,reportIndex) in currentReport.reportList" :key="reportIndex"
  68. @click="toReportInfo(report)">
  69. <img :src="report.icon" alt="" class="item-img">
  70. <rich-text style="text-align:center;" :nodes="language=='zh-Hans'?report.name:report.languageName"></rich-text>
  71. </view>
  72. </view>
  73. <!-- 选择企业 -->
  74. <PopupSelect ref="popupTenant" :option="tenantOption" :hasSearch='false' @onConfirm="onTenantConfirm" />
  75. <!-- 选择供应商/客户 -->
  76. <PopupSelect ref="popupCompanyId" :option="companyOption" :hasSearch='false' @onConfirm="onCompanyConfirm" />
  77. <!-- 订单类型 -->
  78. <PopupSelect ref="popupVehicleType" :option="vehicleTypeOption" :hasSearch='false'
  79. @onConfirm="onVehicleTypeConfirm" />
  80. <!-- 选择物料/产品 -->
  81. <PopupSelect ref="popupProduct" :option="materialOption" :hasSearch='false' @onConfirm="onMaterialConfirm" />
  82. <!-- 车牌号 -->
  83. <PopupSelect ref="popupVehicle" :option="vehicleOption" :hasSearch='false' @onConfirm="onVehicleConfirm" />
  84. </view>
  85. <view v-else class="message-wrap" style="padding:32rpx">
  86. <span class="label">报表信息</span>
  87. <view class="report-list">
  88. <view class="item" @click="toAuditReportInfo('saleSummary')">
  89. <img src="/static/czzn-img/info/info-msg.png" alt="" class="item-img">
  90. <text class="item-text">销售汇总表</text>
  91. </view>
  92. <view class="item" @click="toAuditReportInfo('saleDetail')">
  93. <img src="/static/czzn-img/info/info-msg.png" alt="" class="item-img">
  94. <text class="item-text">销售明细表</text>
  95. </view>
  96. <view class="item" @click="toAuditReportInfo('purchaseSummary')">
  97. <img src="/static/czzn-img/info/info-msg.png" alt="" class="item-img">
  98. <text class="item-text">采购汇总表</text>
  99. </view>
  100. <view class="item" @click="toAuditReportInfo('purchaseDetail')">
  101. <img src="/static/czzn-img/info/info-msg.png" alt="" class="item-img">
  102. <text class="item-text">采购明细表</text>
  103. </view>
  104. </view>
  105. </view>
  106. <Bars></Bars>
  107. </view>
  108. </template>
  109. <script>
  110. import PopupSelect from '../../components/popup-select/index'
  111. import dayjs from 'dayjs'
  112. import Bars from '../../components/tabBar/tabBar.vue';
  113. import {
  114. saveOrder,
  115. getOption,
  116. getMaterialsByCompany
  117. } from '../../api/order'
  118. import {
  119. getTenantCacheList
  120. } from '../../utils/util.js'
  121. import {
  122. getVehicleListByCondition,
  123. getDriverList
  124. } from '../../api/driver'
  125. import {
  126. getReportInfo
  127. } from "../../api/report"
  128. import value from '../../uni_modules/uview-ui/components/u-text/value'
  129. export default {
  130. components: {
  131. PopupSelect,
  132. Bars
  133. },
  134. data() {
  135. return {
  136. isAuditUser:false,
  137. showSex: false,
  138. userType: "0",
  139. maxDate: dayjs().format('YYYY-MM-DD'),
  140. condition: {
  141. range: [dayjs().add(-30, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')],
  142. tenantId: "",
  143. tenantName: "",
  144. companyId: "", //客商
  145. companyName: "", //客商
  146. materialId: "", //物料
  147. materialName: "", //物料
  148. vehicleType: '', //订单类型
  149. vehicleTypeName: '', //订单类型
  150. vehicle: '', //车牌号
  151. reportType: '1',
  152. },
  153. vehicleTypeOption: [{
  154. text: this.$t('base.common.noData'),
  155. value: null
  156. }, ],
  157. typeOption: [{
  158. text: '临时订单',
  159. value: '1'
  160. },
  161. {
  162. text: '固定订单',
  163. value: '2'
  164. },
  165. ],
  166. tenantOption: [{
  167. text: this.$t('base.common.noData'),
  168. value: null
  169. }], //企业选项
  170. companyOption: [{
  171. text: this.$t('base.common.noData'),
  172. value: null
  173. }], //客户选项
  174. materialOption: [{
  175. text: this.$t('base.common.noData'),
  176. value: null
  177. }], //物料选项
  178. blockOption: [{
  179. text: this.$t('base.common.noData'),
  180. value: null
  181. }], //区域选项
  182. vehicleOption: [{
  183. text: this.$t('base.common.noData'),
  184. value: null
  185. }], //车牌选项
  186. //业务对应的客户信息
  187. vehicleTypeCompanyList: [],
  188. //客户对应的物料信息
  189. companyMaterialList: [],
  190. appAllMaterial: [],
  191. appReport: [],
  192. currentReport: [],
  193. language:'zh-Hans'
  194. };
  195. },
  196. onLoad(options) {
  197. this.language = uni.getStorageSync('CURRENT_LANG')
  198. this.isAuditUser = uni.getStorageSync('isAuditUser')
  199. this.userType = uni.getStorageSync('userType')
  200. if(!this.isAuditUser){
  201. this.bindTenant()
  202. }
  203. uni.hideTabBar()
  204. },
  205. methods: {
  206. bindTenant() {
  207. console.log("aaaaaaaaaaa");
  208. this.tenantOption = getTenantCacheList();
  209. if (this.tenantOption.length > 0) {
  210. this.condition.tenantId = this.tenantOption[0].value
  211. this.condition.tenantName = this.tenantOption[0].text
  212. }
  213. console.log("当前用户类型为,", this.userType);
  214. if (this.userType == "3") {
  215. this.bindOption(); //客商
  216. } else if (this.userType == "4") {
  217. this.bindDriverReport();
  218. this.bindVehicle(); //司机
  219. }
  220. },
  221. toAuditReportInfo(item){
  222. let obj = ''
  223. switch(item){
  224. case "saleSummary":
  225. obj={
  226. obj:"viewlet=zgnj/销售汇总表_mobile.frm"
  227. }
  228. break;
  229. case "saleDetail":
  230. obj={
  231. obj:"viewlet=zgnj/本月品种日销量明细表_mobile.cpt"
  232. }
  233. break;
  234. case "purchaseDetail":
  235. obj={
  236. obj:"viewlet=zgnj/本月品种日采购明细表_mobile.cpt"
  237. }
  238. break;
  239. case "purchaseSummary":
  240. obj={
  241. obj:"viewlet=zgnj/采购汇总表.frm"
  242. }
  243. break;
  244. }
  245. uni.navigateTo({
  246. url: `/pages/webview/webview?url=https://saas.createtobest.com/webroot/decision/view/report&obj=${encodeURIComponent(JSON.stringify(obj))}`// page.json定义的路径 传url到webview界面去接收-实现跳转
  247. })
  248. },
  249. bindVehicle() {
  250. let data={}
  251. getVehicleListByCondition(data).then(res => {
  252. console.log("查询车号数据返回、", res);
  253. if (res.statusCode == 200) {
  254. if (res.data.data) {
  255. this.vehicleOption = [{
  256. text: this.$t('order.notSelected'),
  257. value: null
  258. }]
  259. res.data.data.forEach(item => {
  260. this.vehicleOption.push({
  261. text: item.vehicle,
  262. value: item.id
  263. })
  264. })
  265. }
  266. }
  267. })
  268. },
  269. bindDriverReport() {
  270. let data = {
  271. tenantId: this.condition.tenantId || '',
  272. };
  273. var that = this;
  274. getReportInfo(data).then(res => {
  275. console.log("获取到的报表信息,", res.data.data);
  276. if (res.statusCode == 200) {
  277. that.appReport = res.data.data.appReport
  278. this.currentReport = that.appReport[0];
  279. console.log("最终报表信息、", this.currentReport);
  280. }
  281. })
  282. },
  283. bindOption() {
  284. this.clear(true);
  285. console.log("订单租户信息、", this.condition.tenantId);
  286. if (!this.condition.tenantId) {
  287. console.log("订单业务租户信息");
  288. return;
  289. }
  290. var that = this;
  291. console.log("当前租户ID、", that.condition.tenantId);
  292. if (that.condition.tenantId) {
  293. let data = JSON.parse(JSON.stringify(that.condition))
  294. getOption(data).then(res => {
  295. console.log("查询基础数据返回、", res);
  296. if (res.statusCode === 200) {
  297. console.log("用户业务类型、", res.data.data.appVehicleType)
  298. console.log("用户客户信息、", res.data.data.appCompany)
  299. console.log("用户品种信息、", res.data.data.appMaterial)
  300. console.log("企业报表信息、", res.data.data.appReport)
  301. if(that.language == 'zh-Hans'){
  302. that.vehicleTypeOption = res.data.data.appVehicleType;
  303. }else{
  304. that.vehicleTypeOption = res.data.data.appVehicleType.map(item=>{
  305. return{
  306. text:item.language,
  307. value:item.value
  308. }
  309. });
  310. }
  311. that.appReport = res.data.data.appReport
  312. if (that.vehicleTypeOption && that.vehicleTypeOption.length > 0) {
  313. console.log("bbbbb");
  314. that.condition.vehicleType = that.vehicleTypeOption[0].value
  315. that.condition.vehicleTypeName = that.vehicleTypeOption[0].text
  316. that.vehicleTypeCompanyList = res.data.data.appCompany
  317. that.appAllMaterial = res.data.data.appAllMaterial;
  318. that.bindCompany();
  319. that.companyMaterialList = res.data.data.appMaterial;
  320. that.bindMaterial();
  321. that.bindReport();
  322. }
  323. }
  324. })
  325. }
  326. },
  327. //选择企业和订单类型后
  328. onVehicleTypeChange(value) {
  329. console.log("this.condition.vehicleType:",this.condition.vehicleType);
  330. this.condition.vehicleType = value.detail.value
  331. console.log("this.value:",value);
  332. this.clear(false);
  333. if (this.condition.tenantId && this.condition.vehicleType) {
  334. console.log('开始根据业务类型选择数据信息,租户和业务为、', this.condition.tenantId, this.condition.vehicleType);
  335. this.bindCompany();
  336. this.bindMaterial();
  337. this.bindReport();
  338. }
  339. },
  340. bindCompany() {
  341. var vehicleType = this.condition.vehicleType;
  342. if (vehicleType && this.vehicleTypeCompanyList) {
  343. this.companyOption = [{
  344. text: this.$t('order.notSelected'),
  345. value: null
  346. }] //物料选项
  347. var companyInfos = this.vehicleTypeCompanyList.filter(function(company) {
  348. return company.vehicleType == vehicleType;
  349. });
  350. if (companyInfos && companyInfos.length > 0) {
  351. companyInfos[0].companyList.forEach(item => {
  352. this.companyOption.push({
  353. text: item.companyName,
  354. value: item.companyId
  355. })
  356. })
  357. }
  358. console.log("客户信息、", this.companyOption);
  359. }
  360. },
  361. bindMaterial() {
  362. var companyId = this.condition.companyId;
  363. this.materialOption = []
  364. this.condition.materialId = ''
  365. this.condition.materialName = ''
  366. if (companyId) {
  367. getMaterialsByCompany(this.condition).then(res => {
  368. if (res.data.code == 0) {
  369. this.paymentOption = res.data.hardInfo
  370. // if (res.data.companyList) {
  371. // res.data.companyList.forEach(item => {
  372. // this.transporterOption.push({
  373. // text: item.name,
  374. // value: item.id
  375. // })
  376. // })
  377. // }
  378. // this.materialOption = [{
  379. // text: this.$t('order.notSelected'),
  380. // value: null
  381. // }] //物料选项
  382. var materialInfos = res.data.data;
  383. console.log("1111213213", materialInfos);
  384. if (materialInfos && materialInfos.length > 0) {
  385. materialInfos.forEach(item => {
  386. this.materialOption.push({
  387. text: item.name,
  388. value: item.id,
  389. type: item.materTypeName ? item.materTypeName : '暂无分类',
  390. kind: item.kind,
  391. measureUnit: item.measureUnit
  392. })
  393. })
  394. if (this.materialOption[1] && this.materialOption.length == 2) {
  395. this.condition.materialId = this.materialOption[1].value
  396. this.condition.materialName = this.materialOption[1].text
  397. this.condition.kind = this.materialOption[1].kind
  398. this.condition.measureUnit = this.materialOption[1].measureUnit
  399. }
  400. }
  401. console.log("品种信息、", this.materialOption);
  402. }
  403. })
  404. }
  405. console.log("品种信息、", this.materialOption);
  406. },
  407. bindReport() {
  408. var vehicleType = this.condition.vehicleType;
  409. this.currentReport = [];
  410. if (vehicleType && this.appReport) {
  411. var reports = this.appReport.find(function(report) {
  412. return report.vehicleType == vehicleType;
  413. });
  414. this.currentReport = reports;
  415. }
  416. console.log("报表信息、", this.currentReport);
  417. },
  418. clear(isVehicleType) {
  419. if (isVehicleType == true) {
  420. this.vehicleTypeOption = [{
  421. text: this.$t('base.common.noData'),
  422. value: null
  423. }]
  424. this.condition.vehicleType = ''
  425. this.condition.vehicleTypeText = ''
  426. }
  427. this.companyOption = [{
  428. text: this.$t('base.common.noData'),
  429. value: null
  430. }] //客户选项
  431. this.materialOption = [{
  432. text: this.$t('base.common.noData'),
  433. value: null
  434. }] //物料选项
  435. this.condition.companyId = ''
  436. this.condition.materialId = ''
  437. this.condition.companyName = ''
  438. this.condition.materialName = ''
  439. this.condition.orderNumber = '0';
  440. this.condition.driver = '';
  441. this.condition.vehicle = '';
  442. },
  443. toReportInfo(item) {
  444. if (!this.condition.tenantId) {
  445. uni.showToast({
  446. title: this.$t('report.selectTenant'),
  447. icon: 'none',
  448. duration: 2000
  449. })
  450. return;
  451. }
  452. if (this.userType == 4) {
  453. if (!this.condition.vehicle) {
  454. uni.showToast({
  455. title: this.$t('report.selectVehicle'),
  456. icon: 'none',
  457. duration: 2000
  458. })
  459. return;
  460. }
  461. }
  462. let data = {
  463. reportType: item.reportType,
  464. orderStatus: this.condition.orderStatus,
  465. startDate: this.condition.range[0] || '',
  466. endDate: this.condition.range[1] || '',
  467. vehicleType: this.condition.vehicleType,
  468. orderType: this.condition.orderType || '',
  469. tenantId: this.condition.tenantId || '',
  470. companyId: this.condition.companyId || '',
  471. materialId: this.condition.materialId || '',
  472. vehicle: this.condition.vehicle || '',
  473. };
  474. console.log("获取到的报表条件信息、", data);
  475. uni.navigateTo({
  476. url: `/subpages/report/reportInfo?data=${JSON.stringify(data)}`
  477. })
  478. },
  479. //选择企业后
  480. onTenantConfirm(value) {
  481. this.condition.tenantId = ''
  482. this.condition.tenantText = ''
  483. if (value.value) {
  484. this.condition.tenantId = value.value
  485. this.condition.tenantName = value.text
  486. }
  487. if (this.userType == "3") {
  488. this.bindOption(); //客商
  489. } else if (this.userType == "4") {
  490. this.bindDriverReport();
  491. this.bindVehicle(); //司机
  492. }
  493. },
  494. //选择客户
  495. onCompanyConfirm(value) {
  496. this.condition.companyId = ''
  497. this.condition.companyName = ''
  498. if (value.value) {
  499. this.condition.companyId = value.value
  500. this.condition.companyName = value.text
  501. }
  502. this.bindMaterial();
  503. },
  504. //确定选择日期
  505. onDatetimePickerConfirm(item) {
  506. this.condition.range = item
  507. },
  508. //选择物料
  509. onMaterialConfirm(value) {
  510. this.condition.materialId = ''
  511. this.condition.materialName = ''
  512. if (value.value) {
  513. this.condition.materialId = value.value
  514. this.condition.materialName = value.text
  515. }
  516. },
  517. //选择车号
  518. onVehicleConfirm(value) {
  519. this.condition.vehicle = ''
  520. if (value.value) {
  521. this.condition.vehicle = value.text
  522. }
  523. },
  524. //显示选择
  525. showPopup(refs) {
  526. console.log("lllllllll",this.condition)
  527. this.$refs[refs].showPicker = true
  528. },
  529. formatOption(data) {
  530. let arr = []
  531. data.forEach(item => {
  532. arr.push({
  533. text: item.name || item.label,
  534. value: item.value || item.id
  535. })
  536. })
  537. if (arr.length) {
  538. arr.unshift({
  539. text: this.$t('order.notSelected'),
  540. value: null
  541. })
  542. } else {
  543. arr.unshift({
  544. text: this.$t('base.common.noData'),
  545. value: null
  546. })
  547. }
  548. return arr
  549. },
  550. },
  551. };
  552. </script>
  553. <style lang="scss" scoped>
  554. /* #ifndef APP-NVUE */
  555. view {
  556. box-sizing: border-box;
  557. }
  558. page {
  559. background-color: #f5f7fa;
  560. }
  561. /* #endif */
  562. .report {
  563. // padding: 0 32rpx;
  564. min-height: 100vh;
  565. background-color: #f5f7fa;
  566. .condition {
  567. padding: 0 40rpx;
  568. background-color: #fff;
  569. }
  570. .grid-text {
  571. font-size: 28rpx;
  572. color: #999;
  573. line-height: 80rpx;
  574. }
  575. .report-list {
  576. display: flex;
  577. flex-wrap: wrap;
  578. background: #f5f7fa;
  579. padding: 0 16rpx 16rpx;
  580. .item {
  581. display: flex;
  582. flex-direction: column;
  583. align-items: center;
  584. background: #fff;
  585. width: calc(50% - 40rpx);
  586. margin: 0 20rpx 32rpx;
  587. padding: 32rpx;
  588. .item-img {
  589. width: 76rpx;
  590. height: 68rpx;
  591. }
  592. .item-text {
  593. font-size: 24rpx;
  594. line-height: 2;
  595. color: #222;
  596. }
  597. }
  598. }
  599. }
  600. /deep/ .uni-date-x {
  601. padding: 0;
  602. }
  603. /* #ifndef APP-NVUE */
  604. view {
  605. display: flex;
  606. box-sizing: border-box;
  607. flex-direction: column;
  608. }
  609. .report-list {
  610. display: flex;
  611. flex-wrap: wrap;
  612. flex-direction: row;
  613. padding: 0 16rpx 16rpx;
  614. .item {
  615. display: flex;
  616. align-items: center;
  617. background: #fff;
  618. width: calc(50% - 40rpx);
  619. margin: 16rpx 20rpx;
  620. padding: 32rpx;
  621. .item-img {
  622. width: 76rpx;
  623. height: 68rpx;
  624. }
  625. .item-text {
  626. font-size: 24rpx;
  627. line-height: 2;
  628. color: #222;
  629. }
  630. }
  631. }
  632. page {
  633. background-color: #f5f7fa;
  634. }
  635. /* #endif*/
  636. .approval {
  637. /* #ifndef APP-NVUE */
  638. display: flex;
  639. width: 750rpx;
  640. min-height: 100%;
  641. /* #endif */
  642. flex-direction: column;
  643. flex: 1;
  644. background-color: #f5f7fa;
  645. .top-banner{
  646. padding: 32rpx 32rpx 0;
  647. }
  648. .grid{
  649. padding: 36rpx 48rpx;
  650. margin: 40rpx 32rpx 0;
  651. background-color: #fff;
  652. border-radius: 10rpx;
  653. color: #000;
  654. .grid-img{
  655. width: 64rpx;
  656. height: 64rpx;
  657. }
  658. .grid-text{
  659. font-size: 24rpx;
  660. margin-top: 12rpx;
  661. }
  662. }
  663. .list-wrap{
  664. @extend .grid;
  665. padding: 0;
  666. .cell-wrap{
  667. padding-left: 40rpx;
  668. display: flex;
  669. flex-direction: row;
  670. justify-content: left;
  671. flex-wrap: wrap;
  672. .cell-item{
  673. text-align: center;
  674. width: 100rpx;
  675. margin-right: 61rpx;
  676. font-size: 20rpx;
  677. margin-bottom: 40rpx;
  678. .cell-icon{
  679. width: 100rpx;
  680. height: 100rpx;
  681. background-color: #E1EBFF;
  682. border-radius: 10rpx;
  683. display: flex;
  684. justify-content: space-around;
  685. align-items: center;
  686. margin-bottom: 10rpx;
  687. }
  688. }
  689. }
  690. .grid-text{
  691. font-size: 24rpx;
  692. margin-top: 12rpx;
  693. color: #999;
  694. }
  695. }
  696. .message-wrap{
  697. margin: 40rpx 32rpx;
  698. background-color: #fff;
  699. padding: 40rpx;
  700. border-radius: 10rpx;
  701. .message-title{
  702. display: flex;
  703. flex-direction: row;
  704. justify-content: space-between;
  705. line-height: 32rpx;
  706. .label{
  707. color: #222;
  708. font-size: 28rpx;
  709. font-weight: bold;
  710. }
  711. .message{
  712. display: flex;
  713. flex-direction: row;
  714. color: #999;
  715. font-size: 24rpx;
  716. }
  717. }
  718. .message-item{
  719. margin-top: 32rpx;
  720. background-color: #f9f9f9;
  721. border-radius: 10rpx;
  722. padding: 28rpx 32rpx;
  723. .title{
  724. justify-content: space-between;
  725. display: flex;
  726. flex-direction: row;
  727. // width: 176rpx;
  728. color: #999;
  729. font-size: 24rpx;
  730. align-items: center;
  731. justify-content: space-between;
  732. margin-bottom: 32rpx;
  733. }
  734. .info{
  735. flex-direction: row;
  736. .cell-icon{
  737. width: 50rpx;
  738. height: 50rpx;
  739. background-color: #E1EBFF;
  740. border-radius: 10rpx;
  741. display: flex;
  742. justify-content: space-around;
  743. align-items: center;
  744. margin-right: 32rpx;
  745. }
  746. .info-text{
  747. flex: 1;
  748. overflow: hidden;
  749. text-overflow: ellipsis;
  750. white-space: nowrap;
  751. font-size: 22rpx;
  752. color: #666;
  753. }
  754. }
  755. }
  756. }
  757. }
  758. </style>