移动端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

approvalDetail.vue 16 KiB

3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
3 년 전
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443
  1. <template>
  2. <div class="app-container">
  3. <van-nav-bar
  4. left-arrow
  5. fixed
  6. placeholder
  7. @click-left="$router.back(-1)"
  8. >
  9. <template #title>
  10. <p style="font-weight: bold;">查看常用转账申请</p>
  11. </template>
  12. <template #right>
  13. <van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/>
  14. </template>
  15. </van-nav-bar>
  16. <p class="main_title">基础信息</p>
  17. <div class="main_box">
  18. <van-field readonly label="申请时间" v-model="form.applyDate" input-align="right" />
  19. <van-field readonly label="资金支出类别" v-model="capitalExpenditureType" input-align="right" label-width="auto" />
  20. <van-field readonly label="支出总金额" v-model="form.expenditureAmount" input-align="right" label-width="auto"/>
  21. </div>
  22. <div class="main_box" style="margin-top: 10px;">
  23. <van-field readonly label="付款事由" v-model="form.remark" type="textarea" input-align="right" rows="3" label-width="auto"/>
  24. </div>
  25. <div class="main_box" style="margin-top: 10px;">
  26. <van-field readonly label="说明情况" v-model="form.explainSituation" type="textarea" input-align="right" rows="3" label-width="auto"/>
  27. </div>
  28. <p class="main_title">付款方信息</p>
  29. <div class="main_box">
  30. <van-field readonly label="付款方" v-model="form.payer" input-align="right" label-width="auto"/>
  31. <van-field readonly label="付款方账户" v-model="form.payerAccount" input-align="right" label-width="auto"/>
  32. </div>
  33. <div class="main_box" v-if="capitalExpenditureOpen" style="margin-bottom: 10px;margin-top: 10px;position:relative;">
  34. <van-field readonly label="项目名称" v-model="projectForm.projectName" input-align="right" />
  35. <van-field readonly label="承建单位" v-model="projectForm.projectContractor" input-align="right" label-width="auto"/>
  36. <van-field readonly label="合同价款(元)" v-model="projectForm.projectAmount" input-align="right" label-width="auto"/>
  37. <van-field readonly label="工程款类型" v-model="projectFundType" input-align="right" />
  38. <van-field readonly label="工程发票号" v-model="projectForm.projectBillNum" input-align="right" label-width="auto"/>
  39. </div>
  40. <p class="main_title">收款方信息</p>
  41. <div class="main_box" style="margin-bottom: 15px;">
  42. <van-field readonly label="收款账户类型" v-model="form.accountType == 1 ? '公户':'私户'" input-align="right" label-width="auto" />
  43. </div>
  44. <div :style="{position:'relative',padding: index == 0 ? '':'10px 0 0 0'}" v-for="(item, index) in chargeItme" :key="index">
  45. <div class="main_box" style="margin-bottom: 10px;position:relative;">
  46. <van-field readonly label="收款方" v-model="item.payee" input-align="right" />
  47. <van-field readonly label="收款账户" v-model="item.payeeAccount" input-align="right" label-width="auto"/>
  48. <van-field readonly label="开户银行" v-model="item.bankDeposit" input-align="right" label-width="auto"/>
  49. <van-field readonly label="收入金额" v-model="item.incomeAmount" input-align="right" label-width="auto"/>
  50. <van-field readonly label="所属银行" v-model="item.bankTypeText" input-align="right" />
  51. </div>
  52. </div>
  53. <p class="main_title">上传附件</p>
  54. <div class="main_box" style="padding: 5px 0 0 8px;">
  55. <van-uploader v-model="fileList" v-if="fileList==null||fileList.length==0" :deletable="false" disabled :upload-text="'未上传附件'"></van-uploader>
  56. <van-uploader v-model="fileList" v-if="fileList!=null&&fileList.length>0" :deletable="false" :max-count="fileList.length" ></van-uploader>
  57. </div>
  58. </div>
  59. </template>
  60. <script>
  61. import { getTransfer , queryTransferDetail , listPayee , updateTransfer , getProjectto , listProject , addProjectto , customSubmit} from "@/api/onlineHome/bankAgriculture/paymentApproval";
  62. import request from '@/utils/request'
  63. import {
  64. attachmentList,
  65. commonAttach,
  66. systemAttachment
  67. } from "../../../../api/onlineHome/bankAgriculture/paymentApproval";
  68. export default {
  69. name: "approvalDetail",
  70. data() {
  71. return {
  72. showcapital:false,
  73. showpayee:false,
  74. showlasj:false,
  75. showbankType:false,
  76. showproject:false,
  77. showFundType:false,
  78. minDate: new Date(),
  79. maxDate: new Date(2025, 10, 1),
  80. currentDate: new Date(),
  81. form:{},
  82. fileList:[],
  83. capitalExpenditureType:'',
  84. payee:'',
  85. bankType:'',
  86. wfydlxDictionaries:[],
  87. jglxDictionaries:[],
  88. sysDictionaries:[],
  89. capitalExpenditureTypeOptions:[],
  90. bankTypeDictionaries:[],
  91. projectList:[],
  92. projectFundTypeOptions:[],
  93. projectFundTypeDictionaries:[],
  94. projectListShow:[],
  95. chargeItme:[],
  96. chargeItmeShow:[],
  97. payeeList:[],
  98. // 查询参数
  99. queryParams: {
  100. transferType:"",
  101. orderByColumn: "id",
  102. isAsc: "desc",
  103. },
  104. capitalExpenditureOpen:false,
  105. projectForm:{
  106. projectId:null,
  107. projectName:null,
  108. projectContractor:null,
  109. projectAmount:null,
  110. projectBillNum:null,
  111. projectFundType:'1',
  112. outId:null,
  113. ynType:'1'
  114. },
  115. projectFundType:''
  116. };
  117. },
  118. created() {
  119. let queryParams={
  120. pageNum: 1,
  121. pageSize: 100,
  122. }
  123. listProject(queryParams).then(response => {
  124. console.log(response)
  125. this.projectList = response.rows;
  126. for (var i = 0; i < response.rows.length; i++) {
  127. this.projectListShow.push({text: response.rows[i].projectName, value: response.rows[i].id});
  128. }
  129. });
  130. this.getDicts("project_fund_type").then((response) => {
  131. for (var i = 0; i < response.data.length; i++) {
  132. this.projectFundTypeOptions.push({text: response.data[i].dictLabel, value: response.data[i].dictValue});
  133. }
  134. this.projectFundTypeDictionaries = response.data;
  135. });
  136. this.getDictionaries();
  137. this.getFileList();
  138. },
  139. methods: {
  140. goFlow(){
  141. window.location='approvalProcess?id='+this.$route.query.id;
  142. },
  143. getDictionaries(){
  144. getTransfer(this.$route.query.id).then((response) => {
  145. this.getDicts("capital_expenditure_type").then((res) => {
  146. for (var i = 0; i < res.data.length; i++) {
  147. this.capitalExpenditureTypeOptions.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  148. }
  149. this.capitalExpenditureType = this.selectDictLabel(res.data, response.data.capitalExpenditureType);
  150. });
  151. if(response.data.capitalExpenditureType==2){
  152. this.capitalExpenditureOpen = true
  153. let param={
  154. 'outId' : response.data.id,
  155. 'ynType' : '1'
  156. }
  157. getProjectto(param).then(res => {
  158. this.projectFundType = this.selectDictLabel(this.projectFundTypeDictionaries, res.data.projectFundType);
  159. this.projectForm = res.data
  160. })
  161. }else{
  162. this.showproject = false
  163. }
  164. this.form = response.data;
  165. });
  166. queryTransferDetail(this.$route.query.id).then((response) => {
  167. this.getDicts("bank_type").then(res => {
  168. for (var i = 0; i < res.data.length; i++) {
  169. this.bankTypeDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  170. }
  171. for (var j = 0 ; j < response.rows.length ; j++){
  172. response.rows[j].bankTypeText = this.selectDictLabel(res.data, response.rows[j].bankType);
  173. }
  174. this.chargeItme = response.rows;
  175. });
  176. this.getPayeeList();
  177. });
  178. },
  179. addChargeItme(index){
  180. this.chargeItme.splice(index + 1, 0, {
  181. payeeId: "", //收款方ID
  182. payee: "", //收款方
  183. payeeAccount: "", //收款账户
  184. bankDeposit: "", //开户银行
  185. incomeAmount: "", //收入金额
  186. bankType: "", //所属银行
  187. });
  188. },
  189. getPayeeList() {
  190. //普通转账
  191. this.queryParams.accountType = this.form.accountType
  192. this.queryParams.status = "0"
  193. listPayee(this.queryParams).then((response) => {
  194. for (var i = 0; i < response.rows.length; i++) {
  195. this.payeeList.push({text: response.rows[i].payee, value: response.rows[i].id});
  196. }
  197. });
  198. },
  199. payeeDictLabel(datas, value) {
  200. var actions = [];
  201. Object.keys(datas).some((key) => {
  202. if (datas[key].payeeId == ('' + value)) {
  203. actions.push(datas[key].payee);
  204. return true;
  205. }
  206. })
  207. return actions.join('');
  208. },
  209. onConfirmCapital(data){
  210. console.log(data)
  211. if (data.value != 2){
  212. this.capitalExpenditureOpen = false;
  213. this.projectForm = [];
  214. }else{
  215. this.capitalExpenditureOpen = true;
  216. }
  217. this.capitalExpenditureType = data.text;
  218. this.form.capitalExpenditureType = data.value;
  219. this.showcapital = false;
  220. },
  221. onConfirmFundType(data){
  222. console.log(data)
  223. this.projectForm.projectFundType = data.value;
  224. this.projectFundType = data.text;
  225. this.showFundType = false;
  226. },
  227. onConfirmProject(data){
  228. console.log(data)
  229. this.projectList.map(res => {
  230. console.log(res)
  231. if(res.projectName==data.text){
  232. this.projectForm.projectId = res.id
  233. this.projectForm.projectName = res.projectName
  234. this.projectForm.projectContractor = res.projectContractor
  235. this.projectForm.projectAmount = res.projectAmount
  236. console.log(this.projectForm)
  237. }
  238. })
  239. this.showproject = false;
  240. },
  241. onConfirmPayee(data){
  242. // this.chargeItme[this.chargeItme.length-1].payeeText = data.text;
  243. this.chargeItme[this.chargeItme.length-1].payee = data.text;
  244. this.chargeItme[this.chargeItme.length-1].payeeId = data.value;
  245. console.log(this.chargeItme)
  246. this.showpayee = false;
  247. },
  248. onConfirmBankType(data){
  249. console.log(this.chargeItme)
  250. this.chargeItme[this.chargeItme.length-1].bankTypeText = data.text;
  251. this.chargeItme[this.chargeItme.length-1].bankType = data.value;
  252. this.showbankType = false;
  253. },
  254. onConfirmLasj(data){
  255. this.form.applyDate = this.getNowFormatDate(data).substr(0,10);
  256. this.showlasj = false;
  257. },
  258. accountTypeChange(e){
  259. console.log(e)
  260. this.payeeList = [];
  261. this.queryParams.accountType = this.form.accountType
  262. this.queryParams.status = "0"
  263. listPayee(this.queryParams).then((response) => {
  264. for (var i = 0; i < response.rows.length; i++) {
  265. this.payeeList.push({text: response.rows[i].payee, value: response.rows[i].id});
  266. }
  267. });
  268. },
  269. goAdd(){
  270. if(this.form.remark != null && this.form.remark.indexOf("|")!=-1){
  271. this.$toast.error("付款事由禁止包含|。");
  272. return;
  273. }
  274. if(this.form.capitalExpenditureType==2){
  275. if(this.projectForm.projectName==""||this.projectForm.projectName==null){
  276. this.$toast.error('请选择项目名称!');
  277. return;
  278. }
  279. if(this.projectForm.projectBillNum==""||this.projectForm.projectBillNum==null){
  280. this.$toast.error('请输入工程发票号!');
  281. return;
  282. }
  283. }
  284. this.$set(this.form, "payeeList", this.chargeItme);
  285. this.$set(this.form, "bankTypeList", this.chargeItme);
  286. this.$set(this.form, "accountTypeList", this.chargeItme);
  287. this.$set(this.form, "transferStatusList", this.chargeItme);
  288. console.log(this.form);
  289. updateTransfer(this.form).then(response => {
  290. console.log(response);
  291. this.projectForm.outId = this.form.id
  292. this.$set(this.projectForm, "ynType", '1');
  293. console.log(this.projectForm)
  294. if(this.form.capitalExpenditureType==2){
  295. addProjectto(this.projectForm).then(res => {
  296. customSubmit(this.form.id).then(res => {
  297. this.$toast.success('提交成功');
  298. setTimeout(function(){
  299. history.go(-1)
  300. },2000)
  301. })
  302. })
  303. }else{
  304. customSubmit(this.form.id).then(res => {
  305. this.$toast.success('提交成功');
  306. setTimeout(function(){
  307. history.go(-1)
  308. },2000)
  309. })
  310. }
  311. });
  312. },
  313. goUpdate(){
  314. if(this.form.remark != null && this.form.remark.indexOf("|")!=-1){
  315. this.$toast.error("付款事由禁止包含|。");
  316. return;
  317. }
  318. if(this.form.capitalExpenditureType==2){
  319. if(this.projectForm.projectName==""||this.projectForm.projectName==null){
  320. this.$toast.error('请选择项目名称!');
  321. return;
  322. }
  323. if(this.projectForm.projectBillNum==""||this.projectForm.projectBillNum==null){
  324. this.$toast.error('请输入工程发票号!');
  325. return;
  326. }
  327. }
  328. this.$set(this.form, "payeeList", this.chargeItme);
  329. this.$set(this.form, "bankTypeList", this.chargeItme);
  330. this.$set(this.form, "accountTypeList", this.chargeItme);
  331. this.$set(this.form, "transferStatusList", this.chargeItme);
  332. this.projectForm.outId = this.form.id
  333. updateTransfer(this.form).then((response) => {
  334. this.projectForm.outId = this.form.id
  335. this.$set(this.projectForm, "ynType", '1');
  336. if(this.form.capitalExpenditureType==2){
  337. addProjectto(this.projectForm).then(res => {
  338. this.$toast.success('修改成功');
  339. setTimeout(function(){
  340. history.go(-1)
  341. },2000)
  342. })
  343. }else{
  344. this.$toast.success('修改成功');
  345. setTimeout(function(){
  346. history.go(-1)
  347. },2000)
  348. }
  349. });
  350. },
  351. beforeRead(file) {
  352. this.uploadFiles.push(file.file);
  353. },
  354. deleteFile(file){
  355. console.log(file)
  356. this.uploadFiles.map((response,index) => {
  357. if(file.file == response){
  358. this.uploadFiles.splice(index,1)
  359. }
  360. })
  361. if(file.id){
  362. systemAttachment(file.id).then((res) => {
  363. });
  364. }
  365. },
  366. getFileList(){
  367. let oData= {
  368. tableId: this.$route.query.id,
  369. tableName: "t_yinnong_transfer",
  370. bizPath: "upload",
  371. fileType: "0",
  372. }
  373. attachmentList(oData).then(res => {
  374. console.log(res)
  375. console.log(location.protocol+"//"+location.host+request.defaults.baseURL)
  376. res.rows.map(r => {
  377. let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
  378. this.fileList.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
  379. console.log(r)
  380. })
  381. })
  382. },
  383. goBack(){
  384. window.history.go(-1)
  385. },
  386. //删除家庭成员
  387. deleteChargeItme(index){
  388. this.chargeItme.splice(index,1)
  389. },
  390. },
  391. }
  392. </script>
  393. <style scoped lang="scss">
  394. .app-container {
  395. padding: 2% 0;
  396. }
  397. .main_title{
  398. font-size: 0.4rem;
  399. color: #1D6FE9;
  400. margin: 0.2rem 6%;
  401. position: relative;
  402. }
  403. .main_box{
  404. width: 96%;
  405. margin: 0 auto;
  406. border-radius: 6px;
  407. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  408. overflow: hidden;
  409. background-color: #FFF;
  410. }
  411. .submitButton{
  412. width: 80%;
  413. margin: 0 auto;
  414. background-color: #1D6FE9;
  415. }
  416. .addFamily{
  417. position: absolute;
  418. top: -2px;
  419. right: 0;
  420. border-radius: 50%;
  421. }
  422. .deleteFamily{
  423. position: absolute;
  424. top: 0rem;
  425. right: 6%;
  426. z-index: 9;
  427. border-radius: 50%;
  428. }
  429. </style>