25c98c0e5d33ab2386803580babb45f4a3dfa730.svn-base 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729
  1. <template>
  2. <a-modal
  3. title="cron表达式"
  4. :width="modalWidth"
  5. :visible="visible"
  6. :confirmLoading="confirmLoading"
  7. @ok="change"
  8. @cancel="close"
  9. cancelText="关闭">
  10. <div class="card-container">
  11. <a-tabs type="card">
  12. <a-tab-pane key="1" type="card">
  13. <span slot="tab"><a-icon type="schedule" /> 秒</span>
  14. <a-radio-group v-model="result.second.cronEvery">
  15. <a-row>
  16. <a-radio value="1">每一秒钟</a-radio>
  17. </a-row>
  18. <a-row>
  19. <a-radio value="2">每隔
  20. <a-input size="small" v-model="result.second.incrementIncrement" :min="1" :max="60"></a-input>
  21. 秒执行 从
  22. <a-input size="small" v-model="result.second.incrementStart" :min="0" :max="59"></a-input>
  23. 秒开始
  24. </a-radio>
  25. </a-row>
  26. <a-row>
  27. <a-radio value="3">具体秒数(可多选)</a-radio>
  28. <a-select style="width:354px;" size="small" mode="multiple" v-model="result.second.specificSpecific">
  29. <a-select-option v-for="(val,index) in 60" :key="index" :value="index">{{ index }}</a-select-option>
  30. </a-select>
  31. </a-row>
  32. <a-row>
  33. <a-radio value="4">周期从
  34. <a-input size="small" v-model="result.second.rangeStart" :min="1" :max="60"></a-input>
  35. 到
  36. <a-input size="small" v-model="result.second.rangeEnd" :min="0" :max="59"></a-input>
  37. 秒
  38. </a-radio>
  39. </a-row>
  40. </a-radio-group>
  41. </a-tab-pane>
  42. <a-tab-pane key="2">
  43. <span slot="tab"><a-icon type="schedule" />分</span>
  44. <div class="tabBody">
  45. <a-radio-group v-model="result.minute.cronEvery">
  46. <a-row>
  47. <a-radio value="1">每一分钟</a-radio>
  48. </a-row>
  49. <a-row>
  50. <a-radio value="2">每隔
  51. <a-input size="small" v-model="result.minute.incrementIncrement" :min="1" :max="60"></a-input>
  52. 分执行 从
  53. <a-input size="small" v-model="result.minute.incrementStart" :min="0" :max="59"></a-input>
  54. 分开始
  55. </a-radio>
  56. </a-row>
  57. <a-row>
  58. <a-radio value="3">具体分钟数(可多选)</a-radio>
  59. <a-select style="width:340px;" size="small" mode="multiple" v-model="result.minute.specificSpecific">
  60. <a-select-option v-for="(val,index) in Array(60)" :key="index" :value="index"> {{ index }}</a-select-option>
  61. </a-select>
  62. </a-row>
  63. <a-row>
  64. <a-radio value="4">周期从
  65. <a-input size="small" v-model="result.minute.rangeStart" :min="1" :max="60"></a-input>
  66. 到
  67. <a-input size="small" v-model="result.minute.rangeEnd" :min="0" :max="59"></a-input>
  68. 分
  69. </a-radio>
  70. </a-row>
  71. </a-radio-group>
  72. </div>
  73. </a-tab-pane>
  74. <a-tab-pane key="3">
  75. <span slot="tab"><a-icon type="schedule" /> 时</span>
  76. <div class="tabBody">
  77. <a-radio-group v-model="result.hour.cronEvery">
  78. <a-row>
  79. <a-radio value="1">每一小时</a-radio>
  80. </a-row>
  81. <a-row>
  82. <a-radio value="2">每隔
  83. <a-input size="small" v-model="result.hour.incrementIncrement" :min="0" :max="23"></a-input>
  84. 小时执行 从
  85. <a-input size="small" v-model="result.hour.incrementStart" :min="0" :max="23"></a-input>
  86. 小时开始
  87. </a-radio>
  88. </a-row>
  89. <a-row>
  90. <a-radio class="long" value="3">具体小时数(可多选)</a-radio>
  91. <a-select style="width:340px;" size="small" mode="multiple" v-model="result.hour.specificSpecific">
  92. <a-select-option v-for="(val,index) in Array(24)" :key="index" >{{ index }}</a-select-option>
  93. </a-select>
  94. </a-row>
  95. <a-row>
  96. <a-radio value="4">周期从
  97. <a-input size="small" v-model="result.hour.rangeStart" :min="0" :max="23"></a-input>
  98. 到
  99. <a-input size="small" v-model="result.hour.rangeEnd" :min="0" :max="23"></a-input>
  100. 小时
  101. </a-radio>
  102. </a-row>
  103. </a-radio-group>
  104. </div>
  105. </a-tab-pane>
  106. <a-tab-pane key="4">
  107. <span slot="tab"><a-icon type="schedule" /> 天</span>
  108. <div class="tabBody">
  109. <a-radio-group v-model="result.day.cronEvery">
  110. <a-row>
  111. <a-radio value="1">每一天</a-radio>
  112. </a-row>
  113. <a-row>
  114. <a-radio value="2">每隔
  115. <a-input size="small" v-model="result.week.incrementIncrement" :min="1" :max="7"></a-input>
  116. 周执行 从
  117. <a-select size="small" v-model="result.week.incrementStart">
  118. <a-select-option v-for="(val,index) in Array(7)" :key="index" :value="index+1">{{ weekDays[index] }}</a-select-option>
  119. </a-select>
  120. 开始
  121. </a-radio>
  122. </a-row>
  123. <a-row>
  124. <a-radio value="3">每隔
  125. <a-input size="small" v-model="result.day.incrementIncrement" :min="1" :max="31"></a-input>
  126. 天执行 从
  127. <a-input size="small" v-model="result.day.incrementStart" :min="1" :max="31"></a-input>
  128. 天开始
  129. </a-radio>
  130. </a-row>
  131. <a-row>
  132. <a-radio class="long" value="4">具体星期几(可多选)</a-radio>
  133. <a-select style="width:340px;" size="small" mode="multiple" v-model="result.week.specificSpecific">
  134. <a-select-option v-for="(val,index) in Array(7)" :key="index" :value="index+1">{{ weekDays[index] }}</a-select-option>
  135. </a-select>
  136. </a-row>
  137. <a-row>
  138. <a-radio class="long" value="5">具体天数(可多选)</a-radio>
  139. <a-select style="width:354px;" size="small" mode="multiple" v-model="result.day.specificSpecific">
  140. <a-select-option v-for="(val,index) in Array(31)" :key="index" :value="index">{{ index+1 }}</a-select-option>
  141. </a-select>
  142. </a-row>
  143. <a-row>
  144. <a-radio value="6">在这个月的最后一天</a-radio>
  145. </a-row>
  146. <a-row>
  147. <a-radio value="7">在这个月的最后一个工作日</a-radio>
  148. </a-row>
  149. <a-row>
  150. <a-radio value="8">在这个月的最后一个
  151. <a-select size="small" v-model="result.day.cronLastSpecificDomDay">
  152. <a-select-option v-for="(val,index) in Array(7)" :key="index" :value="index+1">{{ weekDays[index] }}</a-select-option>
  153. </a-select>
  154. </a-radio>
  155. </a-row>
  156. <a-row>
  157. <a-radio value="9">
  158. <a-input size="small" v-model="result.day.cronDaysBeforeEomMinus" :min="1" :max="31"></a-input>
  159. 在本月底前
  160. </a-radio>
  161. </a-row>
  162. <a-row>
  163. <a-radio value="10">最近的工作日(周一至周五)至本月
  164. <a-input size="small" v-model="result.day.cronDaysNearestWeekday" :min="1" :max="31"></a-input>
  165. 日
  166. </a-radio>
  167. </a-row>
  168. <a-row>
  169. <a-radio value="11">在这个月的第
  170. <a-input size="small" v-model="result.week.cronNthDayNth" :min="1" :max="5"></a-input>
  171. 个
  172. <a-select size="small" v-model="result.week.cronNthDayDay">
  173. <a-select-option v-for="(val,index) in Array(7)" :key="index" :value="index+1">{{ weekDays[index] }}</a-select-option>
  174. </a-select>
  175. </a-radio>
  176. </a-row>
  177. </a-radio-group>
  178. </div>
  179. </a-tab-pane>
  180. <a-tab-pane key="5">
  181. <span slot="tab"><a-icon type="schedule" /> 月</span>
  182. <div class="tabBody">
  183. <a-radio-group v-model="result.month.cronEvery">
  184. <a-row>
  185. <a-radio value="1">每一月</a-radio>
  186. </a-row>
  187. <a-row>
  188. <a-radio value="2">每隔
  189. <a-input size="small" v-model="result.month.incrementIncrement" :min="0" :max="12"></a-input>
  190. 月执行 从
  191. <a-input size="small" v-model="result.month.incrementStart" :min="0" :max="12"></a-input>
  192. 月开始
  193. </a-radio>
  194. </a-row>
  195. <a-row>
  196. <a-radio class="long" value="3">具体月数(可多选)</a-radio>
  197. <a-select style="width:354px;" size="small" filterable mode="multiple" v-model="result.month.specificSpecific">
  198. <a-select-option v-for="(val,index) in Array(12)" :key="index" :value="index">{{ index+1 }}</a-select-option>
  199. </a-select>
  200. </a-row>
  201. <a-row>
  202. <a-radio value="4">从
  203. <a-input size="small" v-model="result.month.rangeStart" :min="1" :max="12"></a-input>
  204. 到
  205. <a-input size="small" v-model="result.month.rangeEnd" :min="1" :max="12"></a-input>
  206. 月之间的每个月
  207. </a-radio>
  208. </a-row>
  209. </a-radio-group>
  210. </div>
  211. </a-tab-pane>
  212. <a-tab-pane key="6">
  213. <span slot="tab"><a-icon type="schedule" /> 年</span>
  214. <div class="tabBody">
  215. <a-radio-group v-model="result.year.cronEvery">
  216. <a-row>
  217. <a-radio value="1">每一年</a-radio>
  218. </a-row>
  219. <a-row>
  220. <a-radio value="2">每隔
  221. <a-input size="small" v-model="result.year.incrementIncrement" :min="1" :max="99"></a-input>
  222. 年执行 从
  223. <a-input size="small" v-model="result.year.incrementStart" :min="2019" :max="2119"></a-input>
  224. 年开始
  225. </a-radio>
  226. </a-row>
  227. <a-row>
  228. <a-radio class="long" value="3">具体年份(可多选)</a-radio>
  229. <a-select style="width:354px;" size="small" filterable mode="multiple" v-model="result.year.specificSpecific">
  230. <a-select-option v-for="(val,index) in Array(100)" :key="index" :value="2019+index">{{ 2019+index }}</a-select-option>
  231. </a-select>
  232. </a-row>
  233. <a-row>
  234. <a-radio value="4">从
  235. <a-input size="small" v-model="result.year.rangeStart" :min="2019" :max="2119"></a-input>
  236. 到
  237. <a-input size="small" v-model="result.year.rangeEnd" :min="2019" :max="2119"></a-input>
  238. 年之间的每一年
  239. </a-radio>
  240. </a-row>
  241. </a-radio-group>
  242. </div>
  243. </a-tab-pane>
  244. </a-tabs>
  245. <div class="bottom">
  246. <span class="value">{{this.cron.label }}</span>
  247. </div>
  248. </div>
  249. </a-modal>
  250. </template>
  251. <script>
  252. import pick from 'lodash.pick'
  253. export default {
  254. name:'VueCron',
  255. props:['data','i18n'],
  256. data(){
  257. return {
  258. visible: false,
  259. confirmLoading:false,
  260. size:'large',
  261. weekDays:['天','一','二','三','四','五','六'].map(val=>'星期'+val),
  262. result: {
  263. second:{
  264. cronEvery:'',
  265. incrementStart:3,
  266. incrementIncrement:5,
  267. rangeStart:1,
  268. rangeEnd:0,
  269. specificSpecific:[],
  270. },
  271. minute:{
  272. cronEvery:'',
  273. incrementStart:3,
  274. incrementIncrement:5,
  275. rangeStart:1,
  276. rangeEnd:'0',
  277. specificSpecific:[],
  278. },
  279. hour:{
  280. cronEvery:'',
  281. incrementStart:3,
  282. incrementIncrement:5,
  283. rangeStart:'0',
  284. rangeEnd:'0',
  285. specificSpecific:[],
  286. },
  287. day:{
  288. cronEvery:'',
  289. incrementStart:1,
  290. incrementIncrement:'1',
  291. rangeStart:'',
  292. rangeEnd:'',
  293. specificSpecific:[],
  294. cronLastSpecificDomDay:1,
  295. cronDaysBeforeEomMinus:'',
  296. cronDaysNearestWeekday:'',
  297. },
  298. week:{
  299. cronEvery:'',
  300. incrementStart:1,
  301. incrementIncrement:'1',
  302. specificSpecific:[],
  303. cronNthDayDay:1,
  304. cronNthDayNth:'1',
  305. },
  306. month:{
  307. cronEvery:'',
  308. incrementStart:3,
  309. incrementIncrement:5,
  310. rangeStart:1,
  311. rangeEnd:1,
  312. specificSpecific:[],
  313. },
  314. year:{
  315. cronEvery:'',
  316. incrementStart:2017,
  317. incrementIncrement:1,
  318. rangeStart:2019,
  319. rangeEnd: 2019,
  320. specificSpecific:[],
  321. },
  322. label:''
  323. },
  324. output:{
  325. second:{
  326. cronEvery:'',
  327. incrementStart:'',
  328. incrementIncrement:'',
  329. rangeStart:'',
  330. rangeEnd:'',
  331. specificSpecific:[],
  332. },
  333. minute:{
  334. cronEvery:'',
  335. incrementStart:'',
  336. incrementIncrement:'',
  337. rangeStart:'',
  338. rangeEnd:'',
  339. specificSpecific:[],
  340. },
  341. hour:{
  342. cronEvery:'',
  343. incrementStart:'',
  344. incrementIncrement:'',
  345. rangeStart:'',
  346. rangeEnd:'',
  347. specificSpecific:[],
  348. },
  349. day:{
  350. cronEvery:'',
  351. incrementStart:'',
  352. incrementIncrement:'',
  353. rangeStart:'',
  354. rangeEnd:'',
  355. specificSpecific:[],
  356. cronLastSpecificDomDay:'',
  357. cronDaysBeforeEomMinus:'',
  358. cronDaysNearestWeekday:'',
  359. },
  360. week:{
  361. cronEvery:'',
  362. incrementStart:'',
  363. incrementIncrement:'',
  364. specificSpecific:[],
  365. cronNthDayDay:'',
  366. cronNthDayNth:'',
  367. },
  368. month:{
  369. cronEvery:'',
  370. incrementStart:'',
  371. incrementIncrement:'',
  372. rangeStart:'',
  373. rangeEnd:'',
  374. specificSpecific:[],
  375. },
  376. year:{
  377. cronEvery:'',
  378. incrementStart:'',
  379. incrementIncrement:'',
  380. rangeStart:'',
  381. rangeEnd:'',
  382. specificSpecific:[],
  383. }
  384. }
  385. }
  386. },
  387. computed: {
  388. modalWidth(){
  389. return 608;
  390. },
  391. text(){
  392. return Language['cn']
  393. },
  394. secondsText() {
  395. let seconds = '';
  396. let cronEvery=this.result.second.cronEvery;
  397. switch (cronEvery.toString()){
  398. case '1':
  399. seconds = '*';
  400. break;
  401. case '2':
  402. seconds = this.result.second.incrementStart+'/'+this.result.second.incrementIncrement;
  403. break;
  404. case '3':
  405. this.result.second.specificSpecific.map(val=> {seconds += val+','});
  406. seconds = seconds.slice(0, -1);
  407. break;
  408. case '4':
  409. seconds = this.result.second.rangeStart+'-'+this.result.second.rangeEnd;
  410. break;
  411. }
  412. return seconds;
  413. },
  414. minutesText() {
  415. let minutes = '';
  416. let cronEvery=this.result.minute.cronEvery;
  417. switch (cronEvery.toString()){
  418. case '1':
  419. minutes = '*';
  420. break;
  421. case '2':
  422. minutes = this.result.minute.incrementStart+'/'+this.result.minute.incrementIncrement;
  423. break;
  424. case '3':
  425. this.result.minute.specificSpecific.map(val=> {
  426. minutes += val+','
  427. });
  428. minutes = minutes.slice(0, -1);
  429. break;
  430. case '4':
  431. minutes = this.result.minute.rangeStart+'-'+this.result.minute.rangeEnd;
  432. break;
  433. }
  434. return minutes;
  435. },
  436. hoursText() {
  437. let hours = '';
  438. let cronEvery=this.result.hour.cronEvery;
  439. switch (cronEvery.toString()){
  440. case '1':
  441. hours = '*';
  442. break;
  443. case '2':
  444. hours = this.result.hour.incrementStart+'/'+this.result.hour.incrementIncrement;
  445. break;
  446. case '3':
  447. this.result.hour.specificSpecific.map(val=> {
  448. hours += val+','
  449. });
  450. hours = hours.slice(0, -1);
  451. break;
  452. case '4':
  453. hours = this.result.hour.rangeStart+'-'+this.result.hour.rangeEnd;
  454. break;
  455. }
  456. return hours;
  457. },
  458. daysText() {
  459. let days='';
  460. let cronEvery=this.result.day.cronEvery;
  461. switch (cronEvery.toString()){
  462. case '1':
  463. break;
  464. case '2':
  465. case '4':
  466. case '11':
  467. days = '?';
  468. break;
  469. case '3':
  470. days = this.result.day.incrementStart+'/'+this.result.day.incrementIncrement;
  471. break;
  472. case '5':
  473. this.result.day.specificSpecific.map(val=> {
  474. days += val+','
  475. });
  476. days = days.slice(0, -1);
  477. break;
  478. case '6':
  479. days = "L";
  480. break;
  481. case '7':
  482. days = "LW";
  483. break;
  484. case '8':
  485. days = this.result.day.cronLastSpecificDomDay + 'L';
  486. break;
  487. case '9':
  488. days = 'L-' + this.result.day.cronDaysBeforeEomMinus;
  489. break;
  490. case '10':
  491. days = this.result.day.cronDaysNearestWeekday+"W";
  492. break
  493. }
  494. return days;
  495. },
  496. weeksText() {
  497. let weeks = '';
  498. let cronEvery=this.result.day.cronEvery;
  499. switch (cronEvery.toString()){
  500. case '1':
  501. case '3':
  502. case '5':
  503. weeks = '?';
  504. break;
  505. case '2':
  506. weeks = this.result.week.incrementStart+'/'+this.result.week.incrementIncrement;
  507. break;
  508. case '4':
  509. this.result.week.specificSpecific.map(val=> {
  510. weeks += val+','
  511. });
  512. weeks = weeks.slice(0, -1);
  513. break;
  514. case '6':
  515. case '7':
  516. case '8':
  517. case '9':
  518. case '10':
  519. weeks = "?";
  520. break;
  521. case '11':
  522. weeks = this.result.week.cronNthDayDay+"#"+this.result.week.cronNthDayNth;
  523. break;
  524. }
  525. return weeks;
  526. },
  527. monthsText() {
  528. let months = '';
  529. let cronEvery=this.result.month.cronEvery;
  530. switch (cronEvery.toString()){
  531. case '1':
  532. months = '*';
  533. break;
  534. case '2':
  535. months = this.result.month.incrementStart+'/'+this.result.month.incrementIncrement;
  536. break;
  537. case '3':
  538. this.result.month.specificSpecific.map(val=> {
  539. months += val+','
  540. });
  541. months = months.slice(0, -1);
  542. break;
  543. case '4':
  544. months = this.result.month.rangeStart+'-'+this.result.month.rangeEnd;
  545. break;
  546. }
  547. return months;
  548. },
  549. yearsText() {
  550. let years = '';
  551. let cronEvery=this.result.year.cronEvery;
  552. switch (cronEvery.toString()){
  553. case '1':
  554. years = '*';
  555. break;
  556. case '2':
  557. years = this.result.year.incrementStart+'/'+this.result.year.incrementIncrement;
  558. break;
  559. case '3':
  560. this.result.year.specificSpecific.map(val=> {
  561. years += val+','
  562. });
  563. years = years.slice(0, -1);
  564. break;
  565. case '4':
  566. years = this.result.year.rangeStart+'-'+this.result.year.rangeEnd;
  567. break;
  568. }
  569. return years;
  570. },
  571. cron(){
  572. return {
  573. value: this.result,
  574. label:`${this.secondsText||'*'} ${this.minutesText||'*'} ${this.hoursText||'*'} ${this.daysText||'*'} ${this.monthsText||'*'} ${this.weeksText||'*'} ${this.yearsText||'*'}`
  575. }
  576. },
  577. },
  578. watch:{
  579. data(){
  580. //this.rest(this.data);
  581. }
  582. },
  583. methods: {
  584. show(){
  585. //this.rest(pick(this.data.value,'second','minute','hour','day','week','month','year'));
  586. //this.rest(this.data.value);
  587. Object.assign(this.data.value,this.result);
  588. console.log('data初始化',this.data);
  589. //this.result = this.data.value;
  590. this.visible=true;
  591. },
  592. getValue(){
  593. return this.cron;
  594. },
  595. change(){
  596. console.log('返回前',this.cron);
  597. this.$emit('change',this.cron);
  598. this.close();
  599. this.visible = false;
  600. },
  601. close(){
  602. this.visible = false;
  603. //this.$emit('close')
  604. },
  605. rest(data){
  606. for(let i in data){
  607. console.log(data[i]);
  608. if(data[i] instanceof Object){
  609. this.rest(data[i])
  610. }else {
  611. switch(typeof data[i]) {
  612. case 'object':
  613. data[i] = [];
  614. break;
  615. case 'string':
  616. data[i] = '';
  617. break;
  618. case 'number':
  619. data[i] = null;
  620. break;
  621. }
  622. }
  623. }
  624. },
  625. callback (key) {
  626. //console.log(key)
  627. }
  628. }
  629. }
  630. </script>
  631. <style lang="less">
  632. .card-container {
  633. background: #fff;
  634. overflow: hidden;
  635. padding: 12px;
  636. position: relative;
  637. width: 100%;
  638. .ant-tabs{
  639. border:1px solid #e6ebf5;
  640. padding: 0;
  641. .ant-tabs-bar {
  642. margin: 0;
  643. outline: none;
  644. border-bottom: none;
  645. .ant-tabs-nav-container{
  646. margin: 0;
  647. .ant-tabs-tab {
  648. padding: 0 24px!important;
  649. background-color: #f5f7fa!important;
  650. margin-right: 0px!important;
  651. border-radius: 0;
  652. line-height: 38px;
  653. border: 1px solid transparent!important;
  654. border-bottom: 1px solid #e6ebf5!important;
  655. }
  656. .ant-tabs-tab-active.ant-tabs-tab{
  657. color: #409eff;
  658. background-color: #fff!important;
  659. border-right:1px solid #e6ebf5!important;
  660. border-left:1px solid #e6ebf5!important;
  661. border-bottom:1px solid #fff!important;
  662. font-weight: normal;
  663. transition:none!important;
  664. }
  665. }
  666. }
  667. .ant-tabs-tabpane{
  668. padding: 15px;
  669. .ant-row{
  670. margin: 10px 0;
  671. }
  672. .ant-select,.ant-input-number{
  673. width: 100px;
  674. }
  675. }
  676. }
  677. }
  678. </style>
  679. <style lang="less" scoped>
  680. .container-widthEn{
  681. width: 755px;
  682. }
  683. .container-widthCn{
  684. width: 608px;
  685. }
  686. .language{
  687. text-align: center;
  688. position: absolute;
  689. right: 13px;
  690. top: 13px;
  691. border: 1px solid transparent;
  692. height: 40px;
  693. line-height: 38px;
  694. font-size: 16px;
  695. color: #409eff;
  696. z-index: 1;
  697. background: #f5f7fa;
  698. outline: none;
  699. width: 47px;
  700. border-bottom: 1px solid #e6ebf5;
  701. border-radius: 0;
  702. }
  703. .card-container{
  704. .bottom{
  705. display: flex;
  706. justify-content: center;
  707. padding: 10px 0 0 0;
  708. .cronButton{
  709. margin: 0 10px;
  710. line-height: 40px;
  711. }
  712. }
  713. }
  714. .tabBody{
  715. .a-row{
  716. margin: 10px 0;
  717. .long{
  718. .a-select{
  719. width:354px;
  720. }
  721. }
  722. .a-input{
  723. width: 110px;
  724. }
  725. }
  726. }
  727. </style>