buildList.vue 24 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129
  1. <template >
  2. <view>
  3. <view :class="['custom-header', { 'is-back': isBack }, bgColor]">
  4. <view class="back-container" @click="handleBack">
  5. <view class="back-text">返回</view>
  6. </view>
  7. <view class="content-container">
  8. <view class="content-text">{{title}}</view>
  9. </view>
  10. </view>
  11. <!-- <swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000" :duration="800">
  12. <swiper-item>
  13. <image src="../../static/img/titlebg.jpg" class="swiper-item"></image>
  14. </swiper-item>
  15. <swiper-item>
  16. <image src="../../static/img/titlebg.jpg" class="swiper-item"></image>
  17. </swiper-item>
  18. </swiper> -->
  19. <swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000" :duration="800">
  20. <swiper-item v-for="(item, index) in picture2" :key="index">
  21. <image :src="item" class="swiper-item"></image>
  22. </swiper-item>
  23. </swiper>
  24. <view class="line-box">
  25. <!-- <view class="center-box">
  26. <view class="center-left-box">
  27. <view class="btn-box-1 mart-t">
  28. {{pageInfo.enterprisec}}
  29. </view>
  30. <view class="btn-box-2 mart-t">
  31. {{pageInfo.todayc}}
  32. </view>
  33. <view class="btn-box-3 mart-t">
  34. {{pageInfo.samemonthc}}
  35. </view>
  36. <view class="btn-box-4 mart-t">
  37. {{pageInfo.industryc}}
  38. </view>
  39. </view>
  40. <view class="center-left-box">
  41. <view class="btn-box-text mart-t">
  42. 入库企业数
  43. </view>
  44. <view class="btn-box-text mart-t">
  45. 当日活跃数
  46. </view>
  47. <view class="btn-box-text mart-t">
  48. 当月活跃数
  49. </view>
  50. <view class="btn-box-text mart-t">
  51. 企业行业数
  52. </view>
  53. </view>
  54. </view> -->
  55. <!-- <view class="center-box">
  56. <view class="kuai-text">快捷入口</view>
  57. <view class="center-left-box">
  58. <!-- <view class="btn-Imbox" @click="totongxunlu2">
  59. <image class="center-img" src="/static/img/icon4.png"></image>
  60. <p>新增企业</p>
  61. </view>
  62. <view class="btn-Imbox" @click="totongxunlu">
  63. <image class="center-img" src="/static/img/icon3.png"></image>
  64. <p>企业通讯录</p>
  65. </view>
  66. <view class="btn-Imbox" v-if="isLogin!=null" @click="outlogin">
  67. <image class="center-img2" src="/static/img/icon_logout.png"></image>
  68. <p>退出登录</p>
  69. </view>
  70. <view class="btn-Imbox">
  71. </view>
  72. </view>
  73. </view> -->
  74. <view :style="[{top:CustomBar + 'px'}]">
  75. <view class="tabs" v-if="md=='1'">
  76. <view
  77. v-for="(tab, index) in tabs"
  78. :key="index"
  79. class="tab-item"
  80. :class="{ active: activeTab === index }"
  81. @click="switchTab(index)"
  82. >
  83. {{ tab.name }}
  84. </view>
  85. </view>
  86. <view class="tabs" v-if="md=='2'">
  87. <view
  88. v-for="(tab, index) in tabs2"
  89. :key="index"
  90. class="tab-item"
  91. :class="{ active: activeTab === index }"
  92. @click="switchTab2(index)"
  93. >
  94. {{ tab.name }}
  95. </view>
  96. </view>
  97. <view class="tabs" v-if="md=='4'">
  98. <view
  99. v-for="(tab, index) in tabs3"
  100. :key="index"
  101. class="tab-item"
  102. :class="{ active: activeTab === index }"
  103. @click="switchTab3(index)"
  104. >
  105. {{ tab.name }}
  106. </view>
  107. </view>
  108. <view @click="showMoreFilters = !showMoreFilters" style="width: 100%;text-align: center;" v-if="isshowMoreFilters">
  109. {{ showMoreFilters ? '收起' : '点击展示更多筛选' }}
  110. </view>
  111. <view class="search-box" v-if="showMoreFilters" >
  112. <view class="search-box1">
  113. <view class="choose-box">
  114. <input type="text" placeholder="输入或选择属地" v-model="searchForm.des1" confirm-type="search" style="padding-left: 28rpx;"
  115. ></input>
  116. <jp-picker class="choose-boxp" v-model="searchForm.des1" rangeKey="label" rangeValue="value"
  117. :range="parkList2" >
  118. </jp-picker>
  119. </view>
  120. <view class="choose-box">
  121. <input type="text" placeholder="输入或选择行业" v-model="searchForm.industry" confirm-type="search" style="padding-left: 28rpx;"
  122. ></input>
  123. <jp-picker class="choose-boxp" v-model="searchForm.industry" rangeKey="label" rangeValue="value"
  124. :range="parkList" >
  125. </jp-picker>
  126. </view>
  127. </view>
  128. <view class="choose-box2" style="margin-top: 20rpx;">
  129. <view class="choose-box3">
  130. <!-- <view style="width: 520rpx;">
  131. <input type="text" placeholder="输入或选择产业链环节关键词" v-model="searchForm.bz2" confirm-type="search"
  132. ></input>
  133. </view> -->
  134. <!-- <jp-picker style="width: 120rpx;" v-model="searchForm.bz2" rangeKey="label" rangeValue="value"
  135. :range="parkList3" >
  136. </jp-picker> -->
  137. <view style="width: 300rpx;display: flex;align-items: center;color: #666666;font-size: 33rpx;">
  138. 产业链环节:
  139. </view>
  140. <DoublePicker
  141. :column1Label="''"
  142. :column2Label="''"
  143. :column1Data="parkList3"
  144. :column2Data="parkList4"
  145. v-model="ddd1"
  146. @update:column2Data="updateCities"
  147. />
  148. </view>
  149. </view>
  150. <view class="choose-box2" style="margin-top: 20rpx;">
  151. <view style="width: 520rpx;">
  152. <input type="text" placeholder="输入关键词产品或企业名称" v-model="searchForm.name" confirm-type="search"
  153. ></input>
  154. </view>
  155. <text style="padding-left: 40rpx;flex: 1;" class="cuIcon-search color-white" @click="doSearch"></text>
  156. </view>
  157. </view>
  158. <mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" :up="upOption" @up="upCallback">
  159. <view class="cu-item" :class="modalName=='move-box-'+ index?'move-cur':''"
  160. v-for="(item, index) in dataList" :key="index" @touchstart="ListTouchStart"
  161. @touchmove="ListTouchMove" @touchend="ListTouchEnd" :data-target="'move-box-' + index">
  162. <view class="item-box" @click="gotoBuildInfo(item.id)">
  163. <view class="item-title">
  164. <view>
  165. {{item.name}}
  166. </view>
  167. </view>
  168. <view class="item-line">
  169. <view v-if="item.bz3!=''&&item.bz3!=undefined" class="item-name">{{item.bz1}}、{{item.bz3}}</view>
  170. <view v-if="item.bz3==''||item.bz3==undefined" class="item-name">{{item.bz1}}</view>
  171. </view>
  172. <view class="item-line">
  173. <view class="item-name2">{{item.industry}}</view>
  174. <view class="item-name3">{{item.des1}}</view>
  175. </view>
  176. </view>
  177. </view>
  178. </mescroll-body>
  179. <uni-fab :pattern=" {
  180. color: '#7A7E83',
  181. backgroundColor: '#fff',
  182. selectedColor: '#007AFF',
  183. buttonColor: '#007AFF'
  184. }" horizontal="right" vertical="bottom" @fabClick="add" v-if="stype == 5"></uni-fab>
  185. <!-- <view @click="outlogin" class="fixed-bottom-right" v-if="isLogin!=null">
  186. <image class="center-img2" src="/static/img/icon_logout.png"></image>
  187. </view> -->
  188. </view>
  189. </view>
  190. </view>
  191. </template>
  192. <script>
  193. import loginService from "@/api/auth/loginService";
  194. import uniFab from '@/components/uni-fab/uni-fab.vue';
  195. import DoublePicker from '@/components/DoublePicker/DoublePicker.vue'
  196. import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
  197. import MescrollMoreItemMixin from "@/components/mescroll-uni/mixins/mescroll-more-item.js";
  198. import {mapActions} from 'vuex'
  199. export default {
  200. mixins: [MescrollMixin, MescrollMoreItemMixin], // 使用mixin (在main.js注册全局组件)
  201. name: "apps",
  202. components: {
  203. uniFab,
  204. DoublePicker
  205. },
  206. data() {
  207. return {
  208. isBack: true, // 是否显示返回按钮
  209. backText: '返回', // 返回按钮的文本
  210. bgColor: 'bg-blue', // 背景颜色
  211. title: '',
  212. picture2:["https://miniapp.huidutech.com.cn/yd_qycpfbH5/bg1.jpg",
  213. "https://miniapp.huidutech.com.cn/yd_qycpfbH5/bg2.jpg",
  214. "https://miniapp.huidutech.com.cn/yd_qycpfbH5/bg3.jpg",
  215. "https://miniapp.huidutech.com.cn/yd_qycpfbH5/bg4.jpg"],
  216. isLogin:"",
  217. pageInfo: {},
  218. loginid:"",
  219. showMoreFilters: false,
  220. isshowMoreFilters: true,
  221. tabs: [
  222. { name: '全部' },
  223. { name: '三大新兴产业' },
  224. { name: '三大未来产业' },
  225. { name: 'N个特色产业' }
  226. ],
  227. tabs2: [
  228. { name: '东山系' },
  229. { name: '长盈系' },
  230. { name: '融和系' },
  231. { name: '其他链主企业' }
  232. ],
  233. tabs3: [
  234. { name: '龙头型50强企业' },
  235. { name: '成长性50强企业' }
  236. ],
  237. activeTab: 0,
  238. stype: "", // 企业 => 3 楼宇 => 2 园区 => 1 zfadmin => 4 admin=> 5
  239. md:"1",
  240. searchForm: {
  241. des1:"",
  242. industry:"",
  243. name:"",
  244. des7:"",
  245. des8:"",
  246. des11:"",
  247. totalNumber:"1"
  248. },
  249. curWord: "", //当前搜索关键词
  250. dataList: [], // 数据列表
  251. modalName: null,
  252. tablePage: {
  253. total: 0,
  254. currentPage: 1,
  255. pageSize: 10,
  256. orders: []
  257. },
  258. loading: false,
  259. parkId: '',
  260. parkList: [],
  261. parkList2: [{label: "全部",value: ""},{label: "高新区",value: "高新区"},{label: "盐渎",value: "盐渎"},{label: "潘黄",value: "潘黄"},{label: "龙冈",value: "龙冈"},{label: "张庄",value: "张庄"}
  262. ,{label: "大冈",value: "大冈"},{label: "郭猛",value: "郭猛"},{label: "大纵湖",value: "大纵湖"},{label: "秦南",value: "秦南"},{label: "学富",value: "学富"},{label: "楼王",value: "楼王"},
  263. {label: "尚庄",value: "尚庄"},{label: "台创园",value: "台创园"}],
  264. parkList3: [],
  265. parkList4: [],
  266. ddd1:"" ,
  267. };
  268. },
  269. onLoad(query) {
  270. if(query!=undefined&&query!=null&&query!=''){
  271. if(query.loginid!=undefined){
  272. this.loginid=query.loginid
  273. this.autoLogin();
  274. }
  275. if (query && query.w=='1' ) {
  276. this.md = "1";
  277. this.searchForm.des7="";
  278. this.title="产品分布";
  279. //隐藏三个分类,直接展示筛选
  280. this.md = "3";
  281. this.isshowMoreFilters=false;
  282. this.showMoreFilters=true;
  283. }else if(query && query.w=='2'){
  284. this.md = "2";
  285. this.searchForm.des8="1";
  286. this.isshowMoreFilters=false;
  287. this.title="链主企业";
  288. }else if(query && query.w=='4'){
  289. this.md = "4";
  290. this.searchForm.des11="1";
  291. //this.searchForm.totalNumber="";
  292. this.isshowMoreFilters=false;
  293. this.title="双50强企业";
  294. }
  295. }
  296. },
  297. onShow() {
  298. this.isLogin=this.$auth.checkisLogin();
  299. },
  300. created() {
  301. //this.getPageInfo();
  302. this.getParkList()
  303. //this.getParkList2()
  304. this.getParkList3()
  305. },
  306. methods: {
  307. ...mapActions(['refreshUserInfo']),
  308. //选择产业链环节
  309. getParkList3() {
  310. loginService.getIndustryChainList({
  311. }).then(({
  312. data
  313. }) => {
  314. // this.parkList3 = data.map((item) => {
  315. // return {
  316. // label: item.bz2,
  317. // value: item.bz2
  318. // }
  319. // });
  320. this.parkList3=[{label: '上游',value: '上游'},{label: '中游',value: '中游'},{label: '下游',value: '下游'}]
  321. this.parkList4 = data
  322. .map((item) => {
  323. const match = item.bz2.match(/\((.*?)\)/); // 匹配括号内的内容
  324. if (match) {
  325. return {
  326. label: match[1], // 括号内的内容
  327. value: match[1] // 括号内的内容
  328. };
  329. }
  330. return null; // 如果没有括号,返回 null
  331. })
  332. .filter((item) => item !== null) // 过滤掉 null 值
  333. .reduce((acc, current) => {
  334. // 使用 Set 去重
  335. const existingItem = acc.find((item) => item.value === current.value);
  336. if (!existingItem) {
  337. acc.push(current);
  338. }
  339. return acc;
  340. }, []);
  341. this.parkList3.unshift({
  342. label: "全部",
  343. value: ""
  344. });
  345. this.parkList4.unshift({
  346. label: "全部",
  347. value: ""
  348. });
  349. }).catch(e => {
  350. console.log(e)
  351. })
  352. },
  353. //选择属地
  354. getParkList2() {
  355. loginService.getAreaList({
  356. }).then(({
  357. data
  358. }) => {
  359. this.parkList2 = data.map((item) => {
  360. return {
  361. label: item.des1,
  362. value: item.des1
  363. }
  364. })
  365. this.parkList2.unshift({
  366. label: "盐都区",
  367. value: ""
  368. });
  369. }).catch(e => {
  370. console.log(e)
  371. })
  372. },
  373. //选择行业
  374. getParkList() {
  375. loginService.getHyList({
  376. }).then(({
  377. data
  378. }) => {
  379. this.parkList = data.map((item) => {
  380. return {
  381. label: item.industry,
  382. value: item.industry
  383. }
  384. })
  385. this.parkList.unshift({
  386. label: "全部",
  387. value: ""
  388. });
  389. }).catch(e => {
  390. console.log(e)
  391. })
  392. },
  393. /*获取数据列表 */
  394. upCallback(page) {
  395. this.loading = true
  396. loginService.comlist({
  397. current: page.num,
  398. size: page.size,
  399. name: this.curWord,
  400. des1: this.parkId,
  401. orders: [{ column: 'a.create_date', asc: false }],
  402. ...this.searchForm
  403. }).then(({
  404. data
  405. }) => {
  406. let curPageData = data.records
  407. this.mescroll.endBySize(curPageData.length, data.total);
  408. //如果是第一页需手动制空列表
  409. if (page.num == 1)
  410. this.dataList = [];
  411. //追加新数据
  412. this.dataList = this.dataList.concat(curPageData);
  413. }).catch(e => {
  414. //联网失败, 结束加载
  415. this.mescroll.endErr();
  416. })
  417. },
  418. gotoBuildInfo(id) {
  419. // uni.navigateTo({
  420. // url: `/pages/comEdit/comEdit?id=${id}&ischeck=1`
  421. // })
  422. window.location.href=`/yd_qycpfbH5/#/pages/comEdit/comEdit?id=${id}&ischeck=1`
  423. },
  424. updateCities(newCities) {
  425. this.cities = newCities;
  426. },
  427. // 搜索
  428. doSearch() {
  429. if(this.ddd1.column2!=''&&this.ddd1!=''){
  430. this.searchForm.bz2=this.ddd1.column1+'('+this.ddd1.column2+')';
  431. }else if(this.ddd1!=''){
  432. this.searchForm.bz2=this.ddd1.column1;
  433. }
  434. this.dataList = []; // 先清空列表,显示加载进度
  435. this.mescroll.resetUpScroll();
  436. },
  437. totongxunlu(){
  438. uni.navigateTo({
  439. url: '/pages/comList/comList'
  440. })
  441. },
  442. totongxunlu2(){
  443. uni.showModal({
  444. title: '功能暂未开放,请至后台导入!',
  445. showCancel: true,
  446. success: (res) => {
  447. }
  448. });
  449. },
  450. getPageInfo() {
  451. loginService.InfoStatistics({}).then(({ data }) => {
  452. this.pageInfo = data;
  453. });
  454. },
  455. autoLogin(){
  456. console.log("登录id"+this.loginid);
  457. loginService.loginid( this.loginid).then(({data}) => {
  458. this.$store.commit('SET_TOKEN',data.token);
  459. this.refreshUserInfo();
  460. }).catch(e => {
  461. console.error(e)
  462. })
  463. },
  464. getRole() {
  465. let userInfo = uni.getStorageSync('WMS-userinfo')
  466. var officeId = userInfo.officeDTO.id;
  467. var roleIds = userInfo.roleIds;
  468. if (roleIds.indexOf("17bac1f980264e3e8193bc965538e2c6") != -1) {
  469. //// 管理员
  470. this.stype = 5
  471. uni.setStorageSync('stype', this.stype);
  472. } else if (roleIds.indexOf("ade960e8f02544998b07397304c059c1") != -1) {
  473. // 政府管理员
  474. this.stype = 4
  475. uni.setStorageSync('stype', this.stype);
  476. } else {
  477. console.log('==================>这里走了么','================>存一个stape')
  478. loginService
  479. .getOtherIdByOffceid({
  480. officeid: officeId,
  481. })
  482. .then(({
  483. data
  484. }) => {
  485. console.log(data, "====================>getOtherIdByOffceid");
  486. this.stype = data.stype;
  487. uni.setStorageSync('stype', this.stype);
  488. });
  489. }
  490. },
  491. outloginset(){
  492. loginService.logout().then(({
  493. data
  494. }) => {
  495. this.$store.commit('logout');
  496. uni.clearStorage();
  497. })
  498. this.$store.commit('logout');
  499. uni.clearStorage();
  500. this.isLogin=this.$auth.checkisLogin();
  501. uni.hideLoading()
  502. },
  503. outlogin() {
  504. uni.showModal({
  505. title: '您确认退出么?',
  506. showCancel: true,
  507. success: (res) => {
  508. if (res.confirm) {
  509. uni.showLoading()
  510. this.outloginset();
  511. // uni.reLaunch({
  512. // url: '/pages/login/login'
  513. // })
  514. }
  515. }
  516. });
  517. },
  518. tces() {
  519. uni.navigateTo({
  520. url: '/pages/index/AudioToWord'
  521. })
  522. },
  523. // ListTouch触摸开始
  524. ListTouchStart(e) {
  525. this.listTouchStart = e.touches[0].pageX
  526. },
  527. // ListTouch计算方向
  528. ListTouchMove(e) {
  529. this.listTouchDirection = e.touches[0].pageX - this.listTouchStart > -60 ? 'right' : 'left'
  530. },
  531. // ListTouch计算滚动
  532. ListTouchEnd(e) {
  533. if (this.listTouchDirection == 'left') {
  534. this.modalName = e.currentTarget.dataset.target
  535. } else {
  536. this.modalName = null
  537. }
  538. this.listTouchDirection = null
  539. },
  540. switchTab(index) {
  541. this.activeTab = index;
  542. if(index==0){
  543. this.searchForm.des7="";
  544. }else{
  545. this.searchForm.des7=this.activeTab;
  546. }
  547. this.doSearch();
  548. },
  549. switchTab2(index) {
  550. this.activeTab = index;
  551. // if(index==0){
  552. // this.searchForm.des8="";
  553. // }else{
  554. // this.searchForm.des8=this.activeTab;
  555. // }
  556. this.searchForm.des8=this.activeTab+1;
  557. this.doSearch();
  558. },
  559. switchTab3(index) {
  560. this.activeTab = index;
  561. if(index==0){
  562. this.searchForm.des11="1";
  563. }else{
  564. this.searchForm.des11="2";
  565. }
  566. this.doSearch();
  567. },
  568. handleBack() {
  569. // 返回逻辑,比如跳转至上一页
  570. this.$router.go(-1);
  571. console.log('返回按钮被点击');
  572. }
  573. }
  574. }
  575. </script>
  576. <style>
  577. .page {
  578. height: 100vh;
  579. }
  580. .line-box {
  581. padding-left: 20rpx;
  582. padding-right: 20rpx;
  583. margin-top: 20rpx;
  584. }
  585. .mart-t {
  586. margin-top: 30rpx;
  587. }
  588. .center-box{
  589. margin-top: 20rpx;
  590. width: 100%;
  591. border-radius: 25rpx;
  592. border-radius: 25rpx;
  593. background: #fff;
  594. box-shadow: 0px 8px 16px 2px rgba(101, 101, 101, 0.2);
  595. padding-bottom: 30rpx;
  596. display: flex;
  597. flex-wrap: wrap;
  598. }
  599. .center-left-box {
  600. width: 100%;
  601. padding-bottom: 30rpx;
  602. display: flex;
  603. flex-wrap: wrap;
  604. }
  605. .btn-box-text {
  606. flex:1;
  607. height: 20rpx;
  608. text-align: center;
  609. color: #000000;
  610. font-size: 14px;
  611. font-weight: 700;
  612. }
  613. .btn-box-1 {
  614. flex:1;
  615. height: 30rpx;
  616. text-align: center;
  617. color: #36A7F3;
  618. font-size: x-large;
  619. font-weight: 700;
  620. }
  621. .btn-box-2 {
  622. flex:1;
  623. height: 30rpx;
  624. text-align: center;
  625. color:#F3365A;
  626. font-size: x-large;
  627. font-weight: 700;
  628. }
  629. .btn-box-3 {
  630. flex:1;
  631. height: 30rpx;
  632. text-align: center;
  633. color:#15D578;
  634. font-size: x-large;
  635. font-weight: 700;
  636. }
  637. .btn-box-4 {
  638. flex:1;
  639. height: 30rpx;
  640. text-align: center;
  641. color:#F1A31B;
  642. font-size: x-large;
  643. font-weight: 700;
  644. }
  645. .btn-Imbox {
  646. flex:1;
  647. height: 150rpx;
  648. padding-top: 8rpx;
  649. text-align: center;
  650. display: flex;
  651. flex-direction: column;
  652. justify-content: center; /* 子元素内部内容竖向居中 */
  653. align-items: center; /* 子元素内部内容水平居中 */
  654. text-align: center; /* 文字居中 */
  655. }
  656. .btn-Imbox p {
  657. font-size: 14px; /* 文字大小,可根据需要调整 */
  658. margin: 0; /* 去掉默认的外边距 */
  659. font-weight: 700;
  660. }
  661. .center-img{
  662. width: 90rpx;
  663. height: 90rpx;
  664. margin-bottom: 10rpx;
  665. text-align: center;
  666. }
  667. .center-img2{
  668. width: 70rpx;
  669. height: 70rpx;
  670. margin-top: 10rpx;
  671. margin-bottom: 20rpx;
  672. text-align: center;
  673. }
  674. .kuai-text{
  675. color: #000000;
  676. font-weight: 900;
  677. font-size: 34rpx;
  678. padding-top: 20rpx;
  679. padding-left: 20rpx;
  680. }
  681. .btn-box-5 {
  682. width: 337rpx;
  683. height: 200rpx;
  684. background-image: url('../../static/img/btn3.png');
  685. background-size: 100% 100%;
  686. }
  687. .btn-box-6 {
  688. width: 337rpx;
  689. height: 200rpx;
  690. background-image: url('../../static/img/btn6.png');
  691. background-size: 100% 100%;
  692. }
  693. .h-200 {
  694. height: 200rpx;
  695. }
  696. .swiper {
  697. width: 750rpx;
  698. height: 310rpx;
  699. }
  700. .swiper-item {
  701. width: 750rpx;
  702. height: 310rpx;
  703. background-color: aliceblue;
  704. }
  705. .font-size-35 {
  706. font-size: 35px !important;
  707. }
  708. .img-size {
  709. width: 80rpx;
  710. height: 80rpx;
  711. }
  712. .content-box {
  713. width: 437rpx;
  714. height: 200rpx;
  715. }
  716. .my-app .padding-sm {
  717. padding: 6px;
  718. }
  719. .grid .padding-sm .bg-white {
  720. box-shadow: 0 1px 4px #f9f9f9, 1px 1px 40px rgba(0, 0, 0, .06);
  721. }
  722. .bg-blue {
  723. background: #fff;
  724. color: #0081ff !important;
  725. }
  726. .text-white,
  727. .line-white,
  728. .lines-white {
  729. color: #0081ff !important;
  730. }
  731. .cu-bar .search-form {
  732. background-color: white;
  733. }
  734. .item-box{
  735. width: 710rpx;
  736. background: #FFFFFF;
  737. box-shadow: 0px 1px 3px 0px rgba(9,2,4,0.1);
  738. border-radius: 10px;
  739. padding-top: 20rpx;
  740. padding-left: 38rpx;
  741. padding-right: 10rpx;
  742. margin-top: 20rpx;
  743. }
  744. .item-title{
  745. position: relative;
  746. display: flex;
  747. justify-content: space-between;
  748. font-size: 30rpx;
  749. color: #010101;
  750. font-weight: bold;
  751. align-items: center;
  752. }
  753. .item-line{
  754. display: flex;
  755. height: 48rpx;
  756. margin-top: 20rpx;
  757. }
  758. .item-line2{
  759. height: 48rpx;
  760. margin-top: 20rpx;
  761. }
  762. .subtitle{
  763. color: #E5880E;
  764. }
  765. .item-name{
  766. margin-top: 5rpx;
  767. font-size: 29rpx;
  768. color: #666666;
  769. }
  770. .item-name2{
  771. font-size: 29rpx;
  772. color: #676D99;
  773. }
  774. .item-name3{
  775. display: flex;
  776. width: 100%;
  777. padding-right: 30rpx;
  778. flex: 1;
  779. justify-content: flex-end;
  780. font-size: 29rpx;
  781. color: #676D99;
  782. }
  783. .item-content{
  784. color: #1497EF;
  785. font-size: 30rpx;
  786. }
  787. .btn-box{
  788. display: flex;
  789. }
  790. .line-zs{
  791. width: 2rpx;
  792. height: 30rpx;
  793. background: #36A7F3;
  794. }
  795. .edit-botton{
  796. width: 100rpx;
  797. height: 48rpx;
  798. line-height: 48rpx;
  799. color: #fff;
  800. font-size: 28rpx;
  801. margin-right: 20rpx;
  802. border-radius: 10rpx;
  803. background: #5A9EE9;
  804. text-align: center;
  805. }
  806. .del-botton{
  807. width: 100rpx;
  808. height: 48rpx;
  809. line-height: 48rpx;
  810. color: #fff;
  811. font-size: 28rpx;
  812. margin-right: 20rpx;
  813. border-radius: 10rpx;
  814. background: #F27C85;
  815. text-align: center;
  816. }
  817. .color-white{
  818. color: #808080;
  819. font-size: 40rpx;
  820. line-height: 60rpx;
  821. }
  822. .search-box{
  823. padding-left: 20rpx;
  824. padding-right: 20rpx;
  825. padding-top: 20rpx;
  826. margin-top: 20rpx;
  827. width: 100%;
  828. border-radius: 25rpx;
  829. border-radius: 25rpx;
  830. background: #fff;
  831. box-shadow: 0px 8px 16px 2px rgba(101, 101, 101, 0.2);
  832. padding-bottom: 30rpx;
  833. display: flex;
  834. flex-wrap: wrap;
  835. }
  836. .search-box1{
  837. display: flex;
  838. }
  839. .input-box{
  840. background: #fff;
  841. height: 65rpx;
  842. width: 640rpx;
  843. display: flex;
  844. align-items: center;
  845. border-radius: 30rpx;
  846. padding-left: 30rpx;
  847. margin-right: 20rpx;
  848. }
  849. .input-boxinput{
  850. height: 75rpx;
  851. font-size: 15rpx;
  852. }
  853. .choose-box{
  854. background: #fff;
  855. width: 325rpx;
  856. border-radius: 23rpx;
  857. height: 70rpx;
  858. display: flex;
  859. align-items: center;
  860. justify-content: center;
  861. margin-right: 20rpx;
  862. border: 1rpx solid #808080;
  863. }
  864. .choose-box2{
  865. background: #fff;
  866. width: 100%;
  867. border-radius: 23rpx;
  868. height: 70rpx;
  869. display: flex;
  870. padding-left: 29rpx;
  871. align-items: center;
  872. border: 1rpx solid #808080;
  873. }
  874. .choose-box3{
  875. display: flex;
  876. }
  877. .choose-boxp{
  878. font-size: 32rpx;
  879. width: 80rpx;
  880. }
  881. .fixed-bottom-right {
  882. padding: 20rpx;
  883. position: fixed;
  884. bottom: 20px; /* 距离底部的距离 */
  885. right: 20px; /* 距离右侧的距离 */
  886. }
  887. .tabs {
  888. display: flex;
  889. justify-content: space-around;
  890. margin-bottom: 20px;
  891. }
  892. .tab-item {
  893. padding: 3px 3px;
  894. cursor: pointer;
  895. transition: all 0.3s;
  896. }
  897. .tab-item.active {
  898. color: #66b1ff;
  899. border-bottom: 2px solid #66b1ff;
  900. }
  901. .tab-content {
  902. padding: 20px;
  903. }
  904. .tab-item-content {
  905. display: none;
  906. }
  907. .tab-item-content.v-if {
  908. display: block;
  909. }
  910. /* 返回 */
  911. .item-img {
  912. width: 160rpx;
  913. height: 160rpx;
  914. }
  915. .custom-header {
  916. display: flex;
  917. align-items: center;
  918. justify-content: center;
  919. padding: 10px;
  920. width: 100%;
  921. }
  922. .is-back {
  923. position: relative;
  924. }
  925. .back-container {
  926. position: absolute;
  927. left: 10px;
  928. cursor: pointer;
  929. }
  930. .back-text {
  931. color: white; /* 返回按钮文本颜色 */
  932. }
  933. .back-text {
  934. color: white; /* 返回按钮文本颜色 */
  935. }
  936. .content-container {
  937. flex: 1;
  938. text-align: center;
  939. }
  940. .content-text {
  941. color: white; /* 标题文本颜色 */
  942. font-weight: bold;
  943. }
  944. /* 背景颜色 */
  945. .bg-blue {
  946. background-color: #4285f4; /* 假设这是一个蓝色背景 */
  947. }
  948. </style>