orders_frozen.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803
  1. <template>
  2. <div id="cloud-balance">
  3. <section class="top">
  4. <!-- <h3>交易订单中心</h3> -->
  5. <section>
  6. <div class="type-boxs">
  7. <span class="vsub">订单类型:</span>
  8. <div class="inlineb">
  9. <el-checkbox-group v-model="orderType" @change="changeOrder" size="mini">
  10. <el-checkbox-button v-for="itm in TypeList" :label="itm.id" :key="itm.id">{{itm.type}}</el-checkbox-button>
  11. </el-checkbox-group>
  12. </div>
  13. <div class="inlineb vsub">
  14. <span>交易类型:</span>
  15. <el-select v-model="status" placeholder="交易类型">
  16. <el-option
  17. v-for="item of jobStatusList"
  18. :key="item.id"
  19. :label="item.name"
  20. :value="item.id"
  21. ></el-option>
  22. </el-select>
  23. </div>
  24. </div>
  25. <!-- <div class="type-boxs">
  26. <span class="vsub">交易类型:</span>
  27. <div class="inlineb">
  28. <el-checkbox-group v-model="tradeType" @change="changeTrade" size="mini">
  29. <el-checkbox-button
  30. v-for="itm in tradeList"
  31. :label="itm.id"
  32. :key="itm.id"
  33. >{{itm.type}}</el-checkbox-button>
  34. </el-checkbox-group>
  35. </div>
  36. </div>-->
  37. <div class="type-boxs">
  38. <span class="vsub">支付方式:</span>
  39. <div class="inlineb">
  40. <el-checkbox-group v-model="payType" @change="changePay" size="mini">
  41. <el-checkbox-button v-for="itm in payList" :label="itm.id" :key="itm.id">{{itm.type}}</el-checkbox-button>
  42. </el-checkbox-group>
  43. </div>
  44. </div>
  45. <div class="type-boxs">
  46. <div class="inlineb">
  47. <span class>时间范围:</span>
  48. <el-date-picker
  49. v-model="timeRange"
  50. type="daterange"
  51. align="right"
  52. unlink-panels
  53. range-separator="到"
  54. start-placeholder="开始日期"
  55. end-placeholder="结束日期"
  56. :picker-options="pickerOptions2"
  57. ></el-date-picker>
  58. </div>
  59. <div class="inlineb">
  60. <span class>时间类型:</span>
  61. <el-select v-model="timeType" placeholder="请选择">
  62. <el-option
  63. v-for="item in timeOptions"
  64. :key="item.value"
  65. :label="item.label"
  66. :value="item.value"
  67. ></el-option>
  68. </el-select>
  69. </div>
  70. <div class="inlineb">
  71. <span class>状态:</span>
  72. <div class="inlineb">
  73. <el-select v-model="status" placeholder="项目状态">
  74. <el-option
  75. v-for="item of jobStatusList"
  76. :key="item.id"
  77. :label="item.name"
  78. :value="item.id"
  79. ></el-option>
  80. </el-select>
  81. </div>
  82. </div>
  83. <el-checkbox v-model="checked">人工财务</el-checkbox>
  84. </div>
  85. <div class="type-boxs">
  86. <div class="inlineb">
  87. <span class>编号:</span>
  88. <div class="inlineb">
  89. <el-input style="width: 230px;" v-model="searchId" placeholder="订单编号/订单名称/支付编号"></el-input>
  90. </div>
  91. </div>
  92. <div class="inlineb">
  93. <span class>用户:</span>
  94. <div class="inlineb">
  95. <el-input style="width: 180px;" v-model="checkUser" placeholder="uid/昵称/姓名"></el-input>
  96. </div>
  97. </div>
  98. <div class="inlineb">
  99. <span class>项目:</span>
  100. <div class="inlineb">
  101. <el-select v-model="status" placeholder="项目状态">
  102. <el-option
  103. v-for="item of jobStatusList"
  104. :key="item.id"
  105. :label="item.name"
  106. :value="item.id"
  107. ></el-option>
  108. </el-select>
  109. </div>
  110. <div class="inlineb">
  111. <el-input style="width: 100px;" v-model="checkUser" placeholder="项目ID"></el-input>
  112. </div>
  113. </div>
  114. <el-button type="primary">筛选</el-button>
  115. <el-button>导出报表</el-button>
  116. </div>
  117. <div class="type-boxs">
  118. <div>
  119. <span>订单数量:34000(成功31203),</span>
  120. <span>
  121. 收入金额:
  122. <span class="green">120334元(成功123220元)</span>
  123. </span>
  124. ,
  125. <span>
  126. 支出金额:
  127. <span class="orange">134953元(成功12342元)</span>
  128. </span>
  129. </div>
  130. </div>
  131. </section>
  132. </section>
  133. <!-- <section class="selector-box">
  134. <section class="selector-box-left">
  135. <el-select v-model="status" placeholder="项目状态">
  136. <el-option
  137. v-for="item of jobStatusList"
  138. :key="item.id"
  139. :label="item.name"
  140. :value="item.id"
  141. ></el-option>
  142. </el-select>
  143. <el-select v-model="period" placeholder="账单状态">
  144. <el-option
  145. v-for="item of periodStatusList"
  146. :key="item.id"
  147. :label="item.name"
  148. :value="item.id"
  149. ></el-option>
  150. </el-select>
  151. <el-input style="width: 200px;" v-model="checkUser" placeholder="负责人"></el-input>
  152. <el-input style="width: 200px;" v-model="jobID" placeholder="项目ID"></el-input>
  153. <el-button @click="clickSearchConfirm">确认</el-button>
  154. </section>
  155. <el-button @click="clickExport" type="primary">导出</el-button>
  156. </section>-->
  157. <div class>
  158. <!-- height="250" -->
  159. <el-table :data="tableData3" border style="width: 100%">
  160. <el-table-column label="订单名称">
  161. <template slot-scope="scope">
  162. <!-- @click="clickDev(scope.row.uid)" -->
  163. <span class="lblue point">
  164. <nuxt-link :to="{path:'/main/orders_detail?id='+111}">{{scope.row.name}}</nuxt-link>
  165. </span>
  166. </template>
  167. </el-table-column>
  168. <el-table-column prop="name" label="用户"></el-table-column>
  169. <el-table-column label="实际金额">
  170. <template slot-scope="scope">
  171. <span :class="parseInt(scope.row.money)>0?'green':'orange'">{{scope.row.money}}</span>
  172. </template>
  173. </el-table-column>
  174. <el-table-column prop="name" label="支付方式"></el-table-column>
  175. <el-table-column prop="name" label="订单状态"></el-table-column>
  176. <el-table-column prop="name" label="创建时间"></el-table-column>
  177. <el-table-column prop="name" label="到账时间"></el-table-column>
  178. <el-table-column prop="name" label="订单编号"></el-table-column>
  179. <el-table-column prop="name" label="支付编号"></el-table-column>
  180. <el-table-column prop="name" width="100" label="订单类型">
  181. <template slot-scope="scope">
  182. <span v-if="scope.row.state==1" class="state-success state-border">成功</span>
  183. <span v-if="scope.row.state==2" class="state-wait state-border">待提交</span>
  184. <span v-if="scope.row.state==3" class="state-load state-border">提交中</span>
  185. <span v-if="scope.row.state==4" class="state-faile state-border">失败</span>
  186. </template>
  187. </el-table-column>
  188. <el-table-column prop="name" label="交易类型"></el-table-column>
  189. <el-table-column prop="name" label="关联项目"></el-table-column>
  190. <el-table-column prop="name" label="人工"></el-table-column>
  191. </el-table>
  192. </div>
  193. <div class="order-footer">
  194. <el-pagination
  195. background
  196. @current-change="getTableData"
  197. @size-change="changePageSize"
  198. :current-page.sync="currentPage"
  199. :page-sizes="[10, 20, 30, 40]"
  200. :page-size="20"
  201. layout="total, sizes, prev, pager, next, jumper"
  202. :total="totalCount"
  203. ></el-pagination>
  204. </div>
  205. </div>
  206. </template>
  207. <script>
  208. const tableHeaders = [
  209. "项目ID",
  210. "核定价格",
  211. "托管费用",
  212. "押金",
  213. "次月托管",
  214. "结算周期",
  215. "结算金额",
  216. "退回金额",
  217. "预计发薪",
  218. "发薪日期",
  219. "状态",
  220. "负责人",
  221. "操作",
  222. "备注",
  223. "项目状态",
  224. "账单ID",
  225. "企业方",
  226. "开发者",
  227. "试用天数"
  228. ];
  229. const tableProps = [
  230. "job_id",
  231. "salary",
  232. "company_pay",
  233. "p_company_deposit",
  234. "next_period_pay",
  235. "payAround",
  236. "pay_to_dev",
  237. "return_money",
  238. "pre_send_salary_timeShow", //
  239. "send_salary_time",
  240. "p_status_name",
  241. "chk_user",
  242. "operate",
  243. "settle_msg",
  244. "j_status_name",
  245. "id",
  246. "company",
  247. "dev_realname",
  248. "probation_days"
  249. ];
  250. const tableWidths = [
  251. "80",
  252. "80",
  253. "100",
  254. "80",
  255. "100",
  256. "120",
  257. "80",
  258. "80",
  259. "90",
  260. "80",
  261. "80",
  262. "100",
  263. "80",
  264. "180",
  265. "80",
  266. "80",
  267. "100",
  268. "100",
  269. "80"
  270. ];
  271. export default {
  272. data() {
  273. return {
  274. checked: false,
  275. orderType: [0],
  276. tradeType: [0],
  277. payType: [0],
  278. timeType: 1,
  279. timeOptions: [
  280. {
  281. value: 1,
  282. label: "到帐时间"
  283. },
  284. {
  285. value: 2,
  286. label: "创建时间"
  287. }
  288. ],
  289. TypeList: [
  290. {
  291. id: 0,
  292. type: "全部"
  293. },
  294. {
  295. id: 1,
  296. type: "整包项目"
  297. },
  298. {
  299. id: 2,
  300. type: "云端工作"
  301. },
  302. {
  303. id: 3,
  304. type: "雇佣工作"
  305. }
  306. ],
  307. tradeList: [
  308. {
  309. id: 0,
  310. type: "全部"
  311. },
  312. {
  313. id: 1,
  314. type: "充值"
  315. },
  316. {
  317. id: 2,
  318. type: "提现"
  319. },
  320. {
  321. id: 3,
  322. type: "购买"
  323. },
  324. {
  325. id: 4,
  326. type: "购买"
  327. }
  328. ],
  329. payList: [
  330. {
  331. id: 0,
  332. type: "全部"
  333. },
  334. {
  335. id: 1,
  336. type: "充值"
  337. },
  338. {
  339. id: 2,
  340. type: "提现"
  341. },
  342. {
  343. id: 3,
  344. type: "购买"
  345. },
  346. {
  347. id: 4,
  348. type: "购买"
  349. }
  350. ],
  351. pickerOptions2: {
  352. shortcuts: [
  353. {
  354. text: "全部",
  355. onClick(picker) {
  356. alert("获取全部数据");
  357. }
  358. },
  359. {
  360. text: "最近7天",
  361. onClick(picker) {
  362. const end = new Date();
  363. const start = new Date();
  364. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  365. picker.$emit("pick", [start, end]);
  366. }
  367. },
  368. {
  369. text: "最近30天",
  370. onClick(picker) {
  371. const end = new Date();
  372. const start = new Date();
  373. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  374. picker.$emit("pick", [start, end]);
  375. }
  376. },
  377. {
  378. text: "本周",
  379. onClick(picker) {
  380. var week = new Date().getDay() - 1;
  381. console.log(week);
  382. if (week == -1) {
  383. week = 6;
  384. }
  385. const end = new Date();
  386. const start = new Date();
  387. start.setTime(start.getTime() - 3600 * 1000 * 24 * week);
  388. picker.$emit("pick", [start, end]);
  389. }
  390. },
  391. {
  392. text: "本月",
  393. onClick(picker) {
  394. var month = new Date().getMonth + 1;
  395. var year = new Date().getFullYear();
  396. // console.log(month, year);
  397. var day = new Date().getDate() - 1;
  398. console.log(day);
  399. const end = new Date();
  400. const start = new Date();
  401. start.setTime(start.getTime() - 3600 * 1000 * 24 * day);
  402. picker.$emit("pick", [start, end]);
  403. }
  404. },
  405. {
  406. text: "本年",
  407. onClick(picker) {
  408. var month = new Date().getMonth + 1;
  409. var year = new Date().getFullYear();
  410. // console.log(month, year);
  411. var day = new Date().getDate() - 1;
  412. var firstDay = new Date(year, 0, 1);
  413. var dateDiff = new Date() - firstDay;
  414. var msPerDay = 1000 * 60 * 60 * 24;
  415. //计算天数
  416. var diffDays = Math.ceil(dateDiff / msPerDay) - 1;
  417. console.log(diffDays);
  418. const end = new Date();
  419. const start = new Date();
  420. start.setTime(start.getTime() - 3600 * 1000 * 24 * diffDays);
  421. picker.$emit("pick", [start, end]);
  422. }
  423. }
  424. ]
  425. },
  426. timeRange: "",
  427. arriveTime: "",
  428. searchId: "",
  429. tableData3: [
  430. {
  431. date: "2016-05-03",
  432. name: "王小虎",
  433. money: "200",
  434. state: 1
  435. },
  436. {
  437. date: "2016-05-02",
  438. name: "王小虎",
  439. money: "-100",
  440. state: 2
  441. },
  442. {
  443. date: "2016-05-04",
  444. name: "王小虎",
  445. money: "-100",
  446. state: 3
  447. },
  448. {
  449. date: "2016-05-01",
  450. name: "王小虎",
  451. money: "-100",
  452. state: 4
  453. },
  454. {
  455. date: "2016-05-08",
  456. name: "王小虎",
  457. money: "2100",
  458. state: 1
  459. },
  460. {
  461. date: "2016-05-06",
  462. name: "王小虎",
  463. money: "-1200",
  464. state: 4
  465. },
  466. {
  467. date: "2016-05-07",
  468. name: "王小虎",
  469. money: "-100",
  470. state: 1
  471. }
  472. ],
  473. // 下发的总数据
  474. totalData: {},
  475. // 项目ID
  476. jobID: "",
  477. // 审核人
  478. period: "",
  479. status: "",
  480. // 状态列表数据
  481. jobStatusList: [],
  482. // 负责人
  483. checkUser: "",
  484. // 审核人列表
  485. periodStatusList: [],
  486. // 数据总条目
  487. totalCount: 0,
  488. currentPage: 1,
  489. currentPageSize: 20,
  490. // 列表宽度
  491. tableWidths,
  492. // 列表头显示内容
  493. tableHeaders,
  494. // 列表头字段
  495. tableProps,
  496. // 列表数据
  497. tableData: [],
  498. localData: {
  499. env: "test"
  500. }
  501. };
  502. },
  503. computed: {
  504. isTest() {
  505. return this.localData.env === "test";
  506. },
  507. whole() {
  508. return this.totalData.whole || {};
  509. },
  510. totalDeposit() {
  511. return this.whole.total_deposit;
  512. },
  513. totalFee() {
  514. return this.whole.total_fee;
  515. }
  516. },
  517. mounted() {
  518. this.getTableData();
  519. this.getEnum();
  520. },
  521. methods: {
  522. // 改变订单类型
  523. changeOrder() {
  524. var haveAll = false;
  525. for (var i = 0; i < this.orderType.length; i++) {
  526. if (this.orderType[i] == 0) {
  527. haveAll = true;
  528. }
  529. }
  530. // 选择其他的时候,去掉全部,全部在第一位
  531. if (
  532. this.orderType[0] == 0 &&
  533. 1 < this.orderType.length < this.TypeList.length
  534. ) {
  535. var arr = [];
  536. for (var i = 0; i < this.orderType.length; i++) {
  537. if (this.orderType[i] != 0) {
  538. arr.push(this.orderType[i]);
  539. }
  540. }
  541. this.orderType = arr;
  542. }
  543. // 选择全部的时候去掉其他,全部在最后一位
  544. if (this.orderType[this.orderType.length - 1] == 0) {
  545. this.orderType = [0];
  546. }
  547. if (!haveAll && this.orderType.length == this.TypeList.length - 1) {
  548. this.orderType = [0];
  549. }
  550. if (this.orderType.length == 0) {
  551. console.log("sss:", this.orderType);
  552. this.orderType = [0];
  553. }
  554. },
  555. // 改变支付方式
  556. changePay() {
  557. var haveAll = false;
  558. for (var i = 0; i < this.payType.length; i++) {
  559. if (this.payType[i] == 0) {
  560. haveAll = true;
  561. }
  562. }
  563. // 选择其他的时候,去掉全部,全部在第一位
  564. if (
  565. this.payType[0] == 0 &&
  566. 1 < this.payType.length < this.payList.length
  567. ) {
  568. var arr = [];
  569. for (var i = 0; i < this.payType.length; i++) {
  570. if (this.payType[i] != 0) {
  571. arr.push(this.payType[i]);
  572. }
  573. }
  574. this.payType = arr;
  575. }
  576. // 选择全部的时候去掉其他,全部在最后一位
  577. if (this.payType[this.payType.length - 1] == 0) {
  578. this.payType = [0];
  579. }
  580. if (!haveAll && this.payType.length == this.payList.length - 1) {
  581. this.payType = [0];
  582. }
  583. if (this.payType.length == 0) {
  584. console.log("sss:", this.orderType);
  585. this.payType = [0];
  586. }
  587. },
  588. clickExport() {
  589. window.open("/api/admin/job/get_all_periods?action=export");
  590. },
  591. /**
  592. * 获取筛选值
  593. */
  594. async getEnum() {
  595. let { data } = await this.$get("/api/admin/job/getEnum");
  596. console.log(data);
  597. if (data) {
  598. let { jobStatusList, periodStatusList } = data;
  599. this.jobStatusList = jobStatusList;
  600. this.periodStatusList = periodStatusList;
  601. }
  602. },
  603. // 点击操作
  604. clickOperate({ job_id, id }) {
  605. if (this.isTest)
  606. window.open(
  607. `https://dev.test-rooter.proginn.com/main/wage_settlement?job_id=${job_id}&period_id=${id}`
  608. );
  609. else
  610. window.open(
  611. `https://rooter.proginn.com/main/wage_settlement?job_id=${job_id}&period_id=${id}`
  612. );
  613. },
  614. // 点击账单
  615. clickOrder(i) {
  616. if (this.isTest)
  617. window.open(
  618. `https://dev.test-rooter.proginn.com/main/wage_details?job_id=${i.job_id}&period_id=${i.id}`
  619. );
  620. else
  621. window.open(
  622. `https://rooter.proginn.com/main/wage_details?job_id=${i.job_id}&period_id=${i.id}`
  623. );
  624. },
  625. // 点击开发者
  626. clickDev(uid) {
  627. if (this.isTest)
  628. window.open(`https://dev.test.proginn.com/rooter/user/${uid}`);
  629. else window.open(`https://www.proginn.com/rooter/user/${uid}`);
  630. },
  631. // 点击企业
  632. clickCompany(uid) {
  633. if (this.isTest)
  634. window.open(`https://dev.test.proginn.com/rooter/user/${uid}`);
  635. else window.open(`https://www.proginn.com/rooter/user/${uid}`);
  636. },
  637. // 点击账单id
  638. clickJobID(jobID) {
  639. if (this.isTest)
  640. window.open(
  641. `https://dev.test.proginn.com/rooter/cloudjobitem/${jobID}`
  642. );
  643. else window.open(`https://www.proginn.com/rooter/cloudjobitem/${jobID}`);
  644. },
  645. // 点击重试
  646. async clickRetry(id) {
  647. const res = await this.$post("/api/admin/payment/redoDraw", { id });
  648. // console.log(res)
  649. },
  650. // 根据状态显示图表样式
  651. tableRowClassName({ row, rowIndex }) {
  652. // console.log({row, rowIndex})
  653. let className = "";
  654. if (row.j_status_name === "结束合作") className = "end-row";
  655. // console.log(className)
  656. return className;
  657. },
  658. // 格式化列表数据
  659. formatTableData(data) {
  660. return data.map(i => ({
  661. ...i,
  662. payAround: `${i.start_time}<br>${i.end_time}`,
  663. pre_send_salary_timeShow: new Date(
  664. i.pre_send_salary_time * 1000
  665. ).toLocaleDateString()
  666. }));
  667. },
  668. /**
  669. * 点击筛选确认
  670. */
  671. clickSearchConfirm() {
  672. this.currentPage = 1;
  673. this.getTableData();
  674. },
  675. changePageSize(pageSize) {
  676. this.currentPageSize = pageSize;
  677. this.getTableData();
  678. },
  679. // 获取列表数据
  680. async getTableData() {
  681. this.tableData = [];
  682. let url = "/api/admin/job/get_all_periods";
  683. let body = { page: this.currentPage, page_size: this.currentPageSize };
  684. if (this.status) body.j_status = this.status;
  685. if (this.period) body.p_status = this.period;
  686. if (this.checkUser) body.chk_user = this.checkUser;
  687. if (this.jobID) body.job_id = this.jobID;
  688. const res = await this.$post(url, body);
  689. const data = res.data;
  690. this.tableData = this.formatTableData(data.list);
  691. this.totalData = data;
  692. // // console.log(this.tableData)
  693. this.totalCount = Number(data.total);
  694. this.totalPage = data.totalPage;
  695. this.localData.env = data.current_env;
  696. },
  697. async getFinanceList() {
  698. let body = {
  699. page: this.currentPage,
  700. page_size: this.currentPageSize,
  701. artificial_mark: 1
  702. };
  703. const res = await this.$post("/api/admin/order/get_orders", body);
  704. var data = res.data;
  705. env = data.current_env;
  706. }
  707. },
  708. created() {
  709. // console.log(process.env.NODE_ENV);
  710. }
  711. };
  712. </script>
  713. <style scoped>
  714. .order-footer {
  715. position: absolute;
  716. bottom: 10px;
  717. left: 10px;
  718. }
  719. #order-wrap {
  720. width: 100%;
  721. }
  722. #cloud-balance {
  723. white-space: nowrap;
  724. overflow-x: scroll;
  725. height: calc(100% - 40px);
  726. }
  727. .top {
  728. display: flex;
  729. flex-direction: column;
  730. justify-content: center;
  731. height: 270px;
  732. }
  733. .selector-box {
  734. /* margin-top: 10px; */
  735. }
  736. .selector-box {
  737. display: flex;
  738. justify-content: space-between;
  739. }
  740. /* .selector-box-left {
  741. } */
  742. .table {
  743. margin-top: 10px;
  744. height: calc(100% - 320px);
  745. }
  746. .order-table {
  747. /* height: calc(100% - 300px); */
  748. }
  749. .end-row {
  750. background: rgba(0, 0, 0, 0.1);
  751. }
  752. .inlineb {
  753. display: inline-block;
  754. }
  755. .vsub {
  756. vertical-align: sub;
  757. }
  758. .type-boxs {
  759. margin-bottom: 10px;
  760. }
  761. .green {
  762. color: rgba(37, 155, 36, 1);
  763. }
  764. .orange {
  765. color: rgba(255, 152, 0, 1);
  766. }
  767. .state-success {
  768. display: inline-block;
  769. padding: 0px 8px;
  770. text-align: center;
  771. border: 1px solid rgb(48, 142, 255);
  772. }
  773. .state-wait {
  774. display: inline-block;
  775. padding: 0px 8px;
  776. text-align: center;
  777. border: 1px solid rgb(134, 130, 130);
  778. }
  779. .state-load {
  780. display: inline-block;
  781. padding: 0px 8px;
  782. text-align: center;
  783. border: 1px solid rgb(37, 155, 36);
  784. }
  785. .state-faile {
  786. display: inline-block;
  787. padding: 0px 8px;
  788. text-align: center;
  789. border: 1px solid rgb(229, 28, 35);
  790. }
  791. </style>