index.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. <template>
  2. <view class="bg-color">
  3. <cu-custom bgColor="bg-blue">
  4. <block slot="backText">
  5. <!-- #ifdef H5 -->
  6. <image v-if="showRetBtn" @tap="backToUrl" style="width: 32rpx;height: 32rpx;margin-right: 16rpx;" src="/static/user/bask.png"></image>
  7. <!-- #endif -->
  8. <text>智慧工程</text>
  9. </block>
  10. <block slot="content">
  11. <view style="display: flex;align-items: center;background-color: #fff;height: 64rpx;border-radius: 60rpx;" :style="{width:showRetBtn?'438rpx':'470rpx'}" @click="search()">
  12. <image src="/static/index/search-gray.png" style="width: 32rpx;height: 32rpx;margin: 0 16rpx 0 22rpx;"></image>
  13. <view style="color:#AEAEAE;font-size: 28rpx;">请输入关键字搜索</view>
  14. </view>
  15. </block>
  16. <block slot="right">
  17. <image @click="sancode()" src="/static/index/scanningcode.png" style="width: 44rpx;height: 41rpx;margin-right: 22rpx;"></image>
  18. </block>
  19. </cu-custom>
  20. <!-- 项目 、合同段 -->
  21. <!-- <view style="padding-top: 20rpx;padding-bottom: 22rpx;background-color: #F7F7F7;">
  22. <cu-project :projectList="projectList" style="height: 236rpx;background-color: #C6E6FF;"></cu-project>
  23. </view> -->
  24. <view class="top-bg">
  25. <view @click="navToProject()" class="pj-box">
  26. <text class="pj-title text-white">{{projectList.project_name + ' | ' + projectList.contractName}}</text>
  27. <text class="text-white cuIcon-right" style="font-size: 40rpx;"></text>
  28. </view>
  29. <!-- 菜单-->
  30. <view class="cu-list grid bg-black" :class="['col-' + gridCol,gridBorder?'':'no-border']" style="background-color: #FFFFFF;padding: 0;margin: 20rpx;border-radius: 16rpx;box-shadow: 0 2px 4px rgba(0, 0, 0, .25)">
  31. <template v-for="(item,index) in menuList">
  32. <view class="cu-item" @click="navTo(item)" v-if="item.show">
  33. <view>
  34. <image class="menuImage" :src="item.imageurl"></image>
  35. </view>
  36. <text style="font-size: 26rpx;color: #101010;">{{item.name}}</text>
  37. </view>
  38. </template>
  39. </view>
  40. </view>
  41. <view class="page margin-bottom-xxxl bg-white">
  42. <!-- 待办任务 -->
  43. <view style="background-color: #F7F7F7;">
  44. <view class="cu-bar bg-white " style="border-radius: 20rpx 20rpx 0 0;background-color: #fff;box-shadow: 0px -2px 3px #EEEEEE;border-bottom: 1upx solid #EAEAEA;">
  45. <view class="action">
  46. <text v-if="taskList.length!=0" class="text-xl">待办任务(<text class="text-blue">{{taskList.length}}个</text>)</text>
  47. <text v-else class="text-xl">待办任务(<text class="text-blue">0</text>)</text>
  48. </view>
  49. </view>
  50. </view>
  51. <view v-if="taskList.length==0" class="bg-white text-center">
  52. <view>
  53. <image class="menuImageNoTask" src="../../static/task/noTask.png"></image>
  54. </view>
  55. <view style="padding:28rpx 0 132rpx;font-size: 26rpx;color: #8A8A8A;">暂时没有待办任务~</view>
  56. </view>
  57. <view v-else class="cu-list menu-avatar">
  58. <view class="cu-item_1" v-for="item in taskList" :key="item.id" @click="navToTaskDetails(item)">
  59. <view class="cu-item_left">
  60. <image v-if="item.task_category=='2'" src="../../static/task/report.png"></image>
  61. <image v-else-if="item.task_category=='3' || item.task_category=='1'" src="../../static/task/audit.png"></image>
  62. <image v-else src="../../static/task/diy.png"></image>
  63. </view>
  64. <view class="cu-item_right">
  65. <view class="cu-item_name">{{item.name}}</view>
  66. <view class="cu-item_start">
  67. <view class="cu-item_text"> 发起人:{{item.userName}}</view>
  68. <view class="cu-item_text">{{ item.start_date | timeStamp }}</view>
  69. </view>
  70. </view>
  71. </view>
  72. </view>
  73. <view v-if="taskList.length!=0" class="flex justify-center text-gray" style="padding: 60rpx 0 100rpx;color:#AEAEAE ;font-size: 28rpx;">没有更多内容了~</view>
  74. </view>
  75. <!-- 引入底部导航栏 -->
  76. <tabBar v-if="show" :pagePath="'/pages/index/index'"></tabBar>
  77. </view>
  78. </template>
  79. <script>
  80. import coreConfig from '../../core/index.js'
  81. export default {
  82. computed: {
  83. style() {
  84. var StatusBar = this.StatusBar;
  85. var CustomBar = this.CustomBar;
  86. var bgImage = this.bgImage;
  87. var style = `height:${CustomBar}px;padding-top:${StatusBar}px;`;
  88. if (this.bgImage) {
  89. style = `${style}background-image:url(${bgImage});`;
  90. }
  91. return style
  92. },
  93. showRetBtn(){
  94. if(this.returnInfo.token && this.returnInfo.url){
  95. return true;
  96. }else{
  97. return false;
  98. }
  99. }
  100. },
  101. data() {
  102. return {
  103. loadModal: false,
  104. TabCur: 0,
  105. show:false,//用于待办任务的数据统计才显示组件
  106. modalName: "",
  107. modalShow: false,
  108. modelList: [{
  109. name: '选择分类'
  110. }, {
  111. name: '选择桩号'
  112. }],
  113. menuList: [{
  114. url: "",
  115. imageurl: "/static/index/fill-Information.png",
  116. name: '资料填报',
  117. type: 1,
  118. show:true,
  119. },
  120. {
  121. url: "/pages/informationProgress/informationProgress",
  122. imageurl: "/static/index/dataAccuracy.png",
  123. name: '资料进度',
  124. type: "",
  125. show:true,
  126. },
  127. {
  128. url: "/pages/conSchedule/conSchedule",
  129. imageurl: "/static/index/shigong.png",
  130. name: '施工进度',
  131. type: "",
  132. show:true,
  133. },
  134. {
  135. url: "/pages/constructionLog2/constructionLog",
  136. imageurl: "/static/index/sglog.png",
  137. name: '施工日志',
  138. type: "",
  139. show:false,
  140. },
  141. {
  142. url: "/pages/conLedger/conLedger",
  143. imageurl: "/static/index/constructionLedger.png",
  144. name: '施工台账',
  145. type: "",
  146. show:true,
  147. },
  148. {
  149. url: "/pages/task/task",
  150. imageurl: "/static/index/myTask.png",
  151. name: '我的任务',
  152. type: "",
  153. show:true,
  154. },
  155. {
  156. url: "/pages/smartSearch/smartSearch",
  157. imageurl: "/static/index/smartQuery.png",
  158. name: '智能查阅',
  159. type: "",
  160. show:true,
  161. },{
  162. url: "/pages/supervisorLog/supervisorLog",
  163. imageurl: "/static/index/supervisorLog.png",
  164. name: '监理日志',
  165. type: "",
  166. show:false,
  167. },{
  168. url: "/pages/sentinelLog/sentinelLog",
  169. imageurl: "/static/index/sentinelLog.png",
  170. name: '旁站记录',
  171. type: "",
  172. show:false,
  173. },{
  174. url: "/pages/patrolLog/patrolLog",
  175. imageurl: "/static/index/patrolLog.png",
  176. name: '巡视记录',
  177. type: "",
  178. show:false,
  179. },{
  180. url: "/pages/securityLog/securityLog",
  181. imageurl: "/static/index/securityLog.png",
  182. name: '安全日志',
  183. type: "",
  184. show:false,
  185. },{
  186. url: "/pages/superpatrolLog/superpatrolLog",
  187. imageurl: "/static/index/superpatrolLog.png",
  188. name: '安全巡视',
  189. type: "",
  190. show:false,
  191. },{
  192. url: "/pages/supersecurityLog/supersecurityLog",
  193. imageurl: "/static/index/supersecurityLog.png",
  194. name: '安全监理日志',
  195. type: "",
  196. show:false,
  197. },{
  198. url: "/pages/multimedia/multimedia",
  199. imageurl: "/static/index/multimedia.png",
  200. name: '影像资料',
  201. type: "",
  202. show:false,
  203. },{
  204. url: "",
  205. imageurl: "/static/index/concealment.png",
  206. name: '隐蔽工程',
  207. type: 1,
  208. show:false,
  209. },{
  210. url: "/pages/qualityInspection/qualityInspection",
  211. imageurl: "/static/index/qualityInspection.png",
  212. name: '质量巡检',
  213. type: "",
  214. show:false,
  215. },
  216. /* ,
  217. {
  218. url: "",
  219. imageurl: "/static/index/graphic.png",
  220. name: '图文识别',
  221. type: ""
  222. }, */
  223. ],
  224. taskList: [],
  225. gridCol: 4,
  226. gridBorder: false,
  227. menuBorder: false,
  228. menuArrow: false,
  229. menuCard: false,
  230. projectId: 0,
  231. contractId: 0,
  232. userInfo: "",
  233. projectList: "",
  234. divideClientList: "",
  235. stakeList: [], //桩号
  236. divisionName: "请选择",
  237. stake: "请选择",
  238. chooseDate: null,
  239. returnInfo:{
  240. url:'',
  241. token:''
  242. }
  243. }
  244. },
  245. async onLoad(options) {
  246. //console.log('onload')
  247. //#ifdef H5
  248. //H5通过页面传过来的token,来判断是否登录了
  249. let token = options.token;
  250. let account = options.account;
  251. let projectCode = options.projectCode;
  252. let retUrl = decodeURIComponent(options.retUrl);
  253. console.log(token)
  254. console.log(retUrl)
  255. if(token){
  256. let result = await this.http.request('/app/getUser', {
  257. token:token,
  258. account:account,
  259. projectCode:projectCode,
  260. })
  261. if(result && result.result == "1"){
  262. //设置登录的人员信息缓存
  263. uni.setStorageSync("userInfo", result.data);
  264. //设置登录成功后后台创建的token,用于每次请求
  265. uni.setStorageSync("token", result.msg);
  266. //清除权限缓存
  267. uni.removeStorageSync('authorityList');
  268. if(token && token !='undefined' && retUrl && retUrl !='undefined'){
  269. uni.setStorageSync("retUrl",retUrl)
  270. uni.setStorageSync("retToken",token)
  271. }
  272. await this.onLoadData();
  273. //this.findDivideClient();
  274. //获取权限
  275. this.getAuthority();
  276. }
  277. }
  278. //#endif
  279. //var porject = uni.getStorageSync("porject"+"_"+uni.getStorageSync("userInfo").id);
  280. var userInfo = uni.getStorageSync('userInfo');
  281. //#ifdef H5
  282. //缓存返回按钮需要的信息
  283. this.returnInfo.url = uni.getStorageSync("retUrl");
  284. this.returnInfo.token = uni.getStorageSync("retToken");
  285. //console.log(this.returnInfo)
  286. //#endif
  287. //console.log(sessionStorage.getItem("retUrl"))
  288. if(userInfo==""){
  289. uni.reLaunch({
  290. url:"/pages/user/login/login"
  291. })
  292. }
  293. //#ifdef H5
  294. let tourl = options.tourl;
  295. if(tourl){
  296. console.log(tourl)
  297. uni.navigateTo({
  298. url: tourl
  299. })
  300. }
  301. //#endif
  302. // #ifdef APP-PLUS
  303. if(uni.getSystemInfoSync().brand!='Xiaomi'){//屏蔽小米手机 小米本身会处理,如果调用会在系统消息中心显示一条通知, “您有x条未读消息"”,其中x未设置的角标数字值。
  304. //有些需要手动清除角标
  305. plus.runtime.setBadgeNumber(0);
  306. }
  307. if(!getApp().globalData.isbingCID && userInfo){
  308. console.log("异步获取客户端推送标识信息");
  309. let that = this;
  310. plus.push.getClientInfoAsync(function(info){
  311. //console.log(userInfo.id);
  312. //console.log(info.clientid)
  313. that.http.request("/app/bindCid",{
  314. userId:userInfo.id,
  315. cId:info.clientid
  316. }).then((res)=>{
  317. //console.log(res)
  318. if(res.result == '1'){
  319. console.log('bingCIDSuccess');
  320. }else{
  321. console.log(res.msg)
  322. }
  323. })
  324. getApp().globalData.isbingCID = true;
  325. console.log('Success');
  326. console.log(JSON.stringify(info));
  327. }, function(e){
  328. console.log('Failed');
  329. console.log(JSON.stringify(e));
  330. })
  331. }
  332. // #endif
  333. },
  334. async onShow() {
  335. //console.log('onShow')
  336. await this.onLoadData();
  337. //this.findDivideClient();
  338. //获取权限
  339. this.getAuthority();
  340. },
  341. methods: {
  342. sancode(){
  343. var that =this;
  344. uni.scanCode({
  345. success:function(res){
  346. var value = JSON.stringify(res.result);
  347. value =value.split(",");
  348. if(value.length==1){
  349. that.$prompt.none("二维码无效")
  350. return;
  351. }
  352. if(value[2]==3){//这个为app生成的二维码,需要检验时间
  353. var time =value[3].replace('"',"");
  354. var endTime = Date.parse(time.replace("-", "/").replace("-", "/"));
  355. var newDate = Date.parse(new Date());
  356. if(newDate <= endTime){
  357. //二维码有效,直接跳转文件列表
  358. uni.navigateTo({
  359. url:"/pages/documentList/documentList?title="+value[0].replace('"',"")+"&id="+value[1].replace('"',"")
  360. })
  361. } else {
  362. that.$prompt.none("二维码已无效") //二维码无效
  363. }
  364. }else{ //pc端生成的二维码
  365. setTimeout(function(){
  366. uni.navigateTo({
  367. url:"/pages/smartSearch/smartSearch?value="+JSON.stringify(res.result)
  368. })
  369. },1000)
  370. }
  371. }
  372. });
  373. },
  374. tabSelect(e) {
  375. this.TabCur = e.currentTarget.dataset.id;
  376. this.scrollLeft = (e.currentTarget.dataset.id - 1) * 60
  377. },
  378. /* 刷新方法 */
  379. async onLoadData() {
  380. var userInfo = uni.getStorageSync("userInfo")
  381. if (userInfo) {
  382. this.userInfo = userInfo;
  383. }
  384. var project = uni.getStorageSync("porject"+"_"+uni.getStorageSync("userInfo").id);
  385. if (project) {
  386. this.projectList = project; //获取选中的当前项目
  387. this.findTask(userInfo.id, this.projectList.contractId,this.projectList.id);
  388. } else {
  389. await this.findProject();
  390. }
  391. //console.log(this.projectList)
  392. },
  393. /* 查询项目 */
  394. async findProject(){
  395. var that =this;
  396. let result = await that.http.request('/app/findProject', {userId:this.userInfo.id})
  397. if(result&& result.datas.length!=0){
  398. that.projectList=result.datas[0];
  399. //默认选中第一条
  400. uni.setStorageSync("storeName",that.projectList.store_name);
  401. uni.setStorageSync("porject"+"_"+uni.getStorageSync("userInfo").id,that.projectList);
  402. that.findTask(that.userInfo.id,that.projectList.contractId,that.projectList.id);
  403. }else{
  404. that.show= true;
  405. }
  406. },
  407. /* 查询待办任务 */
  408. findTask(userId,contractId,projectid){
  409. var that =this;
  410. var userInfo = uni.getStorageSync("userInfo");
  411. that.http.request('/app/task/findTaskComing', {userId:userId,contractId:contractId,projectid:projectid}).then((result)=>{
  412. if(result.datas){
  413. that.taskList=result.datas;
  414. }else{
  415. that.taskList=[];
  416. }
  417. that.tabberData.taskNum = that.taskList.length;
  418. if(!that.taskList){
  419. that.taskList=[]
  420. }
  421. //获取信息的未读个数
  422. that.http.request("/app/task/findInformation",{userId:userId,contractId:contractId,projectId:projectid}).then((res)=>{
  423. var i=0;
  424. if(!res.datas){
  425. res.datas = [];
  426. }
  427. res.datas.forEach((item)=>{
  428. if(item.reading==0){
  429. i=i+1;
  430. }
  431. })
  432. that.tabberData.newsNum=i;
  433. that.show= true;
  434. })
  435. })
  436. },
  437. navTo(value) {
  438. if(value.name === '质量巡检' && coreConfig.type === 'fj') {
  439. uni.navigateTo({
  440. url: "/pages/qualityInspection_fj/qualityInspection"
  441. })
  442. } else if (1 != value.type) {
  443. if (value.url) {
  444. uni.navigateTo({
  445. url: value.url
  446. })
  447. } else {
  448. this.$prompt.none("开发中")
  449. }
  450. } else { //显示弹窗
  451. if(value.name === '隐蔽工程'){
  452. uni.navigateTo({
  453. url: "./data/data?type=6"
  454. })
  455. return;
  456. }
  457. uni.navigateTo({
  458. url: "./data/data"
  459. })
  460. }
  461. },
  462. certain() {
  463. if (this.stake == '请选择' || this.divisionName == '请选择') {
  464. this.modalShow = true
  465. return;
  466. }
  467. uni.navigateTo({
  468. url: "/pages/personBase/personBase?id=" + this.chooseDate.id + "&name=" + this.chooseDate.name
  469. })
  470. },
  471. navToTaskDetails(item) {
  472. var type;
  473. if (item.task_category == 2) {
  474. type = 2
  475. } else if (item.task_category == 3) {
  476. type = 3
  477. } else if (item.task_category == 1) {
  478. type = 1
  479. }else{
  480. type=4
  481. }
  482. uni.navigateTo({
  483. url: "/pages/task/details/details?type=" + type + "&value=0"+"&taskId="+item.id+ "&contractid=" +item.contract_info_id
  484. })
  485. },
  486. search() {
  487. uni.setStorageSync("pageType", 0);
  488. uni.navigateTo({
  489. url: "/pages/search/search"
  490. })
  491. },
  492. /* 获取单位工程、分部工程*/
  493. findDivideClient() {
  494. var that = this;
  495. that.http.request('/app/divideClient/findDivideClientByType', {contractId:this.projectList.contractId}).then((result)=>{
  496. if(result.result!="-1"){
  497. that.divideClientList = result.datas
  498. }
  499. });
  500. },
  501. /* 选择分部工程*/
  502. chooseDivision(data) {
  503. this.stakeList = [];
  504. this.divisionName = data.divisionName;
  505. if (data.stake) { //拆分桩号
  506. this.stakeList.push(data);
  507. } else {
  508. data.stake = "不限"
  509. this.stakeList.push(data);
  510. }
  511. this.TabCur = 1; //跳转分类
  512. this.stake = '请选择'
  513. },
  514. /* 选择桩号*/
  515. chooseStake(data) {
  516. this.stake = data.stake;
  517. this.chooseDate = data;
  518. },
  519. async getAuthority(){
  520. var authorityList = uni.getStorageSync("authorityList");
  521. //console.log(authorityList)
  522. if(authorityList && authorityList.length > 0){
  523. //有缓存不再请求
  524. }else{
  525. let result = await this.http.request('/app/menu/getMenuByContractId', {userId:this.userInfo.id,contractId:this.projectList.contractId})
  526. if(result.result!="-1"){
  527. uni.setStorageSync("authorityList",result.datas);
  528. authorityList = result.datas;
  529. }
  530. }
  531. if(!authorityList){
  532. return;
  533. }
  534. for (let i = 0; i < authorityList.length; i++) {
  535. if(!this.menuList[3].show && authorityList[i].url == '/template/newlog/diary.html'){
  536. //施工日志填报权限
  537. this.menuList[3].show = true;
  538. }
  539. if(!this.menuList[7].show && authorityList[i].url == '/template/newlog/super.html'){
  540. //监理日志填报权限
  541. this.menuList[7].show = true;
  542. }
  543. if(!this.menuList[8].show && authorityList[i].url == '/template/newlog/sentinel.html'){
  544. //监理旁站填报权限
  545. this.menuList[8].show = true;
  546. }
  547. if(!this.menuList[9].show && authorityList[i].url == '/template/newlog/patrol.html'){
  548. //监理巡视填报权限
  549. this.menuList[9].show = true;
  550. }
  551. if(!this.menuList[10].show && authorityList[i].url == '/template/newlog/security.html'){
  552. //安全日志填报权限
  553. this.menuList[10].show = true;
  554. }
  555. if(!this.menuList[11].show && authorityList[i].url == '/template/newlog/superpatrol.html'){
  556. //安全巡视填报权限
  557. this.menuList[11].show = true;
  558. }
  559. if(!this.menuList[12].show && authorityList[i].url == '/template/newlog/supersecurity.html'){
  560. //安全监理日志填报权限
  561. this.menuList[12].show = true;
  562. }
  563. if(!this.menuList[13].show && authorityList[i].url == '/template/select/multimedia.html'){
  564. //安全监理日志填报权限
  565. this.menuList[13].show = true;
  566. }
  567. if(!this.menuList[14].show && authorityList[i].url == '/template/excelWrite/concealment.html'){
  568. //隐蔽工程填报权限
  569. this.menuList[14].show = true;
  570. }
  571. if(!this.menuList[15].show && authorityList[i].url == '/template/qualityInspection/supervisionPatrol.html'){
  572. //隐蔽工程填报权限
  573. this.menuList[15].show = true;
  574. }
  575. //
  576. }
  577. this.$nextTick(()=>{
  578. this.$set(this, 'menuList', this.menuList);
  579. })
  580. },
  581. navToProject(){
  582. uni.navigateTo({
  583. url:"/pages/user/project/project?type=1"
  584. })
  585. },
  586. backToUrl(){
  587. //#ifdef H5
  588. location.href=this.returnInfo.url+'?token='+this.returnInfo.token;
  589. //#endif
  590. }
  591. },
  592. filters: {
  593. timeStamp: function(value) {
  594. if (!value) return '';
  595. var now = new Date(value);
  596. var year = now.getFullYear();
  597. var month = now.getMonth() + 1;
  598. if (month < 10) {
  599. month = '0' + month
  600. }
  601. var date = now.getDate();
  602. if (date < 10) {
  603. date = '0' + date
  604. }
  605. return year + "-" + month + "-" + date
  606. },
  607. },
  608. onHide() {
  609. this.show=false
  610. }
  611. }
  612. </script>
  613. <style lang="scss">
  614. page {
  615. background-color: #fff;
  616. }
  617. .cu-list.grid {
  618. background-color:transparent;
  619. text-align: center;
  620. }
  621. .solid-type {
  622. border-bottom: 2upx solid black;
  623. }
  624. .solid-type-top {
  625. border-top: 2upx solid rgba(0, 0, 0, 0.1);
  626. }
  627. .dashed-type {
  628. border-bottom: 2upx dashed black;
  629. }
  630. .box {
  631. margin-top: -20rpx;
  632. }
  633. .box view.cu-bar {
  634. margin-top: 20upx;
  635. }
  636. .page {
  637. width: 100vw;
  638. }
  639. .page.show {
  640. overflow: hidden;
  641. }
  642. .menuImage {
  643. height: 110rpx;
  644. width: 110rpx;
  645. }
  646. .shadowType {
  647. -moz-box-shadow: 0px 1px 4px #D0D0D0;
  648. -webkit-box-shadow: 0px 1px 4px #D0D0D0;
  649. box-shadow: 0px 1px 4px #D0D0D0;
  650. }
  651. .cu-list.grid>.cu-item uni-text {
  652. display: block;
  653. margin-top: 4px;
  654. color: black;
  655. font-size: 14px;
  656. line-height: 17px;
  657. }
  658. .cu-dialog {
  659. position: relative;
  660. display: inline-block;
  661. vertical-align: middle;
  662. margin-left: auto;
  663. margin-right: auto;
  664. width: 100%;
  665. max-width: 100%;
  666. /* height: 100%; */
  667. background-color: #f8f8f8;
  668. border-radius: 4px;
  669. overflow: hidden;
  670. }
  671. .bg-diy-yellow {
  672. background-color: #FDF1DF;
  673. }
  674. .bg-diy-blue {
  675. background-color: #D7ECF8;
  676. }
  677. .menuImageNoTask{width:162rpx;height: 105rpx;margin-top: 60rpx;}
  678. .cu-item_1{display: flex;align-items: center;padding: 22rpx 24rpx;border-bottom: 2rpx solid #E3e1e1;}
  679. .cu-item_left{margin-right: 10rpx;}
  680. .cu-item_left image{width: 100rpx;height: 100rpx;}
  681. .cu-item_right{width: 592rpx;}
  682. .cu-item_name{font-size: 30rpx;color: #101010;overflow: hidden;text-overflow: ellipsis; -o-text-overflow: ellipsis;white-space:nowrap;}
  683. .cu-item_start{display: flex;align-items: center;justify-content: space-between;padding-top: 8rpx;}
  684. .cu-item_text{color: #8A8A8A;font-size: 26rpx;}
  685. .bg-color{
  686. background-color: #F7F7F7;
  687. }
  688. .top-bg{
  689. background-image: url(../../static/index/topbg.png);
  690. background-size:750rpx 250rpx;
  691. background-repeat: no-repeat;
  692. }
  693. .pj-box{
  694. display: flex;
  695. padding: 20rpx;
  696. align-items: center;
  697. justify-content: space-between;
  698. }
  699. .pj-title{
  700. font-size: 32rpx;
  701. font-weight: bold;
  702. }
  703. </style>