You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1434 lines
47 KiB

4 years ago
  1. <template>
  2. <div class="mod-config">
  3. <div>
  4. <span @click="favoriteFunction()">
  5. <icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg" ></icon-svg>
  6. </span>
  7. </div>
  8. <el-form :inline="true" label-position="top">
  9. <el-form-item :label="inputSearch1">
  10. <el-input style="width: 110px;" placeholder="" v-model="mainQueryData.recordTypeDb"></el-input>
  11. </el-form-item>
  12. <el-form-item :label="inputSearch2">
  13. <el-input style="width: 110px;" placeholder="" v-model="mainQueryData.ruleId"></el-input>
  14. </el-form-item>
  15. <el-form-item :label="inputSearch3">
  16. <el-input style="width: 110px;" placeholder="" v-model="mainQueryData.ruleDesc"></el-input>
  17. </el-form-item>
  18. <el-form-item :label="inputSearch4">
  19. <el-select v-model="mainQueryData.active" placeholder="请选择" style="width: 110px;">
  20. <el-option
  21. key=""
  22. label="全部"
  23. value="">
  24. </el-option>
  25. <el-option
  26. v-for="item in selectList.select1"
  27. :key="item.value"
  28. :label="item.label"
  29. :value="item.value">
  30. </el-option>
  31. </el-select>
  32. </el-form-item>
  33. <el-form-item style="margin-top: 20px;">
  34. <el-button @click="getDataList()" type="primary">{{buttons.search}}</el-button>
  35. <el-button @click="initModel()" type="primary">{{buttons.add}}</el-button>
  36. <el-button @click="saveColumnList()" type="primary" v-show="showDefault">{{buttons.defaultTable}}
  37. </el-button>
  38. <el-button @click="userSetting" type="primary">{{ buttons.settingTable}}</el-button>
  39. <download-excel
  40. :fields="fields()"
  41. :data="exportData"
  42. type="xls"
  43. :name="exportName"
  44. :header="exportHeader"
  45. :footer="exportFooter"
  46. :defaultValue="exportDefaultValue"
  47. :fetch="createExportData"
  48. :before-generate="startDownload"
  49. :before-finish="finishDownload"
  50. worksheet="导出信息"
  51. class="el-button el-button--primary el-button--medium">
  52. {{buttons.download}}
  53. </download-excel>
  54. </el-form-item>
  55. </el-form>
  56. <el-table
  57. :height="height"
  58. :data="dataList"
  59. border
  60. v-loading="dataListLoading"
  61. @selection-change="selectionChangeHandle"
  62. style="width: 100%;">
  63. <el-table-column
  64. v-for="(item,index) in columnList" :key="index"
  65. :sortable="item.columnSortable"
  66. :prop="item.columnProp"
  67. :header-align="item.headerAlign"
  68. :show-overflow-tooltip="item.showOverflowTooltip"
  69. :align="item.align"
  70. :fixed="item.fixed"
  71. :width="item.columnWidth"
  72. :label="item.columnLabel">
  73. <template slot-scope="scope">
  74. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  75. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  76. style="width: 100px; height: 80px"/></span>
  77. </template>
  78. </el-table-column>
  79. <el-table-column
  80. fixed="right"
  81. header-align="center"
  82. align="center"
  83. width="140"
  84. :label="buttons.cz">
  85. <template slot-scope="scope">
  86. <a @click="initAuthStep(scope.row)">{{buttons.reviewer}}</a>
  87. <a @click="initModel(scope.row)">{{buttons.edit}}</a>
  88. <a @click="delAuditRules(scope.row)">{{buttons.delete}}</a>
  89. </template>
  90. </el-table-column>
  91. </el-table>
  92. <column v-if="visible" ref="column" @refreshData="getTableUserColumn"></column>
  93. <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-drag :title="inputSearch3" :visible.sync="setUp.reviewFlag" width="485px">
  94. <el-form :inline="true" label-position="top">
  95. <el-form-item :label="inputSearch5">
  96. <el-input style="width: 135px;" v-model="saveAuditRuleData.ruleId"></el-input>
  97. </el-form-item>
  98. <el-form-item :label="inputSearch6">
  99. <el-input style="width: 135px;" v-model="saveAuditRuleData.ruleDesc"></el-input>
  100. </el-form-item>
  101. <el-form-item :label="inputSearch7">
  102. <!-- <el-input style="width: 135px;" v-model="saveAuditRuleData.recordTypeDb"></el-input>-->
  103. <el-select v-model="saveAuditRuleData.recordTypeDb" placeholder="请选择" style="width: 135px;">
  104. <el-option
  105. v-for="item in selectList.select6"
  106. :key="item.value"
  107. :label="item.label"
  108. :value="item.value">
  109. </el-option>
  110. </el-select>
  111. </el-form-item>
  112. <!-- <el-form-item :label="inputSearch9">-->
  113. <!-- <el-input style="width: 135px;" oninput="value=value.replace(/^\.+|[^\d.]/g,'')" v-model="saveAuditRuleData.minValue"></el-input>-->
  114. <!-- </el-form-item>-->
  115. <!-- <el-form-item :label="inputSearch10">-->
  116. <!-- <el-input style="width: 135px;" oninput="value=value.replace(/^\.+|[^\d.]/g,'')" v-model="saveAuditRuleData.maxValue"></el-input>-->
  117. <!-- </el-form-item>-->
  118. <el-form-item :label="inputSearch11">
  119. <el-input style="width: 135px;" oninput="value=value.replace(/^\.+|[^\d.]/g,'')" v-model="saveAuditRuleData.priority"></el-input>
  120. </el-form-item>
  121. <el-form-item :label="inputSearch8">
  122. <el-select v-model="saveAuditRuleData.active" placeholder="请选择" style="width: 135px;">
  123. <el-option
  124. v-for="item in selectList.select1"
  125. :key="item.value"
  126. :label="item.label"
  127. :value="item.value">
  128. </el-option>
  129. </el-select>
  130. </el-form-item>
  131. <el-form-item :label="inputSearch12">
  132. <el-input style="width: 430px;" v-model="saveAuditRuleData.remark"></el-input>
  133. </el-form-item>
  134. </el-form>
  135. <span slot="footer" class="dialog-footer">
  136. <el-button @click="setUp.reviewFlag = false">取消</el-button>
  137. <el-button type="primary" :disabled="setUp.saveButton" @click="saveAuditRules()">确定</el-button>
  138. </span>
  139. </el-dialog>
  140. <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-drag :title="inputSearch21" :visible.sync="setUp.authStepFlag" width="750px">
  141. <el-form :inline="true" label-position="top">
  142. <el-form-item >
  143. <el-button @click="initAuthStepModel()" type="primary">{{buttons.add}}</el-button>
  144. </el-form-item>
  145. </el-form>
  146. <el-table
  147. id="authStep"
  148. :height="300"
  149. :data="authStepList"
  150. border
  151. v-loading="dataListLoading"
  152. @selection-change="selectionChangeHandle"
  153. style="width: 100%;">
  154. <el-table-column
  155. type="selection"
  156. header-align="center"
  157. width="40"
  158. align="center">
  159. </el-table-column>
  160. <el-table-column
  161. v-for="(item,index) in columnList1" :key="index"
  162. :sortable="item.columnSortable"
  163. :prop="item.columnProp"
  164. :header-align="item.headerAlign"
  165. :show-overflow-tooltip="item.showOverflowTooltip"
  166. :align="item.align"
  167. :fixed="item.fixed"
  168. :width="item.columnWidth"
  169. :label="item.columnLabel">
  170. <template slot-scope="scope">
  171. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  172. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  173. style="width: 100px; height: 80px"/></span>
  174. </template>
  175. </el-table-column>
  176. <el-table-column
  177. fixed="right"
  178. header-align="center"
  179. align="center"
  180. width="100"
  181. :label="buttons.cz">
  182. <template slot-scope="scope">
  183. <!-- <a @click="generateData(scope.row)">{{buttons.reviewer}}</a>-->
  184. <a @click="initAuthStepModel(scope.row)">{{buttons.edit}}</a>
  185. <a @click="deleteAuthStep(scope.row)">{{buttons.delete}}</a>
  186. </template>
  187. </el-table-column>
  188. </el-table>
  189. <el-footer style="height: 20px;"></el-footer>
  190. </el-dialog>
  191. <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-drag :title="inputSearch13" :visible.sync="setUp.authStepReviewFlag" width="485px">
  192. <el-form :inline="true" label-position="top">
  193. <!--<el-form-item :label="inputSearch14">
  194. <el-input style="width: 135px;" oninput="value=value.replace(/^\.+|[^\d.]/g,'')" v-model="authStepData.stepId"></el-input>
  195. </el-form-item>-->
  196. <!--<el-form-item :label="inputSearch15">
  197. <el-select v-model="authStepData.firstStepFlag" placeholder="请选择" style="width: 135px;">
  198. <el-option
  199. v-for="item in selectList.select2"
  200. :key="item.value"
  201. :label="item.label"
  202. :value="item.value">
  203. </el-option>
  204. </el-select>
  205. </el-form-item>-->
  206. <!--<el-form-item :label="inputSearch16">
  207. <el-select v-model="authStepData.lastStepFlag" placeholder="请选择" style="width: 135px;">
  208. <el-option
  209. v-for="(item,index) in selectList.select2"
  210. :key="index"
  211. :label="item.label"
  212. :value="item.value">
  213. </el-option>
  214. </el-select>
  215. </el-form-item>-->
  216. <el-form-item :label="inputSearch17">
  217. <el-select @change="authTypeDbChange()" v-model="authStepData.authTypeDb" placeholder="请选择" style="width: 135px;">
  218. <el-option
  219. v-for="item in selectList.select3"
  220. :key="item.value"
  221. :label="item.label"
  222. :value="item.value">
  223. </el-option>
  224. </el-select>
  225. </el-form-item>
  226. <el-form-item :label="inputSearch18" style="height: 28px;">
  227. <el-select v-model="authStepData.authUserId" :disabled="setUp.authUserIdFlag" placeholder="请选择" style="width: 135px;height: 28px;">
  228. <el-option
  229. v-for="(item,index) in selectList.select4"
  230. :key="index"
  231. :label="item.label"
  232. :value="item.value"
  233. >
  234. </el-option>
  235. </el-select>
  236. </el-form-item>
  237. <el-form-item :label="inputSearch19">
  238. <el-select v-model="authStepData.authGroupId" :disabled="setUp.authTypeDbFlag" placeholder="请选择" style="width: 135px;">
  239. <el-option
  240. v-for="item in selectList.select5"
  241. :key="item.value"
  242. :label="item.label"
  243. :value="item.value">
  244. </el-option>
  245. </el-select>
  246. </el-form-item>
  247. <el-form-item :label="inputSearch20">
  248. <el-select v-model="authStepData.needAuthBeforePrintFlag" placeholder="请选择" style="width: 135px;">
  249. <el-option
  250. v-for="item in selectList.select2"
  251. :key="item.value"
  252. :label="item.label"
  253. :value="item.value">
  254. </el-option>
  255. </el-select>
  256. </el-form-item>
  257. </el-form>
  258. <span slot="footer" class="dialog-footer">
  259. <el-button @click="setUp.authStepReviewFlag = false">取消</el-button>
  260. <el-button type="primary" :disabled="setUp.saveAuthStepButton" @click="saveAuthStepModel()">确定</el-button>
  261. </span>
  262. </el-dialog>
  263. </div>
  264. </template>
  265. <script>
  266. import column from "../common/column";
  267. import {
  268. searchSysLanguagePackList,
  269. searchSysLanguageParam,
  270. searchFunctionButtonList,
  271. saveButtonList,
  272. searchSysLanguage,
  273. searchLanguageListByLanguageCode,
  274. saveSysLanguageOne
  275. } from "@/api/sysLanguage.js"
  276. import getLodop from '@/utils/LodopFuncs.js'
  277. import {
  278. saveTableDefaultList,
  279. saveTableUser,
  280. getTableDefaultListLanguage,
  281. getTableUserListLanguage
  282. } from "@/api/table.js"
  283. import {
  284. userFavoriteList,
  285. saveUserFavorite,
  286. removeUserFavorite
  287. } from '@/api/userFavorite.js'
  288. import {
  289. getAuthRuleList,
  290. saveAuthRule,
  291. getAuthStepList,
  292. getUserList,
  293. getAuthGroupList,
  294. saveAuthStep,
  295. deleteAuthStep,
  296. deleteAuthRule,
  297. getBusinessRoleList,
  298. } from '@/api/auditManagement/auditRules.js'
  299. export default {
  300. components: {
  301. column
  302. },
  303. data() {
  304. return {
  305. saveAuditRuleData :{
  306. recordTypeDb : '',
  307. ruleId : '',
  308. ruleDesc : '',
  309. site : this.$store.state.user.site,
  310. active : '',
  311. priority : 0,
  312. minValue : 0,
  313. maxValue : 0,
  314. remark : '',
  315. element1 : '',
  316. byElement1 : '',
  317. element2 : '',
  318. byElement2 : '',
  319. element3 : '',
  320. byElement3 : '',
  321. element4 : '',
  322. byElement4 : '',
  323. },
  324. authStepData : {
  325. id : 0,
  326. stepId : '',
  327. authTypeDb : '',
  328. authUserId : '',
  329. authGroupId : '',
  330. needAuthBeforePrintFlag : '',
  331. firstStepFlag : '',
  332. lastStepFlag : '',
  333. },
  334. authStepList : [],
  335. currentData : {},
  336. inputSearch1 : '记录类型',
  337. inputSearch2 : '规则编码',
  338. inputSearch3 : '规则描述',
  339. inputSearch4 : '状态',
  340. inputSearch5 : '规则编码',
  341. inputSearch6 : '规则描述',
  342. inputSearch7 : '记录类型',
  343. inputSearch8 : '状态',
  344. inputSearch9 : '最小金额',
  345. inputSearch10 : '最高金额',
  346. inputSearch11 : '优先级',
  347. inputSearch12 : '备注',
  348. inputSearch13 : '审批步骤信息',
  349. inputSearch14 : '审批步骤号',
  350. inputSearch15 : '最先审核',
  351. inputSearch16 : '最后审核',
  352. inputSearch17 : '类型',
  353. inputSearch18 : '用户名称',
  354. inputSearch19 : '组名称',
  355. inputSearch20 : '未审核打印',
  356. inputSearch21 : '审批步骤',
  357. site : this.$store.state.user.site,
  358. currAuditTeamData:{},
  359. //设置
  360. setUp :{
  361. //审核规则新增及编辑
  362. reviewFlag : false,
  363. //审核规则保存
  364. saveButton : false,
  365. //审核步骤
  366. authStepFlag : false,
  367. //审核步骤新增及编辑
  368. authStepReviewFlag : false,
  369. //审核步骤保存
  370. saveAuthStepButton : false,
  371. //用户选择select
  372. authUserIdFlag : false,
  373. //权限组选择select
  374. authTypeDbFlag : false,
  375. },
  376. selectList:{
  377. select1 : [{
  378. value: 'Y',
  379. label: '启用'
  380. },{
  381. value: 'N',
  382. label: '禁用'
  383. }],
  384. select2 :[{
  385. value: 'Y',
  386. label: '是'
  387. },{
  388. value: 'N',
  389. label: '否'
  390. }],
  391. select3 :[{
  392. value: 'P',
  393. label: '个人'
  394. },{
  395. value: 'G',
  396. label: '组'
  397. }],
  398. select4 : [],
  399. select5 : [],
  400. select6 : [],
  401. },
  402. mainQueryData :{
  403. site : this.$store.state.user.site,
  404. userId: this.$store.state.user.name,
  405. recordTypeDb : '',
  406. ruleId : '',
  407. ruleDesc : '',
  408. active : '',
  409. },
  410. // table高度
  411. height:450,
  412. // 是否收藏
  413. favorite: false,
  414. addLanguage: false,
  415. functionId: 2401,
  416. tableId: "auditRules2401",
  417. value1: true,
  418. visible: false,
  419. showDefault: false,
  420. // 默认table 查询参数
  421. queryTable: {
  422. functionId: 2401,
  423. tableId: "auditRules2401",
  424. languageCode: this.$i18n.locale
  425. },
  426. // 用户table 查询参数
  427. queryTableUser: {
  428. userId: this.$store.state.user.name,
  429. functionId: 2401,
  430. tableId: "auditRules2401",
  431. status: true,
  432. languageCode: this.$i18n.locale
  433. },
  434. // 语言词典查询参数
  435. querySysLanguageParam: {
  436. languageCode: this.$i18n.locale
  437. },
  438. // 语言词典集合
  439. sysLanguageParams: [],
  440. // 用户table 配置集合
  441. userColumnList: [],
  442. // 展示列集
  443. columnList: [
  444. {
  445. userId: this.$store.state.user.name,
  446. functionId: 2401,
  447. serialNumber: 'auditRules2401RecordTypeDb',
  448. tableId: "auditRules2401",
  449. tableName: "auditType",
  450. columnProp: "recordTypeDb",
  451. headerAlign: "center",
  452. align: "center",
  453. columnLabel: "记录类型",
  454. columnHidden: false,
  455. columnImage: false,
  456. columnSortable: true,
  457. sortLv: 0,
  458. status: true,
  459. fixed: false
  460. },
  461. {
  462. userId: this.$store.state.user.name,
  463. functionId: 2401,
  464. serialNumber: 'auditRules2401RuleId',
  465. tableId: "auditRules2401",
  466. tableName: "auditType",
  467. columnProp: "ruleId",
  468. headerAlign: "center",
  469. align: "center",
  470. columnLabel: "规则编码",
  471. columnHidden: false,
  472. columnImage: false,
  473. columnSortable: true,
  474. sortLv: 0,
  475. status: true,
  476. fixed: false,
  477. },
  478. {
  479. userId: this.$store.state.user.name,
  480. functionId: 2401,
  481. serialNumber: 'auditTeam230RuleDesc',
  482. tableId: "auditRules2401",
  483. tableName: "auditType",
  484. columnProp: "ruleDesc",
  485. headerAlign: "center",
  486. align: "center",
  487. columnLabel: "规则描述",
  488. columnHidden: false,
  489. columnImage: false,
  490. columnSortable: true,
  491. sortLv: 0,
  492. status: true,
  493. fixed: false,
  494. },
  495. {
  496. userId: this.$store.state.user.name,
  497. functionId: 2401,
  498. serialNumber: 'auditTeam230Priority',
  499. tableId: "auditRules2401",
  500. tableName: "auditType",
  501. columnProp: "priority",
  502. headerAlign: "center",
  503. align: "center",
  504. columnLabel: "优先级",
  505. columnHidden: false,
  506. columnImage: false,
  507. columnSortable: true,
  508. sortLv: 0,
  509. status: true,
  510. fixed: false,
  511. },
  512. {
  513. userId: this.$store.state.user.name,
  514. functionId: 2401,
  515. serialNumber: 'auditTeam230MinValue',
  516. tableId: "auditRules2401",
  517. tableName: "auditType",
  518. columnProp: "minValue",
  519. headerAlign: "center",
  520. align: "center",
  521. columnLabel: "最小金额",
  522. columnHidden: false,
  523. columnImage: false,
  524. columnSortable: true,
  525. sortLv: 0,
  526. status: true,
  527. fixed: false,
  528. },
  529. {
  530. userId: this.$store.state.user.name,
  531. functionId: 2401,
  532. serialNumber: 'auditTeam230MinValue',
  533. tableId: "auditRules2401",
  534. tableName: "auditType",
  535. columnProp: "maxValue",
  536. headerAlign: "center",
  537. align: "center",
  538. columnLabel: "最高金额",
  539. columnHidden: false,
  540. columnImage: false,
  541. columnSortable: true,
  542. sortLv: 0,
  543. status: true,
  544. fixed: false,
  545. },
  546. {
  547. userId: this.$store.state.user.name,
  548. functionId: 2401,
  549. serialNumber: 'auditRules2401Active',
  550. tableId: "auditRules2401",
  551. tableName: "auditType",
  552. columnProp: "active",
  553. headerAlign: "center",
  554. align: "center",
  555. columnLabel: "状态",
  556. columnHidden: false,
  557. columnImage: false,
  558. columnSortable: true,
  559. sortLv: 0,
  560. status: true,
  561. fixed: false,
  562. },
  563. {
  564. userId: this.$store.state.user.name,
  565. functionId: 2401,
  566. serialNumber: 'auditRules2401Remark',
  567. tableId: "auditRules2401",
  568. tableName: "auditType",
  569. columnProp: "remark",
  570. headerAlign: "center",
  571. align: "center",
  572. columnLabel: "备注",
  573. columnHidden: false,
  574. columnImage: false,
  575. columnSortable: true,
  576. sortLv: 0,
  577. status: true,
  578. fixed: false,
  579. },
  580. ],
  581. // 展示列集
  582. columnList1: [
  583. {
  584. userId: this.$store.state.user.name,
  585. functionId: 2401,
  586. tableId: "authStep2401",
  587. tableName: "authStep",
  588. columnProp: "stepId",
  589. headerAlign: "center",
  590. align: "center",
  591. columnLabel: "步骤号",
  592. columnHidden: false,
  593. columnImage: false,
  594. columnSortable: true,
  595. sortLv: 0,
  596. status: true,
  597. fixed: false
  598. },
  599. {
  600. userId: this.$store.state.user.name,
  601. functionId: 2401,
  602. tableId: "authStep2401",
  603. tableName: "authStep",
  604. columnProp: "authTypeDesc",
  605. headerAlign: "center",
  606. align: "center",
  607. columnLabel: "类型",
  608. columnHidden: false,
  609. columnImage: false,
  610. columnSortable: true,
  611. sortLv: 0,
  612. status: true,
  613. fixed: false,
  614. },
  615. {
  616. userId: this.$store.state.user.name,
  617. functionId: 2401,
  618. tableId: "authStep2401",
  619. tableName: "authStep",
  620. columnProp: "userName",
  621. headerAlign: "center",
  622. align: "center",
  623. columnLabel: "用户名称",
  624. columnHidden: false,
  625. columnImage: false,
  626. columnSortable: true,
  627. sortLv: 0,
  628. status: true,
  629. fixed: false,
  630. },
  631. {
  632. userId: this.$store.state.user.name,
  633. functionId: 2401,
  634. tableId: "authStep2401",
  635. tableName: "authStep",
  636. columnProp: "groupDesc",
  637. headerAlign: "center",
  638. align: "center",
  639. columnLabel: "组名称",
  640. columnHidden: false,
  641. columnImage: false,
  642. columnSortable: true,
  643. sortLv: 0,
  644. status: true,
  645. fixed: false,
  646. },
  647. {
  648. userId: this.$store.state.user.name,
  649. functionId: 2401,
  650. tableId: "authStep2401",
  651. tableName: "authStep",
  652. columnProp: "printDesc",
  653. headerAlign: "center",
  654. align: "center",
  655. columnLabel: "未审批打印",
  656. columnHidden: false,
  657. columnImage: false,
  658. columnSortable: true,
  659. sortLv: 0,
  660. status: true,
  661. fixed: false,
  662. },
  663. {
  664. userId: this.$store.state.user.name,
  665. functionId: 2401,
  666. tableId: "authStep2401",
  667. tableName: "authStep",
  668. columnProp: "firstStepDesc",
  669. headerAlign: "center",
  670. align: "center",
  671. columnLabel: "第一审批",
  672. columnHidden: false,
  673. columnImage: false,
  674. columnSortable: true,
  675. sortLv: 0,
  676. status: true,
  677. fixed: false,
  678. },
  679. {
  680. userId: this.$store.state.user.name,
  681. functionId: 2401,
  682. tableId: "authStep2401",
  683. tableName: "authStep",
  684. columnProp: "lastStepDesc",
  685. headerAlign: "center",
  686. align: "center",
  687. columnLabel: "最后审批",
  688. columnHidden: false,
  689. columnImage: false,
  690. columnSortable: true,
  691. sortLv: 0,
  692. status: true,
  693. fixed: false,
  694. },
  695. ],
  696. // 数据集
  697. dataList: [],
  698. queryButton: {
  699. functionId: 2401,
  700. table_id: 'auditRules2401',
  701. languageCode: this.$i18n.locale,
  702. objectType: 'button'
  703. },
  704. buttons: {
  705. add: '新增',
  706. edit: '编辑',
  707. delete: '删除',
  708. cz: '操作',
  709. search: '查询',
  710. download: '导出',
  711. settingTable: '设置列表',
  712. defaultTable: '设置默认配置',
  713. reviewer : '审批步骤',
  714. },
  715. // 导出 start
  716. exportData: [],
  717. exportName: "页面功能语言",
  718. exportHeader: ["页面功能语言"],
  719. exportFooter: [],
  720. exportDefaultValue: "这一行这一列没有数据",
  721. // 导出 end
  722. buttonList: [
  723. // {
  724. // functionId: "9001",
  725. // languageValue: '添加',
  726. // objectId: 'add',
  727. // objectType: "button",
  728. // tableId: "common1001"
  729. // },
  730. // {
  731. // functionId: "9001",
  732. // languageValue: '编辑',
  733. // objectId: 'edit',
  734. // objectType: "button",
  735. // tableId: "common1001"
  736. // },
  737. // {
  738. // functionId: "9001",
  739. // languageValue: '删除',
  740. // objectId: 'delete',
  741. // objectType: "button",
  742. // tableId: "common1001"
  743. // },
  744. // {
  745. // functionId: "9001",
  746. // languageValue: '批量删除',
  747. // objectId: 'deleteList',
  748. // objectType: "button",
  749. // tableId: "common1001"
  750. // },
  751. // {
  752. // functionId: "9001",
  753. // languageValue: '操作',
  754. // objectId: 'cz',
  755. // objectType: "button",
  756. // tableId: "common1001"
  757. // },
  758. // {
  759. // functionId: "9001",
  760. // languageValue: '查询',
  761. // objectId: 'search',
  762. // objectType: "button",
  763. // tableId: "common1001"
  764. // },
  765. // {
  766. // functionId: "9001",
  767. // languageValue: '导出',
  768. // objectId: 'download',
  769. // objectType: "button",
  770. // tableId: "common1001"
  771. // },
  772. // {
  773. // functionId: "9001",
  774. // languageValue: '设置列表',
  775. // objectId: 'settingTable',
  776. // objectType: "button",
  777. // tableId: "common1001"
  778. // },
  779. // {
  780. // functionId: "9001",
  781. // languageValue: '设置默认配置',
  782. // objectId: 'defaultTable',
  783. // objectType: "button",
  784. // tableId: "common1001"
  785. // }
  786. ],
  787. languageList: [],
  788. languageColumnList: [],
  789. languageDataList: [],
  790. queryLanguage: {},
  791. // 数据集条件
  792. querySysLanguagePack: {
  793. page: 1,
  794. limit: 1,
  795. languageValue: '',
  796. objectType: '',
  797. objectId: ''
  798. },
  799. // 分页
  800. pageIndex: 1,
  801. pageSize: 20,
  802. totalPage: 0,
  803. dataListLoading: false,
  804. dataListSelections: [],
  805. addOrUpdateVisible: false
  806. }
  807. },
  808. mounted() {
  809. this.$nextTick(()=>{
  810. this.height = window.innerHeight - 200;
  811. })
  812. },
  813. activated() {
  814. this.getDataList()
  815. this.getLanguageList()
  816. this.initUserList()
  817. this.initAuthGroupList()
  818. this.getBusinessRoleList()
  819. },
  820. methods: {
  821. getBusinessRoleList(){
  822. let queryData = {
  823. active : 'Y'
  824. }
  825. this.selectList.select6 = []
  826. getBusinessRoleList(queryData).then(({data}) =>{
  827. let list = data.rows
  828. for (let i = 0; i < list.length; i++) {
  829. let selectData = {
  830. value : list[i].roleItemNo + "",
  831. label :list[i].roleDesc + '-' + list[i].roleItemNo,
  832. }
  833. this.selectList.select6.push(selectData)
  834. }
  835. })
  836. },
  837. //删除审核步骤
  838. deleteAuthStep(row){
  839. this.$confirm("确定删除该记录吗?", '删除提示', {
  840. confirmButtonText: '确定',
  841. cancelButtonText: '取消',
  842. }).then(()=>{
  843. let delData = {
  844. id : row.id,
  845. ruleId : row.ruleId
  846. }
  847. deleteAuthStep(delData).then(({data}) => {
  848. if (data.code == 0) {
  849. this.initAuthStep(this.currentData)
  850. }
  851. this.$alert(data.msg, '操作提示', {
  852. confirmButtonText: '确定',
  853. });
  854. })
  855. }).catch(()=>{})
  856. },
  857. //保存审批步骤
  858. saveAuthStepModel(){
  859. this.setUp.saveAuthStepButton = true
  860. /*if(this.authStepData.stepId <= 0){
  861. this.$alert("请输入步骤号", '操作提示', {
  862. confirmButtonText: '确定',
  863. callback: action => {
  864. this.setUp.saveAuthStepButton = false
  865. }
  866. });
  867. return
  868. }else*/ if(this.authStepData.authTypeDb == 'P' && this.authStepData.authUserId == ''){
  869. this.$alert("请选择用户", '操作提示', {
  870. confirmButtonText: '确定',
  871. callback: action => {
  872. this.setUp.saveAuthStepButton = false
  873. }
  874. });
  875. return
  876. }else if(this.authStepData.authTypeDb == 'G' && this.authStepData.authGroupId == ''){
  877. this.$alert("请选择权限组", '操作提示', {
  878. confirmButtonText: '确定',
  879. callback: action => {
  880. this.setUp.saveAuthStepButton = false
  881. }
  882. });
  883. return
  884. }
  885. saveAuthStep(this.authStepData).then(({data}) => {
  886. if (data.code == 0) {
  887. this.initAuthStep(this.currentData)
  888. }
  889. this.$alert(data.msg, '操作提示', {
  890. confirmButtonText: '确定',
  891. callback: action => {
  892. if (data.code == 0) {
  893. this.setUp.authStepReviewFlag = false
  894. }
  895. this.setUp.saveAuthStepButton = false
  896. }
  897. });
  898. })
  899. },
  900. //类型改变触发事件
  901. authTypeDbChange(){
  902. if(this.authStepData.authTypeDb == ''){
  903. this.authStepData.authUserId = ''
  904. this.authStepData.authGroupId = ''
  905. this.setUp.authUserIdFlag = true
  906. this.setUp.authTypeDbFlag = true
  907. }else if(this.authStepData.authTypeDb == 'P'){
  908. this.authStepData.authGroupId = ''
  909. this.setUp.authUserIdFlag = false
  910. this.setUp.authTypeDbFlag = true
  911. }else if(this.authStepData.authTypeDb == 'G'){
  912. this.authStepData.authUserId = ''
  913. this.setUp.authTypeDbFlag = false
  914. this.setUp.authUserIdFlag = true
  915. }
  916. },
  917. //获取权限组信息
  918. initAuthGroupList(){
  919. let queryData = {
  920. site : this.site,
  921. }
  922. getAuthGroupList(queryData).then(({data}) => {
  923. let resultList = data.rows
  924. this.selectList.select5 = []
  925. for (let i = 0; i < resultList.length; i++) {
  926. let data = {
  927. value: resultList[i].id,
  928. label: resultList[i].groupDesc
  929. }
  930. this.selectList.select5.push(data)
  931. }
  932. })
  933. },
  934. //获取用户信息
  935. initUserList(){
  936. let queryData = {
  937. site : this.site,
  938. }
  939. getUserList(queryData).then(({data}) => {
  940. let resultList = data.rows
  941. this.selectList.select4=[]
  942. for (let i = 0; i < resultList.length; i++) {
  943. let data = {
  944. value: resultList[i].userId,
  945. label: resultList[i].username
  946. }
  947. this.selectList.select4.push(data)
  948. }
  949. })
  950. },
  951. //审核步骤 新增及修改
  952. initAuthStepModel(row){
  953. if(row == null){
  954. this.authStepData.id = 0
  955. this.authStepData.stepId = ''
  956. this.authStepData.authTypeDb = 'P'
  957. this.authStepData.authUserId = ''
  958. this.authStepData.authGroupId = ''
  959. this.authStepData.needAuthBeforePrintFlag = 'Y'
  960. this.authStepData.firstStepFlag = 'Y'
  961. this.authStepData.lastStepFlag = 'Y'
  962. }else {
  963. this.authStepData.id = row.id
  964. this.authStepData.stepId = row.stepId
  965. this.authStepData.authTypeDb = row.authTypeDb
  966. this.authStepData.authUserId = parseInt(row.authUserId)
  967. this.authStepData.authGroupId = parseInt(row.authGroupId)
  968. this.authStepData.needAuthBeforePrintFlag = row.needAuthBeforePrintFlag
  969. this.authStepData.firstStepFlag = row.firstStepFlag
  970. this.authStepData.lastStepFlag = row.lastStepFlag
  971. }
  972. this.authStepData.ruleId = this.currentData.id
  973. this.authTypeDbChange()
  974. this.setUp.authStepReviewFlag = true
  975. this.setUp.saveAuthStepButton = false
  976. },
  977. //初始化 审批步骤
  978. initAuthStep(row){
  979. this.setUp.authStepFlag = true
  980. this.currentData = row
  981. this.authStepList = []
  982. let queryData = {
  983. ruleId : this.currentData.id
  984. }
  985. getAuthStepList(queryData).then(({data}) =>{
  986. this.authStepList = data.rows
  987. })
  988. },
  989. //删除审核规则
  990. delAuditRules(row){
  991. this.$confirm("确定删除该记录及子记录吗?", '删除提示', {
  992. confirmButtonText: '确定',
  993. cancelButtonText: '取消',
  994. }).then(()=>{
  995. let delData = {
  996. id : row.id
  997. }
  998. deleteAuthRule(delData).then(({data}) => {
  999. if (data.code == 0) {
  1000. this.getDataList()
  1001. }
  1002. this.$alert(data.msg, '操作提示', {
  1003. confirmButtonText: '确定',
  1004. });
  1005. })
  1006. }).catch(()=>{})
  1007. },
  1008. //保存审核规则
  1009. saveAuditRules(){
  1010. this.setUp.saveButton = true
  1011. if(this.saveAuditRuleData.recordTypeDb == ''){
  1012. this.$alert("请输入记录类型", '操作提示', {
  1013. confirmButtonText: '确定',
  1014. callback: action => {
  1015. this.setUp.saveButton = false
  1016. }
  1017. });
  1018. return
  1019. }else if(this.saveAuditRuleData.ruleId == ''){
  1020. this.$alert("请输入规则编码", '操作提示', {
  1021. confirmButtonText: '确定',
  1022. callback: action => {
  1023. this.setUp.saveButton = false
  1024. }
  1025. });
  1026. return
  1027. }else if(this.saveAuditRuleData.ruleDesc == ''){
  1028. this.$alert("请输入规则描述", '操作提示', {
  1029. confirmButtonText: '确定',
  1030. callback: action => {
  1031. this.setUp.saveButton = false
  1032. }
  1033. });
  1034. return
  1035. }/*else if(this.saveAuditRuleData.minValue <= 0){
  1036. this.$alert("请输入最小金额", '操作提示', {
  1037. confirmButtonText: '确定',
  1038. callback: action => {
  1039. this.setUp.saveButton = false
  1040. }
  1041. });
  1042. return
  1043. }else if(this.saveAuditRuleData.maxValue <= 0){
  1044. this.$alert("请输入最大金额", '操作提示', {
  1045. confirmButtonText: '确定',
  1046. callback: action => {
  1047. this.setUp.saveButton = false
  1048. }
  1049. });
  1050. return
  1051. }else if(this.saveAuditRuleData.minValue > this.saveAuditRuleData.maxValue){
  1052. this.$alert("最小金额大于最大金额", '操作提示', {
  1053. confirmButtonText: '确定',
  1054. callback: action => {
  1055. this.setUp.saveButton = false
  1056. }
  1057. });
  1058. return
  1059. }*/
  1060. this.saveAuditRuleData.minValue = 0
  1061. this.saveAuditRuleData.maxValue = 0
  1062. saveAuthRule(this.saveAuditRuleData).then(({data}) => {
  1063. if (data.code == 0) {
  1064. this.getDataList()
  1065. }
  1066. this.$alert(data.msg, '操作提示', {
  1067. confirmButtonText: '确定',
  1068. callback: action => {
  1069. if (data.code == 0) {
  1070. this.setUp.reviewFlag = false
  1071. }
  1072. this.setUp.saveButton = false
  1073. }
  1074. });
  1075. })
  1076. },
  1077. //初始化 审核规则新增模态框
  1078. initModel(row){
  1079. this.setUp.reviewFlag = true
  1080. this.setUp.saveButton = false
  1081. if(row == null){
  1082. this.saveAuditRuleData.id = 0
  1083. this.saveAuditRuleData.recordTypeDb = ''
  1084. this.saveAuditRuleData.ruleId = ''
  1085. this.saveAuditRuleData.ruleDesc = ''
  1086. this.saveAuditRuleData.priority = 0
  1087. this.saveAuditRuleData.active = 'Y'
  1088. this.saveAuditRuleData.minValue = 0
  1089. this.saveAuditRuleData.maxValue = 0
  1090. this.saveAuditRuleData.element1 = ''
  1091. this.saveAuditRuleData.byElement1 = ''
  1092. this.saveAuditRuleData.element2 = ''
  1093. this.saveAuditRuleData.byElement2 = ''
  1094. this.saveAuditRuleData.element3 = ''
  1095. this.saveAuditRuleData.byElement3 = ''
  1096. this.saveAuditRuleData.element4 = ''
  1097. this.saveAuditRuleData.byElement4 = ''
  1098. this.saveAuditRuleData.remark = ''
  1099. }else {
  1100. this.saveAuditRuleData.id = row.id
  1101. this.saveAuditRuleData.recordTypeDb = row.recordTypeDb
  1102. this.saveAuditRuleData.ruleId = row.ruleId
  1103. this.saveAuditRuleData.ruleDesc = row.ruleDesc
  1104. this.saveAuditRuleData.priority = row.priority
  1105. this.saveAuditRuleData.minValue = row.minValue
  1106. this.saveAuditRuleData.maxValue = row.maxValue
  1107. this.saveAuditRuleData.element1 = row.element1
  1108. this.saveAuditRuleData.byElement1 = row.byElement1
  1109. this.saveAuditRuleData.element2 = row.element2
  1110. this.saveAuditRuleData.byElement2 = row.byElement2
  1111. this.saveAuditRuleData.element3 = row.element3
  1112. this.saveAuditRuleData.byElement3 = row.byElement3
  1113. this.saveAuditRuleData.element4 = row.element4
  1114. this.saveAuditRuleData.byElement4 = row.byElement4
  1115. this.saveAuditRuleData.remark = row.remark
  1116. if(row.active == "启用"){
  1117. this.saveAuditRuleData.active = 'Y'
  1118. }else {
  1119. this.saveAuditRuleData.active = 'N'
  1120. }
  1121. }
  1122. },
  1123. // 打印方式
  1124. printReport(){
  1125. const LODOP = getLodop()
  1126. if (LODOP) {
  1127. var strBodyStyle = '<style>'
  1128. strBodyStyle += 'table { border-top: 1 solid #000000; border-left: 1 solid #000000; border-collapse:collapse; border-spacing:0;}'
  1129. strBodyStyle += 'caption { line-height:2em; }'
  1130. strBodyStyle += 'td { border-right: 1 solid #000000; border-bottom: 1 solid #000000; text-align:center; padding:2px 3px; font-size:11px;}'
  1131. strBodyStyle += '</style>' //设置打印样式
  1132. var strFormHtml = strBodyStyle + '<body>' + document.getElementById('commmon').innerHTML + '</body>' //获取打印内容
  1133. LODOP.PRINT_INIT('') //初始化
  1134. LODOP.PRINT_DESIGN();
  1135. //LODOP.PREVIEW();
  1136. //LODOP.PRINT();
  1137. LODOP.SET_PRINT_PAGESIZE(2, 0, 0, 'A4') //设置横向
  1138. LODOP.ADD_PRINT_HTM('1%', '1%', '98%', '98%', strFormHtml) //设置打印内容
  1139. LODOP.SET_PREVIEW_WINDOW(2, 0, 0, 800, 600, '') //设置预览窗口模式和大小
  1140. LODOP.PREVIEW()
  1141. }
  1142. },
  1143. // 校验用户是否收藏
  1144. favoriteIsOk(){
  1145. let userFavorite ={
  1146. userId:this.$store.state.user.id,
  1147. languageCode:this.$i18n.locale
  1148. }
  1149. userFavoriteList(userFavorite).then(({data}) =>{
  1150. let size = data.list.filter(item => item.menuId==this.$route.meta.menuId).length;
  1151. if (size>0){
  1152. this.favorite = true
  1153. }else {
  1154. this.favorite = false
  1155. }
  1156. })
  1157. },
  1158. // 收藏 OR 取消收藏
  1159. favoriteFunction(){
  1160. let userFavorite ={
  1161. userId: this.$store.state.user.id,
  1162. functionId: this.$route.meta.menuId,
  1163. }
  1164. if (this.favorite){
  1165. // 取消收藏
  1166. this.$confirm(`确定取消收藏`, '提示', {
  1167. confirmButtonText: '确定',
  1168. cancelButtonText: '取消',
  1169. type: 'warning'
  1170. }).then(() => {
  1171. removeUserFavorite(userFavorite).then(({data})=>{
  1172. this.$message.success(data.msg)
  1173. this.favorite = false
  1174. })
  1175. })
  1176. }else {
  1177. // 收藏
  1178. saveUserFavorite(userFavorite).then(({data})=>{
  1179. this.$message.success(data.msg)
  1180. this.favorite = true
  1181. })
  1182. }
  1183. },
  1184. // 保存语言编辑
  1185. saveLanguageList(val) {
  1186. saveSysLanguageOne(val).then(({data}) => {
  1187. if (data.code == 0) {
  1188. this.$message.success(data.msg)
  1189. } else {
  1190. this.$message.error(data.msg)
  1191. }
  1192. })
  1193. },
  1194. // 编辑语言
  1195. addLanguageFun() {
  1196. if (this.querySysLanguagePack.languageCode) {
  1197. this.addLanguage = true
  1198. this.languageColumnList = []
  1199. let query = {
  1200. functionId: 2401,
  1201. tableId: "common1002",
  1202. languageCode: this.$i18n.locale
  1203. }
  1204. getTableDefaultListLanguage(query).then(({data}) => {
  1205. if (data.rows.length > 0) {
  1206. this.languageColumnList = data.rows
  1207. }
  1208. })
  1209. this.languageColumnList = this.columnList
  1210. searchLanguageListByLanguageCode(this.querySysLanguagePack).then(({data}) => {
  1211. this.languageDataList = data.rows
  1212. })
  1213. } else {
  1214. this.$message("请选中一种语言")
  1215. }
  1216. },
  1217. // 获取多语言列表
  1218. getLanguageList() {
  1219. searchSysLanguage(this.queryLanguage).then(({data}) => {
  1220. this.languageList = data.rows
  1221. })
  1222. },
  1223. // 获取button的词典
  1224. getFunctionButtonList() {
  1225. searchFunctionButtonList(this.queryButton).then(({data}) => {
  1226. if (data.data && data.data.length>0) {
  1227. this.buttons = data.data
  1228. }
  1229. })
  1230. },
  1231. // 获取语言词典
  1232. getSysLanguageParamList() {
  1233. searchSysLanguageParam(this.querySysLanguageParam).then(({data}) => {
  1234. this.sysLanguageParams = data.rows
  1235. })
  1236. },
  1237. // 打开页面设置
  1238. userSetting() {
  1239. this.visible = true;
  1240. let queryTable = {
  1241. userId: this.$store.state.user.name,
  1242. functionId: 2401,
  1243. tableId: "auditRules2401",
  1244. languageCode: this.$i18n.locale
  1245. }
  1246. this.$nextTick(() => {
  1247. this.$refs.column.init(queryTable);
  1248. });
  1249. },
  1250. // 获取 用户保存的 格式列
  1251. getTableUserColumn() {
  1252. getTableUserListLanguage(this.queryTableUser).then(({data}) => {
  1253. if (data.rows.length > 0) {
  1254. //this.columnList = []
  1255. this.columnList = data.rows
  1256. } else {
  1257. this.getColumnList()
  1258. }
  1259. })
  1260. },
  1261. // 保存 默认配置 列
  1262. saveColumnList() {
  1263. saveTableDefaultList(this.columnList).then(({data}) => {
  1264. if (data.code == 0) {
  1265. this.$message.success(data.msg)
  1266. this.showDefault = false
  1267. } else {
  1268. this.$message.error(data.msg)
  1269. }
  1270. })
  1271. saveTableDefaultList(this.columnList1).then(({data}) => {
  1272. if (data.code == 0) {
  1273. this.$message.success(data.msg)
  1274. this.showDefault = false
  1275. } else {
  1276. this.$message.error(data.msg)
  1277. }
  1278. })
  1279. saveButtonList(this.buttonList).then(({data}) => {
  1280. })
  1281. this.getFunctionButtonList()
  1282. this.getFunctionButtonList();
  1283. this.getColumnList()
  1284. },
  1285. // 获取 tableDefault 列
  1286. getColumnList() {
  1287. getTableDefaultListLanguage(this.queryTable).then(({data}) => {
  1288. if (!data.rows.length == 0) {
  1289. this.showDefault = false
  1290. this.columnList = data.rows
  1291. } else {
  1292. this.showDefault = true
  1293. }
  1294. })
  1295. },
  1296. // 获取数据列表
  1297. getDataList() {
  1298. this.dataListLoading = true
  1299. getAuthRuleList(this.mainQueryData).then(({data}) => {
  1300. if (data && data.code === 0) {
  1301. this.dataList = data.rows
  1302. // this.totalPage = data.page.totalCount
  1303. } else {
  1304. this.dataList = []
  1305. this.totalPage = 0
  1306. }
  1307. this.dataListLoading = false
  1308. })
  1309. },
  1310. // 每页数
  1311. sizeChangeHandle(val) {
  1312. this.pageSize = val
  1313. this.pageIndex = 1
  1314. this.getDataList()
  1315. },
  1316. // 当前页
  1317. currentChangeHandle(val) {
  1318. this.pageIndex = val
  1319. this.getDataList()
  1320. },
  1321. // 多选
  1322. selectionChangeHandle(val) {
  1323. this.dataListSelections = val
  1324. },
  1325. // 删除
  1326. deleteHandle(id) {
  1327. var ids = id ? [id] : this.dataListSelections.map(item => {
  1328. return item.id
  1329. })
  1330. this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
  1331. confirmButtonText: '确定',
  1332. cancelButtonText: '取消',
  1333. type: 'warning'
  1334. }).then(() => {
  1335. this.$http({
  1336. url: this.$http.adornUrl('//prd/delete'),
  1337. method: 'post',
  1338. data: this.$http.adornData(ids, false)
  1339. }).then(({data}) => {
  1340. if (data && data.code === 0) {
  1341. this.$message({
  1342. message: '操作成功',
  1343. type: 'success',
  1344. duration: 1500,
  1345. onClose: () => {
  1346. this.getDataList()
  1347. }
  1348. })
  1349. } else {
  1350. this.$message.error(data.msg)
  1351. }
  1352. })
  1353. })
  1354. },
  1355. fields(){
  1356. let json = "{"
  1357. this.columnList.forEach((item,index) =>{
  1358. if (index == this.columnList.length-1 ){
  1359. json +="\""+item.columnLabel+"\"" +":"+"\""+item.columnProp+"\""
  1360. }else {
  1361. json += "\""+item.columnLabel+"\"" +":"+"\""+item.columnProp+"\""+ ","
  1362. }
  1363. })
  1364. json +="}"
  1365. let s = eval("(" + json + ")")
  1366. return s
  1367. },
  1368. createExportData() {
  1369. // 点击导出按钮之后,开始导出数据之前的执行函数,返回值为需要下载的数据
  1370. // TODO:构造需要下载的数据返回
  1371. if(this.dataListSelections.length>0){
  1372. return this.dataListSelections;
  1373. }
  1374. return this.dataList;
  1375. },
  1376. startDownload() {
  1377. // this.exportData = this.dataList
  1378. },
  1379. finishDownload() {
  1380. }
  1381. },
  1382. created() {
  1383. this.getTableUserColumn()
  1384. this.getSysLanguageParamList()
  1385. this.getFunctionButtonList()
  1386. this.favoriteIsOk()
  1387. }
  1388. }
  1389. </script>
  1390. <style scoped >
  1391. .wrapper {
  1392. height: calc(100% - 40px);
  1393. }
  1394. .sl-input {
  1395. background-color: transparent;
  1396. border: 0 !important;
  1397. font-size: 12px !important;
  1398. height: 12px !important;
  1399. line-height: 14px !important;
  1400. background-color: transparent !important;
  1401. width: 140px;
  1402. }
  1403. .sl-input:focus, textarea:focus {
  1404. outline: none;
  1405. }
  1406. .sl-svg{
  1407. overflow: hidden;
  1408. float: right;
  1409. }
  1410. </style>