init-tellertrunk.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744
  1. <template>
  2. <basic-container>
  3. <avue-crud :option="option"
  4. :table-loading="loading"
  5. :data="data"
  6. :page.sync="page"
  7. :permission="permissionList"
  8. :before-open="beforeOpen"
  9. v-model="form"
  10. ref="crud"
  11. @row-update="rowUpdate"
  12. @row-save="rowSave"
  13. @row-del="rowDel"
  14. @search-change="searchChange"
  15. @search-reset="searchReset"
  16. @selection-change="selectionChange"
  17. @current-change="currentChange"
  18. @size-change="sizeChange"
  19. @refresh-change="refreshChange"
  20. @on-load="onLoad">
  21. <template slot="menuLeft">
  22. <el-button type="danger"
  23. size="small"
  24. icon="el-icon-delete"
  25. plain
  26. v-if="permission.tellertrunk_delete"
  27. @click="handleDelete">刪 除
  28. </el-button>
  29. <el-button type="primary"
  30. size="small"
  31. icon="el-icon-download"
  32. plain
  33. v-if="permission.tellertrunk_download"
  34. @click="handleDownload">下載
  35. </el-button>
  36. </template>
  37. <template slot-scope="{row, index}" slot="menu">
  38. <el-button size="small" class="el-button--text" v-if="permission.tellertrunk_edit && userInfo.user_id == row.createUser" @click="$refs.crud.rowEdit(row, index)"><i class="el-icon-edit"></i> 編 輯</el-button>
  39. <el-button size="small" class="el-button--text" v-if="permission.tellertrunk_delete && userInfo.user_id == row.createUser" @click="$refs.crud.rowDel(row, index)"><i class="el-icon-delete"></i> 刪 除</el-button>
  40. <el-button type="text" icon="el-icon-download" size="small" v-if="permission.tellertrunk_download_file && row.enclosure" @click="fileDownload(row)">附件下載</el-button>
  41. </template>
  42. <template slot="enclosureForm" slot-scope="{row}">
  43. <avue-form ref="form" :option="attachOption" v-model="attachForm" :upload-after="uploadAfter" :upload-error="uploadError" :upload-delete="uploadDelete" :upload-preview="uploadPreview">
  44. </avue-form>
  45. </template>
  46. <template slot="titleForm" slot-scope="{row, index}">
  47. <div v-html="title" style="white-space: pre-line;color: red;font-weight: bold;"></div>
  48. </template>
  49. <template slot="titleLabel" slot-scope="{row, index}">
  50. <span style="color: red;font-weight: bold;">注意事項:</span>
  51. </template>
  52. </avue-crud>
  53. </basic-container>
  54. </template>
  55. <script>
  56. import {getList, getDetail, add, update, remove, getDownloadList} from "@/api/bank/tellertrunk";
  57. import {mapGetters} from "vuex";
  58. import { getCurrentDept } from "@/api/system/dept";
  59. import {dateFormat} from "../../util/date";
  60. import SelectDialogUser from "../../components/select-dialog/select-dialog-user";
  61. import {getDeptTree, getTree} from "@/api/system/dept";
  62. import {getStandardByCode} from "@/api/bank/handoverstandard";
  63. import {downloadFileBase64} from "@/util/util";
  64. export default {
  65. name: "init-tellertrunk",
  66. components: {SelectDialogUser},
  67. data() {
  68. const validateCheckTime = (rule, value, callback) => {
  69. if (value === '') {
  70. callback(new Error('請選擇結束時間'));
  71. } else if (value < this.form.checkTimeBegin) {
  72. callback(new Error('結束時間不能早於開始時間!'));
  73. } else {
  74. callback();
  75. }
  76. };
  77. return {
  78. isManageUser: false,
  79. title: "",
  80. attachBox: false,
  81. attachForm: {},
  82. attachOption: {
  83. submitBtn: false,
  84. emptyBtn: false,
  85. column: [
  86. {
  87. // label: '附件上傳',
  88. prop: 'attachFile',
  89. type: 'upload',
  90. drag: true,
  91. loadText: '模板上傳中,請稍等',
  92. span: 24,
  93. fileSize: 5120,
  94. propsHttp: {
  95. res: 'data'
  96. },
  97. name: "namesrc",
  98. action: "/api/blade-resource/oss/endpoint/put-file-attach"
  99. }
  100. ]
  101. },
  102. form: {},
  103. query: {},
  104. loading: true,
  105. page: {
  106. pageSize: 10,
  107. currentPage: 1,
  108. total: 0
  109. },
  110. selectionList: [],
  111. option: {
  112. addTitle: '新增【櫃員尾箱檢查流水帳記錄表】',
  113. editTitle: '編輯【櫃員尾箱檢查流水帳記錄表】',
  114. viewTitle: '查看【櫃員尾箱檢查流水帳記錄表】',
  115. height:'auto',
  116. calcHeight: 30,
  117. tip: false,
  118. searchShow: true,
  119. searchMenuSpan: 6,
  120. border: true,
  121. index: true,
  122. viewBtn: true,
  123. editBtn: false,
  124. delBtn: false,
  125. selection: true,
  126. dialogClickModal: false,
  127. column: [
  128. {
  129. label: '注意事項',
  130. prop: 'title',
  131. hide: true,
  132. formslot: true,
  133. type: 'text',
  134. span: 24
  135. },
  136. {
  137. label: "銀行號",
  138. prop: "bankNo",
  139. span: 24,
  140. hide: true,
  141. disabled: true,
  142. display: false,
  143. search: false,
  144. searchSpan: 4,
  145. rules: [{
  146. required: true,
  147. message: "請輸入銀行號",
  148. trigger: "blur"
  149. }]
  150. },
  151. {
  152. label: "機構號",
  153. prop: "orgNo",
  154. hide: true,
  155. disabled: true,
  156. display: false,
  157. rules: [{
  158. required: true,
  159. message: "請輸入機構號",
  160. trigger: "blur"
  161. }]
  162. },
  163. {
  164. label: "機構名稱",
  165. prop: "orgName",
  166. span: 24,
  167. disabled: true,
  168. rules: [{
  169. required: true,
  170. message: "請輸入機構號",
  171. trigger: "blur"
  172. }]
  173. },
  174. {
  175. label: "區域/支行",
  176. prop: "orgNos",
  177. hide: true,
  178. display: false,
  179. searchMultiple: true,
  180. search: true,
  181. type: "tree",
  182. dicData: [],
  183. props: {
  184. label: "title",
  185. value: "key"
  186. },
  187. checkStrictly: true,
  188. rules: [{
  189. required: true,
  190. message: "請輸入機構號",
  191. trigger: "blur"
  192. }]
  193. },
  194. {
  195. label: "檢查時間",
  196. prop: "checkTimeRange",
  197. type: "datetime",
  198. format: "yyyy-MM-dd HH:mm",
  199. valueFormat: "yyyy-MM-dd HH:mm",
  200. searchRange:true,
  201. hide: true,
  202. addDisplay: false,
  203. editDisplay: false,
  204. viewDisplay: false,
  205. search: true,
  206. rules: [{
  207. required: true,
  208. message: "請輸入交接日期",
  209. trigger: "blur"
  210. }]
  211. },
  212. {
  213. label: "檢查單位",
  214. prop: "checkUnit",
  215. type: "select",
  216. multiple: true,
  217. dicUrl: "/api/blade-system/dict/dictionary?code=unit_type",
  218. props:{
  219. label: "dictValue",
  220. value: "dictKey",
  221. },
  222. dicFormatter: (res) => {
  223. res.data.forEach(item => {item.disabled = item.isSealed == 1;})
  224. return res.data;
  225. },
  226. change: ({value, column}) => {
  227. /*if (!value) return;
  228. let $nameOut = this.findObject(this.option.column, 'checkPersonNameOut');
  229. $nameOut.display = value != '1';
  230. let $noOut = this.findObject(this.option.column, 'checkPersonNoOut');
  231. $noOut.display = value != '1';
  232. let $name = this.findObject(this.option.column, 'checkPersonName');
  233. $name.display = value == '1';
  234. let $no = this.findObject(this.option.column, 'checkPersonNo');
  235. $no.display = value == '1';
  236. $no.disabled = value == '1';
  237. if (!this.form.checkResult) return;*/
  238. /*let $remark = this.findObject(this.option.column, 'remark');
  239. if (value == '1' && this.form.checkResult == '1'){
  240. $remark.rules[0].required = false;
  241. }else{
  242. $remark.rules[0].required = true;
  243. }*/
  244. },
  245. rules: [{
  246. required: true,
  247. message: "請輸入檢查單位",
  248. trigger: "blur"
  249. }]
  250. },
  251. {
  252. label: "檢查內容",
  253. prop: "checkContent",
  254. type: "select",
  255. multiple: true,
  256. dicUrl: "/api/blade-system/dict/dictionary?code=check_content_tellertrunk",
  257. props:{
  258. label: "dictValue",
  259. value: "dictKey",
  260. },
  261. dicFormatter: (res) => {
  262. res.data.forEach(item => {item.disabled = item.isSealed == 1;})
  263. return res.data;
  264. },
  265. rules: [{
  266. required: true,
  267. message: "請輸入檢查內容",
  268. trigger: "blur"
  269. }]
  270. },
  271. {
  272. label: "檢查單位",
  273. prop: "checkUnitSearch",
  274. type: "select",
  275. search: true,
  276. hide: true,
  277. display: false,
  278. searchSpan: 4,
  279. dicUrl: "/api/blade-system/dict/dictionary?code=unit_type",
  280. props:{
  281. label: "dictValue",
  282. value: "dictKey",
  283. },
  284. },
  285. {
  286. label: "檢查內容",
  287. prop: "checkContentSearch",
  288. type: "select",
  289. search: true,
  290. searchSpan: 4,
  291. hide: true,
  292. display: false,
  293. dicUrl: "/api/blade-system/dict/dictionary?code=check_content_tellertrunk",
  294. props:{
  295. label: "dictValue",
  296. value: "dictKey",
  297. },
  298. },
  299. {
  300. label: "檢查時間開始",
  301. prop: "checkTimeBegin",
  302. type: "datetime",
  303. format: "yyyy-MM-dd HH:mm",
  304. valueFormat: "yyyy-MM-dd HH:mm",
  305. rules: [{
  306. required: true,
  307. message: "請輸入檢查時間開始",
  308. trigger: "blur"
  309. }]
  310. },
  311. {
  312. label: "檢查時間結束",
  313. prop: "checkTimeEnd",
  314. type: "datetime",
  315. format: "yyyy-MM-dd HH:mm",
  316. valueFormat: "yyyy-MM-dd HH:mm",
  317. rules: [
  318. {required: true, message: "請輸入檢查時間結束",trigger: "blur"},
  319. {required: true, validator: validateCheckTime, trigger: 'blur'}
  320. ]
  321. },
  322. {
  323. label: "本單位持有現金櫃員數量",
  324. prop: "holdingNumberUnit",
  325. type: "number",
  326. rules: [{
  327. required: true,
  328. message: "請輸入本單位持有現金櫃員數量",
  329. trigger: "blur"
  330. }]
  331. },
  332. {
  333. label: "本次檢查持有現金櫃員數量",
  334. prop: "holdingNumberCheck",
  335. type: "number",
  336. rules: [{
  337. required: true,
  338. message: "請輸入本次檢查持有現金櫃員數量",
  339. trigger: "blur"
  340. }]
  341. },
  342. {
  343. label: "檢查類型",
  344. prop: "checkType",
  345. type: "select",
  346. multiple: true,
  347. dicUrl: "/api/blade-system/dict/dictionary?code=check_type",
  348. props:{
  349. label: "dictValue",
  350. value: "dictKey",
  351. },
  352. dicFormatter: (res) => {
  353. res.data.forEach(item => {item.disabled = item.isSealed == 1;})
  354. return res.data;
  355. },
  356. rules: [{
  357. required: true,
  358. message: "請輸入檢查類型",
  359. trigger: "blur"
  360. }]
  361. },
  362. {
  363. label: "核對結果",
  364. prop: "checkResult",
  365. type: "select",
  366. dicUrl: "/api/blade-system/dict/dictionary?code=check_result",
  367. props:{
  368. label: "dictValue",
  369. value: "dictKey",
  370. },
  371. dicFormatter: (res) => {
  372. res.data.forEach(item => {item.disabled = item.isSealed == 1;})
  373. return res.data;
  374. },
  375. tip: "不能為空值;如選擇〝帳實不符〞需要在備註欄解釋原因",
  376. change: ({value, column}) => {
  377. /* if (!this.form.checkUnit || !value) return;
  378. let $remark = this.findObject(this.option.column, 'remark');
  379. if (this.form.checkUnit == '1' && value == '1'){
  380. $remark.rules[0].required = false;
  381. }else{
  382. $remark.rules[0].required = true;
  383. }*/
  384. },
  385. rules: [{
  386. required: true,
  387. message: "請輸入核對結果",
  388. trigger: "blur"
  389. }]
  390. },
  391. {
  392. label: "檢查人員",
  393. prop: "checkPersonName",
  394. type: "array",
  395. dataType: 'string',
  396. rules: [{
  397. required: true,
  398. message: "請輸入檢查人員姓名",
  399. trigger: "change"
  400. }]
  401. },
  402. {
  403. label: "檢查人員工號",
  404. prop: "checkPersonNo",
  405. type: "array",
  406. dataType: 'string',
  407. rules: [{
  408. required: true,
  409. message: "請輸入檢查人員(員工號/身份證號後四位)",
  410. trigger: "blur"
  411. }]
  412. },
  413. {
  414. label: "備註(可簡要補充檢查發現情況)",
  415. prop: "remark",
  416. type: "textarea",
  417. rules: [{
  418. required: false,
  419. message: "請輸入備註(可簡要補充檢查發現情況)",
  420. trigger: "blur"
  421. }]
  422. },
  423. {
  424. label: "填報時間",
  425. prop: "fillingDate",
  426. addDisplay: false,
  427. editDisplay: false,
  428. rules: [{
  429. required: true,
  430. message: "請輸入填報時間",
  431. trigger: "blur"
  432. }]
  433. },
  434. {
  435. label: "填報人",
  436. prop: "fillingPerson",
  437. addDisplay: false,
  438. editDisplay: false,
  439. rules: [{
  440. required: true,
  441. message: "請輸入填報人",
  442. trigger: "blur"
  443. }]
  444. },
  445. {
  446. label: "附件",
  447. prop: "enclosure",
  448. formslot: true,
  449. hide: true,
  450. rules: [{
  451. required: false,
  452. message: "請上傳附件",
  453. trigger: "blur"
  454. }]
  455. },
  456. {
  457. label: "更新時間",
  458. prop: "updateTime",
  459. addDisplay: false,
  460. editDisplay: false,
  461. },
  462. ]
  463. },
  464. data: []
  465. };
  466. },
  467. computed: {
  468. ...mapGetters(["permission"]),
  469. ...mapGetters(["userInfo"]),
  470. permissionList() {
  471. return {
  472. addBtn: this.vaildData(this.permission.tellertrunk_add, false),
  473. viewBtn: this.vaildData(this.permission.tellertrunk_view, false),
  474. delBtn: this.vaildData(this.permission.tellertrunk_delete, false),
  475. editBtn: this.vaildData(this.permission.tellertrunk_edit, false)
  476. };
  477. },
  478. ids() {
  479. let ids = [];
  480. this.selectionList.forEach(ele => {
  481. ids.push(ele.id);
  482. });
  483. return ids.join(",");
  484. }
  485. },
  486. mounted() {
  487. getDeptTree().then(res => {
  488. const column = this.findObject(this.option.column, "orgNos");
  489. let treeData = getTree(res.data.data, this.userInfo.dept_id);
  490. column.dicData = treeData;
  491. });
  492. getStandardByCode("tellertrunk").then(res => {
  493. const data = res.data.data;
  494. if (Object.keys(data).length > 0){
  495. this.title = data.content;
  496. }else {
  497. this.option.column.splice(0,1)
  498. }
  499. });
  500. },
  501. methods: {
  502. fileDownload(row){
  503. downloadFileBase64(row.enclosure, row.enclosureName);
  504. },
  505. handleDownload(){
  506. if (this.selectionList.length === 0) {
  507. let tip = "確定下載篩選的" + this.page.total + "條數據嗎?"
  508. this.$confirm(tip, {
  509. confirmButtonText: "確定",
  510. cancelButtonText: "取消",
  511. type: "warning"
  512. })
  513. .then(() => {
  514. getDownloadList(this.query).then(res => {
  515. this.downLoadData(res.data.data, true)
  516. });
  517. })
  518. }else{
  519. this.downLoadData(this.selectionList, false)
  520. }
  521. },
  522. downLoadData(data, isAll){
  523. let columns = this.deepClone(this.option.column);
  524. for (let i = 0; i < columns.length; i++) {
  525. let item = columns[i];
  526. if (item.hide || item.prop == 'process'){
  527. columns.splice(i, 1);
  528. i--;
  529. }
  530. if (!isAll && (item.type == 'select' || item.type == 'tree')){
  531. item.prop = '$' + item.prop;
  532. }
  533. }
  534. this.$Export.excel({
  535. title: "櫃員尾箱檢查流水帳記錄表" || new Date().getTime(),
  536. columns: columns,
  537. data: data
  538. });
  539. },
  540. uploadPreview(){
  541. },
  542. uploadError(error,column){
  543. this.$message.warning(error + ',不能大於' + column.fileSize + 'KB');
  544. },
  545. uploadAfter(res, done, loading, column) {
  546. this.attachForm.attachFile = [res];
  547. this.form.enclosure = res.link;
  548. this.form.enclosureName = res.originalName;
  549. this.attachBox = false;
  550. done(res);
  551. },
  552. uploadDelete(column,file) {
  553. return this.$confirm(`是否確定移除該選項?`).then(() => {
  554. this.attachForm.attachFile = [];
  555. this.form.enclosure = '';
  556. this.form.enclosureName = '';
  557. return true;
  558. })
  559. // return this.$confirm(`是否確定移除該選項?`);
  560. },
  561. rowSave(row, done, loading) {
  562. if ( row.checkUnit instanceof Array) row.checkUnit = row.checkUnit.join();
  563. if ( row.checkType instanceof Array) row.checkType = row.checkType.join();
  564. if ( row.checkContent instanceof Array) row.checkContent = row.checkContent.join();
  565. add(row).then(() => {
  566. this.onLoad(this.page);
  567. this.$message({
  568. type: "success",
  569. message: "操作成功!"
  570. });
  571. done();
  572. }, error => {
  573. loading();
  574. window.console.log(error);
  575. });
  576. },
  577. rowUpdate(row, index, done, loading) {
  578. if ( row.checkUnit instanceof Array) row.checkUnit = row.checkUnit.join();
  579. if ( row.checkType instanceof Array) row.checkType = row.checkType.join();
  580. if ( row.checkContent instanceof Array) row.checkContent = row.checkContent.join();
  581. update(row).then(() => {
  582. this.onLoad(this.page);
  583. this.$message({
  584. type: "success",
  585. message: "操作成功!"
  586. });
  587. done();
  588. }, error => {
  589. loading();
  590. console.log(error);
  591. });
  592. },
  593. rowDel(row) {
  594. this.$confirm("確定將選擇數據刪除?", {
  595. confirmButtonText: "確定",
  596. cancelButtonText: "取消",
  597. type: "warning"
  598. })
  599. .then(() => {
  600. return remove(row.id);
  601. })
  602. .then(() => {
  603. this.onLoad(this.page);
  604. this.$message({
  605. type: "success",
  606. message: "操作成功!"
  607. });
  608. });
  609. },
  610. handleDelete() {
  611. if (this.selectionList.length === 0) {
  612. this.$message.warning("請選擇至少一條數據");
  613. return;
  614. }
  615. this.$confirm("確定將選擇數據刪除?", {
  616. confirmButtonText: "確定",
  617. cancelButtonText: "取消",
  618. type: "warning"
  619. })
  620. .then(() => {
  621. return remove(this.ids);
  622. })
  623. .then(() => {
  624. this.onLoad(this.page);
  625. this.$message({
  626. type: "success",
  627. message: "操作成功!"
  628. });
  629. this.$refs.crud.toggleSelection();
  630. });
  631. },
  632. beforeOpen(done, type) {
  633. this.attachForm = {};
  634. this.attachOption.column[0].disabled = type == 'view';
  635. if (type === 'add'){
  636. let userInfo = localStorage.getItem("saber-userInfo");
  637. this.form.number = 1;
  638. this.form.handoverDate = dateFormat(new Date(), "yyyy-MM-dd hh:mm");
  639. getCurrentDept().then(res => {
  640. const data = res.data.data;
  641. this.form.bankNo = data.bankNo;
  642. this.form.orgNo = data.orgNo;
  643. this.form.orgName = data.deptName;
  644. });
  645. }
  646. if (["edit", "view"].includes(type)) {
  647. getDetail(this.form.id).then(res => {
  648. // this.form = res.data.data;
  649. const data = res.data.data;
  650. if (data.enclosureName){
  651. data.name = data.enclosureName;
  652. this.attachForm.attachFile = [
  653. {label: data.name, value: data.originalName}
  654. ];
  655. }
  656. this.form = data;
  657. });
  658. }
  659. done();
  660. },
  661. searchReset() {
  662. this.query = {};
  663. this.onLoad(this.page);
  664. },
  665. searchChange(params, done) {
  666. if (params.checkUnitSearch){
  667. params.checkUnit = params.checkUnitSearch;
  668. }
  669. if (params.checkContentSearch){
  670. params.checkContent = params.checkContentSearch;
  671. }
  672. if (params.orgNos){
  673. params.orgNostr = params.orgNos.join();
  674. params.orgNos = '';
  675. }
  676. if (params.checkTimeRange){
  677. params.checkTime_begin = params.checkTimeRange[0], params.checkTime_end = params.checkTimeRange[1];
  678. params.checkTimeRange = null;
  679. }
  680. this.query = params;
  681. this.page.currentPage = 1;
  682. this.onLoad(this.page, params);
  683. done();
  684. },
  685. selectionChange(list) {
  686. this.selectionList = list;
  687. },
  688. selectionClear() {
  689. this.selectionList = [];
  690. this.$refs.crud.toggleSelection();
  691. },
  692. currentChange(currentPage){
  693. this.page.currentPage = currentPage;
  694. },
  695. sizeChange(pageSize){
  696. this.page.pageSize = pageSize;
  697. },
  698. refreshChange() {
  699. this.onLoad(this.page, this.query);
  700. },
  701. onLoad(page, params = {}) {
  702. this.loading = true;
  703. params.createUser = this.userInfo.user_id;
  704. getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
  705. const data = res.data.data;
  706. this.page.total = data.total;
  707. data.records.forEach(item => {
  708. item.checkType = item.checkType.split(',');
  709. item.checkContent = item.checkContent.split(',');
  710. item.checkUnit = item.checkUnit.split(',');
  711. })
  712. this.data = data.records;
  713. this.loading = false;
  714. this.selectionClear();
  715. });
  716. }
  717. }
  718. };
  719. </script>
  720. <style scoped>
  721. >>>.el-form-item__content{
  722. margin-left: 10px !important;
  723. }
  724. </style>