移动端
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.
 
 

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