移动端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 

363 行
14 KiB

  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. <van-field name="radio" label="审批模式" input-align="right" autocomplete="off" readonly>
  22. <template #input>
  23. <van-radio-group v-model="form.approvalMode" direction="horizontal">
  24. <van-radio name="1">线上审批</van-radio>
  25. <van-radio name="2">线下审批</van-radio>
  26. </van-radio-group>
  27. </template>
  28. </van-field>
  29. <van-field v-if="form.approvalMode==1" readonly label="审批流程" :value="tempalteFormat(form.approvalTemplateId)" input-align="right" label-width="auto"/>
  30. </div>
  31. <div class="main_box" style="margin-top: 10px;">
  32. <van-field readonly label="转账附言" v-model="form.remark" type="textarea" input-align="right" rows="3" label-width="auto"/>
  33. </div>
  34. <div class="main_box" style="margin-top: 10px;">
  35. <van-field readonly label="说明情况" v-model="form.explainSituation" type="textarea" input-align="right" rows="3" label-width="auto"/>
  36. </div>
  37. <p class="main_title">付款方信息</p>
  38. <div class="main_box">
  39. <van-field readonly label="付款方" v-model="form.payer" input-align="right" label-width="auto"/>
  40. <van-field readonly label="付款方账户" v-model="form.payerAccount" input-align="right" label-width="auto"/>
  41. </div>
  42. <div class="main_box" v-if="capitalExpenditureOpen" style="margin-bottom: 10px;margin-top: 10px;position:relative;">
  43. <van-field readonly label="项目名称" v-model="projectForm.projectName" input-align="right" />
  44. <van-field readonly label="承建单位" v-model="projectForm.projectContractor" input-align="right" label-width="auto"/>
  45. <van-field readonly label="合同价款(元)" v-model="projectForm.projectAmount" input-align="right" label-width="auto"/>
  46. <van-field readonly label="工程款类型" v-model="projectFundType" input-align="right" />
  47. <van-field readonly label="工程发票号" v-model="projectForm.projectBillNum" input-align="right" label-width="auto"/>
  48. </div>
  49. <div class="main_box" v-if="contractOpen" style="margin-bottom: 10px;margin-top: 10px;position:relative;">
  50. <van-field readonly label="合同名称" v-model="infoForm.name" input-align="right" />
  51. <van-field readonly label="合同编码" v-model="infoForm.code" input-align="right" label-width="auto"/>
  52. <van-field readonly label="合同价款(元)" v-model="infoForm.totalAmount" input-align="right" label-width="auto"/>
  53. </div>
  54. <p class="main_title">收款方信息</p>
  55. <div class="main_box" style="margin-bottom: 15px;">
  56. <van-field readonly label="收款账户类型" v-if="form.bankType==1" v-model="form.accountType == 1 ? '公户':'私户'" input-align="right" label-width="auto" />
  57. <van-field readonly label="行内转账" v-if="form.bankType==2||form.bankType==3||form.bankType==4" v-model="form.isPeers == 'Y' ? '是':'否'" input-align="right" label-width="auto" />
  58. </div>
  59. <div style="position:relative;" >
  60. <div class="main_box" style="margin-bottom: 10px;position:relative;" v-for="(item, index) in chargeItme" :key="index" v-if="index<listLength">
  61. <van-field readonly label="收款方" v-model="item.payee" input-align="right" />
  62. <van-field readonly label="收款账户" v-model="item.payeeAccount" input-align="right" label-width="auto"/>
  63. <van-field readonly label="开户银行" v-model="item.bankDeposit" input-align="right" label-width="auto"/>
  64. <van-field readonly label="收入金额" v-model="item.incomeAmount" input-align="right" label-width="auto"/>
  65. <van-field readonly label="所属银行" v-model="item.bankTypeText" input-align="right" />
  66. <van-field v-if="item.transferStatus=='成功'||item.transferStatus=='失败'" readonly label="转账状态" v-model="item.transferStatus" input-align="right" />
  67. <van-field v-if="item.transferStatus=='成功'||item.transferStatus=='失败'" readonly label="交易结果描述" v-model="item.causeFailure" type="textarea" input-align="right" rows="3" label-width="auto" />
  68. </div>
  69. <p class="main_more" v-if="chargeItme.length>1 && showbtn" @click="listLength = chargeItme.length,showbtn=false">查看更多</p>
  70. <p class="main_more" v-if="chargeItme.length>1 && !showbtn" @click="listLength = 1,showbtn=true">收起列表</p>
  71. </div>
  72. <p class="main_title">上传附件</p>
  73. <div class="main_box" style="padding: 5px 0 0 0;">
  74. <van-cell value="收据" />
  75. <van-uploader v-model="fileList1" v-if="fileList1==null||fileList1.length==0" :deletable="false" disabled :upload-text="'未上传附件'" style="margin-left:8px;"></van-uploader>
  76. <van-uploader v-model="fileList1" v-if="fileList1!=null&&fileList1.length>0" :deletable="false" :max-count="fileList1.length" style="margin-left:8px;"></van-uploader>
  77. <van-cell value="发票" />
  78. <van-uploader v-model="fileList2" v-if="fileList2==null||fileList2.length==0" :deletable="false" disabled :upload-text="'未上传附件'" style="margin-left:8px;"></van-uploader>
  79. <van-uploader v-model="fileList2" v-if="fileList2!=null&&fileList2.length>0" :deletable="false" :max-count="fileList2.length" style="margin-left:8px;"></van-uploader>
  80. <van-cell value="其他" />
  81. <van-uploader v-model="fileList3" v-if="fileList3==null||fileList3.length==0" :deletable="false" disabled :upload-text="'未上传附件'" style="margin-left:8px;"></van-uploader>
  82. <van-uploader v-model="fileList3" v-if="fileList3!=null&&fileList3.length>0" :deletable="false" :max-count="fileList3.length" style="margin-left:8px;" ></van-uploader>
  83. </div>
  84. </div>
  85. </template>
  86. <script>
  87. import { getTransfer , queryTransferDetail , listPayee , updateTransfer , getProjectto , listProject , addProjectto , customSubmit,getInfoto,listTemplate} from "@/api/onlineHome/bankAgriculture/paymentApproval";
  88. import request from '@/utils/request'
  89. import {
  90. attachmentList,
  91. commonAttach,
  92. systemAttachment
  93. } from "../../../../api/onlineHome/bankAgriculture/paymentApproval";
  94. export default {
  95. name: "approvalDetail",
  96. data() {
  97. return {
  98. showcapital:false,
  99. showpayee:false,
  100. showlasj:false,
  101. showbankType:false,
  102. showproject:false,
  103. showFundType:false,
  104. showbtn:true,
  105. listLength:1,
  106. minDate: new Date(),
  107. maxDate: new Date(2025, 10, 1),
  108. currentDate: new Date(),
  109. form:{},
  110. fileList1:[],
  111. fileList2:[],
  112. fileList3:[],
  113. capitalExpenditureType:'',
  114. payee:'',
  115. bankType:'',
  116. wfydlxDictionaries:[],
  117. jglxDictionaries:[],
  118. sysDictionaries:[],
  119. capitalExpenditureTypeOptions:[],
  120. bankTypeDictionaries:[],
  121. projectList:[],
  122. projectFundTypeOptions:[],
  123. transferStatusOptions:[],
  124. projectFundTypeDictionaries:[],
  125. projectList:[],
  126. chargeItme:[],
  127. chargeItmeShow:[],
  128. payeeList:[],
  129. // 查询参数
  130. queryParams: {
  131. transferType:"",
  132. orderByColumn: "id",
  133. isAsc: "desc",
  134. },
  135. capitalExpenditureOpen:false,
  136. contractOpen:false,
  137. projectForm:{
  138. projectId:null,
  139. projectName:null,
  140. projectContractor:null,
  141. projectAmount:null,
  142. projectBillNum:null,
  143. projectFundType:'1',
  144. outId:null,
  145. ynType:'1'
  146. },
  147. infoForm:{
  148. infoId:null,
  149. name:null,
  150. code:null,
  151. totalAmount:null,
  152. contractionId:null,
  153. transferId:null
  154. },
  155. projectFundType:'',
  156. templateList:[],
  157. };
  158. },
  159. created() {
  160. this.getDicts("project_fund_type").then((response) => {
  161. for (var i = 0; i < response.data.length; i++) {
  162. this.projectFundTypeOptions.push({text: response.data[i].dictLabel, value: response.data[i].dictValue});
  163. }
  164. this.projectFundTypeDictionaries = response.data;
  165. });
  166. this.getDicts("transfer_status").then((response) => {
  167. this.transferStatusOptions = response.data;
  168. });
  169. this.getDicts("bank_type_all").then(response => {
  170. this.bankTypeDictionaries = response.data;
  171. });
  172. this.getDictionaries();
  173. this.getFileList();
  174. this.getTemplateList();
  175. },
  176. methods: {
  177. getTemplateList(){
  178. let templateQueryParams = {
  179. // 分页
  180. pageNum: 1,
  181. pageSize: 999,
  182. };
  183. listTemplate(templateQueryParams).then(response => {
  184. this.templateList = response.rows;
  185. });
  186. },
  187. tempalteFormat(id){
  188. let name = ""
  189. this.templateList.map(res => {
  190. if(res.id==id){
  191. console.log(res.name)
  192. name = res.name
  193. }
  194. })
  195. return name
  196. },
  197. goFlow(){
  198. window.location='approvalProcess?id='+this.$route.query.id+'&auditbatchNo='+this.$route.query.auditbatchNo;
  199. },
  200. getDictionaries(){
  201. getTransfer(this.$route.query.id).then((response) => {
  202. this.getDicts("capital_expenditure_type").then((res) => {
  203. for (var i = 0; i < res.data.length; i++) {
  204. this.capitalExpenditureTypeOptions.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  205. }
  206. this.capitalExpenditureType = this.selectDictLabel(res.data, response.data.capitalExpenditureType);
  207. });
  208. if(response.data.capitalExpenditureType==2){
  209. this.capitalExpenditureOpen = true
  210. let param={
  211. 'outId' : response.data.id,
  212. 'ynType' : '1'
  213. }
  214. getProjectto(param).then(res => {
  215. this.projectFundType = this.selectDictLabel(this.projectFundTypeDictionaries, res.data.projectFundType);
  216. this.projectForm = res.data
  217. })
  218. }else if(response.data.capitalExpenditureType==4) {
  219. this.contractOpen = true
  220. let param = {
  221. 'transferId': response.data.id
  222. }
  223. getInfoto(param).then(res => {
  224. this.infoForm = res.data
  225. })
  226. }else{
  227. this.showproject = false
  228. }
  229. this.form = response.data;
  230. });
  231. queryTransferDetail(this.$route.query.id).then((response) => {
  232. for (var j = 0 ; j < response.rows.length ; j++){
  233. response.rows[j].bankTypeText = this.selectDictLabel(this.bankTypeDictionaries, response.rows[j].bankType);
  234. response.rows[j].transferStatus = this.selectDictLabel(this.transferStatusOptions, response.rows[j].transferStatus);
  235. }
  236. this.chargeItme = response.rows;
  237. this.getPayeeList();
  238. });
  239. },
  240. getPayeeList() {
  241. //普通转账
  242. this.queryParams.accountType = this.form.accountType
  243. this.queryParams.status = "0"
  244. listPayee(this.queryParams).then((response) => {
  245. for (var i = 0; i < response.rows.length; i++) {
  246. this.payeeList.push({text: response.rows[i].payee, value: response.rows[i].id});
  247. }
  248. });
  249. },
  250. getFileList(){
  251. let oData1= {
  252. tableId: this.$route.query.id,
  253. tableName: "t_yinnong_transfer",
  254. bizPath: "transfer",
  255. fileType: "1",
  256. }
  257. attachmentList(oData1).then(res => {
  258. res.rows.map(r => {
  259. let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
  260. this.fileList1.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
  261. })
  262. })
  263. let oData2= {
  264. tableId: this.$route.query.id,
  265. tableName: "t_yinnong_transfer",
  266. bizPath: "transfer",
  267. fileType: "2",
  268. }
  269. attachmentList(oData2).then(res => {
  270. res.rows.map(r => {
  271. let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
  272. this.fileList2.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
  273. })
  274. })
  275. let oData3= {
  276. tableId: this.$route.query.id,
  277. tableName: "t_yinnong_transfer",
  278. bizPath: "transfer",
  279. fileType: "3",
  280. }
  281. attachmentList(oData3).then(res => {
  282. res.rows.map(r => {
  283. let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
  284. this.fileList3.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
  285. })
  286. })
  287. },
  288. goBack(){
  289. window.history.go(-1)
  290. },
  291. //删除家庭成员
  292. deleteChargeItme(index){
  293. this.chargeItme.splice(index,1)
  294. },
  295. },
  296. }
  297. </script>
  298. <style scoped lang="scss">
  299. .app-container {
  300. padding: 2% 0;
  301. }
  302. .main_more{
  303. width: 96%;
  304. margin: 0 auto;
  305. margin-top: 10px;
  306. border-radius: 6px;
  307. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  308. overflow: hidden;
  309. background-color: #FFF;
  310. text-align: center;
  311. padding: 10PX 0;
  312. }
  313. .main_title{
  314. font-size: 0.4rem;
  315. color: #1D6FE9;
  316. margin: 0.2rem 6%;
  317. position: relative;
  318. }
  319. .main_box{
  320. width: 96%;
  321. margin: 0 auto;
  322. border-radius: 6px;
  323. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  324. overflow: hidden;
  325. background-color: #FFF;
  326. }
  327. .submitButton{
  328. width: 80%;
  329. margin: 0 auto;
  330. background-color: #1D6FE9;
  331. }
  332. .addFamily{
  333. position: absolute;
  334. top: -2px;
  335. right: 0;
  336. border-radius: 50%;
  337. }
  338. .deleteFamily{
  339. position: absolute;
  340. top: 0rem;
  341. right: 6%;
  342. z-index: 9;
  343. border-radius: 50%;
  344. }
  345. </style>