移动端
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

approvalDetail11.vue 12 KiB

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