applyPayment.vue 26 KB

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