index.vue 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405
  1. <template>
  2. <view class="basic-data">
  3. <view class="basic-top">
  4. <view class="service_header_left">
  5. <view class="btn" :class="isSelect===0?'active':''" @click="handleData(0)">车辆管理</view>
  6. <view class="btn" :class="isSelect===2?'active':''" @click="handleData(2)">电池管理</view>
  7. <view class="btn" :class="isSelect===1?'active':''" @click="handleData(1)" v-if="$storage.getJson('userId')==1">站控配置</view>
  8. </view>
  9. <view class="basci-header-right">
  10. <view class="times">最近同步时间:{{synchronizationTime || '-'}}</view>
  11. <view class="sync-btn" @click="syncCloud">云端同步</view>
  12. <!-- <view class="title">车辆管理</view> -->
  13. </view>
  14. </view>
  15. <view v-if="isSelect===0">
  16. <view class="basic-search">
  17. <uni-forms ref="form" :modelValue="queryParams" class="searchForm">
  18. <uni-forms-item label="车牌号码:" label-width="72px" label-align="right" name="vehiclePlate">
  19. <uni-easyinput type="text" v-model="queryParams.vehiclePlate" placeholder="请输入车牌号码" />
  20. </uni-forms-item>
  21. <uni-forms-item label="车辆识别码:" label-width="128px" label-align="right" name="vehicleVin">
  22. <uni-easyinput type="text" v-model="queryParams.vehicleVin" placeholder="请输入车辆识别码" />
  23. </uni-forms-item>
  24. <uni-forms-item label="来源:" label-width="80px" label-align="right">
  25. <uni-data-select v-model="queryParams.source" :localdata="formSelect" style="width: 100px;"
  26. @change="change"></uni-data-select>
  27. </uni-forms-item>
  28. </uni-forms>
  29. <view class="search-btn" @click="handleQuery">查询</view>
  30. <view class="reset-btn" @click="resetForm">重置</view>
  31. </view>
  32. <view class="basic-table">
  33. <!-- <view class="search-btn marginZero" @click="OpenAddDrawer">新增</view> -->
  34. <baseDateTable @DelCarData="DelCarData" @EditCarData="EditCarData" @bindHandle="bindHandle" :isBind="true" :headerFixed="true"
  35. :showLoadMore="showLoadMore" :loadMore="loadMore" :columnFixed=1 :contents="datalist" :headers="carheaders"
  36. @onPullup="pullup">
  37. </baseDateTable>
  38. </view>
  39. </view>
  40. <view v-else-if="isSelect===1">
  41. <view class="basic-zkset">
  42. <view class="setTitle">配置管理:</view>
  43. <view class="setCont">
  44. <uni-forms ref="formSet" :modelValue="queryParamsSet" class="formSet">
  45. <uni-forms-item label="充电机温度(°C):" label-width="116px" label-align="left">
  46. <uni-easyinput type="text" class="tempIpt" @blur="regTemp" :maxlength="3" placeholder="充电机温度" :clearable="false" v-model="queryParamsSet.temp" />
  47. <view class="search-temp" @click="resetTemp">恢复默认</view>
  48. </uni-forms-item>
  49. <uni-forms-item label="换电站连接方式:" label-width="128px" label-align="right">
  50. <uni-data-checkbox v-model="connWayArr" multiple :localdata="connWays" />
  51. </uni-forms-item>
  52. <uni-forms-item label="中转仓:" label-width="80px" label-align="right">
  53. <uni-data-checkbox v-model="queryParamsSet.transitWarehouse" :localdata="transitWarehouse" />
  54. </uni-forms-item>
  55. <uni-forms-item v-if="queryParamsSet.transitWarehouse==1">
  56. <uni-easyinput type="text" class="tempIpt" :clearable="false" :maxlength="2" v-model.trim="queryParamsSet.positionNumber" placeholder="中转仓仓位号" />
  57. </uni-forms-item>
  58. <view class="search-btn" @click="handleSave">保存</view>
  59. </uni-forms>
  60. </view>
  61. </view>
  62. <view class="basic-table">
  63. <view class="search-temp marginZero" @click="AddCangDrawer">新增仓位</view>
  64. <cangDateTable @DelCangData="DelCangData" @EditCangData="EditCangData" :isEdit="1" :headerFixed="true"
  65. :showLoadMore="showLoadMore" :loadMore="loadMore" :contents="dataCanglist" :headers="headers"
  66. @onPullup="pullCangup">
  67. </cangDateTable>
  68. </view>
  69. </view>
  70. <view v-else>
  71. <view class="basic-search">
  72. <uni-forms ref="form" :modelValue="batteryParams" class="searchForm">
  73. <uni-forms-item label="电池编号:" label-width="72px" label-align="right" name="sn">
  74. <uni-easyinput type="text" v-model="batteryParams.sn" placeholder="请输入电池编号" />
  75. </uni-forms-item>
  76. </uni-forms>
  77. <view class="search-btn" @click="handleBatteryQuery">查询</view>
  78. <view class="reset-btn" @click="resetBatteryForm">重置</view>
  79. </view>
  80. <view class="basic-table">
  81. <view class="search-temp marginZero" @click="AddBatteryDrawer">新增</view>
  82. <baseDateTable @DelBatteryData="DelBatteryData" @EditBatteryData="EditBatteryData" :isEdit="2" :headerFixed="true"
  83. :showLoadMore="showLoadMore" :loadMore="loadMore" :columnFixed=1 :contents="dataBatterylist" :headers="batteryheaders"
  84. @onPullup="pullBatteryup">
  85. </baseDateTable>
  86. </view>
  87. </view>
  88. <!--右侧抽屉 -->
  89. <uni-drawer ref="BasicDrawer" mode="right" :width="400" :mask-click="true">
  90. <scroll-view style="height: 100%;" scroll-y="true" v-if="isSelect===0">
  91. <PublicDrawer :flag="false" :title="dialogType=='new'?'新增车辆':'编辑车辆'" @closeDrawer="closeDrawer"
  92. @AddCarinfo="AddCarinfo" @EditCarInfo="EditCarInfo">
  93. <view class="drawer_main">
  94. <view>
  95. <BasicDrawer :basicFrom="basicFrom" :range="range" @redHandle="redHandle"></BasicDrawer>
  96. </view>
  97. </view>
  98. </PublicDrawer>
  99. </scroll-view>
  100. <scroll-view style="height: 100%;" scroll-y="true" v-else-if="isSelect===1">
  101. <PublicDrawer :flag="false" :title="dialogCangType=='new'?'新增仓位':'编辑仓位'" @closeDrawer="closeDrawer"
  102. @AddCanginfo="AddCanginfo" @EditCangInfo="EditCangInfo">
  103. <view class="drawer_main">
  104. <view>
  105. <ChargeDrawer ref="addSetForm" @changeChargerId="changeChargerId" :setForm="setForm" :rangeCharge="rangeCharge" :rangePower="rangePower" :rules="rules"></ChargeDrawer>
  106. </view>
  107. </view>
  108. </PublicDrawer>
  109. </scroll-view>
  110. <scroll-view style="height: 100%;" scroll-y="true" v-else>
  111. <PublicDrawer :flag="false" :title="dialogBatteryType=='new'?'新增电池':'编辑电池'" @closeDrawer="closeDrawer"
  112. @AddBatteryinfo="AddBatteryinfo" @EditBatteryInfo="EditBatteryInfo">
  113. <view class="drawer_main">
  114. <view>
  115. <BatteryDrawer ref="addBatteryForm" :BatteryForm="BatteryForm" :rules="batteryRules"></BatteryDrawer>
  116. </view>
  117. </view>
  118. </PublicDrawer>
  119. </scroll-view>
  120. </uni-drawer>
  121. <uni-drawer ref="BindDrawer" mode="right" :width="400" :mask-click="true">
  122. <scroll-view style="height: 100%;" scroll-y="true" v-if="isSelect===0">
  123. <PublicDrawer :flag="false" :title="'绑定FRID'" @closeDrawer="closeDrawer" @BindFRIDHandle="BindFRIDHandle">
  124. <view class="drawer_main">
  125. <view>
  126. <BindDrawer :basicFrom="basicFrom" :range="range" @redHandle="redHandle" @inputHandle="inputHandle"></BindDrawer>
  127. </view>
  128. </view>
  129. </PublicDrawer>
  130. </scroll-view>
  131. </uni-drawer>
  132. <!-- 右侧抽屉结束 -->
  133. <!-- 顶部公共提示信息 -->
  134. <uni-popup ref="Exchangepopup" type="message">
  135. <uni-popup-message :type="popupType" :message="popupMessage" :duration="2000"></uni-popup-message>
  136. </uni-popup>
  137. <!-- 顶部提示信息结束-->
  138. </view>
  139. </template>
  140. <script>
  141. import baseDateTable from './baseData-table/baseDateTable'
  142. import cangDateTable from './baseData-table/cangDateTable'
  143. import BasicDrawer from './BasicDrawer'
  144. import BindDrawer from './BindDrawer'
  145. import ChargeDrawer from './ChargeDrawer'
  146. import BatteryDrawer from './BatteryDrawer'
  147. export default {
  148. name: 'BasicData',
  149. components: {
  150. baseDateTable,
  151. cangDateTable,
  152. BasicDrawer,
  153. ChargeDrawer,
  154. BatteryDrawer,
  155. BindDrawer
  156. },
  157. data() {
  158. return {
  159. popupMessage: '成功消息',
  160. popupType: 'success',
  161. formSelect: [{
  162. value: 0,
  163. text: "站控"
  164. },
  165. {
  166. value: 1,
  167. text: "云端"
  168. },
  169. ],
  170. //站控配置
  171. queryParamsSet:{
  172. temp:null,
  173. oneLink:0,//单连:0未启用,1启用
  174. fourLink:0,//四连:0未启用,1启用
  175. transitWarehouse:null,//中转仓:0无中转仓,1有固定中转仓
  176. positionNumber:null,//固定中转仓位号
  177. },
  178. connWayArr:[],
  179. basicFrom: {
  180. id: 0,
  181. CarDistance: null,
  182. CarPlate: undefined,
  183. CarVin: undefined,
  184. state: undefined,
  185. rfidEpc: undefined,
  186. epcFour: undefined,
  187. frid: undefined,
  188. },
  189. //充电机仓位抽屉
  190. setForm:{
  191. chargerId:null,//仓位号
  192. chargerCode:null,//桩编号
  193. isSwap:null,//是否可以换电(0不支持 1支持)
  194. isCheck:null,//连接器类型(-1空架子 0单四连可切换 1单连 4四连)
  195. },
  196. //电池抽屉数据
  197. BatteryForm:{
  198. sn:null,//编号
  199. length:null,//长
  200. width:null,//宽
  201. height:null,//高
  202. weight:null,//重量
  203. },
  204. batteryRules:{
  205. sn:{
  206. rules:[
  207. {
  208. required: true,
  209. errorMessage: '请输入电池编号',
  210. },
  211. ]
  212. },
  213. length:{
  214. rules:[
  215. {
  216. required: true,
  217. errorMessage: '请输入长度',
  218. },
  219. {
  220. validateFunction:function(rule,value,data,callback){
  221. let reg=/^[1-9]\d*$/
  222. if (!reg.test(value)) {
  223. callback('请输入正整数')
  224. }
  225. return true
  226. },
  227. }
  228. ]
  229. },
  230. width:{
  231. rules:[
  232. {
  233. required: true,
  234. errorMessage: '请输入宽度',
  235. },
  236. {
  237. validateFunction:function(rule,value,data,callback){
  238. let reg=/^[1-9]\d*$/
  239. if (!reg.test(value)) {
  240. callback('请输入正整数')
  241. }
  242. return true
  243. },
  244. }
  245. ]
  246. },
  247. height:{
  248. rules:[
  249. {
  250. required: true,
  251. errorMessage: '请输入高度',
  252. },
  253. {
  254. validateFunction:function(rule,value,data,callback){
  255. let reg=/^[1-9]\d*$/
  256. if (!reg.test(value)) {
  257. callback('请输入正整数')
  258. }
  259. return true
  260. },
  261. }
  262. ]
  263. },
  264. weight:{
  265. rules:[
  266. {
  267. required: true,
  268. errorMessage: '请输入重量',
  269. },
  270. {
  271. validateFunction:function(rule,value,data,callback){
  272. let reg=/^[1-9]\d*$/
  273. if (!reg.test(value)) {
  274. callback('请输入正整数')
  275. }
  276. return true
  277. },
  278. }
  279. ]
  280. }
  281. },
  282. rules:{
  283. chargerId:{
  284. rules:[
  285. {
  286. required: true,
  287. errorMessage: '请输入仓位号',
  288. },
  289. {
  290. format: 'number',
  291. errorMessage: '请输入数字'
  292. },
  293. ]
  294. },
  295. chargerCode:{
  296. rules:[
  297. {
  298. required: true,
  299. errorMessage: '请输入桩编号',
  300. },
  301. {
  302. pattern:/^[A-Za-z0-9]+$/,
  303. errorMessage:'请输入正确的桩编号'
  304. }
  305. ]
  306. },
  307. isSwap:{
  308. rules:[
  309. {
  310. required: true,
  311. errorMessage: '请选择是否可换电',
  312. },
  313. ]
  314. },
  315. isCheck:{
  316. rules:[
  317. {
  318. required: true,
  319. errorMessage: '请选择充电连接控制方式',
  320. },
  321. ]
  322. }
  323. },
  324. range: [{
  325. value: 0,
  326. text: "停用"
  327. },
  328. {
  329. value: 1,
  330. text: "启用"
  331. },
  332. ],
  333. //中转仓
  334. transitWarehouse: [{
  335. text: '无中转仓',
  336. value: 0
  337. }, {
  338. text: '有中转仓',
  339. value: 1
  340. }],
  341. //连接方式
  342. connWays: [{
  343. text: '单连',
  344. value: 1
  345. }, {
  346. text: '四连',
  347. value: 4
  348. }],
  349. //是否可换电
  350. rangePower: [{
  351. value: 1,
  352. text: "是"
  353. },
  354. {
  355. value: 0,
  356. text: "否"
  357. },
  358. ],
  359. //是否切换充电
  360. rangeCharge: [{
  361. value: 1,
  362. text: "单连不可切换"
  363. },
  364. {
  365. value: 4,
  366. text: "四连不可切换"
  367. },
  368. {
  369. value: 0,
  370. text: "单四联切换"
  371. },
  372. {
  373. value: -1,
  374. text: "无"
  375. }
  376. ],
  377. datalist: [],//车辆列表
  378. dataCanglist: [],//仓位列表
  379. dataBatterylist: [],//电池列表
  380. queryParams: {
  381. page: 1, //当前页
  382. pageSize: 10, //每页条数
  383. source: undefined, //来源
  384. vehiclePlate: undefined, //车牌号
  385. vehicleVin: undefined, //VIN码
  386. orderByField: 'id', //排序字段
  387. orderByWays: 'desc' //排序方式
  388. },
  389. cangParams: {
  390. page: 1, //当前页
  391. pageSize: 10, //每页条数
  392. orderByField: 'id', //排序字段
  393. orderByWays: 'desc' //排序方式
  394. },
  395. batteryParams: {
  396. page: 1, //当前页
  397. pageSize: 10, //每页条数
  398. orderByField: 'id', //排序字段
  399. orderByWays: 'desc' ,//排序方式
  400. sn:null,//电池编号
  401. },
  402. total: 0, //总条数,
  403. cangTotal: 0, //仓位总条数,
  404. batteryTotal: 0, //电池总条数,
  405. loading: false,
  406. headers: [{
  407. label: '仓位号',
  408. key: 'chargerId',
  409. widtd: 98,
  410. }, {
  411. label: '桩编号',
  412. key: 'chargerCode',
  413. widtd: 315,
  414. }, {
  415. label: '是否可换电',
  416. key: 'isSwap',
  417. widtd: 200,
  418. }, {
  419. label: '充电连接控制方式',
  420. key: 'isCheck',
  421. widtd: 218,
  422. },
  423. {
  424. label: '操作',
  425. key: 'id',
  426. widtd: 118,
  427. },
  428. ],
  429. batteryheaders: [{
  430. label: '电池编号',
  431. key: 'sn',
  432. widtd: 278
  433. }, {
  434. label: '长(cm)',
  435. key: 'length',
  436. widtd: 148
  437. }, {
  438. label: '宽(cm)',
  439. key: 'width',
  440. widtd: 148
  441. },{
  442. label: '高(cm)',
  443. key: 'height',
  444. widtd: 148,
  445. },
  446. {
  447. label: '重量(kg)',
  448. key: 'weight',
  449. widtd: 148,
  450. },
  451. {
  452. label: '操作',
  453. key: 'id',
  454. widtd: 88,
  455. },
  456. ],
  457. //车辆列表
  458. carheaders: [{
  459. label: '车牌号',
  460. key: 'vehiclePlate',
  461. widtd: 130
  462. }, {
  463. label: '车辆识别码(VIN码)',
  464. key: 'vehicleVin',
  465. widtd: 225
  466. }, {
  467. label: 'FRID',
  468. key: 'rfidEpc',
  469. widtd: 255,
  470. }, {
  471. label: '前端电池距离(mm)',
  472. key: 'modelDistance',
  473. widtd: 200
  474. },
  475. {
  476. label: '供电接口',
  477. key: 'link',
  478. widtd: 100,
  479. },
  480. // {
  481. // label: '来源',
  482. // key: 'source',
  483. // widtd: 100,
  484. // },
  485. {
  486. label: '操作',
  487. key: 'id',
  488. widtd: 108,
  489. },
  490. ],
  491. showLoadMore: false,
  492. loadMore: 'more',
  493. dialogType: 'new', // 按钮类型(new、edit)
  494. EditCarForm: {}, //编辑车辆表单数据接收
  495. synchronizationTime:'',//同步时间
  496. isSelect:0,
  497. dialogCangType:'new',
  498. dialogBatteryType:'new',
  499. }
  500. },
  501. mounted() {
  502. this.vehicleList();
  503. this.getsynchronization()
  504. },
  505. methods: {
  506. //充电机温度正则
  507. regTemp(e){
  508. const reg=/^\d*$/
  509. if(!reg.test(e.detail.value) || e.detail.value==0){
  510. this.queryParamsSet.temp=90
  511. }
  512. },
  513. //温度恢复默认
  514. resetTemp(){
  515. this.$http.setTemp(90+'').then((res) => {
  516. if(res.code===0){
  517. this.queryParamsSet.temp=90
  518. this.ExchangeMessage('success','恢复成功!')
  519. }
  520. })
  521. },
  522. //设置温度
  523. handleSettemp(){
  524. this.$http.setTemp(this.queryParamsSet.temp).then((res) => {
  525. if(res.code!==0){
  526. this.ExchangeMessage('error',res.msg)
  527. }else{
  528. this.getCurrentTemp()
  529. }
  530. })
  531. },
  532. //获取站控配置
  533. getStationConfig(){
  534. this.$http.getOtherStation(4+'').then((res) => {
  535. if(res.data.content==1){
  536. this.connWayArr.push(1)
  537. }
  538. });
  539. this.$http.getOtherStation(5+'').then((res) => {
  540. if(res.data.content==1){
  541. this.connWayArr.push(4)
  542. }
  543. });
  544. this.$http.getOtherStation(6+'').then((res) => {
  545. if(res.data.content==1){
  546. this.queryParamsSet.transitWarehouse=1
  547. this.$http.getOtherStation(7+'').then((res) => {
  548. this.queryParamsSet.positionNumber=res.data.content*1
  549. });
  550. }else{
  551. this.queryParamsSet.transitWarehouse=0
  552. }
  553. });
  554. this.getCurrentTemp()
  555. },
  556. //获取温度
  557. getCurrentTemp(){
  558. //获取温度
  559. this.$http.serchTemp().then((res) => {
  560. if(res.code===0){
  561. this.queryParamsSet.temp=res.data*1
  562. }
  563. });
  564. },
  565. //读取frid
  566. redHandle() {
  567. this.$http.getEpc().then((res) => {
  568. if(res.code===0){
  569. let frid = res.data
  570. this.basicFrom.frid=frid.replace(/.{4}$/, '****')
  571. this.basicFrom.rfidEpc=frid
  572. } else {
  573. return this.ExchangeMessage('warn', '未获取FRID卡号')
  574. }
  575. });
  576. },
  577. inputHandle(data) {
  578. console.log(data.toUpperCase(), '000')
  579. this.basicFrom.epcFour = data.toUpperCase()
  580. console.log(this.basicFrom, '333')
  581. },
  582. //保存站控配置
  583. handleSave(){
  584. const reg=/^\d*$/
  585. if(!this.queryParamsSet.temp){
  586. this.ExchangeMessage('warn', '请输入充电机温度!')
  587. return
  588. }
  589. if(this.connWayArr.length===0){
  590. this.ExchangeMessage('warn', '请选择换电站连接方式!')
  591. return
  592. }
  593. if(this.queryParamsSet.transitWarehouse==null){
  594. this.ExchangeMessage('warn', '请选择中转仓!')
  595. return
  596. }
  597. if(this.queryParamsSet.transitWarehouse==1){
  598. if(!this.queryParamsSet.positionNumber){
  599. this.ExchangeMessage('warn', '请输入中转仓仓位号!')
  600. return
  601. }else{
  602. if(!reg.test(this.queryParamsSet.positionNumber) || this.queryParamsSet.positionNumber<=0){
  603. this.ExchangeMessage('warn', '请输入正整数!')
  604. return
  605. }
  606. }
  607. this.queryParamsSet.positionNumber=this.queryParamsSet.positionNumber*1
  608. }else{
  609. this.queryParamsSet.positionNumber=undefined
  610. }
  611. if(this.connWayArr.length===2){
  612. this.queryParamsSet.oneLink=1
  613. this.queryParamsSet.fourLink=1
  614. }else{
  615. if(this.connWayArr[0]===1){
  616. this.queryParamsSet.oneLink=1
  617. this.queryParamsSet.fourLink=0
  618. }else{
  619. this.queryParamsSet.oneLink=0
  620. this.queryParamsSet.fourLink=1
  621. }
  622. }
  623. this.$http.setStation(this.queryParamsSet).then((res) => {
  624. if(res.code === 0){
  625. this.getStationConfig()
  626. this.handleSettemp()
  627. }
  628. this.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '设置成功' : res.msg)
  629. });
  630. },
  631. //切换数据按钮
  632. handleData(num){
  633. this.showLoadMore=false
  634. this.isSelect=num
  635. if(num===0){
  636. this.vehicleList()
  637. }else if(num===1){
  638. this.getStationConfig()
  639. this.encodeList()
  640. }else{
  641. this.batteryList()
  642. }
  643. },
  644. //顶部公共消息提示
  645. ExchangeMessage(type, message) {
  646. this.popupType = type
  647. this.popupMessage = message ? message : '后端接口404错误!'
  648. this.$refs.Exchangepopup.open()
  649. },
  650. //获取最近同步时间
  651. getsynchronization(){
  652. this.$http.getSyncTime().then(res=>{
  653. if(res.code == 0){
  654. this.synchronizationTime = res.data
  655. }
  656. })
  657. },
  658. //删除车辆
  659. DelCarData(id) {
  660. let that = this
  661. uni.showModal({
  662. title: `确认删除车辆信息吗?`,
  663. content: '',
  664. success: function(res) {
  665. if (res.confirm) {
  666. that.$http.delvehicle(id + '')
  667. .then(res => {
  668. if (res.code === 0) {
  669. that.vehicleList()
  670. }
  671. that.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '删除车辆成功' : '删除车辆失败')
  672. }).catch(err => {
  673. console.error(err)
  674. })
  675. } else if (res.cancel) {
  676. return false
  677. //用户点击取消按钮触发
  678. }
  679. }
  680. })
  681. },
  682. //删除充电机仓位
  683. DelCangData(id) {
  684. let that = this
  685. uni.showModal({
  686. title: `确认删除仓位吗?`,
  687. content: '',
  688. success: function(res) {
  689. if (res.confirm) {
  690. that.$http.delEncode(id+'')
  691. .then(res => {
  692. if (res.code === 0) {
  693. that.encodeList()
  694. }
  695. that.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '删除成功' : res.msg)
  696. }).catch(err => {
  697. console.error(err)
  698. })
  699. } else if (res.cancel) {
  700. return false
  701. //用户点击取消按钮触发
  702. }
  703. }
  704. })
  705. },
  706. //删除电池
  707. DelBatteryData(id) {
  708. let that = this
  709. uni.showModal({
  710. title: `确认删除电池信息吗?`,
  711. content: '',
  712. success: function(res) {
  713. if (res.confirm) {
  714. that.$http.delBattery(id+'')
  715. .then(res => {
  716. if (res.code === 0) {
  717. that.batteryList()
  718. }
  719. that.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '删除成功' : res.msg)
  720. }).catch(err => {
  721. console.error(err)
  722. })
  723. } else if (res.cancel) {
  724. return false
  725. //用户点击取消按钮触发
  726. }
  727. }
  728. })
  729. },
  730. // 打开添加车辆抽屉
  731. OpenAddDrawer() {
  732. this.dialogType = 'new'
  733. this.basicFrom = {
  734. id: 0,
  735. CarDistance: null,
  736. CarPlate: undefined,
  737. CarVin: undefined,
  738. state: undefined,
  739. }
  740. this.$refs.BasicDrawer.open();
  741. },
  742. //新增仓位抽屉
  743. AddCangDrawer(){
  744. this.dialogCangType='new'
  745. this.setForm={
  746. cangNum:null,//桩编号
  747. isPower:null,//是否可换电
  748. isCharger:null,//是否切换充电连接
  749. },
  750. this.$refs.BasicDrawer.open()
  751. },
  752. //新增电池抽屉
  753. AddBatteryDrawer(){
  754. this.dialogBatteryType='new'
  755. this.BatteryForm={
  756. sn:null,//编号
  757. length:null,//长
  758. width:null,//宽
  759. height:null,//高
  760. weight:null,//重量
  761. },
  762. this.$refs.BasicDrawer.open()
  763. },
  764. //编辑充电仓位抽屉
  765. EditCangData(row){
  766. this.dialogCangType='edit'
  767. this.$refs.BasicDrawer.open()
  768. this.setForm={...row}
  769. },
  770. //编辑电池抽屉
  771. EditBatteryData(row){
  772. this.dialogBatteryType='edit'
  773. this.$refs.BasicDrawer.open()
  774. this.BatteryForm={...row}
  775. },
  776. //编辑充电仓位请求接口
  777. EditCangInfo() {
  778. this.$refs.addSetForm.$refs.setvalueForm.validate().then(res=>{
  779. const params = {
  780. id: this.setForm.id,
  781. chargerId: this.setForm.chargerId*1,
  782. chargerCode: this.setForm.chargerCode,
  783. isSwap: this.setForm.isSwap,
  784. isCheck: this.setForm.isCheck,
  785. }
  786. this.$http.editEncode(params)
  787. .then(res => {
  788. this.closeDrawer()
  789. this.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '修改成功!' : res.msg)
  790. if (res.code === 0) {
  791. this.encodeList()
  792. }
  793. }).catch(err => {
  794. console.error(err)
  795. })
  796. })
  797. // if (!this.basicFrom.CarDistance || !this.basicFrom.CarPlate || !this.basicFrom.CarVin) {
  798. // this.ExchangeMessage('warn', '请填写完整!')
  799. // } else {
  800. // const params = {
  801. // modelDistance: this.basicFrom.CarDistance,
  802. // vehiclePlate: this.basicFrom.CarPlate,
  803. // vehicleVin: this.basicFrom.CarVin,
  804. // state: this.basicFrom.state * 1,
  805. // id: this.basicFrom.id
  806. // }
  807. // this.$http.Editvehicle(params)
  808. // .then(res => {
  809. // this.closeDrawer()
  810. // this.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.msg)
  811. // if (res.code === 0) {
  812. // this.vehicleList()
  813. // }
  814. // }).catch(err => {
  815. // console.error(err)
  816. // })
  817. // }
  818. },
  819. //编辑电池
  820. EditBatteryInfo() {
  821. this.$refs.addBatteryForm.$refs.valueForm.validate().then(res=>{
  822. const params = {
  823. id: this.BatteryForm.id,
  824. sn: this.BatteryForm.sn,
  825. length: this.BatteryForm.length*1,
  826. width: this.BatteryForm.width*1,
  827. height: this.BatteryForm.height*1,
  828. weight: this.BatteryForm.weight*1,
  829. }
  830. this.$http.editBattery(params)
  831. .then(res => {
  832. this.closeDrawer()
  833. this.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '修改成功!' : res.msg)
  834. if (res.code === 0) {
  835. this.batteryList()
  836. }
  837. }).catch(err => {
  838. console.error(err)
  839. })
  840. })
  841. },
  842. //添加充电仓位请求接口
  843. AddCanginfo() {
  844. this.$refs.addSetForm.$refs.setvalueForm.validate().then(res=>{
  845. const params = {
  846. chargerId: this.setForm.chargerId*1,
  847. chargerCode: this.setForm.chargerCode,
  848. isSwap: this.setForm.isSwap,
  849. isCheck: this.setForm.isCheck,
  850. }
  851. this.$http.addEncode(params)
  852. .then(res => {
  853. this.closeDrawer()
  854. this.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '新增仓位成功' : res.msg)
  855. if (res.code === 0) {
  856. this.encodeList()
  857. }
  858. }).catch(err => {
  859. console.error(err)
  860. })
  861. })
  862. },
  863. //添加电池请求接口
  864. AddBatteryinfo() {
  865. this.$refs.addBatteryForm.$refs.valueForm.validate().then(res=>{
  866. const params = {
  867. sn: this.BatteryForm.sn,
  868. length: this.BatteryForm.length*1,
  869. width: this.BatteryForm.width*1,
  870. height: this.BatteryForm.height*1,
  871. weight: this.BatteryForm.weight*1,
  872. }
  873. this.$http.addBattery(params)
  874. .then(res => {
  875. this.closeDrawer()
  876. this.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '新增电池成功' : res.msg)
  877. if (res.code === 0) {
  878. this.batteryList()
  879. }
  880. }).catch(err => {
  881. console.error(err)
  882. })
  883. })
  884. },
  885. //打开编辑车辆抽屉
  886. EditCarData(row) {
  887. this.dialogType = 'edit'
  888. this.$refs.BasicDrawer.open();
  889. this.basicFrom.CarDistance = row.modelDistance
  890. this.basicFrom.CarPlate = row.vehiclePlate
  891. this.basicFrom.CarVin = row.vehicleVin
  892. this.basicFrom.state = row.state
  893. this.basicFrom.id = row.id
  894. },
  895. //打开绑定frid
  896. bindHandle(row) {
  897. let _that = this
  898. if(row.rfidEpc) {
  899. uni.showModal({
  900. title:`该车已经绑定FRID,是否继续绑定?`,
  901. content:'',
  902. success: function(res) {
  903. if (res.confirm) {
  904. _that.$refs.BindDrawer.open();
  905. _that.basicFrom.CarDistance = row.modelDistance
  906. _that.basicFrom.CarPlate = row.vehiclePlate
  907. _that.basicFrom.CarVin = row.vehicleVin
  908. _that.basicFrom.state = row.state
  909. _that.basicFrom.id = row.id
  910. _that.basicFrom.rfidEpc = row.rfidEpc
  911. _that.basicFrom.frid = row.rfidEpc.replace(/.{4}$/, '****')
  912. } else if (res.cancel) {
  913. return false
  914. //用户点击取消按钮触发
  915. }
  916. }
  917. })
  918. } else {
  919. _that.$refs.BindDrawer.open();
  920. _that.basicFrom.CarDistance = row.modelDistance
  921. _that.basicFrom.CarPlate = row.vehiclePlate
  922. _that.basicFrom.CarVin = row.vehicleVin
  923. _that.basicFrom.state = row.state
  924. _that.basicFrom.id = row.id
  925. _that.basicFrom.rfidEpc = row.rfidEpc
  926. _that.basicFrom.frid = row.rfidEpc.replace(/.{4}$/, '****')
  927. }
  928. },
  929. //绑定建权
  930. BindFRIDHandle() {
  931. if (!this.basicFrom.rfidEpc || !this.basicFrom.epcFour) {
  932. this.ExchangeMessage('warn', '请填写完整!')
  933. } else {
  934. const params = {
  935. id: this.basicFrom.id,
  936. rfidEpc: this.basicFrom.rfidEpc,
  937. epcFour: this.basicFrom.epcFour
  938. }
  939. this.$http.vehicleBind(params)
  940. .then(res => {
  941. this.closeDrawer()
  942. this.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.msg)
  943. if (res.code === 0) {
  944. this.vehicleList()
  945. }
  946. }).catch(err => {
  947. console.error(err)
  948. })
  949. }
  950. },
  951. //编辑车辆请求接口
  952. EditCarInfo() {
  953. if (!this.basicFrom.CarDistance || !this.basicFrom.CarPlate || !this.basicFrom.CarVin) {
  954. this.ExchangeMessage('warn', '请填写完整!')
  955. } else {
  956. const params = {
  957. modelDistance: this.basicFrom.CarDistance,
  958. vehiclePlate: this.basicFrom.CarPlate,
  959. vehicleVin: this.basicFrom.CarVin,
  960. state: this.basicFrom.state * 1,
  961. id: this.basicFrom.id
  962. }
  963. this.$http.Editvehicle(params)
  964. .then(res => {
  965. this.closeDrawer()
  966. this.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.msg)
  967. if (res.code === 0) {
  968. this.vehicleList()
  969. }
  970. }).catch(err => {
  971. console.error(err)
  972. })
  973. }
  974. },
  975. // 添加车辆请求接口
  976. AddCarinfo() {
  977. if (!this.basicFrom.CarDistance || !this.basicFrom.CarPlate || !this.basicFrom.CarVin) {
  978. this.ExchangeMessage('warn', '请填写完整!')
  979. } else {
  980. const params = {
  981. modelDistance: this.basicFrom.CarDistance,
  982. vehiclePlate: this.basicFrom.CarPlate,
  983. vehicleVin: this.basicFrom.CarVin,
  984. source: 0,
  985. }
  986. this.$http.addvehicle(params)
  987. .then(res => {
  988. this.closeDrawer()
  989. this.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '新增车辆成功' : '新增车辆失败')
  990. if (res.code === 0) {
  991. this.vehicleList()
  992. }
  993. }).catch(err => {
  994. console.error(err)
  995. })
  996. }
  997. },
  998. //查询
  999. handleQuery() {
  1000. this.queryParams.page = 1
  1001. this.datalist = []
  1002. this.showLoadMore = false
  1003. this.vehicleList()
  1004. },
  1005. //查询电池
  1006. handleBatteryQuery () {
  1007. this.batteryParams.page = 1
  1008. this.dataBatterylist = []
  1009. this.showLoadMore = false
  1010. this.batteryList()
  1011. },
  1012. //重置
  1013. resetForm() {
  1014. this.queryParams = {
  1015. page: 1,
  1016. pageSize: 10,
  1017. source: undefined, //来源
  1018. vehiclePlate: undefined, //车牌号
  1019. vehicleVin: undefined, //VIN码
  1020. }
  1021. this.vehicleList()
  1022. },
  1023. //重置电池
  1024. resetBatteryForm() {
  1025. this.batteryParams = {
  1026. page: 1,
  1027. pageSize: 10,
  1028. orderByField: 'id', //排序字段
  1029. orderByWays: 'desc' ,//排序方式
  1030. sn: null, //来源
  1031. }
  1032. this.batteryList()
  1033. },
  1034. //车辆列表,
  1035. vehicleList() {
  1036. uni.showLoading({
  1037. title:'数据加载中...'
  1038. })
  1039. this.$http.vehicleList(this.queryParams).then((res) => {
  1040. this.datalist = res.data.records;
  1041. this.total = res.data.total;
  1042. uni.hideLoading()
  1043. }).catch(err => {uni.hideLoading()});
  1044. },
  1045. //仓位列表
  1046. encodeList() {
  1047. uni.showLoading({
  1048. title:'数据加载中...'
  1049. })
  1050. this.$http.encodeList(this.cangParams).then((res) => {
  1051. this.dataCanglist = res.data;
  1052. uni.hideLoading()
  1053. }).catch(err => {uni.hideLoading()});
  1054. },
  1055. //电池列表
  1056. batteryList() {
  1057. uni.showLoading({
  1058. title:'数据加载中...'
  1059. })
  1060. this.$http.batteryList(this.batteryParams).then((res) => {
  1061. this.dataBatterylist = res.data.records;
  1062. this.batteryTotal=res.data.total
  1063. uni.hideLoading()
  1064. }).catch(err => {uni.hideLoading()});
  1065. },
  1066. //关闭抽屉
  1067. closeDrawer() {
  1068. this.$refs.BasicDrawer.close();
  1069. this.$refs.BindDrawer.close();
  1070. },
  1071. //车辆触底加载数据
  1072. pullup() {
  1073. this.showLoadMore = true
  1074. if(this.isSelect!==0){
  1075. this.loadMore = 'no-more'
  1076. }else{
  1077. if (this.total == this.datalist.length) {
  1078. this.loadMore = 'no-more'
  1079. return
  1080. } else {
  1081. this.queryParams.page++
  1082. this.vehicleList()
  1083. this.loadMore = 'loading'
  1084. }
  1085. }
  1086. },
  1087. //仓位触底加载数据
  1088. pullCangup() {
  1089. this.showLoadMore = true
  1090. if(this.isSelect!==1){
  1091. this.loadMore = 'no-more'
  1092. }else{
  1093. if (this.cangTotal == this.dataCanglist.length) {
  1094. this.loadMore = 'no-more'
  1095. return
  1096. } else {
  1097. this.cangParams.page++
  1098. this.encodeList()
  1099. this.loadMore = 'loading'
  1100. }
  1101. }
  1102. },
  1103. //仓位触底加载数据
  1104. pullBatteryup() {
  1105. this.showLoadMore = true
  1106. if(this.isSelect!==2){
  1107. this.loadMore = 'no-more'
  1108. }else{
  1109. if (this.batteryTotal == this.dataBatterylist.length) {
  1110. this.loadMore = 'no-more'
  1111. return
  1112. } else {
  1113. this.batteryParams.page++
  1114. this.batteryList()
  1115. this.loadMore = 'loading'
  1116. }
  1117. }
  1118. },
  1119. //同步云端
  1120. syncCloud() {
  1121. let that = this
  1122. uni.showModal({
  1123. title: "是否同步云端",
  1124. content: "",
  1125. success: function(res) {
  1126. if (res.confirm) {
  1127. that.$http.getSync().then(res=>{
  1128. that.ExchangeMessage(res.code === 0 ? 'success' : 'error', res.code === 0 ? '同步成功':'同步失败')
  1129. })
  1130. //用户点击确认按钮触发
  1131. } else if (res.cancel) {
  1132. return
  1133. //用户点击取消按钮触发
  1134. }
  1135. }
  1136. })
  1137. },
  1138. //chargerId等于0时更改为1
  1139. changeChargerId(){
  1140. this.setForm.chargerId=1
  1141. }
  1142. }
  1143. }
  1144. </script>
  1145. <style lang="scss" scoped>
  1146. ::v-deep .uni-forms-item__content {
  1147. .is-input-error-border .uni-easyinput__placeholder-class{
  1148. color: #999;
  1149. }
  1150. .uni-easyinput,.uni-select{
  1151. background: rgba(255, 255, 255, 0);
  1152. border-radius: 2px;
  1153. border: 1px solid #263042;
  1154. }
  1155. .uni-select__selector {
  1156. background: none;
  1157. border: 1px solid #263042;
  1158. }
  1159. .uni-select__selector-item {
  1160. font-size: 14px;
  1161. font-weight: 400;
  1162. color: #A8ADC8;
  1163. }
  1164. .uni-popper__arrow {
  1165. display: none;
  1166. }
  1167. .uni-select__input-text {
  1168. color: white;
  1169. }
  1170. .uni-easyinput__content {
  1171. background: none !important;
  1172. border: none !important;
  1173. color: #fff;
  1174. width: 188px;
  1175. }
  1176. .tempIpt{
  1177. .uni-easyinput__content{
  1178. width: 92px !important;
  1179. }
  1180. }
  1181. }
  1182. ::v-deep .uni-forms-item__label {
  1183. font-size: 14px;
  1184. font-weight: 400;
  1185. color: #FFFFFF;
  1186. }
  1187. ::v-deep .uni-select__selector {
  1188. background: #111827 !important;
  1189. border: 1px solid #263042;
  1190. color: #606266;
  1191. z-index: 9999999;
  1192. }
  1193. .basic-data {
  1194. width: 100%;
  1195. height: 100%;
  1196. color: white;
  1197. font-size: 24px;
  1198. overflow: hidden;
  1199. .basic-top {
  1200. display: flex;
  1201. justify-content: space-between;
  1202. .service_header_left {
  1203. display: flex;
  1204. .btn {
  1205. width: 100px;
  1206. height: 48px;
  1207. background: #263042;
  1208. border-radius: 0px 2px 2px 0px;
  1209. font-size: 16px;
  1210. text-align: center;
  1211. line-height: 48px;
  1212. }
  1213. .active {
  1214. background: #91FDB9;
  1215. border-radius: 2px 0px 0px 2px;
  1216. color: black;
  1217. }
  1218. }
  1219. .basci-header-right{
  1220. display:flex;
  1221. align-items: center;
  1222. }
  1223. .times {
  1224. font-size: 14px;
  1225. font-weight: 400;
  1226. color: #A8ADC8;
  1227. line-height: 32px;
  1228. }
  1229. .sync-btn {
  1230. width: 88px;
  1231. height: 32px;
  1232. border-radius: 2px;
  1233. line-height: 32px;
  1234. text-align: center;
  1235. border: 1px solid #91FDB9;
  1236. font-size: 14px;
  1237. font-weight: 400;
  1238. color: #91FDB9;
  1239. margin-left: 20px;
  1240. }
  1241. .title {
  1242. margin-left: auto;
  1243. line-height: 32px;
  1244. font-size: 16px;
  1245. font-weight: 600;
  1246. color: rgba(255, 255, 255, 0.85);
  1247. line-height: 19px;
  1248. text-shadow: 0px 0px 4px #0027D8
  1249. }
  1250. }
  1251. .basic-search {
  1252. display: flex;
  1253. padding: 16px 20px;
  1254. width: 100%;
  1255. height: 66px;
  1256. box-sizing: border-box;
  1257. background: #111827;
  1258. box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
  1259. border-radius: 2px;
  1260. border: 1px solid #192337;
  1261. // margin-top: 20px;
  1262. ::v-deep .searchForm {
  1263. span {
  1264. display: flex;
  1265. }
  1266. }
  1267. }
  1268. .basic-zkset{
  1269. display: flex;
  1270. padding: 16px 20px;
  1271. width: 100%;
  1272. min-height: 66px;
  1273. box-sizing: border-box;
  1274. background: #111827;
  1275. box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
  1276. border-radius: 2px;
  1277. border: 1px solid #192337;
  1278. flex-direction: column;
  1279. .setTitle{
  1280. font-size: 15px;
  1281. font-weight: bold;
  1282. }
  1283. .setCont{
  1284. .tempIpt{
  1285. width: 88px;
  1286. }
  1287. ::v-deep .uni-data-checklist{
  1288. margin-top: 5px !important;
  1289. .checklist-box{
  1290. margin-right: 12px;
  1291. }
  1292. .checklist-text{
  1293. color: white
  1294. }
  1295. .checklist-group .checklist-box.is--default.is-checked .checklist-text{
  1296. color: #91FDB9;
  1297. }
  1298. .checklist-group .checklist-box.is--default.is-checked .radio__inner{
  1299. border-color:#91FDB9;
  1300. }
  1301. .checklist-group .checklist-box.is--default.is-checked .radio__inner .radio__inner-icon{
  1302. background-color:#91FDB9;
  1303. }
  1304. .checklist-group .checklist-box.is--default.is-checked .checkbox__inner{
  1305. border-color:#91FDB9;
  1306. background-color:#91FDB9;
  1307. }
  1308. }
  1309. ::v-deep .formSet {
  1310. span {
  1311. display: flex;
  1312. align-items: center;
  1313. }
  1314. .uni-forms-item__content{
  1315. display: flex;
  1316. }
  1317. .uni-forms-item{
  1318. margin-bottom: 0;
  1319. }
  1320. }
  1321. }
  1322. }
  1323. .search-btn {
  1324. width: 60px;
  1325. height: 34px;
  1326. background: #91FDB9;
  1327. border-radius: 2px;
  1328. font-size: 14px;
  1329. font-weight: 400;
  1330. color: #000000;
  1331. text-align: center;
  1332. line-height: 34px;
  1333. margin-left: 20px;
  1334. margin-top: 1px;
  1335. }
  1336. .search-temp {
  1337. width: 68px;
  1338. height: 34px;
  1339. background: #91FDB9;
  1340. border-radius: 2px;
  1341. font-size: 14px;
  1342. font-weight: 400;
  1343. color: #000000;
  1344. text-align: center;
  1345. line-height: 34px;
  1346. margin-left: 20px;
  1347. margin-top: 1px;
  1348. margin-right: 15px;
  1349. }
  1350. .reset-btn {
  1351. width: 60px;
  1352. height: 32px;
  1353. border-radius: 2px;
  1354. font-size: 14px;
  1355. font-weight: 400;
  1356. color: #FFFFFF;
  1357. text-align: center;
  1358. line-height: 32px;
  1359. margin-left: 20px;
  1360. margin-top: 1px;
  1361. border: 1px solid #263042;
  1362. }
  1363. .basic-table {
  1364. width: 100%;
  1365. height: 576px;
  1366. background: #111827;
  1367. box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
  1368. border-radius: 2px;
  1369. border: 1px solid #192337;
  1370. margin-top: 16px;
  1371. box-sizing: border-box;
  1372. padding: 16px 20px;
  1373. display: flex;
  1374. flex-direction: column;
  1375. .marginZero {
  1376. margin-left: 0px;
  1377. margin-bottom: 15px;
  1378. }
  1379. }
  1380. }
  1381. </style>