移动端
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 

358 líneas
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. </div>
  67. <p class="main_more" v-if="chargeItme.length>1 && showbtn" @click="listLength = chargeItme.length,showbtn=false">查看更多</p>
  68. <p class="main_more" v-if="chargeItme.length>1 && !showbtn" @click="listLength = 1,showbtn=true">收起列表</p>
  69. </div>
  70. <p class="main_title">上传附件</p>
  71. <div class="main_box" style="padding: 5px 0 0 0;">
  72. <van-cell value="收据" />
  73. <van-uploader v-model="fileList1" v-if="fileList1==null||fileList1.length==0" :deletable="false" disabled :upload-text="'未上传附件'" style="margin-left:8px;"></van-uploader>
  74. <van-uploader v-model="fileList1" v-if="fileList1!=null&&fileList1.length>0" :deletable="false" :max-count="fileList1.length" style="margin-left:8px;"></van-uploader>
  75. <van-cell value="发票" />
  76. <van-uploader v-model="fileList2" v-if="fileList2==null||fileList2.length==0" :deletable="false" disabled :upload-text="'未上传附件'" style="margin-left:8px;"></van-uploader>
  77. <van-uploader v-model="fileList2" v-if="fileList2!=null&&fileList2.length>0" :deletable="false" :max-count="fileList2.length" style="margin-left:8px;"></van-uploader>
  78. <van-cell value="其他" />
  79. <van-uploader v-model="fileList3" v-if="fileList3==null||fileList3.length==0" :deletable="false" disabled :upload-text="'未上传附件'" style="margin-left:8px;"></van-uploader>
  80. <van-uploader v-model="fileList3" v-if="fileList3!=null&&fileList3.length>0" :deletable="false" :max-count="fileList3.length" style="margin-left:8px;" ></van-uploader>
  81. </div>
  82. </div>
  83. </template>
  84. <script>
  85. import { getTransfer , queryTransferDetail , listPayee , updateTransfer , getProjectto , listProject , addProjectto , customSubmit,getInfoto,listTemplate} from "@/api/onlineHome/bankAgriculture/paymentApproval";
  86. import request from '@/utils/request'
  87. import {
  88. attachmentList,
  89. commonAttach,
  90. systemAttachment
  91. } from "../../../../api/onlineHome/bankAgriculture/paymentApproval";
  92. export default {
  93. name: "approvalDetail",
  94. data() {
  95. return {
  96. showcapital:false,
  97. showpayee:false,
  98. showlasj:false,
  99. showbankType:false,
  100. showproject:false,
  101. showFundType:false,
  102. showbtn:true,
  103. listLength:1,
  104. minDate: new Date(),
  105. maxDate: new Date(2025, 10, 1),
  106. currentDate: new Date(),
  107. form:{},
  108. fileList1:[],
  109. fileList2:[],
  110. fileList3:[],
  111. capitalExpenditureType:'',
  112. payee:'',
  113. bankType:'',
  114. wfydlxDictionaries:[],
  115. jglxDictionaries:[],
  116. sysDictionaries:[],
  117. capitalExpenditureTypeOptions:[],
  118. bankTypeDictionaries:[],
  119. projectList:[],
  120. projectFundTypeOptions:[],
  121. projectFundTypeDictionaries:[],
  122. projectList:[],
  123. chargeItme:[],
  124. chargeItmeShow:[],
  125. payeeList:[],
  126. // 查询参数
  127. queryParams: {
  128. transferType:"",
  129. orderByColumn: "id",
  130. isAsc: "desc",
  131. },
  132. capitalExpenditureOpen:false,
  133. contractOpen:false,
  134. projectForm:{
  135. projectId:null,
  136. projectName:null,
  137. projectContractor:null,
  138. projectAmount:null,
  139. projectBillNum:null,
  140. projectFundType:'1',
  141. outId:null,
  142. ynType:'1'
  143. },
  144. infoForm:{
  145. infoId:null,
  146. name:null,
  147. code:null,
  148. totalAmount:null,
  149. contractionId:null,
  150. transferId:null
  151. },
  152. projectFundType:'',
  153. templateList:[],
  154. };
  155. },
  156. created() {
  157. this.getDicts("project_fund_type").then((response) => {
  158. for (var i = 0; i < response.data.length; i++) {
  159. this.projectFundTypeOptions.push({text: response.data[i].dictLabel, value: response.data[i].dictValue});
  160. }
  161. this.projectFundTypeDictionaries = response.data;
  162. });
  163. this.getDictionaries();
  164. this.getFileList();
  165. this.getTemplateList();
  166. },
  167. methods: {
  168. getTemplateList(){
  169. let templateQueryParams = {
  170. // 分页
  171. pageNum: 1,
  172. pageSize: 999,
  173. };
  174. listTemplate(templateQueryParams).then(response => {
  175. this.templateList = response.rows;
  176. });
  177. },
  178. tempalteFormat(id){
  179. let name = ""
  180. this.templateList.map(res => {
  181. if(res.id==id){
  182. console.log(res.name)
  183. name = res.name
  184. }
  185. })
  186. return name
  187. },
  188. goFlow(){
  189. window.location='approvalProcess?id='+this.$route.query.id;
  190. },
  191. getDictionaries(){
  192. getTransfer(this.$route.query.id).then((response) => {
  193. this.getDicts("capital_expenditure_type").then((res) => {
  194. for (var i = 0; i < res.data.length; i++) {
  195. this.capitalExpenditureTypeOptions.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  196. }
  197. this.capitalExpenditureType = this.selectDictLabel(res.data, response.data.capitalExpenditureType);
  198. });
  199. if(response.data.capitalExpenditureType==2){
  200. this.capitalExpenditureOpen = true
  201. let param={
  202. 'outId' : response.data.id,
  203. 'ynType' : '1'
  204. }
  205. getProjectto(param).then(res => {
  206. this.projectFundType = this.selectDictLabel(this.projectFundTypeDictionaries, res.data.projectFundType);
  207. this.projectForm = res.data
  208. })
  209. }else if(response.data.capitalExpenditureType==4) {
  210. this.contractOpen = true
  211. let param = {
  212. 'transferId': response.data.id
  213. }
  214. getInfoto(param).then(res => {
  215. this.infoForm = res.data
  216. })
  217. }else{
  218. this.showproject = false
  219. }
  220. this.form = response.data;
  221. });
  222. queryTransferDetail(this.$route.query.id).then((response) => {
  223. this.getDicts("bank_type_all").then(res => {
  224. for (var i = 0; i < res.data.length; i++) {
  225. this.bankTypeDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  226. }
  227. for (var j = 0 ; j < response.rows.length ; j++){
  228. response.rows[j].bankTypeText = this.selectDictLabel(res.data, response.rows[j].bankType);
  229. }
  230. this.chargeItme = response.rows;
  231. });
  232. this.getPayeeList();
  233. });
  234. },
  235. getPayeeList() {
  236. //普通转账
  237. this.queryParams.accountType = this.form.accountType
  238. this.queryParams.status = "0"
  239. listPayee(this.queryParams).then((response) => {
  240. for (var i = 0; i < response.rows.length; i++) {
  241. this.payeeList.push({text: response.rows[i].payee, value: response.rows[i].id});
  242. }
  243. });
  244. },
  245. getFileList(){
  246. let oData1= {
  247. tableId: this.$route.query.id,
  248. tableName: "t_yinnong_transfer",
  249. bizPath: "transfer",
  250. fileType: "1",
  251. }
  252. attachmentList(oData1).then(res => {
  253. res.rows.map(r => {
  254. let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
  255. this.fileList1.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
  256. })
  257. })
  258. let oData2= {
  259. tableId: this.$route.query.id,
  260. tableName: "t_yinnong_transfer",
  261. bizPath: "transfer",
  262. fileType: "2",
  263. }
  264. attachmentList(oData2).then(res => {
  265. res.rows.map(r => {
  266. let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
  267. this.fileList2.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
  268. })
  269. })
  270. let oData3= {
  271. tableId: this.$route.query.id,
  272. tableName: "t_yinnong_transfer",
  273. bizPath: "transfer",
  274. fileType: "3",
  275. }
  276. attachmentList(oData3).then(res => {
  277. res.rows.map(r => {
  278. let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
  279. this.fileList3.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
  280. })
  281. })
  282. },
  283. goBack(){
  284. window.history.go(-1)
  285. },
  286. //删除家庭成员
  287. deleteChargeItme(index){
  288. this.chargeItme.splice(index,1)
  289. },
  290. },
  291. }
  292. </script>
  293. <style scoped lang="scss">
  294. .app-container {
  295. padding: 2% 0;
  296. }
  297. .main_more{
  298. width: 96%;
  299. margin: 0 auto;
  300. margin-top: 10px;
  301. border-radius: 6px;
  302. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  303. overflow: hidden;
  304. background-color: #FFF;
  305. text-align: center;
  306. padding: 10PX 0;
  307. }
  308. .main_title{
  309. font-size: 0.4rem;
  310. color: #1D6FE9;
  311. margin: 0.2rem 6%;
  312. position: relative;
  313. }
  314. .main_box{
  315. width: 96%;
  316. margin: 0 auto;
  317. border-radius: 6px;
  318. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  319. overflow: hidden;
  320. background-color: #FFF;
  321. }
  322. .submitButton{
  323. width: 80%;
  324. margin: 0 auto;
  325. background-color: #1D6FE9;
  326. }
  327. .addFamily{
  328. position: absolute;
  329. top: -2px;
  330. right: 0;
  331. border-radius: 50%;
  332. }
  333. .deleteFamily{
  334. position: absolute;
  335. top: 0rem;
  336. right: 6%;
  337. z-index: 9;
  338. border-radius: 50%;
  339. }
  340. </style>