applyPayment.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820
  1. <template>
  2. <!-- 加班申请单 发起付款申请(不要调用接口的)-->
  3. <el-dialog
  4. v-loading="loading1"
  5. :close-on-click-modal="false"
  6. :close-on-press-escape="false"
  7. :visible.sync="dialogVisible"
  8. title="发起付款申请"
  9. top="50px"
  10. width="75%"
  11. :append-to-body="true"
  12. :before-close="beforeClose"
  13. class="statistic_base"
  14. :modal-append-to-body="true"
  15. custom-class="tagdialog"
  16. >
  17. <div class="tabsdom">
  18. <el-tabs v-model="activeName" @tab-click="handleClick">
  19. <el-tab-pane label="付款申请" name="first">
  20. <el-row type="flex" justify="end">
  21. <el-col :span="3" class="col-txt"><span>流程编号:</span></el-col>
  22. <el-col :span="6" class="col-input"><span style="font-size: 14px">{{ formData.flowNum }}</span></el-col>
  23. </el-row>
  24. <el-form
  25. ref="elForm"
  26. :model="formData"
  27. :rules="rules"
  28. label-width="150px"
  29. >
  30. <el-card shadow="always" style="padding: 15px 5px 5px 15px">
  31. <el-row :gutter="15">
  32. <el-col :span="24">
  33. <el-form-item label="标题" prop="titlexxx">
  34. <el-input v-model="formData.title" placeholder="付款领用单-年月日" readonly />
  35. </el-form-item>
  36. </el-col>
  37. <el-col :span="12">
  38. <el-form-item label="创建人">
  39. <el-input v-model="userinfo.truename" placeholder="创建人" readonly />
  40. </el-form-item>
  41. </el-col>
  42. <el-col :span="12">
  43. <el-form-item label="创建部门">
  44. <el-input v-model="userinfo.deptName" placeholder="创建部门" readonly />
  45. </el-form-item>
  46. </el-col>
  47. <el-col :span="24">
  48. <el-form-item label="是否为无合同付款">
  49. <el-select
  50. v-model="formData.isNoContract"
  51. clearable
  52. filterable
  53. placeholder="是否为无合同付款"
  54. style="width: 100%"
  55. :popper-append-to-body="false"
  56. popper-class="statistic_base"
  57. >
  58. <el-option
  59. v-for="item in dc_data.ANSWER_NEED"
  60. :key="item.value"
  61. :label="item.label"
  62. :value="item.value"
  63. :popper-append-to-body="false"
  64. popper-class="statistic_base"
  65. />
  66. </el-select>
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="24">
  70. <el-form-item label="付款单位">
  71. <el-input v-model="formData.payerName" placeholder="请填写" />
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="24">
  75. <el-form-item label="收款单位">
  76. <el-input v-model="formData.payeeName" placeholder="请填写" />
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="24">
  80. <el-form-item label="资金用途">
  81. <el-input v-model="formData.moneyPurpose" placeholder="请填写" />
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="24">
  85. <el-form-item label="合同总价">
  86. <el-input v-model="formData.contractPrice" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请填写" />
  87. </el-form-item>
  88. </el-col>
  89. <el-col :span="24">
  90. <el-form-item label="付款说明">
  91. <el-input
  92. v-model="formData.payRemark"
  93. :autosize="{minRows: 4, maxRows: 4}"
  94. :style="{width: '100%'}"
  95. placeholder="请填写"
  96. type="textarea"
  97. maxlength="2000"
  98. show-word-limit
  99. />
  100. </el-form-item>
  101. </el-col>
  102. <el-col :span="24">
  103. <el-form-item label="累计付款">
  104. <el-input v-model="formData.havePayMoney" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请填写" />
  105. </el-form-item>
  106. </el-col>
  107. <el-col :span="12">
  108. <el-form-item label="申请金额(小写)" prop="applyPayMoney">
  109. <el-input v-model="formData.applyPayMoney" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请填写" @change="swapper(formData.applyPayMoney)" />
  110. </el-form-item>
  111. </el-col>
  112. <el-col :span="12">
  113. <el-form-item label="申请金额(大写)" prop="applyPayMoneyUppercase">
  114. <el-input v-model="formData.applyPayMoneyUppercase" placeholder="请填写" />
  115. </el-form-item>
  116. </el-col>
  117. <!-- <el-col :span="24">formData.applyPayMoneyUppercase={{formData.applyPayMoneyUppercase}}</el-col>-->
  118. <el-col :span="7">
  119. <el-form-item label="相关附件">
  120. <el-upload
  121. :action="$constant.BASE_URI+'/FileController/upload'"
  122. :file-list="formData.fileUrlList"
  123. :http-request="uploadFile"
  124. class="upload-demo"
  125. multiple
  126. :limit="6"
  127. :before-upload="$common.beforeUploadJustWordExcel"
  128. >
  129. <el-button size="small" type="primary">上传附件</el-button>
  130. <div slot="file" slot-scope="{file}">
  131. <a :href="file.url">{{ file.name }}</a>
  132. <span class="el-upload-list__item-actions">
  133. <i class="el-icon-delete" @click="handlePictureRemoveXF66(file,formData.fileUrlList)" />
  134. </span>
  135. </div>
  136. </el-upload>
  137. </el-form-item>
  138. </el-col>
  139. <el-col :span="17" />
  140. </el-row>
  141. </el-card>
  142. </el-form>
  143. </el-tab-pane>
  144. <el-tab-pane label="流程图 " name="second">
  145. <div style="width: 100%">
  146. <el-row>
  147. <el-col :span="24">
  148. <div class="node_info">
  149. <div>节点说明:</div>
  150. <div v-for="item in nodeColor" class="dis_flex">
  151. <div class="node_class" :style="{backgroundColor: item.nodeback}" />
  152. {{ item.name }}
  153. </div>
  154. </div>
  155. <div v-show="true" id="containeraddwork1" style="width: 100%" />
  156. </el-col>
  157. </el-row>
  158. </div>
  159. </el-tab-pane>
  160. </el-tabs>
  161. </div>
  162. <div slot="footer">
  163. <el-button @click="dialogVisible=false">取消</el-button>
  164. <el-button :loading="loading" type="primary" @click="handelConfirm">确定</el-button>
  165. </div>
  166. </el-dialog>
  167. </template>
  168. <script>
  169. import { upload } from '@/static/utils/channel'
  170. import Base from '@/views/base/base'
  171. import BaseData from '@/views/base/baseData'
  172. import UserSelect from '@/views/components/UserSelect'
  173. import * as echarts from 'echarts'
  174. import { isPassword } from '@/static/utils/validate'
  175. const lineStyle = {
  176. color: '#00116a',
  177. width: 2
  178. }
  179. const redLinestyle = {
  180. color: 'red',
  181. width: 2
  182. }
  183. export default {
  184. name: 'ApplyPay',
  185. components: {
  186. upload, UserSelect
  187. },
  188. mixins: [Base, BaseData],
  189. data() {
  190. return {
  191. loading1: false,
  192. loading: false,
  193. nodeColor: [
  194. { name: '审核通过', nodeback: '#2A3980' },
  195. { name: '未经过', nodeback: '#999999' },
  196. { name: '退回', nodeback: '#E04242' },
  197. { name: '审核中', nodeback: '#E08E42' },
  198. { name: '撤回', nodeback: '#4294E0' }
  199. ],
  200. dc_key: ['ANSWER_NEED'],
  201. dialogVisible: false,
  202. formData: {
  203. payerName: '无锡市安居投资发展有限公司',
  204. fileUrlList: []
  205. },
  206. userinfo: {},
  207. activeName: 'first',
  208. rules: {
  209. title: [{
  210. required: true,
  211. message: '请输入标题',
  212. trigger: 'change'
  213. }],
  214. applyPayMoney: [{
  215. required: true,
  216. message: '请输入申请金额(小写)',
  217. trigger: 'change'
  218. }
  219. ],
  220. applyPayMoneyUppercase: [{
  221. required: true,
  222. message: '请输入申请金额(大写)',
  223. trigger: 'change'
  224. }]
  225. // applyReasons: [{
  226. // required: true,
  227. // message: '请输入加班事由',
  228. // trigger: 'change'
  229. // }],
  230. // position: [{
  231. // required: true,
  232. // message: '加班位置不能为空',
  233. // trigger: 'change'
  234. // }]
  235. },
  236. positionOptions: [
  237. {
  238. 'label': '公司',
  239. 'value': 1
  240. },
  241. {
  242. 'label': '客户处',
  243. 'value': 2
  244. }, {
  245. 'label': '居家',
  246. 'value': 3
  247. }],
  248. nodes: [ // 节点
  249. {
  250. name: '经办人发起',
  251. value: [45, 100],
  252. symbol: 'image://' + require('../asste/huifangkuai.png'),
  253. symbolSize: [110, 60]
  254. },
  255. {
  256. name: '部门负责人审核',
  257. value: [125, 100],
  258. symbol: 'image://' + require('../asste/huifangkuai.png'),
  259. symbolSize: [110, 60]
  260. },
  261. {
  262. name: '财务负责人审核',
  263. value: [205, 100],
  264. symbol: 'image://' + require('../asste/huifangkuai.png'),
  265. symbolSize: [110, 60]
  266. },
  267. {
  268. name: '分管领导审核',
  269. value: [285, 100],
  270. symbol: 'image://' + require('../asste/huifangkuai.png'),
  271. symbolSize: [110, 60]
  272. },
  273. {
  274. name: '总经理审核',
  275. value: [365, 100],
  276. symbol: 'image://' + require('../asste/huifangkuai.png'),
  277. symbolSize: [110, 60]
  278. },
  279. {
  280. name: '董事长审核',
  281. value: [445, 100],
  282. symbol: 'image://' + require('../asste/huifangkuai.png'),
  283. symbolSize: [110, 60]
  284. },
  285. {
  286. name: '结束',
  287. value: [525, 100],
  288. symbol: 'image://' + require('../asste/huifangkuai.png'),
  289. symbolSize: [110, 60]
  290. },
  291. {
  292. label: {
  293. show: true,
  294. color: 'red', // 节点文字颜色
  295. backgroundColor: '#f5f5f5'
  296. },
  297. itemStyle: {
  298. color: '#f5f5f5'
  299. },
  300. name: '退回发起人',
  301. value: [350, 400],
  302. symbolSize: [70, 20]
  303. },
  304. {
  305. label: {
  306. show: true,
  307. color: 'red', // 节点文字颜色
  308. backgroundColor: '#f5f5f5'
  309. },
  310. itemStyle: {
  311. color: '#f5f5f5'
  312. },
  313. name: ' 退回发起人 ',
  314. value: [300, 350],
  315. symbolSize: [20, 20]
  316. },
  317. {
  318. label: {
  319. show: true,
  320. color: 'red', // 节点文字颜色
  321. backgroundColor: '#f5f5f5'
  322. },
  323. itemStyle: {
  324. color: '#f5f5f5'
  325. },
  326. name: ' 退回发起人 ',
  327. value: [250, 300],
  328. symbolSize: [20, 20]
  329. },
  330. {
  331. label: {
  332. show: true,
  333. color: 'red', // 节点文字颜色
  334. backgroundColor: '#f5f5f5'
  335. },
  336. itemStyle: {
  337. color: '#f5f5f5'
  338. },
  339. name: ' 退回发起人 ',
  340. value: [250, 300],
  341. symbolSize: [20, 20]
  342. },
  343. {
  344. label: {
  345. show: true,
  346. color: 'red', // 节点文字颜色
  347. backgroundColor: '#f5f5f5'
  348. },
  349. itemStyle: {
  350. color: '#f5f5f5'
  351. },
  352. name: ' 退回发起人 ',
  353. value: [175, 250],
  354. symbolSize: [20, 20]
  355. },
  356. {
  357. label: {
  358. show: true,
  359. color: 'red', // 节点文字颜色
  360. backgroundColor: '#f5f5f5'
  361. },
  362. itemStyle: {
  363. color: '#f5f5f5'
  364. },
  365. name: ' 退回发起人 ',
  366. value: [100, 200],
  367. symbolSize: [20, 20]
  368. }
  369. ],
  370. linesData: [ // 连线
  371. {
  372. lineStyle: lineStyle,
  373. coords: [[45, 100], [105, 100]]
  374. },
  375. {
  376. lineStyle: lineStyle,
  377. coords: [[125, 100], [185, 100]]
  378. },
  379. {
  380. lineStyle: lineStyle,
  381. coords: [[205, 100], [265, 100]]
  382. },
  383. {
  384. lineStyle: lineStyle,
  385. coords: [[285, 100], [345, 100]]
  386. },
  387. {
  388. lineStyle: lineStyle,
  389. coords: [[365, 100], [425, 100]]
  390. },
  391. {
  392. lineStyle: lineStyle,
  393. coords: [[445, 100], [505, 100]]
  394. },
  395. {
  396. lineStyle: lineStyle,
  397. coords: [[450, 100], [450, 400]],
  398. symbol: 'none'
  399. },
  400. {
  401. lineStyle: lineStyle,
  402. coords: [[370, 100], [370, 350]],
  403. symbol: 'none'
  404. },
  405. {
  406. lineStyle: lineStyle,
  407. coords: [[290, 100], [290, 300]],
  408. symbol: 'none'
  409. },
  410. {
  411. lineStyle: lineStyle,
  412. coords: [[210, 100], [210, 250]],
  413. symbol: 'none'
  414. },
  415. {
  416. lineStyle: lineStyle,
  417. coords: [[130, 100], [130, 200]],
  418. symbol: 'none'
  419. },
  420. {
  421. lineStyle: lineStyle,
  422. coords: [[50, 100], [50, 400]],
  423. symbol: 'none'
  424. },
  425. {
  426. lineStyle: lineStyle,
  427. coords: [[450, 400], [50, 400]],
  428. symbol: 'none'
  429. },
  430. {
  431. lineStyle: lineStyle,
  432. coords: [[370, 350], [50, 350]],
  433. symbol: 'none'
  434. },
  435. {
  436. lineStyle: lineStyle,
  437. coords: [[290, 300], [50, 300]],
  438. symbol: 'none'
  439. },
  440. {
  441. lineStyle: lineStyle,
  442. coords: [[210, 250], [50, 250]],
  443. symbol: 'none'
  444. },
  445. {
  446. lineStyle: lineStyle,
  447. coords: [[130, 200], [50, 200]],
  448. symbol: 'none'
  449. },
  450. {
  451. lineStyle: lineStyle,
  452. coords: [[50, 150], [50, 150]],
  453. symbol: 'none'
  454. }
  455. ]
  456. }
  457. },
  458. computed: {},
  459. watch: {},
  460. created() {
  461. },
  462. mounted() {
  463. this.initDict(this.dc_key).then((res) => {
  464. })
  465. // this.initProject({ /* signstatus: '2,3'*/ })
  466. },
  467. methods: {
  468. handlePictureRemoveXF66(file, fileUrlList) {
  469. var index = fileUrlList.indexOf(file)
  470. this.$nextTick((e) => {
  471. this.formData.fileUrlList.splice(index, 1)
  472. })
  473. const formDataFileUrlList = JSON.parse(JSON.stringify(this.formData.fileUrlList))
  474. this.formData.fileUrlList = []
  475. this.formData.fileUrlList = formDataFileUrlList
  476. this.$forceUpdate()
  477. },
  478. uploadFile: function(param) {
  479. const _this = this
  480. upload(param, true).then((res) => {
  481. _this.formData.fileUrlList.push(res)
  482. console.log(' _this.formData.fileUrlList', _this.formData.fileUrlList)
  483. })
  484. },
  485. swapper(n) {
  486. // console.log('ddd',n)
  487. if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) { return '数据非法' }
  488. var unit = '千百拾亿千百拾万千百拾元角分'; var str = ''
  489. n += '00'
  490. var p = n.indexOf('.')
  491. if (p >= 0) { n = n.substring(0, p) + n.substr(p + 1, 2) }
  492. unit = unit.substr(unit.length - n.length)
  493. for (var i = 0; i < n.length; i++) { str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i) }
  494. // console.log('end',str.replace(/零(千|百|拾|角)/g, '零').replace(/(零)+/g, '零').replace(/零(万|亿|元)/g, '$1').replace(/(亿)万|壹(拾)/g, '$1$2').replace(/^元零?|零分/g, '').replace(/元$/g, '元整'))
  495. this.formData.applyPayMoneyUppercase = str.replace(/零(千|百|拾|角)/g, '零').replace(/(零)+/g, '零').replace(/零(万|亿|元)/g, '$1').replace(/(亿)万|壹(拾)/g, '$1$2').replace(/^元零?|零分/g, '').replace(/元$/g, '元整')
  496. // console.log('end',this.formData.applyPayMoneyUppercase)
  497. this.$forceUpdate()
  498. },
  499. beforeClose() {
  500. // eslint-disable-next-line no-mixed-spaces-and-tabs
  501. this.formData = {
  502. // payerName: '无锡市安居投资发展有限公司'
  503. // eslint-disable-next-line no-mixed-spaces-and-tabs
  504. }
  505. this.dialogVisible = false
  506. this.activeName = 'first'
  507. this.$forceUpdate()
  508. },
  509. handleClick(tab, event) {
  510. if (this.activeName == 'second') this.createNodeCanvas()
  511. },
  512. createNodeCanvas() {
  513. this.$nextTick(() => {
  514. const chartDom = document.getElementById('containeraddwork1')
  515. var myCharts = echarts.init(chartDom)
  516. const charts = {
  517. nodes: this.nodes,
  518. linesData: this.linesData
  519. }
  520. const option = {
  521. xAxis: {
  522. min: 0,
  523. max: 600,
  524. padding: [0, 50, 0, 50],
  525. show: false,
  526. type: 'value'
  527. },
  528. yAxis: {
  529. min: 0,
  530. max: 450,
  531. show: false,
  532. type: 'value'
  533. },
  534. grid: {
  535. left: 50,
  536. right: 0,
  537. bottom: 0,
  538. top: 0
  539. },
  540. series: [
  541. {
  542. type: 'graph',
  543. coordinateSystem: 'cartesian2d',
  544. symbol: 'rect',
  545. symbolSize: [80, 40],
  546. itemStyle: {
  547. color: 'rgb(225,7,7)'
  548. },
  549. symbolOffset: [10, 0],
  550. // force: {
  551. // edgeLength: 100,//连线的长度
  552. // repulsion: 200 //子节点之间的间距
  553. // },
  554. label: {
  555. show: true,
  556. color: 'white' // 节点文字颜色
  557. },
  558. data: charts.nodes
  559. },
  560. {
  561. type: 'lines',
  562. polyline: false,
  563. coordinateSystem: 'cartesian2d',
  564. symbol: ['', 'arrow'],
  565. symbolSize: 10,
  566. data: charts.linesData
  567. }
  568. ]
  569. }
  570. myCharts.clear()
  571. myCharts.setOption(option)
  572. window.addEventListener('resize', () => {
  573. myCharts.resize()
  574. })
  575. })
  576. },
  577. getHour(s1, s2) {
  578. var reDate = /\d{4}-\d{1,2}-\d{1,2} /
  579. s1 = new Date((reDate.test(s1) ? s1 : '2018-1-1 ' + s1).replace(/-/g, '/'))
  580. s2 = new Date((reDate.test(s2) ? s2 : '2018-1-1 ' + s2).replace(/-/g, '/'))
  581. var ms = s2.getTime() - s1.getTime()
  582. if (ms < 0) return 0
  583. console.log(ms)
  584. return (ms / 1000 / 60 / 60).toFixed(1) // 小时
  585. },
  586. async getUserInfo() {
  587. const { data: userinfo } = await this.baseRequest1('ApplyPaymentSettleController', 'getUserInfoByUserId', { userId: '' })
  588. this.userinfo = userinfo
  589. this.formData.truename = userinfo.truename
  590. this.formData.deptName = userinfo.deptName
  591. console.log(this.userinfo)
  592. },
  593. async getMaxNum() {
  594. const { data: maxNum } = await this.baseRequest1('ApplyPaymentSettleController', 'getMaxNum', { })
  595. this.formData.title = maxNum
  596. this.loading1 = false
  597. console.log(maxNum, this.formData.title)
  598. },
  599. baseRequest1(prefix, opUrl, postData) {
  600. return this.$channel.globleRequest(prefix, opUrl, postData, 'project task')
  601. },
  602. setVisible(status) {
  603. this.loading1 = true
  604. this.formData = {
  605. payerName: '无锡市安居投资发展有限公司'
  606. }
  607. this.formData.fileUrlList = []
  608. this.getMaxNum()
  609. this.getUserInfo()
  610. this.dialogVisible = status
  611. },
  612. onOpen() {
  613. },
  614. onClose() {
  615. this.$refs['elForm'].resetFields()
  616. },
  617. close() {
  618. this.$emit('update:visible', false)
  619. },
  620. async handelConfirm() {
  621. this.$refs['elForm'].validate(async valid => {
  622. if (!valid) return
  623. // delete formData.applyAddWorkTime
  624. if (this.formData.fileUrlList.length > 0) {
  625. this.formData.fileDataIds = this.formData.fileUrlList.map((e) => {
  626. return e.data
  627. }).toString()
  628. }
  629. const formData = {
  630. ...this.formData
  631. }
  632. this.loading = true
  633. const { data } = await this.baseRequest1('ApplyPaymentSettleController', 'addApplyPaymentSettle', { ...formData })
  634. if (data.code == 200) {
  635. this.loading = false
  636. this.$message.success('付款申请发起成功')
  637. this.dialogVisible = false
  638. this.$emit('getData')
  639. }
  640. this.close()
  641. })
  642. }
  643. }
  644. }
  645. </script>
  646. <style lang="scss">
  647. .cclist {
  648. .col-input {
  649. padding: 0;
  650. }
  651. }
  652. #containeraddwork1 {
  653. height: 600px;
  654. width: 100%;
  655. background: #F5F5F5;
  656. }
  657. .pdr10px {
  658. padding-right: 10px;
  659. }
  660. .mgb10px {
  661. margin-bottom: 10px;
  662. }
  663. .mb25 {
  664. margin-bottom: 25px;
  665. }
  666. .pdtopbottom16 {
  667. padding: 0px 16px;
  668. }
  669. .pdtop16px {
  670. padding-top: 16px;
  671. }
  672. .totalApplyTime {
  673. font-size: 16px;
  674. font-family: 微软雅黑;
  675. font-weight: 400;
  676. color: #1890FF;
  677. text-align: right;
  678. margin: 15px 0 15px 0;
  679. width: 100%;
  680. }
  681. .cost_form {
  682. .col-input {
  683. font-weight: 400;
  684. }
  685. .el-form-item__label .moneydetails {
  686. text-align: right;
  687. font-size: 16px;
  688. font-family: 微软雅黑;
  689. padding-right: 10px;
  690. line-height: 40px;
  691. word-break: keep-all;
  692. white-space: nowrap;
  693. color: #606266;
  694. text-rendering: optimizeLegibility;
  695. font-weight: 400;
  696. }
  697. .moneydetails {
  698. text-align: right;
  699. font-size: 16px;
  700. font-family: 微软雅黑;
  701. padding-right: 10px;
  702. word-break: keep-all;
  703. white-space: nowrap;
  704. color: #606266;
  705. text-rendering: optimizeLegibility;
  706. font-weight: 400;
  707. }
  708. .moneydetails:before {
  709. content: "*";
  710. color: #ff4949;
  711. }
  712. }
  713. .txtc {
  714. text-align: center
  715. }
  716. .ml5 {
  717. margin-left: 5px;
  718. }
  719. .eltype {
  720. margin-bottom: 15px;
  721. }
  722. .tabsdom {
  723. .el-input {
  724. width: 100%;
  725. }
  726. .el-upload {
  727. width: 100%;
  728. text-align: left;
  729. }
  730. .el-tabs__header {
  731. text-align: center !important;
  732. width: 139px !important;
  733. text-align: center !important;
  734. display: block !important;
  735. margin: auto !important;
  736. margin-bottom: 15px !important;
  737. }
  738. .el-tabs__nav-wrap::after {
  739. display: none;
  740. }
  741. .el-upload {
  742. width: 100%;
  743. }
  744. }
  745. .feeMoneyTotal {
  746. width: 100%;
  747. height: 14px;
  748. font-size: 14px;
  749. font-weight: 400;
  750. color: #1890FF;
  751. margin-top: 31px;
  752. margin-bottom: 13px;
  753. }
  754. </style>