移动端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

286 lines
10 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. </div>
  30. <div class="main_box" style="margin-top: 10px;">
  31. <van-field readonly label="转账附言" v-model="form.remark" type="textarea" input-align="right" rows="3" label-width="auto"/>
  32. </div>
  33. <div class="main_box" style="margin-top: 10px;">
  34. <van-field readonly label="说明情况" v-model="form.explainSituation" type="textarea" input-align="right" rows="3" label-width="auto"/>
  35. </div>
  36. <p class="main_title">付款方信息</p>
  37. <div class="main_box">
  38. <van-field readonly label="付款方" v-model="form.payer" input-align="right" label-width="auto"/>
  39. <van-field readonly label="付款方账户" v-model="form.payerAccount" input-align="right" label-width="auto"/>
  40. </div>
  41. <div class="main_box" v-if="capitalExpenditureOpen" style="margin-bottom: 10px;margin-top: 10px;position:relative;">
  42. <van-field readonly label="项目名称" v-model="projectForm.projectName" input-align="right" />
  43. <van-field readonly label="承建单位" v-model="projectForm.projectContractor" input-align="right" label-width="auto"/>
  44. <van-field readonly label="合同价款(元)" v-model="projectForm.projectAmount" input-align="right" label-width="auto"/>
  45. <van-field readonly label="工程款类型" v-model="projectFundType" input-align="right" />
  46. <van-field readonly label="工程发票号" v-model="projectForm.projectBillNum" input-align="right" label-width="auto"/>
  47. </div>
  48. <div class="main_box" v-if="contractOpen" style="margin-bottom: 10px;margin-top: 10px;position:relative;">
  49. <van-field readonly label="合同名称" v-model="infoForm.name" input-align="right" />
  50. <van-field readonly label="合同编码" v-model="infoForm.code" input-align="right" label-width="auto"/>
  51. <van-field readonly label="合同价款(元)" v-model="infoForm.totalAmount" input-align="right" label-width="auto"/>
  52. </div>
  53. <p class="main_title">列表信息</p>
  54. <div class="main_box" style="margin-bottom: 15px;">
  55. <van-field readonly label="收款账户类型" v-if="form.bankType==1" v-model="form.accountType == 1 ? '公户':'私户'" input-align="right" label-width="auto" />
  56. <van-field readonly label="行内转账" v-if="form.bankType==2||form.bankType==4" v-model="form.isPeers == 'Y' ? '是':'否'" input-align="right" label-width="auto" />
  57. </div>
  58. <div :style="{position:'relative',padding: index == 0 ? '':'10px 0 0 0'}" v-for="(item, index) in chargeItme" :key="index">
  59. <div class="main_box" style="margin-bottom: 10px;position:relative;">
  60. <van-field readonly label="收款方" v-model="item.payee" input-align="right" />
  61. <van-field readonly label="收款账户" v-model="item.payeeAccount" input-align="right" label-width="auto"/>
  62. <van-field readonly label="开户银行" v-model="item.bankDeposit" input-align="right" label-width="auto"/>
  63. <van-field readonly label="收入金额" v-model="item.incomeAmount" input-align="right" label-width="auto"/>
  64. <van-field readonly label="所属银行" v-model="item.bankTypeText" input-align="right" />
  65. </div>
  66. </div>
  67. <p class="main_title">上传附件</p>
  68. <div class="main_box" style="padding: 5px 0 0 8px;">
  69. <van-uploader v-model="fileList" :deletable="false" disabled :upload-text="'未上传附件'"></van-uploader>
  70. </div>
  71. </div>
  72. </template>
  73. <script>
  74. import { getTransfer , queryTransferDetail , listPayee , updateTransfer , getProjectto , listProject , addProjectto , customSubmit,getInfoto } from "@/api/onlineHome/bankAgriculture/paymentApproval";
  75. import request from '@/utils/request'
  76. import {
  77. attachmentList,
  78. commonAttach,
  79. systemAttachment
  80. } from "../../../../api/onlineHome/bankAgriculture/paymentApproval";
  81. export default {
  82. name: "approvalDetail",
  83. data() {
  84. return {
  85. showcapital:false,
  86. showpayee:false,
  87. showlasj:false,
  88. showbankType:false,
  89. showproject:false,
  90. showFundType:false,
  91. minDate: new Date(),
  92. maxDate: new Date(2025, 10, 1),
  93. currentDate: new Date(),
  94. form:{},
  95. fileList:[],
  96. capitalExpenditureType:'',
  97. payee:'',
  98. bankType:'',
  99. wfydlxDictionaries:[],
  100. jglxDictionaries:[],
  101. sysDictionaries:[],
  102. capitalExpenditureTypeOptions:[],
  103. bankTypeDictionaries:[],
  104. projectList:[],
  105. projectFundTypeOptions:[],
  106. projectFundTypeDictionaries:[],
  107. projectListShow:[],
  108. chargeItme:[],
  109. chargeItmeShow:[],
  110. payeeList:[],
  111. // 查询参数
  112. queryParams: {
  113. transferType:"",
  114. orderByColumn: "id",
  115. isAsc: "desc",
  116. },
  117. capitalExpenditureOpen:false,
  118. contractOpen:false,
  119. projectForm:{
  120. projectId:null,
  121. projectName:null,
  122. projectContractor:null,
  123. projectAmount:null,
  124. projectBillNum:null,
  125. projectFundType:'1',
  126. outId:null,
  127. ynType:'1'
  128. },
  129. infoForm:{
  130. infoId:null,
  131. name:null,
  132. code:null,
  133. totalAmount:null,
  134. contractionId:null,
  135. transferId:null
  136. },
  137. projectFundType:''
  138. };
  139. },
  140. created() {
  141. this.getDicts("project_fund_type").then((response) => {
  142. for (var i = 0; i < response.data.length; i++) {
  143. this.projectFundTypeOptions.push({text: response.data[i].dictLabel, value: response.data[i].dictValue});
  144. }
  145. this.projectFundTypeDictionaries = response.data;
  146. });
  147. this.getDictionaries();
  148. this.getFileList();
  149. },
  150. methods: {
  151. goFlow(){
  152. window.location='approvalProcess?id='+this.$route.query.id;
  153. },
  154. getDictionaries(){
  155. getTransfer(this.$route.query.id).then((response) => {
  156. this.getDicts("capital_expenditure_type").then((res) => {
  157. for (var i = 0; i < res.data.length; i++) {
  158. this.capitalExpenditureTypeOptions.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  159. }
  160. this.capitalExpenditureType = this.selectDictLabel(res.data, response.data.capitalExpenditureType);
  161. });
  162. if(response.data.capitalExpenditureType==2){
  163. this.capitalExpenditureOpen = true
  164. let param={
  165. 'outId' : response.data.id,
  166. 'ynType' : '1'
  167. }
  168. getProjectto(param).then(res => {
  169. this.projectFundType = this.selectDictLabel(this.projectFundTypeDictionaries, res.data.projectFundType);
  170. this.projectForm = res.data
  171. })
  172. }else if(response.data.capitalExpenditureType==4) {
  173. this.contractOpen = true
  174. let param = {
  175. 'transferId': response.data.id
  176. }
  177. getInfoto(param).then(res => {
  178. this.infoForm = res.data
  179. })
  180. }else{
  181. this.showproject = false
  182. }
  183. this.form = response.data;
  184. });
  185. queryTransferDetail(this.$route.query.id).then((response) => {
  186. this.getDicts("bank_type").then(res => {
  187. for (var i = 0; i < res.data.length; i++) {
  188. this.bankTypeDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  189. }
  190. for (var j = 0 ; j < response.rows.length ; j++){
  191. response.rows[j].bankTypeText = this.selectDictLabel(res.data, response.rows[j].bankType);
  192. }
  193. this.chargeItme = response.rows;
  194. });
  195. this.getPayeeList();
  196. });
  197. },
  198. getPayeeList() {
  199. //普通转账
  200. this.queryParams.accountType = this.form.accountType
  201. this.queryParams.status = "0"
  202. listPayee(this.queryParams).then((response) => {
  203. for (var i = 0; i < response.rows.length; i++) {
  204. this.payeeList.push({text: response.rows[i].payee, value: response.rows[i].id});
  205. }
  206. });
  207. },
  208. getFileList(){
  209. let oData= {
  210. tableId: this.$route.query.id,
  211. tableName: "t_yinnong_transfer",
  212. bizPath: "upload",
  213. fileType: "0",
  214. }
  215. attachmentList(oData).then(res => {
  216. console.log(res)
  217. console.log(location.protocol+"//"+location.host+request.defaults.baseURL)
  218. res.rows.map(r => {
  219. let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
  220. this.fileList.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
  221. console.log(r)
  222. })
  223. })
  224. },
  225. goBack(){
  226. window.history.go(-1)
  227. },
  228. //删除家庭成员
  229. deleteChargeItme(index){
  230. this.chargeItme.splice(index,1)
  231. },
  232. },
  233. }
  234. </script>
  235. <style scoped lang="scss">
  236. .app-container {
  237. padding: 2% 0;
  238. }
  239. .main_title{
  240. font-size: 0.4rem;
  241. color: #1D6FE9;
  242. margin: 0.2rem 6%;
  243. position: relative;
  244. }
  245. .main_box{
  246. width: 96%;
  247. margin: 0 auto;
  248. border-radius: 6px;
  249. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  250. overflow: hidden;
  251. background-color: #FFF;
  252. }
  253. .submitButton{
  254. width: 80%;
  255. margin: 0 auto;
  256. background-color: #1D6FE9;
  257. }
  258. .addFamily{
  259. position: absolute;
  260. top: -2px;
  261. right: 0;
  262. border-radius: 50%;
  263. }
  264. .deleteFamily{
  265. position: absolute;
  266. top: 0rem;
  267. right: 6%;
  268. z-index: 9;
  269. border-radius: 50%;
  270. }
  271. </style>