warehouseManagementEdit.vue 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069
  1. //编辑仓库
  2. <template>
  3. <div class="container">
  4. <el-row>
  5. <el-col :span="20">
  6. <h2 class="bg-left title">修改仓库信息</h2>
  7. </el-col>
  8. <el-col :span="4" class="bg-right">
  9. <el-button
  10. class="bg-bottom"
  11. type="primary"
  12. size="small"
  13. @click="returnWarehouse()"
  14. >返回</el-button
  15. >
  16. </el-col>
  17. </el-row>
  18. <div>
  19. <ws-form ref="deptBudgetList" :model="deptBudgetList">
  20. <el-radio-group v-model="warehouseType" @change="warehouseTypechange">
  21. <el-radio label="1">常用仓库</el-radio>
  22. <el-radio label="2">临时仓库</el-radio>
  23. </el-radio-group>
  24. <div class="small-title">基本信息</div>
  25. <!--基本信息-->
  26. <ws-info-table>
  27. <!--仓库名称-->
  28. <ws-form-item
  29. label="仓库名称"
  30. span="1"
  31. prop="warehouseName"
  32. class="readonly"
  33. >
  34. <ws-select
  35. v-model="deptBudgetList.warehouseName"
  36. placeholder=""
  37. class="typeselect"
  38. @change="selectpackingMethod"
  39. >
  40. <ws-option
  41. v-for="item in packtypeList"
  42. :key="item.constKey"
  43. :label="item.warehouseName"
  44. :value="item.warehouseName"
  45. />
  46. </ws-select>
  47. </ws-form-item>
  48. <!--负责人-->
  49. <ws-form-item label="负责人" span="1" prop="personCharge">
  50. <el-select
  51. v-model="deptBudgetList.personCharge"
  52. placeholder="请选择负责人"
  53. filterable
  54. :filter-method="dataFilter"
  55. @change="selectstaff"
  56. >
  57. <el-option
  58. v-for="item in options"
  59. :key="item.value"
  60. :label="item.staffName"
  61. :value="item.staffName"
  62. />
  63. </el-select>
  64. </ws-form-item>
  65. <!--负责人电话-->
  66. <ws-form-item
  67. label="负责人电话"
  68. span="1"
  69. prop="personPhone"
  70. class="readonly"
  71. >
  72. <ws-input
  73. :readonly="true"
  74. v-model="deptBudgetList.personPhone"
  75. placeholder="请输入负责人电话"
  76. maxlength="100"
  77. size="small"
  78. />
  79. </ws-form-item>
  80. <!--其他负责人-->
  81. <ws-form-item label="其他负责人" v-if="warehouseType == 1" span="1" prop="otherPersonCharge">
  82. <el-select
  83. v-model="deptBudgetList.otherPersonPhone"
  84. placeholder="请选择其他负责人"
  85. @change="selectstaffOther"
  86. :filter-method="dataFilter1"
  87. filterable
  88. multiple
  89. >
  90. <el-option
  91. v-for="item in optionsOther"
  92. :key="item.staffMobilePhone"
  93. :label="item.staffName"
  94. :value="item.staffMobilePhone "
  95. />
  96. </el-select>
  97. </ws-form-item>
  98. <!--仓库所在地-->
  99. <ws-form-item label="仓库所在地" span="1" prop="warehouseCity">
  100. <el-cascader
  101. :options="options_"
  102. v-model="selectedOptions"
  103. clearable
  104. size="large"
  105. placeholder="请输入仓库所在地"
  106. style="width: 200%"
  107. @change="handleChange"
  108. />
  109. </ws-form-item>
  110. <!--详细地址-->
  111. <ws-form-item
  112. label="详细地址"
  113. span="1"
  114. prop="detailedAddress"
  115. class="readonly"
  116. >
  117. <ws-input
  118. v-model="deptBudgetList.detailedAddress"
  119. placeholder="请输入详细地址"
  120. maxlength="100"
  121. size="small"
  122. />
  123. </ws-form-item>
  124. <!--总储量(吨)-->
  125. <ws-form-item
  126. v-if="warehouseType == 1"
  127. label="总储量(吨)"
  128. span="1"
  129. prop="totalStorage"
  130. >
  131. {{ totalStorage }}
  132. </ws-form-item>
  133. </ws-info-table>
  134. <div v-for="(item, index) in deptBudgetList.warehousePositionInfoList">
  135. <ws-info-table>
  136. <!--仓位编号-->
  137. <ws-form-item label="仓位编号" span="1" prop="binNumber">
  138. <ws-input
  139. v-model.number="item.binNumber"
  140. placeholder="请输入仓位编号"
  141. maxlength="100"
  142. size="small"
  143. />
  144. </ws-form-item>
  145. <!--仓位储量(吨)-->
  146. <ws-form-item label="仓位储量(吨)" span="1" prop="maxStorage">
  147. <ws-input
  148. v-model="item.maxStorage"
  149. placeholder="请输入仓位储量(吨)"
  150. maxlength="20"
  151. size="small"
  152. />
  153. </ws-form-item>
  154. <!--备注(选填)-->
  155. <ws-form-item label="备注(选填)" span="1" prop=" remark">
  156. <ws-input
  157. v-model="item.remark"
  158. placeholder="请输入备注"
  159. maxlength="100"
  160. size="small"
  161. />
  162. </ws-form-item>
  163. <img
  164. width="22"
  165. height="22"
  166. class="add"
  167. @click="add"
  168. src="../../../public/img/add.png"
  169. alt=""
  170. />
  171. <img
  172. width="22"
  173. height="22"
  174. class="del"
  175. @click="del(index, item)"
  176. src="../../../public/img/del.png"
  177. alt=""
  178. />
  179. </ws-info-table>
  180. </div>
  181. </ws-form>
  182. <ws-form ref="deptBudgetList" :model="deptBudgetList">
  183. <div v-if="warehouseType == 1" class="small-title">上传仓库照片</div>
  184. <el-upload
  185. action="https://www.zthymaoyi.com/upload/admin"
  186. :show-file-list="false"
  187. :on-success="
  188. (res, file) => {
  189. uploadSuccessHandle(res)
  190. }
  191. "
  192. :on-remove="
  193. (value) => {
  194. handleRemove(value)
  195. }
  196. "
  197. class="avatar-uploader"
  198. accept=".jpg, .jpeg, .png, .gif"
  199. >
  200. <el-button v-if="warehouseType == 1">上传附件</el-button>
  201. </el-upload>
  202. <div class="addressUrls" v-if="addressUrls != null">
  203. <div class='addressUrls-item'>
  204. <div v-for="(item , index) in addressUrls" class="addressUrl" :key="index">
  205. <div @click='close(index)' class="iconfont icon-guanbi"></div>
  206. <img
  207. v-if="addressUrls != null"
  208. width="100"
  209. height="100"
  210. :src="item"
  211. alt=""
  212. />
  213. </div>
  214. </div>
  215. </div>
  216. <div class="small-title">仓库定位</div>
  217. <map-drag
  218. @marker="marker"
  219. @selectedAddress="selectedAddress"
  220. ></map-drag>
  221. </ws-form>
  222. <!-- <ws-button @click="exportlist()"></ws-button> -->
  223. </div>
  224. <div style="text-align: right; padding: 10px">
  225. <el-button
  226. class="bg-bottom-up"
  227. type="primary"
  228. size="small"
  229. @click="submit()"
  230. >修改</el-button
  231. >
  232. </div>
  233. </div>
  234. </template>
  235. <script>
  236. import { getFileList, saveFiles } from '@/model/upload'
  237. import {
  238. getstafffind,
  239. } from '@/model/contarct/index'
  240. import {
  241. xiala,
  242. billoperatehis,
  243. getLook,
  244. edit,
  245. delPosition
  246. } from '@/model/warehouse/index'
  247. import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
  248. import { downloadFile } from '@/utils/batchDown'
  249. import Pagination from '@/components/Pagination'
  250. import WsUpload from '@/components/WsUpload'
  251. import mapDrag from '@/components/mapdrag/mapdrag'
  252. import { dayjs, fmoney, EventBus } from 'base-core-lib'
  253. export default {
  254. name: 'viewSpareMoney',
  255. components: {
  256. WsUpload,
  257. Pagination,
  258. mapDrag,
  259. },
  260. watch: {
  261. vesselId(val) {
  262. this.getList()
  263. },
  264. isShow(val) {
  265. this.showType = val
  266. },
  267. },
  268. data() {
  269. return {
  270. fileList: [],
  271. //弹出框
  272. dialogViewSpareMoney: false,
  273. dialogApproveFormVisible: false,
  274. // 船舶类型
  275. monetaryKey: null,
  276. // 表格显示数据
  277. tableDate: [],
  278. // 是否显示
  279. showType: true,
  280. // 年
  281. year: '',
  282. deptBudgetTotal: 0,
  283. currentPage: 1,
  284. pageSize: 10,
  285. searchType: 1,
  286. searchKeyWord: '',
  287. contractType: 2,
  288. startDate: null,
  289. endDate: null,
  290. warehouseType: '1',
  291. unitList: [],
  292. baseId: '',
  293. // 提交类型
  294. submitType: true,
  295. size: 10,
  296. options_: regionData,
  297. selectedOptions: [],
  298. compId: sessionStorage.getItem('ws-pf_compId'),
  299. deptCircularPage: {},
  300. packtypeList: [],
  301. date: {
  302. year: dayjs().format('YYYY'),
  303. month: dayjs().format('MM'),
  304. },
  305. staffList: [],
  306. contractList: [],
  307. deptBudgetList: {},
  308. historyList: [],
  309. appendixIdsAdd: '',
  310. pickerBeginDateBefore: {
  311. disabledDate: (time) => {
  312. return time.getTime() > Date.now()
  313. },
  314. },
  315. options: [],
  316. staffList1:[],
  317. optionsOther: [],
  318. value: '',
  319. accessoryTFs: false,
  320. addressUrls: [],
  321. }
  322. },
  323. activated() {
  324. this.loaddata()
  325. getstafffind({ roles: 'd6a5c8a52da544309259f91f75de1ec6' })
  326. .toPromise()
  327. .then((response) => {
  328. this.options = response
  329. this.optionsOther = response
  330. this.staffList1 = response
  331. this.staffList = response
  332. })
  333. this.showType = this.isShow
  334. },
  335. computed: {
  336. totalStorage: function () {
  337. var sum = 0
  338. if (this.deptBudgetList.warehousePositionInfoList) {
  339. for (
  340. var i = 0;
  341. i < this.deptBudgetList.warehousePositionInfoList.length;
  342. i++
  343. ) {
  344. sum += Number(
  345. this.deptBudgetList.warehousePositionInfoList[i].maxStorage
  346. )
  347. }
  348. }
  349. return sum
  350. },
  351. },
  352. methods: {
  353. selectstaffOther(e) {
  354. this.deptBudgetList.otherPersonCharge = ''
  355. for (var i = 0; i < this.optionsOther.length; i++) {
  356. for(var j=0;j<e.length;j++){
  357. if (this.optionsOther[i].staffMobilePhone == e[j]) {
  358. this.deptBudgetList.otherPersonCharge += this.optionsOther[i].staffName + ' '+ this.optionsOther[i].staffMobilePhone + ','
  359. }
  360. }
  361. }
  362. },
  363. close(index){
  364. this.addressUrls.splice(index,1)
  365. },
  366. dataFilter(val) {
  367. this.deptBudgetList.personCharge = val
  368. if (val) {
  369. //val存在
  370. this.options = this.staffList.filter((item) => {
  371. if (
  372. !!~item.staffName.indexOf(val) ||
  373. !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
  374. ) {
  375. return true
  376. }
  377. })
  378. } else {
  379. //val为空时,还原数组
  380. this.options = this.staffList
  381. }
  382. },
  383. dataFilter1(val) {
  384. this.deptBudgetList.personCharge = val
  385. if (val) {
  386. //val存在
  387. this.optionsOther = this.staffList1.filter((item) => {
  388. if (
  389. !!~item.staffName.indexOf(val) ||
  390. !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
  391. ) {
  392. return true
  393. }
  394. })
  395. } else {
  396. //val为空时,还原数组
  397. this.optionsOther = this.staffList1
  398. }
  399. },
  400. selectstaff(e) {
  401. for (var i = 0; i < this.staffList.length; i++) {
  402. if (this.staffList[i].staffName == e) {
  403. this.deptBudgetList.personPhone = this.staffList[i].staffMobilePhone
  404. this.deptBudgetList.personChargeKey = this.staffList[i].staffId
  405. }
  406. }
  407. },
  408. //返回按钮
  409. returnWarehouse() {
  410. this.addressUrls = []
  411. this.deptBudgetList = {}
  412. this.selectedOptions = []
  413. this.$router.push({ path: 'warehouseManagementList' })
  414. },
  415. handleChange(value) {
  416. this.selectedOptions = value
  417. },
  418. warehouseTypechange() {
  419. this.addressUrls = []
  420. this.deptBudgetList = {}
  421. this.selectedOptions = []
  422. this.loaddata()
  423. },
  424. marker: function (item) {
  425. this.deptBudgetList.warehousePositioning =
  426. item.lnglat.lat + ',' + item.lnglat.lng
  427. },
  428. selectedAddress(e) {
  429. this.deptBudgetList.warehousePositioning =
  430. e.center.lat + ',' + e.center.lng
  431. },
  432. uploadSuccess(data, files, url) {
  433. this.fileList = files
  434. console.log('uploadSuccess ', data, files, url)
  435. },
  436. onChange(files) {
  437. this.fileNum = files
  438. this.$refs.upload.handleSaveBill().then((res) => {
  439. console.log(files)
  440. })
  441. },
  442. handleClose() {
  443. this.accessoryTFs = false
  444. },
  445. handleSizeChange(val) {
  446. console.log(`每页 ${val} 条`)
  447. this.pageSize = val
  448. this.getList()
  449. },
  450. handleCurrentChange(val) {
  451. this.currentPage = val
  452. console.log(`当前页: ${val}`)
  453. this.getList()
  454. },
  455. selectpackingMethod(e) {
  456. for (var i = 0; i < this.packtypeList.length; i++) {
  457. if (this.packtypeList[i].warehouseName == e) {
  458. this.baseId = this.packtypeList[i].id
  459. this.getLook(this.packtypeList[i].id)
  460. }
  461. }
  462. },
  463. add() {
  464. this.deptBudgetList.warehousePositionInfoList.push({
  465. binNumber: '',
  466. maxStorage: '',
  467. remark: '',
  468. })
  469. },
  470. del(index, item) {
  471. if (item.nowStorage > 0) {
  472. this.$message.warning('尚有剩余库存,不可删除')
  473. } else {
  474. this.$confirm(`此操作将永久删除该仓位的全部信息,是否确定删除`, {
  475. confirmButtonText: '确定',
  476. cancelButtonText: '取消',
  477. type: 'warning',
  478. })
  479. .then(() => {
  480. if (item.id) {
  481. delPosition({ id: item.id })
  482. .toPromise()
  483. .then((response) => {
  484. this.$message.success('删除成功')
  485. })
  486. .catch((response) => {
  487. EventBus.$emit(
  488. 'error',
  489. this.$t('showMessage.asteriskRequired')
  490. )
  491. })
  492. }
  493. if (this.deptBudgetList.warehousePositionInfoList.length > 1) {
  494. this.deptBudgetList.warehousePositionInfoList.splice(index, 1)
  495. }
  496. })
  497. .catch(() => {
  498. return false
  499. })
  500. }
  501. },
  502. loaddata() {
  503. // 仓库名称
  504. xiala({
  505. compId: sessionStorage.getItem('ws-pf_compId'),
  506. warehouseType: this.warehouseType,
  507. })
  508. .toPromise()
  509. .then((response) => {
  510. this.packtypeList = response
  511. })
  512. },
  513. getUnitList() {
  514. xiala({
  515. compId: sessionStorage.getItem('ws-pf_compId'),
  516. constCode: 'TYPEYAN',
  517. })
  518. .toPromise()
  519. .then((response) => {
  520. this.unitList = response
  521. let currItem
  522. this.unitList.forEach((item, index, arr) => {
  523. item.flag = 'delete'
  524. if (this.vModel == item.constKey) {
  525. currItem = item
  526. this.getLook(currItem.compId)
  527. }
  528. })
  529. //
  530. if (currItem) {
  531. this.getLook(currItem.compId)
  532. }
  533. })
  534. },
  535. getLook(compId1) {
  536. getLook({
  537. id: compId1,
  538. })
  539. .toPromise()
  540. .then((response) => {
  541. var tmp = []
  542. tmp[0] = TextToCode[response.warehousePrivate].code
  543. tmp[1] =
  544. TextToCode[response.warehousePrivate][response.warehouseCity].code
  545. tmp[2] =
  546. TextToCode[response.warehousePrivate][response.warehouseCity][
  547. response.warehouseArea
  548. ].code
  549. this.selectedOptions = tmp
  550. this.deptBudgetList = response
  551. // if(this.deptBudgetList.addressUrl){
  552. // this.fileList = this._getFileList(this.deptBudgetList.addressUrl)
  553. // }
  554. this.addressUrls = this.deptBudgetList.addressUrl.split(',')
  555. this.deptBudgetList.otherPersonPhone=this.deptBudgetList.otherPersonPhone.split(',')
  556. this.addressUrls.pop()
  557. })
  558. },
  559. // 传入appendixIds 从服务器获取文件列表信息
  560. _getFileList(appendixIds) {
  561. return new Promise(async (next) => {
  562. try {
  563. next((await getFileList({ appendixIds }).toPromise()) || [])
  564. } catch (error) {
  565. next()
  566. }
  567. })
  568. },
  569. uploadSuccessHandle(e) {
  570. this.deptBudgetList.addressUrl += e.url + ','
  571. this.addressUrls.push(e.url)
  572. },
  573. //提交
  574. submit() {
  575. if (!this.deptBudgetList.warehouseName) {
  576. this.$message({
  577. message: '仓库名称不能为空!',
  578. type: 'warning',
  579. })
  580. return
  581. }
  582. if (
  583. this.deptBudgetList.warehouseName.length < 2 ||
  584. this.deptBudgetList.warehouseName.length > 20
  585. ) {
  586. this.$message({
  587. message: '仓库名长度不符合要求!',
  588. type: 'warning',
  589. })
  590. return
  591. }
  592. if (!this.deptBudgetList.personCharge) {
  593. this.$message({
  594. message: '负责人不能为空!',
  595. type: 'warning',
  596. })
  597. return
  598. }
  599. if (
  600. this.deptBudgetList.personCharge.length < 2 ||
  601. this.deptBudgetList.personCharge.length > 10
  602. ) {
  603. this.$message({
  604. message: '负责人长度不符合要求,请控制在2-10字符之内',
  605. type: 'warning',
  606. })
  607. return
  608. }
  609. if (!this.deptBudgetList.personPhone) {
  610. this.$message({
  611. message: '负责人电话不能为空!',
  612. type: 'warning',
  613. })
  614. return
  615. }
  616. if (this.deptBudgetList.personPhone.length != 11) {
  617. this.$message({
  618. message: '手机号输入有误!',
  619. type: 'warning',
  620. })
  621. return
  622. }
  623. if (!this.deptBudgetList.detailedAddress) {
  624. this.$message({
  625. message: '详细地址不能为空!',
  626. type: 'warning',
  627. })
  628. return
  629. }
  630. if (this.warehouseType == 1) {
  631. if (this.totalStorage <= 0) {
  632. this.$message({
  633. message: '仓位储量不能为空!',
  634. type: 'warning',
  635. })
  636. return
  637. }
  638. }
  639. if (
  640. this.deptBudgetList.detailedAddress.length < 2 ||
  641. this.deptBudgetList.detailedAddress.length > 20
  642. ) {
  643. this.$message({
  644. message: '详细地址长度不符合要求,请控制在2-20字符之内',
  645. type: 'warning',
  646. })
  647. return
  648. }
  649. for (
  650. var i = 0;
  651. i < this.deptBudgetList.warehousePositionInfoList.length;
  652. i++
  653. ) {
  654. for (
  655. var j = i + 1;
  656. j < this.deptBudgetList.warehousePositionInfoList.length;
  657. j++
  658. ) {
  659. console.log(
  660. this.deptBudgetList.warehousePositionInfoList[i].binNumber,
  661. this.deptBudgetList.warehousePositionInfoList[j].binNumber
  662. )
  663. if (
  664. this.deptBudgetList.warehousePositionInfoList[i].binNumber ==
  665. this.deptBudgetList.warehousePositionInfoList[j].binNumber
  666. ) {
  667. this.$message({
  668. message: '仓位编号重复',
  669. type: 'warning',
  670. })
  671. return
  672. }
  673. }
  674. }
  675. this.$refs.deptBudgetList.validate((valid) => {
  676. if (valid) {
  677. this.deptBudgetList.warehousePrivate =
  678. CodeToText[this.selectedOptions[0]]
  679. this.deptBudgetList.warehouseCity =
  680. CodeToText[this.selectedOptions[1]]
  681. this.deptBudgetList.warehouseArea =
  682. CodeToText[this.selectedOptions[2]]
  683. this.deptBudgetList.warehouseType = this.warehouseType
  684. this.deptBudgetList.baseId = this.baseId
  685. this.deptBudgetList.compId = this.compId
  686. this.deptBudgetList.contractType = 1
  687. this.deptBudgetList.otherPersonPhone=this.deptBudgetList.otherPersonPhone.toString()
  688. edit(this.deptBudgetList)
  689. .toPromise()
  690. .then((response) => {
  691. this.$message.success('编辑成功')
  692. this.deptBudgetList = {}
  693. this.warehouseType = '1'
  694. this.$router.push({ path: 'warehouseManagementList' })
  695. })
  696. } else {
  697. //EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  698. return false
  699. }
  700. })
  701. new Promise((resolve, reject) => {
  702. const newAppendixs = this.fileList
  703. const params = { newAppendixs }
  704. saveFiles(params)
  705. .toPromise()
  706. .then((res) => {
  707. resolve(res.join())
  708. })
  709. .catch((err) => {
  710. EventBus.$emit('error', this.$t('showMessage.saveFilesError'))
  711. reject()
  712. })
  713. })
  714. },
  715. // 关闭 dialog时 处理文件url 初始化upload组件
  716. handleCloe() {
  717. this.dialogViewSpareMoney = false
  718. },
  719. history(row) {
  720. console.log(row)
  721. billoperatehis({ id: row.id })
  722. .toPromise()
  723. .then((response) => {
  724. this.historyList = response
  725. })
  726. },
  727. //删除
  728. approve() {},
  729. listQuery() {},
  730. total() {},
  731. clearfiltQuery() {},
  732. selectCrtDuty() {},
  733. },
  734. }
  735. </script>
  736. <style lang="scss" scoped>
  737. /deep/.totalStorage .el-input__inner {
  738. color: #afb5cb;
  739. background: #f5f7fa;
  740. }
  741. .small-title {
  742. position: relative;
  743. padding: 10px;
  744. font-weight: 600;
  745. }
  746. .small-title::before {
  747. position: absolute;
  748. content: '';
  749. display: block;
  750. background: #5473e8;
  751. width: 4px;
  752. height: 14px;
  753. left: 0px;
  754. top: 13px;
  755. }
  756. .position {
  757. position: relative;
  758. }
  759. .add,
  760. .del {
  761. position: absolute;
  762. right: -38px;
  763. top: 9px;
  764. cursor: pointer;
  765. }
  766. .del {
  767. right: -70px;
  768. }
  769. .amap-page-container {
  770. width: 300px;
  771. height: 300px;
  772. }
  773. .el-form {
  774. padding: 0 15%;
  775. }
  776. /deep/.ws-info-table .el-form-item {
  777. border-right: 1px solid transparent;
  778. border-bottom: 1px solid transparent;
  779. }
  780. .readonly {
  781. position: relative;
  782. }
  783. .readonly:after {
  784. content: '*';
  785. color: #ff2727;
  786. position: absolute;
  787. right: 8px;
  788. z-index: 10;
  789. top: 21%;
  790. font-size: 20px;
  791. }
  792. .title {
  793. position: relative;
  794. }
  795. .title::before {
  796. content: '';
  797. display: inline-block;
  798. width: 5px;
  799. height: 30px;
  800. background: #5473e8;
  801. position: absolute;
  802. left: 0;
  803. }
  804. .ws-info-table {
  805. border-left: 1px solid transparent;
  806. border-top: 1px solid transparent;
  807. }
  808. .el-button--primary {
  809. background-color: #5878e8;
  810. border-color: #5878e8;
  811. }
  812. .el-col {
  813. background: #f6f7fc;
  814. }
  815. /deep/.ws-info-table .el-form-item .el-form-item__content {
  816. padding: 0 25px;
  817. border-left: 1px solid transparent;
  818. background: #fff;
  819. }
  820. /deep/.ws-info-table .el-form-item .el-form-item__label {
  821. width: 100px;
  822. text-align: center;
  823. background: #fff;
  824. // border: 1px solid #cdd2dc;
  825. }
  826. .button-container {
  827. display: flex;
  828. flex-wrap: nowrap;
  829. justify-content: space-between;
  830. align-items: center;
  831. background-color: #fff;
  832. width: 100%;
  833. height: 50px;
  834. padding: 0 10px;
  835. & > div {
  836. margin-left: 10px;
  837. display: flex;
  838. flex-wrap: nowrap;
  839. flex-direction: row;
  840. & > span {
  841. line-height: 50px;
  842. }
  843. }
  844. /deep/.auditFlow-box {
  845. position: unset;
  846. margin-left: 10px;
  847. &/deep/.auditFlow-icon {
  848. width: auto;
  849. padding-right: 30px;
  850. }
  851. &/deep/.auditFlow-main {
  852. position: absolute;
  853. }
  854. }
  855. }
  856. .box-app {
  857. display: inline-block;
  858. float: left;
  859. margin-left: 30px;
  860. line-height: 50px;
  861. }
  862. /deep/.el-dialog {
  863. .el-form-item {
  864. margin-bottom: 0 !important;
  865. .el-input--medium {
  866. textarea {
  867. min-height: 100px !important;
  868. }
  869. }
  870. }
  871. }
  872. .collapse-bottom {
  873. margin-bottom: 20px;
  874. }
  875. .input-main .textarea .el-textarea__inner {
  876. width: 100%;
  877. z-index: 1;
  878. }
  879. .bg-left {
  880. padding-left: 30px;
  881. }
  882. .bg-right {
  883. padding-right: 10px;
  884. text-align: right;
  885. }
  886. .bg-bottom {
  887. margin: 15px 0px;
  888. }
  889. .wenzi {
  890. width: 900px;
  891. margin: 0 auto;
  892. }
  893. .wenzi h3 {
  894. display: inline-block;
  895. left: 10px;
  896. }
  897. .wenzi p {
  898. display: inline-block;
  899. }
  900. .center {
  901. width: 900px;
  902. margin: 0 auto;
  903. }
  904. .el-form-item {
  905. width: 50%;
  906. }
  907. .el-form-item__label {
  908. text-align: center;
  909. }
  910. .ce {
  911. width: 900px;
  912. margin: 0 auto;
  913. }
  914. /*.crt-main .textarea /deep/ .el-form-item__label {*/
  915. /* height: 82px;*/
  916. /*}*/
  917. // 控制select为只读的时候显示样式
  918. .hide-sel {
  919. .el-input__inner {
  920. border: 0px;
  921. }
  922. .el-icon-arrow-up {
  923. display: none;
  924. }
  925. .el-textarea__inner {
  926. background-color: #fff !important;
  927. border: 0;
  928. }
  929. .el-date-editor {
  930. i {
  931. display: none;
  932. }
  933. }
  934. .is-disabled {
  935. .el-input__inner:hover {
  936. background-color: #fff !important;
  937. border: 0;
  938. }
  939. color: #606266;
  940. .el-input__inner {
  941. background-color: #fff !important;
  942. border: 0;
  943. color: #606266;
  944. }
  945. .el-textarea__inner {
  946. background-color: #fff !important;
  947. border: 0;
  948. color: #606266;
  949. }
  950. }
  951. }
  952. // 控制select为只读的时候显示样式
  953. /deep/.ws-class-table-col {
  954. height: auto;
  955. padding: 0px 2px;
  956. /deep/.el-input__inner {
  957. padding: 0px 2px;
  958. }
  959. }
  960. /deep/.is-disabled {
  961. .el-input__prefix,
  962. .el-input__suffix {
  963. display: none;
  964. }
  965. .el-input__inner {
  966. background-color: #fff;
  967. border-color: #fff !important;
  968. color: #000 !important;
  969. font-size: 14px;
  970. cursor: text;
  971. padding: 0 !important;
  972. }
  973. }
  974. .winseaview-view {
  975. padding: 0 0 20px;
  976. }
  977. .container {
  978. overflow: scroll;
  979. height: 93vh;
  980. }
  981. .ws-info-table .el-form-item {
  982. width: 33.3333%;
  983. }
  984. .readonly:after {
  985. display: none;
  986. }
  987. .el-textarea__inner {
  988. display: none;
  989. }
  990. .el-form {
  991. margin-top: 50px;
  992. }
  993. .readonly {
  994. width: 16%;
  995. }
  996. .ws-info-table .el-form-item {
  997. width: 33.33%;
  998. }
  999. //去边框
  1000. /deep/.el-form-item {
  1001. border-right: 0px;
  1002. border-bottom: 0px;
  1003. }
  1004. /deep/.ws-info-table {
  1005. border-left: 0px;
  1006. border-top: 0px;
  1007. }
  1008. .ws-info-table .el-form-item .el-form-item__content {
  1009. border-right: 0px;
  1010. border-bottom: 0px;
  1011. border-left: 0px;
  1012. border-top: 0px;
  1013. }
  1014. /deep/.ws-info-table .el-form-item {
  1015. border-right: 0px;
  1016. border-bottom: 0px;
  1017. border-left: 0px;
  1018. border-top: 0px;
  1019. }
  1020. /deep/.ws-info-table .el-form-item .el-form-item__content {
  1021. background: #f5f7fa;
  1022. border-radius: 4px;
  1023. border: 1px solid #d8dce6;
  1024. font-family: PingFangSC-Regular, PingFang SC;
  1025. margin-bottom: 5px;
  1026. background-color: #fff;
  1027. font-size: 14px;
  1028. font-weight: 400;
  1029. color: #8890b1;
  1030. line-height: 16px;
  1031. }
  1032. /deep/.ws-info-table .el-form-item .el-form-item__label {
  1033. background-color: #fff;
  1034. font-size: 14px;
  1035. font-family: PingFangSC-Regular, PingFang SC;
  1036. font-weight: 400;
  1037. color: #8890b1;
  1038. line-height: 16px;
  1039. }
  1040. /deep/.ws-info-table .el-form-item .el-form-item__content {
  1041. border: 0px;
  1042. }
  1043. .addressUrls {
  1044. width: 100%;
  1045. display: flex;
  1046. margin-top: 10px;
  1047. }
  1048. .addressUrl {
  1049. margin: 0 10px;
  1050. border-radius: 3px;
  1051. }
  1052. .addressUrls-item{
  1053. position:relative;
  1054. }
  1055. .icon-guanbi{
  1056. position:absolute;
  1057. right:0;
  1058. }
  1059. </style>