WordTable.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  1. <template>
  2. <div class="WordTable" v-loading="loading">
  3. <div class="wheader">
  4. <Header />
  5. </div>
  6. <div class="main">
  7. <div class="top">
  8. <div class="left">
  9. <div class="type_dv">
  10. <span :class="[typeIndex == 0 ? 'sele' : '']" @click="cutType(0)"
  11. >音节</span
  12. >
  13. <span :class="[typeIndex == 1 ? 'sele' : '']" @click="cutType(1)"
  14. >汉字</span
  15. >
  16. <span :class="[typeIndex == 2 ? 'sele' : '']" @click="cutType(2)"
  17. >词汇</span
  18. >
  19. </div>
  20. <!-- <el-radio-group v-model="headText">
  21. <el-radio :label="1">词头</el-radio>
  22. <el-radio :label="2">文本</el-radio>
  23. </el-radio-group> -->
  24. </div>
  25. <div class="right">
  26. <el-cascader
  27. v-model="leve"
  28. :options="leveList"
  29. @change="page1getdata"
  30. style="width: 140px; margin-right: 24px"
  31. ></el-cascader>
  32. <div class="seek">
  33. <img src="../../assets/teacherdev/search-icon.png" alt="" />
  34. <input v-model="keyword" type="text" />
  35. </div>
  36. <div class="seekBtn" @click="page1getdata">搜索</div>
  37. </div>
  38. </div>
  39. <div class="table">
  40. <table border="0" cellspacing="0" cellpadding="0">
  41. <tr>
  42. <th
  43. v-for="(item, i) in tableHeader"
  44. :key="i"
  45. :style="{ width: item.width }"
  46. :class="[i == tableHeader.length - 1 ? 'bz' : '']"
  47. v-if="
  48. (item.name == '拼音' && typeIndex != 0) || item.name != '拼音'
  49. "
  50. >
  51. <div>
  52. <span>
  53. {{
  54. item.name == "音节"
  55. ? typeIndex == 0
  56. ? "音节"
  57. : "汉字"
  58. : item.name
  59. }}
  60. </span>
  61. <template v-if="item.sortShow">
  62. <div class="sort">
  63. <div>
  64. <img
  65. v-if="item.sort != 'up'"
  66. @click="SortEvent('up', item.name, item.sortName)"
  67. src="../../assets/teacherdev/sort-up.png"
  68. alt=""
  69. />
  70. <img
  71. v-if="item.sort == 'up'"
  72. @click="SortEvent('up', item.name, item.sortName)"
  73. src="../../assets/teacherdev/sort-sele-up.png"
  74. alt=""
  75. />
  76. </div>
  77. <div>
  78. <img
  79. v-if="item.sort != 'down'"
  80. @click="SortEvent('down', item.name, item.sortName)"
  81. src="../../assets/teacherdev/sort-down.png"
  82. alt=""
  83. />
  84. <img
  85. v-if="item.sort == 'down'"
  86. @click="SortEvent('down', item.name, item.sortName)"
  87. src="../../assets/teacherdev/sort-sele-down.png"
  88. alt=""
  89. />
  90. </div>
  91. </div>
  92. </template>
  93. </div>
  94. </th>
  95. </tr>
  96. <tr v-for="(item, index) in dataList.list" :key="index + 'td'">
  97. <td class="sort-td">{{ item.number }}</td>
  98. <td :class="['sort-td', typeIndex == 0 ? 'pinyin' : '']">
  99. <span
  100. :style="{
  101. fontFamily: typeIndex != 0 ? '楷体' : '',
  102. fontWeight: '400',
  103. fontSize: '18px',
  104. color:
  105. item.levelName && levelMap[item.levelName]
  106. ? levelMap[item.levelName].color
  107. : '',
  108. }"
  109. >{{ item.word }}</span
  110. >
  111. </td>
  112. <td
  113. class="sort-td"
  114. v-if="typeIndex != 0"
  115. style="font-family: GB-PINYINOK-B"
  116. >
  117. {{ item.pinYin }}
  118. </td>
  119. <td class="sort-td">
  120. <span
  121. :style="{
  122. fontFamily: '楷体',
  123. color:
  124. item.gradeName && levelMap[item.gradeName]
  125. ? levelMap[item.gradeName].color
  126. : '',
  127. }"
  128. >{{ item.gradeName }}</span
  129. >
  130. </td>
  131. <td class="sort-td">
  132. <span
  133. :style="{
  134. fontFamily: '楷体',
  135. color:
  136. item.levelName && levelMap[item.levelName]
  137. ? levelMap[item.levelName].color
  138. : '',
  139. }"
  140. >{{ item.levelName }}</span
  141. >
  142. </td>
  143. <td
  144. class="sort-td"
  145. style="cursor: pointer"
  146. @click="
  147. backHighlight(
  148. item,
  149. levelMap[item.levelName].color,
  150. 'all',
  151. index
  152. )
  153. "
  154. >
  155. {{ item.freq }}
  156. </td>
  157. <td class="sort-td">{{ item.textRatio }}%</td>
  158. <td>
  159. <div style="display: flex; flex-wrap: wrap">
  160. <span
  161. @click="
  162. backHighlight(
  163. items,
  164. levelMap[item.levelName].color,
  165. 'one',
  166. index
  167. )
  168. "
  169. v-for="(items, i) in item.remarks"
  170. :key=""
  171. class="beizhu"
  172. :style="{
  173. marginRight: '10px',
  174. cursor: 'pointer',
  175. borderColor:
  176. items.levelName && levelMap[items.levelName]
  177. ? levelMap[items.levelName].color + '16'
  178. : '',
  179. background:
  180. items.levelName && levelMap[items.levelName]
  181. ? levelMap[items.levelName].color + '50'
  182. : '',
  183. }"
  184. >
  185. <span v-html="items.word" style="font-family: '楷体'"> </span>
  186. <span
  187. :style="{
  188. fontFamily: '楷体',
  189. color:
  190. items.levelName && levelMap[items.levelName]
  191. ? levelMap[items.levelName].color
  192. : '',
  193. }"
  194. >
  195. {{ items.levelName }}
  196. </span>
  197. <span>
  198. {{ items.freq }}
  199. </span>
  200. </span>
  201. </div>
  202. </td>
  203. </tr>
  204. </table>
  205. <template v-if="dataList.list.length == 0">
  206. <div class="no_data">暂无数据</div>
  207. </template>
  208. <!-- <el-table
  209. :data="dataList.list"
  210. style="width: 100%"
  211. @sort-change="sort_change"
  212. ref="table"
  213. :sort-orders="['levelName']"
  214. sortable="custom"
  215. >
  216. <el-table-column prop="number" label="序号" width="48" align="center">
  217. </el-table-column>
  218. <el-table-column
  219. prop="word"
  220. :label="typeIndex == 0 ? '音节' : '汉字'"
  221. width="93"
  222. sortable
  223. >
  224. <template slot-scope="item">
  225. <span
  226. :style="{
  227. color:
  228. item.row.levelName && levelMap[item.row.levelName]
  229. ? levelMap[item.row.levelName].color
  230. : '',
  231. }"
  232. >{{ item.row.word }}</span
  233. >
  234. </template>
  235. </el-table-column>
  236. <template v-if="typeIndex != 0">
  237. <el-table-column prop="pinYin" label="拼音" width="95" sortable>
  238. </el-table-column>
  239. </template>
  240. <el-table-column prop="gradeName" label="等次" width="95" sortable>
  241. <template slot-scope="item">
  242. <span
  243. :style="{
  244. color:
  245. item.row.gradeName && levelMap[item.row.gradeName]
  246. ? levelMap[item.row.gradeName].color
  247. : '',
  248. }"
  249. >{{ item.row.gradeName }}</span
  250. >
  251. </template>
  252. </el-table-column>
  253. <el-table-column prop="levelName" label="级别" width="106" sortable>
  254. <template slot-scope="item">
  255. <span
  256. :style="{
  257. color:
  258. item.row.levelName && levelMap[item.row.levelName]
  259. ? levelMap[item.row.levelName].color
  260. : '',
  261. }"
  262. >{{ item.row.levelName }}</span
  263. >
  264. </template>
  265. </el-table-column>
  266. <el-table-column prop="freq" label="频数" width="108" sortable>
  267. </el-table-column>
  268. <el-table-column prop="textRatio" label="比例" width="110" sortable>
  269. </el-table-column>
  270. <el-table-column prop="" label="备注">
  271. <template slot-scope="item">
  272. <div style="display: flex">
  273. <span
  274. v-for="(items, i) in item.row.remarks"
  275. :key=""
  276. class="beizhu"
  277. style="margin-right: 10px"
  278. >
  279. <span
  280. style="font-size: 18px; font-weight: 400"
  281. v-html="items.word"
  282. >
  283. </span>
  284. <span
  285. :style="{
  286. color:
  287. items.levelName && levelMap[items.levelName]
  288. ? levelMap[items.levelName].color
  289. : '',
  290. }"
  291. >
  292. {{ items.levelName }}
  293. </span>
  294. <span>
  295. {{ items.freq }}
  296. </span>
  297. </span>
  298. </div>
  299. </template>
  300. </el-table-column>
  301. </el-table> -->
  302. </div>
  303. <div class="page" v-if="dataList.list.length > 0">
  304. <el-pagination
  305. background
  306. @current-change="handleCurrentChange"
  307. :current-page="page"
  308. :page-size="pageSize"
  309. layout="prev, pager, next, jumper"
  310. :total="dataList.total"
  311. >
  312. </el-pagination>
  313. </div>
  314. </div>
  315. </div>
  316. </template>
  317. <script>
  318. //这里可以导入其它文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
  319. //例如:import 《组件名称》from ‘《组件路径》';
  320. import Header from "@/components/Header.vue";
  321. import { postapi } from "@/api/api";
  322. import staticData from "../../common/data";
  323. export default {
  324. //import引入的组件需要注入到对象中才能使用
  325. components: {
  326. Header,
  327. },
  328. props: {},
  329. data() {
  330. //这里存放数据
  331. return {
  332. typeIndex: 0,
  333. headText: 1,
  334. keyword: "",
  335. leve: null,
  336. leveList: [
  337. {
  338. value: null,
  339. label: "全部",
  340. },
  341. {
  342. value: 1,
  343. label: "初等",
  344. children: [
  345. { value: "100,101,102", label: "全部" },
  346. { value: "100", label: "1级" },
  347. { value: "101", label: "2级" },
  348. { value: "102", label: "3级" },
  349. ],
  350. },
  351. {
  352. value: 2,
  353. label: "中等",
  354. children: [
  355. { value: "103,104,105", label: "全部" },
  356. { value: "103", label: "4级" },
  357. { value: "104", label: "5级" },
  358. { value: "105", label: "6级" },
  359. ],
  360. },
  361. {
  362. value: 3,
  363. label: "高等",
  364. children: [{ value: "106", label: "7-9级" }],
  365. },
  366. {
  367. value: 107,
  368. label: "超纲",
  369. children: [{ value: "107", label: "超纲" }],
  370. },
  371. {
  372. value: 108,
  373. label: "专有",
  374. children: [{ value: "108", label: "专有" }],
  375. },
  376. {
  377. value: 109,
  378. label: "其它",
  379. children: [{ value: "109", label: "其它" }],
  380. },
  381. ],
  382. tableHeader: [
  383. {
  384. name: "序号",
  385. sortShow: false,
  386. width: "48px",
  387. },
  388. {
  389. name: "音节",
  390. sortShow: true,
  391. sort: "",
  392. width: "93px",
  393. sortName: "word",
  394. },
  395. {
  396. name: "拼音",
  397. sortShow: true,
  398. sort: "",
  399. width: "95px",
  400. sortName: "pin_yin",
  401. },
  402. {
  403. name: "等次",
  404. sortShow: true,
  405. sort: "",
  406. width: "95px",
  407. sortName: "grade_id",
  408. },
  409. {
  410. name: "级别",
  411. sortShow: true,
  412. sort: "down",
  413. width: "120px",
  414. sortName: "level_id",
  415. },
  416. {
  417. name: "频数",
  418. sortShow: true,
  419. sort: "",
  420. width: "88px",
  421. sortName: "freq",
  422. },
  423. {
  424. name: "比例",
  425. sortShow: true,
  426. sort: "",
  427. width: "90px",
  428. sortName: "word_ratio",
  429. },
  430. {
  431. name: "备注",
  432. sortShow: false,
  433. sort: "",
  434. width: "",
  435. sortName: "",
  436. },
  437. ],
  438. dataList: {
  439. list: [],
  440. },
  441. page: 1,
  442. pageSize: 10,
  443. partitionKey: null,
  444. searchType: null,
  445. levelMap: null,
  446. loading: false,
  447. sortType: 0,
  448. sortField: "level_id",
  449. routerData: null,
  450. };
  451. },
  452. //计算属性 类似于data概念
  453. computed: {},
  454. //监控data中数据变化
  455. watch: {},
  456. //方法集合
  457. methods: {
  458. // 返回并高亮对应数据
  459. backHighlight(item, color, type, index) {
  460. let data = JSON.parse(JSON.stringify(this.routerData));
  461. let arr = [];
  462. if (type == "all") {
  463. if (this.typeIndex == 0) {
  464. item.remarks.forEach((items) => {
  465. arr.push(items.word);
  466. });
  467. } else {
  468. arr.push(this.dataList.list[index].word);
  469. }
  470. } else {
  471. if (this.typeIndex == 0) {
  472. arr.push(item.word);
  473. } else {
  474. arr.push(this.dataList.list[index].word);
  475. }
  476. }
  477. data.remarks = JSON.stringify(arr);
  478. data.color = color;
  479. sessionStorage.setItem("tablehighlight", true);
  480. window.open(
  481. this.$router.resolve({
  482. path: "/textanalysis/Result",
  483. query: data,
  484. }).href,
  485. "_blank"
  486. );
  487. },
  488. handleCurrentChange(val) {
  489. this.page = val;
  490. this.getlist();
  491. },
  492. getlist() {
  493. this.loading = true;
  494. postapi({
  495. url: "/GCLSTCServer/tools/TS/glossary/list",
  496. data: {
  497. pageIndex: this.page,
  498. pageSize: this.pageSize,
  499. partitionKey: this.partitionKey,
  500. searchType: this.typeIndex,
  501. word: this.keyword,
  502. sortField: this.sortField,
  503. sortType: this.sortType,
  504. levels: this.leve ? this.leve[1] : null,
  505. },
  506. })
  507. .then((res) => {
  508. let num = this.page * this.pageSize - this.pageSize + 1;
  509. res.data.result.list.forEach((item) => {
  510. item.remarks = JSON.parse(item.remarks);
  511. item.number = num;
  512. num++;
  513. });
  514. this.dataList = res.data.result;
  515. this.loading = false;
  516. })
  517. .catch((res) => {
  518. this.loading = false;
  519. });
  520. },
  521. page1getdata() {
  522. this.loading = true;
  523. this.page = 1;
  524. this.getlist();
  525. },
  526. SortEvent(type, name, sortName) {
  527. let sort = "";
  528. this.tableHeader.forEach((item) => {
  529. if (item.name == name) {
  530. if (!item.sort || item.sort == "up") {
  531. item.sort = "down";
  532. sort = "down";
  533. } else if (item.sort == "down") {
  534. item.sort = "up";
  535. sort = "up";
  536. }
  537. } else {
  538. item.sort = "";
  539. }
  540. });
  541. if (sort == "down") {
  542. this.sortType = 1;
  543. } else {
  544. this.sortType = 0;
  545. }
  546. this.sortField = sortName;
  547. this.getlist();
  548. },
  549. sort_change(column, prop, order) {
  550. if (this.$refs.table) this.$refs.table.clearSort();
  551. column.column.order = column.order;
  552. if (column.prop == "pinyin") {
  553. this.sortField = "pin_yin";
  554. } else if (column.prop == "gradeName") {
  555. this.sortField = "grade_id";
  556. } else if (column.prop == "levelName") {
  557. this.sortField = "level_id";
  558. } else if (column.prop == "textRatio") {
  559. this.sortField = "text_ratio";
  560. } else {
  561. this.sortField = column.prop;
  562. }
  563. if (column.order == "descending") {
  564. this.sortType = 1;
  565. } else {
  566. this.sortType = 0;
  567. }
  568. this.getlist();
  569. },
  570. cutType(index) {
  571. this.typeIndex = index;
  572. this.page1getdata();
  573. },
  574. },
  575. //生命周期 - 创建完成(可以访问当前this实例)
  576. created() {
  577. this.routerData = JSON.parse(JSON.stringify(this.$route.query));
  578. this.partitionKey = this.$route.query.partitionKey * 1;
  579. this.levelMap = staticData.LevelMap;
  580. this.getlist();
  581. },
  582. //生命周期 - 挂载完成(可以访问DOM元素)
  583. mounted() {},
  584. //生命周期-创建之前
  585. beforeCreated() {},
  586. //生命周期-挂载之前
  587. beforeMount() {},
  588. //生命周期-更新之前
  589. beforUpdate() {},
  590. //生命周期-更新之后
  591. updated() {},
  592. //生命周期-销毁之前
  593. beforeDestory() {},
  594. //生命周期-销毁完成
  595. destoryed() {},
  596. //如果页面有keep-alive缓存功能,这个函数会触发
  597. activated() {},
  598. };
  599. </script>
  600. <style lang="scss" scoped>
  601. /* @import url(); 引入css类 */
  602. .WordTable {
  603. background: #f6f6f6;
  604. min-height: 100%;
  605. .wheader {
  606. background: #ffffff;
  607. }
  608. .main {
  609. width: 1200px;
  610. margin: 23px auto;
  611. .top {
  612. display: flex;
  613. justify-content: space-between;
  614. .left {
  615. display: flex;
  616. align-items: center;
  617. .type_dv {
  618. margin-right: 40px;
  619. // width: 172px;
  620. padding: 0 2px;
  621. height: 40px;
  622. background: #eeeeee;
  623. border-radius: 4px;
  624. display: flex;
  625. align-items: center;
  626. span {
  627. display: inline-block;
  628. height: 36px;
  629. width: 56px;
  630. font-weight: 400;
  631. font-size: 14px;
  632. line-height: 40px;
  633. text-align: center;
  634. color: #888888;
  635. cursor: pointer;
  636. }
  637. .sele {
  638. color: #000000;
  639. background: #ffffff;
  640. box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.08);
  641. }
  642. }
  643. }
  644. .right {
  645. display: flex;
  646. align-items: center;
  647. .seek {
  648. display: flex;
  649. width: 264px;
  650. height: 40px;
  651. background: #ffffff;
  652. border: 1px solid #dddddd;
  653. border-radius: 2px 0px 0px 2px;
  654. img {
  655. width: 16px;
  656. height: 16px;
  657. margin: 12px 4px 12px 12px;
  658. }
  659. input {
  660. flex: 1;
  661. border: none;
  662. outline: none;
  663. background: none;
  664. height: 40px;
  665. }
  666. }
  667. .seekBtn {
  668. width: 56px;
  669. height: 40px;
  670. background: #ffa800;
  671. border: 1px solid #ffa800;
  672. border-radius: 0px 2px 2px 0px;
  673. cursor: pointer;
  674. font-weight: 400;
  675. font-size: 16px;
  676. line-height: 40px;
  677. text-align: center;
  678. color: #ffffff;
  679. }
  680. }
  681. }
  682. .table {
  683. margin-top: 21px;
  684. .no_data {
  685. background: #ffffff;
  686. text-align: center;
  687. height: 60px;
  688. line-height: 60px;
  689. color: #909399;
  690. }
  691. table {
  692. width: 100%;
  693. border-collapse: collapse;
  694. background: #ffffff;
  695. .pinyin {
  696. font-family: "GB-PINYINOK-B";
  697. }
  698. th {
  699. background: #ffffff;
  700. .bz {
  701. flex: 1;
  702. }
  703. > div {
  704. display: flex;
  705. align-items: center;
  706. justify-content: space-between;
  707. padding: 0 8px;
  708. height: 48px;
  709. .sort {
  710. cursor: pointer;
  711. > div {
  712. img {
  713. width: 11px;
  714. height: 11px;
  715. }
  716. }
  717. > :nth-child(1) {
  718. > img {
  719. position: relative;
  720. top: 3px;
  721. }
  722. }
  723. > :nth-child(2) {
  724. > img {
  725. position: relative;
  726. bottom: 7px;
  727. }
  728. }
  729. }
  730. }
  731. }
  732. td {
  733. height: 40px;
  734. line-height: 40px;
  735. text-align: left;
  736. border-bottom: 1px solid #eeeeee;
  737. font-weight: 400;
  738. font-size: 14px;
  739. }
  740. .sort-td {
  741. padding: 0 9px;
  742. text-align: center;
  743. }
  744. }
  745. }
  746. .page {
  747. margin-top: 24px;
  748. }
  749. .beizhu {
  750. margin-top: 8px;
  751. margin-bottom: 8px;
  752. height: 28px;
  753. display: inline-block;
  754. border: 1px solid;
  755. // background: #f9f9f9;
  756. border-radius: 4px;
  757. display: flex;
  758. align-items: center;
  759. font-size: 12px;
  760. font-weight: 500;
  761. padding-left: 4px;
  762. padding-right: 7px;
  763. > :not(:nth-last-child(1)) {
  764. margin-right: 8px;
  765. }
  766. }
  767. }
  768. }
  769. </style>
  770. <style lang="scss">
  771. .WordTable {
  772. .table {
  773. .el-table th {
  774. background: #ffffff;
  775. padding: 7px 0;
  776. }
  777. .el-table th > .cell {
  778. display: flex;
  779. align-items: center;
  780. justify-content: space-between;
  781. font-weight: 700;
  782. color: #333333;
  783. font-size: 14px;
  784. }
  785. .el-table td {
  786. padding: 8px 0;
  787. }
  788. .el-table td > .cell {
  789. font-size: 14px;
  790. line-height: 22px;
  791. color: #333333;
  792. font-weight: 600;
  793. }
  794. }
  795. .el-radio__input.is-checked + .el-radio__label {
  796. color: #000000;
  797. }
  798. .el-radio__input.is-checked .el-radio__inner {
  799. border: 2px solid #c8c8c8;
  800. background: #1e1e1e;
  801. }
  802. .el-radio__inner::after {
  803. background: none;
  804. }
  805. .el-radio__inner {
  806. background: #c8c8c8;
  807. border: none;
  808. }
  809. .el-pagination.is-background .el-pager li:not(.disabled).active {
  810. background: #ffffff !important;
  811. color: rgba(0, 0, 0, 0.85);
  812. border: 1px solid #333333;
  813. }
  814. .el-pager {
  815. .number {
  816. background: #ffffff !important;
  817. border: 1px solid #d9d9d9;
  818. border-radius: 2px;
  819. }
  820. }
  821. .btn-prev,
  822. .btn-next {
  823. border: 1px solid #d9d9d9;
  824. border-radius: 2px;
  825. background: #ffffff !important;
  826. }
  827. }
  828. </style>