historAllVisit.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
  1. <template>
  2. <div class="bgcolor historAllVisit">
  3. <div class="navBarTOP">
  4. <!-- 顶部条-->
  5. <van-nav-bar class="navBar" title="历史拜访" left-arrow @click-left="onClickLeft" />
  6. <div class="searcTime">
  7. <van-row class="serchInput">
  8. <van-col span="12">
  9. <van-cell
  10. class="monthNow selectcell"
  11. :title="companyName"
  12. is-link
  13. arrow-direction="down"
  14. @click="regionClick" />
  15. </van-col>
  16. <van-col span="12">
  17. <van-cell
  18. class="monthNow selectcell"
  19. :title="regionName"
  20. is-link
  21. @click="SalesRegionClick"
  22. arrow-direction="down" />
  23. </van-col>
  24. <van-col span="12">
  25. <van-cell
  26. class="monthNow selectcell"
  27. :title="deptName"
  28. is-link
  29. @click="SalesDepartmentClick"
  30. arrow-direction="down" />
  31. </van-col>
  32. <van-col span="12">
  33. <van-cell
  34. class="monthNow selectcell"
  35. :title="userName"
  36. is-link
  37. @click="StaffClick"
  38. arrow-direction="down" />
  39. </van-col>
  40. <van-col span="12">
  41. <div class="monthNow" @click="startTimeshow = true">
  42. <span class="month">{{ startTime }}</span>
  43. <van-icon class="CalendarIcon" :name="timeico" />
  44. </div>
  45. </van-col>
  46. <van-col span="12">
  47. <div class="monthNow" @click="endTimeshow = true">
  48. <span class="month">{{ endTime }}</span>
  49. <van-icon class="CalendarIcon" :name="timeico" />
  50. </div>
  51. </van-col>
  52. </van-row>
  53. </div>
  54. <div class="searchDiv">
  55. <van-search v-model="storeName" show-action placeholder="搜索名称/编号/地址/拜访人">
  56. <template #action>
  57. <div @click="onSearch">搜索</div>
  58. </template>
  59. </van-search>
  60. </div>
  61. <div class="lineGrey"></div>
  62. <div v-if="refreshTotal" class="refreshBtn" @click="refresh">检测到 {{ refreshTotal }} 条更新,点击刷新</div>
  63. <div v-if="refreshTotal" class="lineGrey"></div>
  64. </div>
  65. <!-- 主体内容-->
  66. <div class="container" :style="{ 'margin-top': refreshTotal ? '300px' : '262px' }">
  67. <van-list
  68. class="myList1"
  69. v-model="loading"
  70. :finished="finished"
  71. finished-text="没有更多了"
  72. @load="onLoad">
  73. <div v-if="list.length > 0">
  74. <div class="cellcontent" v-for="(item, index) in list" :key="index">
  75. <van-cell>
  76. <div class="card" style="position: relative" @click="detilsFn(item)">
  77. <span v-if="item.visitSource == 2" class="stateAbnormal">异常拜访</span>
  78. <!--<span v-if="item.visitModel==5" class="state">偏差过大</span>-->
  79. <span v-if="item.visitSource == 1" class="state">正常拜访</span>
  80. <div class="title">
  81. <span>{{ item.storeName }}</span> (<span style="color: #0057ba">{{
  82. item.storeCode
  83. }}</span
  84. >)
  85. </div>
  86. <div class="info">拜访人:{{ item.nickName }}</div>
  87. <div class="info">
  88. 拜访时间:{{ item.visitsTime }}
  89. <span class="textRight" v-if="item.status == '1' && item.taskId == null"
  90. >审批中</span
  91. >
  92. <span
  93. class="textRight"
  94. v-if="item.status == '1' && item.taskId != null"
  95. style="color: red"
  96. >退回修改</span
  97. >
  98. <span class="textRight" style="color: #07c160" v-if="item.status == 2"
  99. >审批完成</span
  100. >
  101. <span class="textRight" v-if="item.status == '3'" style="color: red">拒绝</span>
  102. </div>
  103. <div class="info" v-if="item.dwellTime">拜访时长:{{ item.dwellTime }}</div>
  104. <div class="info">地址:{{ item.addressLine }}</div>
  105. </div>
  106. <!-- 潜在店不显示经销商 -->
  107. <template v-if="item.sfaStoreType.type != 'qzd'">
  108. <!-- 分销店 -->
  109. <template
  110. v-if="
  111. item.sfaStoreType &&
  112. item.sfaStoreType.type == 'fxd' &&
  113. item.sfaStoreChainsContactList
  114. ">
  115. <div class="info">
  116. 经销商:
  117. <div
  118. class="TCFXListItem"
  119. v-for="(item, index) in item.sfaStoreChainsContactList">
  120. <el-popover
  121. popper-class="zpover zpoverStoreztype"
  122. placement="bottom-start"
  123. trigger="click">
  124. <div>
  125. <div>{{ item.chainCode }}</div>
  126. <div>{{ item.chainName }}</div>
  127. </div>
  128. <div slot="reference" :key="index">
  129. {{ item.categoryDescribe }}
  130. </div>
  131. </el-popover>
  132. </div>
  133. </div>
  134. </template>
  135. <template v-else>
  136. <div class="info">经销商:{{ item.chainName }}</div>
  137. </template>
  138. </template>
  139. </van-cell>
  140. <div class="lineGrey"></div>
  141. </div>
  142. </div>
  143. </van-list>
  144. <!-- <p style="text-align: center;color: #ccc;font-size: 12px;" v-if="list.length!=0">&#45;&#45;已经到底了&#45;&#45;</p>-->
  145. <!-- <van-empty description="&#45;&#45;已经到底了&#45;&#45;" v-if="list.length==0"/>-->
  146. </div>
  147. <van-popup v-model="startTimeshow" position="bottom" :style="{ height: '30%' }">
  148. <van-datetime-picker
  149. v-model="startcurrentDate"
  150. type="date"
  151. title="开始日期"
  152. :min-date="minDate"
  153. :max-date="startmaxDate"
  154. @confirm="dateeconfirm"
  155. @cancel="startTimeshow = false" />
  156. </van-popup>
  157. <van-popup v-model="endTimeshow" position="bottom" :style="{ height: '50%' }">
  158. <van-datetime-picker
  159. v-model="currentDate"
  160. type="date"
  161. title="开始日期"
  162. :min-date="endminDate"
  163. :max-date="maxDate"
  164. @confirm="endTimeconfirm"
  165. @cancel="endTimeshow = false" />
  166. </van-popup>
  167. <van-popup v-model="RegionShow" capture position="bottom">
  168. <van-picker
  169. show-toolbar
  170. :columns="companyList"
  171. value-key="deptName"
  172. @confirm="onregionConfirm"
  173. @cancel="RegionShow = false" />
  174. </van-popup>
  175. <van-popup v-model="SalesRegionShow" capture position="bottom">
  176. <van-picker
  177. show-toolbar
  178. :columns="regionList"
  179. value-key="deptName"
  180. @confirm="onSalesRegionConfirm"
  181. @cancel="SalesRegionShow = false" />
  182. </van-popup>
  183. <van-popup v-model="SalesDepartmentShow" capture position="bottom">
  184. <van-picker
  185. show-toolbar
  186. :columns="deptList"
  187. value-key="deptName"
  188. @confirm="onSalesDepartmentConfirm"
  189. @cancel="SalesDepartmentShow = false" />
  190. </van-popup>
  191. <van-popup v-model="StaffShow" capture position="bottom">
  192. <van-picker
  193. show-toolbar
  194. :columns="userList"
  195. @confirm="onStaffConfirm"
  196. value-key="nickName"
  197. @cancel="StaffShow = false" />
  198. </van-popup>
  199. </div>
  200. </template>
  201. <script>
  202. import { getVisits, getvisitDeptInfo, getListTotal } from '@/api/index';
  203. import timeico from '@/assets/Icon/datatims.png';
  204. export default {
  205. name: 'index.vue',
  206. data() {
  207. return {
  208. latestUpdateTime:null,
  209. refreshTotal:0,
  210. timeico: timeico,
  211. defaultDate: new Date(),
  212. searchValue: '',
  213. calendarShow: '',
  214. monthNames: [
  215. '-01',
  216. '-02',
  217. '-03',
  218. '-04',
  219. '-05',
  220. '-06',
  221. '-07',
  222. '-08',
  223. '-09',
  224. '-10',
  225. '-11',
  226. '-12',
  227. ],
  228. calendarIsshow: false,
  229. tabVal: 'insidePlan',
  230. list: [],
  231. loading: false,
  232. finished: true,
  233. listActive: null,
  234. query: '',
  235. show: false,
  236. minDate: new Date(2022, 0, 1),
  237. maxDate: new Date(),
  238. currentDate: new Date(),
  239. startcurrentDate: new Date(),
  240. endminDate: new Date(),
  241. startmaxDate: new Date(),
  242. endTime: '',
  243. startTime: '',
  244. endTimeshow: false,
  245. startTimeshow: false,
  246. storeName: '',
  247. companyName: '全部公司',
  248. deptName: '全部销售部',
  249. regionName: '全部大区',
  250. userName: '全部业务员',
  251. companyCode: '',
  252. deptCode: '',
  253. regionCode: '',
  254. userCode: '',
  255. companyList: [],
  256. deptList: [],
  257. regionList: [],
  258. userList: [],
  259. RegionShow: false,
  260. SalesRegionShow: false,
  261. SalesDepartmentShow: false,
  262. StaffShow: false,
  263. deptForm: { type: '', parentId: '' },
  264. pageNum: 1, // 当前页码 int类型
  265. pageSize: 10, // 当前每页条数 int类型
  266. userDeptLevel: null,
  267. };
  268. },
  269. activated() {
  270. if(this.latestUpdateTime!=null){
  271. this.getListTotalFn();
  272. }
  273. // setTimeout(() => {
  274. // this.onSearch();
  275. // }, 1000);
  276. },
  277. created() {
  278. this.info();
  279. this.userList = [];
  280. this.pageNum = 1;
  281. this.list = [];
  282. // powerGrade:等级(1-销售员 2-销售部主管 3-大区主管 4-区域公司总经理 5-DIY公司)
  283. this.powerGrade = localStorage.getItem('powerGrade');
  284. // userDeptLevel用户部门等级字段,0-总部,1-公司,2-大区,3-销售部,4-业务员
  285. this.userDeptLevel = localStorage.getItem('userDeptLevel');
  286. this.getDeptInfo('dept');
  287. if (this.userDeptLevel == 0) {
  288. setTimeout(() => {
  289. if (this.$route.query.userCode == undefined) {
  290. this.companyName = this.companyList[0].deptName;
  291. this.companyCode = this.companyList[0].deptId;
  292. }
  293. this.getDeptInfo('dept', 1);
  294. }, 1000);
  295. }
  296. if (this.userDeptLevel == 1) {
  297. setTimeout(() => {
  298. this.getDeptInfo('dept', 1);
  299. }, 1000);
  300. }
  301. if (this.userDeptLevel == 2) {
  302. setTimeout(() => {
  303. this.getDeptInfo('dept', 2);
  304. }, 1000);
  305. }
  306. if (this.userDeptLevel == 3 || this.userDeptLevel == 4) {
  307. setTimeout(() => {
  308. this.getDeptInfo('user');
  309. }, 2000);
  310. }
  311. this.onSearch();
  312. },
  313. methods: {
  314. refresh(){
  315. this.refreshTotal = 0;
  316. this.onSearch();
  317. },
  318. getListTotalFn(){
  319. getListTotal({
  320. startTime: this.startTime + ' 00:00:00',
  321. stopTime: this.endTime + ' 24:00:00',
  322. storeRequest: this.storeName.trim(),
  323. companyId: this.companyCode,
  324. regionId: this.regionCode,
  325. userId: this.userCode,
  326. deptId: this.deptCode,
  327. queryStartTime:this.latestUpdateTime
  328. }).then((res) => {
  329. if (res.code == 200) {
  330. this.refreshTotal = res.data;
  331. }
  332. });
  333. },
  334. onLoad() {
  335. // this.loading = false;
  336. this.getVisitsListFn();
  337. },
  338. info() {
  339. this.query = this.$route.query;
  340. this.startTime = this.getDay(-7);
  341. this.startcurrentDate = new Date(this.getDay(-7));
  342. this.endTime = this.parseTime(new Date(), '{y}-{m}-{d}');
  343. this.endminDate = new Date(this.getDay(-7));
  344. },
  345. detilsFn(val) {
  346. console.log(val.id);
  347. this.$router.push({
  348. path: '/historicalDetails',
  349. query: {
  350. visitId: val.id,
  351. storeId: val.storeId,
  352. storeCode: val.storeCode,
  353. taskId: val.taskId,
  354. userId: val.userId,
  355. storeCategory: val.storeCategory,
  356. },
  357. });
  358. },
  359. timeBefore7(date) {
  360. if (!date) {
  361. date = new Date();
  362. }
  363. var y = date.getFullYear();
  364. var m = date.getMonth() + 1;
  365. var d = date.getDate() - 6;
  366. if (d < 0) {
  367. m = date.getMonth();
  368. var d1 = new Date(y, m, 0);
  369. var d2 = d1.getDate();
  370. return y + '/' + (m < 10 ? '0' + m : m) + '/' + (d2 + d);
  371. } else {
  372. return y + '/' + (m < 10 ? '0' + m : m) + '/' + (d < 10 ? '0' + d : d);
  373. }
  374. },
  375. getDay(day) {
  376. var today = new Date();
  377. var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
  378. today.setTime(targetday_milliseconds); //注意,这行是关键代码
  379. var tYear = today.getFullYear();
  380. var tMonth = today.getMonth();
  381. var tDate = today.getDate();
  382. tMonth = this.doHandleMonth(tMonth + 1);
  383. tDate = this.doHandleMonth(tDate);
  384. return tYear + '-' + tMonth + '-' + tDate;
  385. },
  386. doHandleMonth(month) {
  387. var m = month;
  388. if (month.toString().length == 1) {
  389. m = '0' + month;
  390. }
  391. return m;
  392. },
  393. dateeconfirm() {
  394. this.startTimeshow = false;
  395. this.startTime = this.parseTime(this.startcurrentDate, '{yy}-{mm}-{dd}');
  396. this.endminDate = new Date(this.startcurrentDate);
  397. this.onSearch();
  398. },
  399. endTimeconfirm() {
  400. this.endTimeshow = false;
  401. this.endTime = this.parseTime(this.currentDate, '{yy}-{mm}-{dd}');
  402. this.startmaxDate = new Date(this.currentDate);
  403. this.onSearch();
  404. },
  405. onClickLeft() {
  406. this.$router.go(-1);
  407. },
  408. onSearch() {
  409. this.pageNum = 1;
  410. this.list = [];
  411. this.getVisitsListFn();
  412. },
  413. getVisitsListFn() {
  414. let loading1 = this.$toast.loading({
  415. duration: 0,
  416. message: '数据获取中...',
  417. forbidClick: true,
  418. });
  419. if (this.refreshing) {
  420. this.list = [];
  421. this.refreshing = false;
  422. }
  423. getVisits({
  424. startTime: this.startTime + ' 00:00:00', //
  425. stopTime: this.endTime + ' 24:00:00', //
  426. storeRequest: this.storeName.trim(),
  427. pageNum: this.pageNum,
  428. pageSize: this.pageSize,
  429. companyId: this.companyCode,
  430. regionId: this.regionCode,
  431. userId: this.userCode,
  432. deptId: this.deptCode,
  433. }).then((res) => {
  434. loading1.clear();
  435. if (res.code == 200) {
  436. this.loading = false;
  437. this.latestUpdateTime = res.dataTime;
  438. this.list = this.list.concat(res.data);
  439. if (this.list.length >= res.total) {
  440. this.finished = true;
  441. } else {
  442. this.finished = false;
  443. }
  444. this.pageNum = this.pageNum + 1;
  445. } else {
  446. this.$toast.fail(res.msg);
  447. }
  448. });
  449. },
  450. regionClick() {
  451. // if(this.powerGrade>4){
  452. this.RegionShow = true;
  453. // }
  454. },
  455. SalesRegionClick(val) {
  456. // if(this.powerGrade>3){
  457. this.SalesRegionShow = true;
  458. // }
  459. },
  460. SalesDepartmentClick() {
  461. // if(this.powerGrade>2){
  462. this.SalesDepartmentShow = true;
  463. // }
  464. },
  465. StaffClick() {
  466. this.StaffShow = true;
  467. },
  468. StartTimeClick() {
  469. this.StartTimeShow = true;
  470. },
  471. onregionConfirm(val) {
  472. this.RegionShow = false;
  473. this.companyName = val.deptName;
  474. this.companyCode = val.deptId;
  475. this.regionName = '全部大区';
  476. this.regionCode = '';
  477. this.deptName = '全部销售部';
  478. this.deptCode = '';
  479. this.userName = '全部业务员';
  480. this.userCode = '';
  481. this.getDeptInfo('dept', 1);
  482. },
  483. onSalesRegionConfirm(val) {
  484. this.SalesRegionShow = false;
  485. this.regionName = val.deptName;
  486. this.regionCode = val.deptId;
  487. if (val.deptId != '') {
  488. this.getDeptInfo('dept', 2);
  489. }
  490. this.deptName = '全部销售部';
  491. this.deptCode = '';
  492. this.userName = '全部业务员';
  493. this.userCode = '';
  494. this.userList = [];
  495. },
  496. onSalesDepartmentConfirm(val) {
  497. this.SalesDepartmentShow = false;
  498. this.deptName = val.deptName;
  499. this.deptCode = val.deptId;
  500. if (val.deptId != '') {
  501. this.getDeptInfo('user');
  502. }
  503. this.userName = '全部业务员';
  504. this.userCode = '';
  505. },
  506. onStaffConfirm(val) {
  507. this.StaffShow = false;
  508. this.userName = val.nickName;
  509. this.userCode = val.userId;
  510. },
  511. getDeptInfo(type, grade) {
  512. this.deptForm.type = type;
  513. if (type == 'dept') {
  514. if (grade == '1') {
  515. this.deptForm.parentId = this.companyCode;
  516. } else if (grade == '2') {
  517. this.deptForm.parentId = this.regionCode;
  518. } else {
  519. this.deptForm.type = '';
  520. this.deptForm.parentId = '';
  521. }
  522. } else if (type == 'user') {
  523. this.deptForm.parentId = this.deptCode;
  524. }
  525. getvisitDeptInfo(this.deptForm).then((res) => {
  526. if (type == 'dept') {
  527. if (grade == '1') {
  528. if (res.data.region != null) {
  529. this.regionList = [{ deptName: '全部大区', deptId: '' }].concat(res.data.region);
  530. }
  531. } else if (grade == '2') {
  532. if (res.data.dept != null) {
  533. this.deptList = [{ deptName: '全部销售部', deptId: '' }].concat(res.data.dept);
  534. }
  535. } else {
  536. if (this.userDeptLevel == 0) {
  537. this.companyList = [{ deptName: '全部公司', deptId: '' }].concat(res.data.company);
  538. } else {
  539. this.companyList = res.data.company;
  540. }
  541. if (this.$route.query.userCode == undefined) {
  542. this.companyName = res.data.company[0].deptName;
  543. this.companyCode = res.data.company[0].deptId;
  544. }
  545. if (res.data.dept != null) {
  546. this.deptName = res.data.dept[0].deptName;
  547. this.deptCode = res.data.dept[0].deptId;
  548. this.deptList = res.data.dept;
  549. }
  550. if (res.data.region != null) {
  551. this.regionName = res.data.region[0].deptName;
  552. this.regionCode = res.data.region[0].deptId;
  553. this.regionList = res.data.region;
  554. }
  555. if (res.data.user != null) {
  556. this.userList = res.data.user;
  557. this.userCode = '';
  558. }
  559. }
  560. } else if (type == 'user') {
  561. if (res.data.user != null) {
  562. this.userList = [{ nickName: '全部业务员', userId: '' }].concat(res.data.user);
  563. }
  564. }
  565. });
  566. },
  567. },
  568. };
  569. </script>
  570. <style lang="scss">
  571. .refreshBtn{
  572. display: flex;
  573. justify-content: center;
  574. align-items: center;
  575. cursor: pointer;
  576. width: 100%;
  577. color: #ff976a;
  578. padding: 5px;
  579. font-size: 14px;
  580. background-color: #fff;
  581. }
  582. .searchDiv {
  583. .van-search {
  584. background: #fff;
  585. }
  586. .van-search__action {
  587. font-size: 14px;
  588. color: #1989fa;
  589. font-weight: bold;
  590. background: #f5f5f5;
  591. border-bottom-right-radius: 60px;
  592. border-top-right-radius: 60px;
  593. border: 1px solid #ccc;
  594. padding: 0 20px;
  595. }
  596. .van-search--show-action {
  597. padding-right: 12px;
  598. }
  599. .van-search__content {
  600. border: 1px solid #ccc;
  601. border-bottom-left-radius: 60px;
  602. border-top-left-radius: 60px;
  603. background: #f5f5f5;
  604. border-right: 0;
  605. }
  606. }
  607. .myList1 {
  608. .van-cell {
  609. padding: 10px 16px;
  610. &:after {
  611. border-bottom: none;
  612. }
  613. }
  614. }
  615. .historAllVisit {
  616. .TCFXListItem {
  617. display: inline-block;
  618. border: 1px solid #ccc;
  619. padding: 3px 5px;
  620. margin: 0 5px;
  621. border-radius: 6px;
  622. }
  623. }
  624. </style>
  625. <style lang="scss" scoped>
  626. .bgcolor {
  627. background-color: #f5f5f5;
  628. }
  629. .container {
  630. padding-bottom: 50px;
  631. }
  632. .monthNow {
  633. height: 34px;
  634. line-height: 34px;
  635. text-align: left;
  636. font-weight: bold;
  637. padding: 0 16px;
  638. box-sizing: border-box;
  639. background-color: #f1f1f1;
  640. border-radius: 20px;
  641. margin: 8px;
  642. border: 1px solid #ccc;
  643. position: relative;
  644. color: #333;
  645. font-size: 14px;
  646. .van-cell__left-icon,
  647. .van-cell__right-icon {
  648. line-height: 34px;
  649. }
  650. .CalendarIcon {
  651. float: right;
  652. font-size: 24px;
  653. color: #1989fa;
  654. margin-top: 6px;
  655. position: absolute;
  656. right: 12px;
  657. img {
  658. height: 0.8em;
  659. }
  660. }
  661. }
  662. .serchInput {
  663. padding: 0 4px;
  664. }
  665. .selectcell {
  666. width: 92%;
  667. }
  668. .card {
  669. box-sizing: border-box;
  670. .title {
  671. font-size: 16px;
  672. font-weight: bold;
  673. color: #333;
  674. line-height: 30px;
  675. width: 78%;
  676. }
  677. .info {
  678. font-size: 14px;
  679. color: #909090;
  680. line-height: 26px;
  681. }
  682. }
  683. /**/
  684. .searcTime {
  685. background-color: white;
  686. }
  687. .btnbox {
  688. padding: 0 16px;
  689. }
  690. .cellcontent .centerBtn {
  691. margin: 0 auto 10px;
  692. display: block;
  693. width: 92%;
  694. border-radius: 5px;
  695. }
  696. .statstext {
  697. background-color: #1c84c6;
  698. position: absolute;
  699. right: 0;
  700. top: 16px;
  701. padding: 2px 6px 2px 12px;
  702. border-bottom-left-radius: 60px;
  703. border-top-left-radius: 60px;
  704. color: #fff;
  705. }
  706. .stateAbnormal {
  707. position: absolute;
  708. right: 0;
  709. top: 0;
  710. color: #fff;
  711. background-color: red;
  712. border-radius: 5px;
  713. display: inline-block;
  714. padding: 0 5px;
  715. }
  716. .state {
  717. position: absolute;
  718. right: 0;
  719. top: 0;
  720. color: #fff;
  721. background-color: #1c84c6;
  722. border-radius: 5px;
  723. display: inline-block;
  724. padding: 0 5px;
  725. }
  726. .navBarTOP {
  727. position: fixed;
  728. width: 100%;
  729. z-index: 2;
  730. top: 0;
  731. }
  732. .cellcontent .textRight {
  733. float: right;
  734. color: #0057ba;
  735. }
  736. </style>