App.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766
  1. <script>//com.vi1688cityexpress.user
  2. // const toast = uni.requireNativePlugin('Ba-Toast');//android
  3. // const callerID = uni.requireNativePlugin('Ba-CallerID');//android
  4. // const KJPip = uni.requireNativePlugin('KJ-Pip');//ios
  5. import baseUrlconst from "@/config/urlConfig.js"
  6. import api from "@/pages/api/api.js"
  7. export default {
  8. data() {
  9. return {
  10. isAndroid:false,
  11. androidflType:0,
  12. isInback:false,
  13. isfirst:true,
  14. audioObj:null,
  15. }
  16. },
  17. globalData:{
  18. _i18n:{},
  19. $t:{},
  20. sj:{},
  21. iosfl:{},
  22. token:'',
  23. imViewOpen:false,
  24. EXViewOpen:false,
  25. goEasy:null,
  26. goEasycnt:false,
  27. initgoEasy:{},
  28. getUrl:{}
  29. },
  30. onLaunch: function() {
  31. console.log('App Launch:',uni.getStorageSync("token"))
  32. this.globalData._i18n=this.$i18n;
  33. this.globalData.$t=str=>this.$t(str);
  34. this.globalData.sj=str=>this.getTimestr();
  35. this.globalData.getUrl=index=>this.getBaseUrl(index);
  36. this.globalData.iosfl=index=>this.showpiaof(index);
  37. this.globalData.token = uni.getStorageSync("token");
  38. this.globalData.imViewOpen=false;
  39. this.globalData.EXViewOpen=false;
  40. this.globalData.goEasy = this.goEasy;
  41. this.globalData.initgoEasy=str=>this.connectGoEasy();
  42. let systemInfo = uni.getSystemInfoSync();
  43. this.isAndroid = systemInfo.platform.toLowerCase() === 'android';
  44. var language = uni.getStorageSync('language');
  45. console.log(language)
  46. if(''==language||null==language||undefined==language){
  47. uni.setStorageSync('language',"zh-Hant");
  48. uni.setLocale('zh-Hant');
  49. if(!this.isAndroid){
  50. this.$i18n.locale = 'zh-Hant';
  51. }
  52. this.uploadLanguagesSet('zh-Hant');
  53. }
  54. else{
  55. uni.setLocale(language);
  56. if(!this.isAndroid){
  57. this.$i18n.locale = language;
  58. }
  59. //this.uploadLanguagesSet(language);
  60. }
  61. this.connectGoEasy();
  62. uni.setStorageSync('userAddrLocation',"");
  63. uni.onPushMessage((res) => {
  64. console.log("收到推送消息:",res) //监听推送消息
  65. var payload=res.data.payload;
  66. if(payload.indexOf("rcuser")!=-1){
  67. this.updataxiaoxi(payload);
  68. }
  69. if(res.type=='click'){
  70. var content=res.data.title;
  71. plus.runtime.setBadgeNumber(0);
  72. // if(content.indexOf("Call")!=-1){
  73. // if(this.globalData.imViewOpen){
  74. // return;
  75. // }
  76. // uni.setStorageSync('impayload',res.data.payload);
  77. // this.imcallrecive(res.data.payload);
  78. // return
  79. // }
  80. // if(content.indexOf("message")!=-1){
  81. // if(this.globalData.EXViewOpen){
  82. // return;
  83. // }
  84. // uni.setStorageSync('impayload',res.data.payload);
  85. // this.immessagerecive(res.data.payload);
  86. // return
  87. // }
  88. setTimeout(function() {
  89. // 这里写要延时执行的代码
  90. uni.switchTab({
  91. url:'/pages/OrderList/OrderList'
  92. })
  93. }, 1500);
  94. return;
  95. }
  96. if(res.type=='receive'){
  97. plus.runtime.setBadgeNumber(0);
  98. var content=res.data.title;
  99. // if(content.indexOf("Call")!=-1){
  100. // if(this.globalData.imViewOpen){
  101. // return;
  102. // }
  103. // uni.setStorageSync('impayload',res.data.payload);
  104. // this.imcallrecive(res.data.payload);
  105. // return
  106. // }
  107. // if(content.indexOf("message")!=-1){
  108. // if(this.globalData.EXViewOpen){
  109. // return;
  110. // }
  111. // uni.setStorageSync('impayload',res.data.payload);
  112. // this.immessagerecive(res.data.payload);
  113. // return
  114. // }
  115. content=res.data.content;
  116. if(content.indexOf("骑手定位")!=-1){
  117. plus.runtime.setBadgeNumber(0);
  118. return;
  119. }
  120. uni.createPushMessage({
  121. content:res.data.content,
  122. success: (res) => {
  123. console.log(res);
  124. },
  125. fail(er) {
  126. }
  127. });
  128. }
  129. });
  130. //-----------------------------------
  131. var that = this;
  132. //android---------------------------------------------
  133. that.audioObj=uni.createInnerAudioContext();
  134. that.audioObj.src='static/y800.mp3';
  135. var globalEvent = uni.requireNativePlugin('globalEvent');
  136. globalEvent.addEventListener('baCallerIdEvent', function(e) {
  137. console.log('baCallerIdEvent:' + JSON.stringify(e));
  138. console.log(e);
  139. if(e.tag=='call'&&e.action=='onClick'){
  140. if(that.isInback){
  141. plus.runtime.launchApplication({pname:'com.vi1688cityexpress.user'});
  142. }
  143. if(that.androidflType==1){
  144. uni.navigateTo({
  145. url:'/pages/imcall/audioCall?iscaller=0'
  146. })
  147. }
  148. else if(that.androidflType==2){
  149. uni.navigateTo({
  150. url:'/pages/imcall/GoeasyExchange?iscaller=0'
  151. })
  152. }
  153. that.audioObj.pause();
  154. that.hideFW();
  155. }
  156. if(e.tag=='uncall'&&e.action=='onClick'){
  157. that.audioObj.pause();
  158. that.hideFW();
  159. }
  160. });
  161. //ios-------------------------------------------------------------
  162. globalEvent.addEventListener('onPip', function(res) {
  163. console.log("onPip:" + JSON.stringify(res));
  164. if (res.method == "willStartPip") {
  165. console.log("即将开启画中画");
  166. } else if (res.method == "didStartPip") {
  167. console.log("已经开启画中画");
  168. } else if (res.method == "failedStartPip") {
  169. console.log("开启画中画失败");
  170. } else if (res.method == "willStopPip") {
  171. console.log("即将关闭画中画");
  172. //that.imdef();
  173. } else if (res.method == "didStopPip") {
  174. console.log("已经关闭画中画");
  175. } else if (res.method == "restorePip") {
  176. console.log("恢复");
  177. }
  178. });
  179. globalEvent.addEventListener('onWebview', function(res) {
  180. console.log("onWebview:" + JSON.stringify(res));
  181. if (res.method == "finish") {
  182. console.log("页面加载完成");
  183. } else if (res.method == "fail") {
  184. console.log("加载失败");
  185. }
  186. });
  187. if(!this.isAndroid){
  188. this.onH5SendDataCallBack();
  189. }
  190. },
  191. onShow: function() {
  192. console.log('App Show')
  193. if(!this.isAndroid){
  194. //this.closePip();
  195. }
  196. this.isInback=false;
  197. this.initflaotView();
  198. },
  199. onHide: function() {
  200. console.log('App Hide')
  201. this.isInback=true;
  202. },
  203. methods:{
  204. getTimestr(){
  205. var time=new Date();
  206. var n,y,r,h,m,s;
  207. n=time.getFullYear();
  208. y=time.getMonth()+1;
  209. r=time.getDate();
  210. h=time.getHours();
  211. m=time.getMinutes();
  212. s=time.getSeconds();
  213. var timsStr = n+'-'+y+'-'+r+' '+h+':'+m+':'+s;
  214. return timsStr;
  215. },
  216. getBaseUrl(index){
  217. if(index==1){
  218. return this.$baseUrl.getimageBaseUrl();
  219. }
  220. if(index==2){
  221. return this.$baseUrl.getUploadUrl();
  222. }
  223. if(index==3){
  224. return this.$baseUrl.getApibaseUrl();
  225. }
  226. if(index==4){
  227. return this.$baseUrl.getwebBaseUrl();
  228. }
  229. },
  230. async uploadLanguagesSet(lang){
  231. var userId = uni.getStorageSync('userId');
  232. if(lang=='yuenan'){
  233. lang='vi';
  234. }
  235. if(lang=='zh-Hans'){
  236. lang='zh-CN';
  237. }
  238. if(lang=='zh-Hant'){
  239. lang='zh-TW';
  240. }
  241. console.log("changeLanguages");
  242. api('changeLanguages',{
  243. lang:lang
  244. },res=>{
  245. console.log('changeLanguages',res)
  246. },failc=>{
  247. //console.log('getadvertis----',failc)
  248. })
  249. },
  250. updataxiaoxi(str){
  251. var xiaoxiList = uni.getStorageSync('dachexiaoxi');
  252. if(''==xiaoxiList||null==xiaoxiList||undefined==xiaoxiList){
  253. xiaoxiList=[];
  254. }
  255. xiaoxiList.push(str);
  256. uni.setStorageSync('dachexiaoxi',xiaoxiList);
  257. },
  258. //imcall&&immessage------------------------------------------------
  259. initflaotView(){
  260. if(this.isAndroid){
  261. if(this.isfirst){
  262. //this.isPermissionFW();
  263. this.isfirst=false
  264. }
  265. }
  266. else{//ios
  267. //this.initPip("landscape");
  268. }
  269. },
  270. imcallrecive(str){
  271. if(str.indexOf("\\\"")!=-1){
  272. str=str.replace(/\\\"/g, '\"');
  273. str = str.replace(/\"{/g, '{');
  274. str = str.replace(/}\"/g, '}');
  275. }
  276. var obj = JSON.parse(str)
  277. console.log('imcallrecive',obj)
  278. if(this.isAndroid){
  279. if(this.androidflType!=0){
  280. return;
  281. }
  282. var uobj={
  283. name:obj.nickName,
  284. content:this.$t('audioCall.cteyhcall'),
  285. call:this.$t('audioCall.jietingyy'),
  286. uncall:this.$t('audioCall.jujuejieting')
  287. }
  288. this.androidflType=1;
  289. this.showFW(uobj,false);
  290. this.audioObj.play();
  291. }
  292. else{//ios
  293. this.imCall();
  294. }
  295. },
  296. immessagerecive(str){
  297. if(str.indexOf("\\\"")!=-1){
  298. str=str.replace(/\\\"/g, '\"');
  299. str = str.replace(/\"{/g, '{');
  300. str = str.replace(/}\"/g, '}');
  301. }
  302. var obj = JSON.parse(str);
  303. if(this.isAndroid){
  304. if(this.androidflType!=0){
  305. return;
  306. }
  307. var uobj={
  308. name:obj.nickName,
  309. content:this.$t('exchange.cteyhmsg'),
  310. call:this.$t('exchange.chakanxinxi'),
  311. uncall:this.$t('exchange.quxiao')
  312. }
  313. this.androidflType=2;
  314. this.showFW(uobj,false);
  315. this.audioObj.play();
  316. }
  317. else{//ios
  318. this.imMessage();
  319. }
  320. },
  321. //android-------------------------------------------------
  322. // showFW(obj,isInit) { //显示
  323. // var that = this;
  324. // callerID.show({
  325. // gravity: 1, //显示位置:0中间 1上 2下
  326. // name:obj.name,//用户昵称 ,
  327. // content:obj.content,//说明是骑手来电、来信息
  328. // call: obj.call,//接听IM,查看IM信息
  329. // uncall: obj.uncall,//拒绝接听IM,拒绝查看IM信息
  330. // empty: "",
  331. // avatar: "/static/logo.png",
  332. // totalHint: "",
  333. // tel: "",
  334. // list:[]
  335. // },
  336. // (res) => {
  337. // console.log(res);
  338. // if(isInit){
  339. // that.hideFW()
  340. // }
  341. // // uni.showToast({
  342. // // title: res.msg,
  343. // // icon: "none",
  344. // // duration: 3000
  345. // // })
  346. // });
  347. // },
  348. // hideFW() { //隐藏
  349. // this.androidflType=0;
  350. // callerID.hide(
  351. // (res) => {
  352. // console.log(res);
  353. // // uni.showToast({
  354. // // title: res.msg,
  355. // // icon: "none",
  356. // // duration: 3000
  357. // // })
  358. // });
  359. // },
  360. // permissionFW() { //申请悬浮窗权限
  361. // callerID.permission(
  362. // (res) => {
  363. // console.log('permissionFW',res);
  364. // });
  365. // },
  366. // goPermissionFW() { //跳转到悬浮窗权限页面
  367. // callerID.goPermission(
  368. // (res) => {
  369. // console.log('goPermissionFW',res);
  370. // });
  371. // },
  372. // isPermissionFW() { //是否申请悬浮窗权限
  373. // var that = this;
  374. // callerID.isPermission(
  375. // (res) => {
  376. // console.log('是否申请悬浮窗权限',res);
  377. // if (res.data) {
  378. // if(res.data.isPermission){
  379. // var uobj={
  380. // name:'CTE',
  381. // content:'',
  382. // call:'',
  383. // uncall:''
  384. // }
  385. // that.showFW(uobj,true);
  386. // }
  387. // else{
  388. // that.goPermissionFW();
  389. // }
  390. // }
  391. // });
  392. // },
  393. //ios--------------------------------------
  394. // showpiaof(index){
  395. // var that = this;
  396. // if(index==1){
  397. // setTimeout(function() {
  398. // // 这里写要延时执行的代码
  399. // that.initPip("landscape");
  400. // }, 800);
  401. // }
  402. // if(index==2){
  403. // that.closePip();
  404. // }
  405. // if(index==3){
  406. // var language = uni.getStorageSync('language');
  407. // if(language=='yuenan'){
  408. // var dic = {
  409. // "js": "changeImgvi()"
  410. // }
  411. // KJPip.webView_evaluateJavaScript(dic, (res) => {
  412. // console.log("webView_evaluateJavaScript:" + JSON.stringify(res));
  413. // })
  414. // }
  415. // else{
  416. // var dic = {
  417. // "js": "changeImg()"
  418. // }
  419. // KJPip.webView_evaluateJavaScript(dic, (res) => {
  420. // console.log("webView_evaluateJavaScript:" + JSON.stringify(res));
  421. // })
  422. // }
  423. // }
  424. // if(index==4){
  425. // var language = uni.getStorageSync('language');
  426. // if(language=='yuenan'){
  427. // var dic = {
  428. // "js": "changeImgMSvi()"
  429. // }
  430. // KJPip.webView_evaluateJavaScript(dic, (res) => {
  431. // console.log("webView_evaluateJavaScript:" + JSON.stringify(res));
  432. // })
  433. // }
  434. // else{
  435. // var dic = {
  436. // "js": "changeImgMS()"
  437. // }
  438. // KJPip.webView_evaluateJavaScript(dic, (res) => {
  439. // console.log("webView_evaluateJavaScript:" + JSON.stringify(res));
  440. // })
  441. // }
  442. // }
  443. // return '';
  444. // },
  445. // initPip(shape) {
  446. // var dic = {
  447. // "shape": shape, //弹窗形状 square(正方形) landscape(横向) portrait(竖向)
  448. // }
  449. // KJPip.initPip(dic)
  450. // console.log('initPip')
  451. // var that = this;
  452. // that.iosInit=true;
  453. // setTimeout(function() {
  454. // // 这里写要延时执行的代码
  455. // that.openPip1();
  456. // }, 2000);
  457. // },
  458. // openPip1() {//打开,加载本地页面?language='+language
  459. // var language = uni.getStorageSync('language');
  460. // this.openPip(plus.io.convertLocalFileSystemURL("hybrid/html/xuanfu/index.html"));
  461. // },
  462. // openPip(url) {
  463. // var that = this;
  464. // KJPip.isPictureInPictureActive((res) => {
  465. // console.log("isPictureInPictureActive:" + JSON.stringify(res));
  466. // })
  467. // KJPip.isPictureInPictureSuspended((res) => {
  468. // console.log("isPictureInPictureSuspended:" + JSON.stringify(res));
  469. // })
  470. // KJPip.isPictureInPicturePossible((res) => {
  471. // console.log("isPictureInPicturePossible:" + JSON.stringify(res));
  472. // // if(!res.result){
  473. // // setTimeout(function() {
  474. // // // 这里写要延时执行的代码
  475. // // //that.initPip("landscape");
  476. // // }, 800);
  477. // // }
  478. // })
  479. // KJPip.isPictureInPictureSupported((res) => {
  480. // console.log("isPictureInPictureSupported:" + JSON.stringify(res));
  481. // })
  482. // var dic = {
  483. // "url": url
  484. // }
  485. // KJPip.openPip(dic, (res) => {
  486. // console.log("openPip:" + JSON.stringify(res));
  487. // })
  488. // },
  489. // closePip() {//关闭弹窗
  490. // KJPip.closePip()
  491. // },
  492. imCall(){//收到IM语音通话请求
  493. uni.navigateTo({
  494. url:'/pages/imcall/audioCall?iscaller=0'
  495. })
  496. },
  497. imMessage(){//收到im文字聊天请求
  498. uni.navigateTo({
  499. url:'/pages/imcall/GoeasyExchange?iscaller=0'
  500. })
  501. },
  502. imdef(){//收到im文字聊天请求
  503. var dic = {
  504. "js": "changeImgdef()"
  505. }
  506. // KJPip.webView_evaluateJavaScript(dic, (res) => {
  507. // console.log("webView_evaluateJavaScript:" + JSON.stringify(res));
  508. // })
  509. },
  510. onH5SendDataCallBack() { //注意ios16之后,弹出里的内容不能点击
  511. var that = this;
  512. // KJPip.onH5SendDataCallBack((res) => {
  513. // console.log("onH5SendDataCallBack:",res);
  514. // })
  515. },
  516. //GoEasy--------------------------------------------
  517. connectGoEasy() {
  518. var that = this;
  519. if(that.globalData.goEasycnt==true){
  520. that.goeasydisconnect();
  521. return;
  522. }
  523. var userInfo=uni.getStorageSync('userInfo');
  524. if(''==userInfo||null==userInfo||undefined==userInfo){
  525. return;
  526. }
  527. console.log(userInfo);
  528. this.goEasy.connect({
  529. id:'userid_'+userInfo.userId,
  530. data: {
  531. name:userInfo.nickName,
  532. avatar:userInfo.avatar
  533. },
  534. onSuccess: () => {
  535. console.log('GoEasy connect successfully.')
  536. that.goEasyPush();
  537. that.globalData.goEasycnt=true;
  538. },
  539. onFailed: (error) => {
  540. console.log('Failed to connect GoEasy, code:' + error.code + ',error:' + error.content);
  541. },
  542. onProgress: (attempts) => {
  543. console.log('GoEasy is connecting', attempts);
  544. }
  545. });
  546. },
  547. goEasyPush(){
  548. var userInfo=uni.getStorageSync('userInfo');
  549. if(''==userInfo||null==userInfo||undefined==userInfo){
  550. return;
  551. }
  552. //console.log(userInfo);
  553. var that = this;
  554. var pubsub = this.goEasy.pubsub;
  555. pubsub.subscribe({
  556. channel:'userid_'+userInfo.userId,
  557. onMessage: function (message) {
  558. console.log("goEasyPush:",message);
  559. var obj = JSON.parse(message.content);
  560. if(obj.ptype==1){
  561. if(that.globalData.imViewOpen){
  562. return;
  563. }
  564. uni.setStorageSync('impayload',message.content);
  565. that.imcallrecive(message.content);
  566. }
  567. if(obj.ptype==2){
  568. if(that.globalData.EXViewOpen){
  569. return;
  570. }
  571. uni.setStorageSync('impayload',message.content);
  572. that.immessagerecive(message.content);
  573. }
  574. },
  575. onSuccess: function () {
  576. console.log("Subscribe successfully.")
  577. },
  578. onFailed: function () {
  579. console.log("Subscribe onFailed.")
  580. }
  581. });
  582. },
  583. //断开连接
  584. goeasydisconnect(){
  585. var that = this;
  586. this.goEasy.disconnect({
  587. onSuccess: function(){
  588. console.log("GoEasy disconnect successfully.")
  589. that.globalData.goEasycnt=false;
  590. that.connectGoEasy();
  591. },
  592. onFailed: function(error){
  593. console.log("Failed to disconnect GoEasy, code:"+error.code+ ",error:"+error.content);
  594. }
  595. });
  596. },
  597. },
  598. }
  599. </script>
  600. <style lang="scss">
  601. @font-face {
  602. font-family: zrht;
  603. src: url('/uni_modules/font/zrht.otf');
  604. }
  605. .container {
  606. padding: 15px;
  607. }
  608. /*
  609. button {
  610. margin-bottom: 15px;
  611. }
  612. */
  613. .ztextfontB1{
  614. font-size: 36rpx;
  615. font-weight: bold;
  616. }
  617. .ztextfontB2{
  618. font-size: 34rpx;
  619. font-weight: bold;
  620. }
  621. .ztextfontB3{
  622. font-size: 32rpx;
  623. font-weight: bold;
  624. }
  625. .ztextfontB4{
  626. font-size: 30rpx;
  627. font-weight: bold;
  628. }
  629. .ztextfontB5{
  630. font-size: 28rpx;
  631. font-weight: bold;
  632. }
  633. .ztextfontS1{
  634. font-size: 26rpx;
  635. font-weight: bold;
  636. }
  637. .ztextfontS2{
  638. font-size: 24rpx;
  639. font-weight: bold;
  640. }
  641. .ztextfontS3{
  642. font-size: 22rpx;
  643. font-weight: bold;
  644. }
  645. .textfontB1{
  646. font-size: 36rpx;
  647. }
  648. .textfontB2{
  649. font-size: 34rpx;
  650. }
  651. .textfontB3{
  652. font-size: 32rpx;
  653. }
  654. .textfontB4{
  655. font-size: 30rpx;
  656. }
  657. .textfontB5{
  658. font-size: 28rpx;
  659. }
  660. .textfontS1{
  661. font-size: 26rpx;
  662. }
  663. .textfontS2{
  664. font-size: 24rpx;
  665. }
  666. .textfontS3{
  667. font-size: 22rpx;
  668. }
  669. .content{
  670. display: flex;
  671. flex-direction: column;
  672. width: 94%;
  673. margin-left: 3%;
  674. background-color: white;
  675. border-radius: 16rpx;
  676. box-shadow: 0rpx 0rpx 10rpx 0rpx lightgray;
  677. }
  678. .contentInRowL{
  679. display: flex;
  680. flex-direction: row;
  681. justify-content: flex-start;
  682. }
  683. .contentInRowC{
  684. display: flex;
  685. flex-direction: row;
  686. justify-content: center;
  687. align-items: center;
  688. }
  689. .contentInRowR{
  690. display: flex;
  691. flex-direction: row;
  692. justify-content: flex-end;
  693. }
  694. .contentInRowS{
  695. display: flex;
  696. flex-direction: row;
  697. align-items: center;
  698. justify-content: space-between;
  699. }
  700. .contentColumn{
  701. display: flex;
  702. flex-direction: column;
  703. }
  704. .contentColumnC{
  705. display: flex;
  706. flex-direction: column;
  707. align-items: center;
  708. justify-content: center;
  709. }
  710. .contentColumnS{
  711. display: flex;
  712. flex-direction: column;
  713. align-items: center;
  714. justify-content: space-between;
  715. }
  716. .text1row{
  717. overflow: hidden;
  718. text-overflow: ellipsis;
  719. /* #ifndef APP-PLUS-NVUE */
  720. display: -webkit-box;
  721. -webkit-line-clamp: 1;
  722. -webkit-box-orient: vertical;
  723. /* #endif */
  724. }
  725. .text2row{
  726. overflow: hidden;
  727. text-overflow: ellipsis;
  728. /* #ifndef APP-PLUS-NVUE */
  729. display: -webkit-box;
  730. -webkit-line-clamp: 2;
  731. -webkit-box-orient: vertical;
  732. /* #endif */
  733. }
  734. </style>