移动端
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 

400 satır
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. </div>
  22. <div class="main_box" style="margin-top: 10px;">
  23. <van-field readonly label="付款事由" v-model="form.remark" type="textarea" input-align="right" rows="3" label-width="auto"/>
  24. </div>
  25. <div class="main_box" style="margin-top: 10px;">
  26. <van-field readonly label="说明情况" v-model="form.explainSituation" type="textarea" input-align="right" rows="3" label-width="auto"/>
  27. </div>
  28. <p class="main_title">付款方信息</p>
  29. <div class="main_box">
  30. <van-field readonly label="付款方" v-model="form.payer" input-align="right" label-width="auto"/>
  31. <van-field readonly label="付款方账户" v-model="form.payerAccount" input-align="right" label-width="auto"/>
  32. </div>
  33. <div class="main_box" v-if="capitalExpenditureOpen" style="margin-bottom: 10px;margin-top: 10px;position:relative;">
  34. <van-field readonly label="项目名称" v-model="projectForm.projectName" input-align="right" />
  35. <van-field readonly label="承建单位" v-model="projectForm.projectContractor" input-align="right" label-width="auto"/>
  36. <van-field readonly label="合同价款(元)" v-model="projectForm.projectAmount" input-align="right" label-width="auto"/>
  37. <van-field readonly label="工程款类型" v-model="projectFundType" input-align="right" />
  38. <van-field readonly label="工程发票号" v-model="projectForm.projectBillNum" input-align="right" label-width="auto"/>
  39. </div>
  40. <p class="main_title">列表信息</p>
  41. <div class="main_box" style="margin-bottom: 15px;">
  42. <van-field readonly label="收款账户类型" v-model="form.accountType == 1 ? '公户':'私户'" input-align="right" label-width="auto" />
  43. </div>
  44. <div :style="{position:'relative',padding: index == 0 ? '':'10px 0 0 0'}" v-for="(item, index) in chargeItme" :key="index">
  45. <div class="main_box" style="margin-bottom: 10px;position:relative;">
  46. <van-field readonly label="收款方" v-model="item.payee" input-align="right" />
  47. <van-field readonly label="收款账户" v-model="item.payeeAccount" input-align="right" label-width="auto"/>
  48. <van-field readonly label="开户银行" v-model="item.bankDeposit" input-align="right" label-width="auto"/>
  49. <van-field readonly label="收入金额" v-model="item.incomeAmount" input-align="right" label-width="auto"/>
  50. <van-field readonly label="所属银行" v-model="item.bankTypeText" input-align="right" />
  51. </div>
  52. </div>
  53. </div>
  54. </template>
  55. <script>
  56. import { getTransfer , queryTransferDetail , listPayee , updateTransfer , getProjectto , listProject , addProjectto , customSubmit} from "@/api/onlineHome/bankAgriculture/paymentApproval";
  57. export default {
  58. name: "approvalModify",
  59. data() {
  60. return {
  61. showcapital:false,
  62. showpayee:false,
  63. showlasj:false,
  64. showbankType:false,
  65. showproject:false,
  66. showFundType:false,
  67. minDate: new Date(),
  68. maxDate: new Date(2025, 10, 1),
  69. currentDate: new Date(),
  70. form:{},
  71. capitalExpenditureType:'',
  72. payee:'',
  73. bankType:'',
  74. wfydlxDictionaries:[],
  75. jglxDictionaries:[],
  76. sysDictionaries:[],
  77. capitalExpenditureTypeOptions:[],
  78. bankTypeDictionaries:[],
  79. projectList:[],
  80. projectFundTypeOptions:[],
  81. projectFundTypeDictionaries:[],
  82. projectListShow:[],
  83. chargeItme:[],
  84. chargeItmeShow:[],
  85. payeeList:[],
  86. // 查询参数
  87. queryParams: {
  88. transferType:"",
  89. orderByColumn: "id",
  90. isAsc: "desc",
  91. },
  92. capitalExpenditureOpen:false,
  93. projectForm:{
  94. projectId:null,
  95. projectName:null,
  96. projectContractor:null,
  97. projectAmount:null,
  98. projectBillNum:null,
  99. projectFundType:'1',
  100. outId:null,
  101. ynType:'1'
  102. },
  103. projectFundType:''
  104. };
  105. },
  106. created() {
  107. let queryParams={
  108. pageNum: 1,
  109. pageSize: 100,
  110. }
  111. listProject(queryParams).then(response => {
  112. console.log(response)
  113. this.projectList = response.rows;
  114. for (var i = 0; i < response.rows.length; i++) {
  115. this.projectListShow.push({text: response.rows[i].projectName, value: response.rows[i].id});
  116. }
  117. });
  118. this.getDicts("project_fund_type").then((response) => {
  119. for (var i = 0; i < response.data.length; i++) {
  120. this.projectFundTypeOptions.push({text: response.data[i].dictLabel, value: response.data[i].dictValue});
  121. }
  122. this.projectFundTypeDictionaries = response.data;
  123. });
  124. this.getDictionaries();
  125. },
  126. methods: {
  127. goFlow(){
  128. window.location='approvalProcess?id='+this.$route.query.id;
  129. },
  130. getDictionaries(){
  131. getTransfer(this.$route.query.id).then((response) => {
  132. this.getDicts("capital_expenditure_type").then((res) => {
  133. for (var i = 0; i < res.data.length; i++) {
  134. this.capitalExpenditureTypeOptions.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  135. }
  136. this.capitalExpenditureType = this.selectDictLabel(res.data, response.data.capitalExpenditureType);
  137. });
  138. if(response.data.capitalExpenditureType==2){
  139. this.capitalExpenditureOpen = true
  140. let param={
  141. 'outId' : response.data.id,
  142. 'ynType' : '1'
  143. }
  144. getProjectto(param).then(res => {
  145. this.projectFundType = this.selectDictLabel(this.projectFundTypeDictionaries, res.data.projectFundType);
  146. this.projectForm = res.data
  147. })
  148. }else{
  149. this.showproject = false
  150. }
  151. this.form = response.data;
  152. });
  153. queryTransferDetail(this.$route.query.id).then((response) => {
  154. this.getDicts("bank_type").then(res => {
  155. for (var i = 0; i < res.data.length; i++) {
  156. this.bankTypeDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  157. }
  158. for (var j = 0 ; j < response.rows.length ; j++){
  159. response.rows[j].bankTypeText = this.selectDictLabel(res.data, response.rows[j].bankType);
  160. }
  161. this.chargeItme = response.rows;
  162. });
  163. this.getPayeeList();
  164. });
  165. },
  166. addChargeItme(index){
  167. this.chargeItme.splice(index + 1, 0, {
  168. payeeId: "", //收款方ID
  169. payee: "", //收款方
  170. payeeAccount: "", //收款账户
  171. bankDeposit: "", //开户银行
  172. incomeAmount: "", //收入金额
  173. bankType: "", //所属银行
  174. });
  175. },
  176. getPayeeList() {
  177. //普通转账
  178. this.queryParams.accountType = this.form.accountType
  179. this.queryParams.status = "0"
  180. listPayee(this.queryParams).then((response) => {
  181. for (var i = 0; i < response.rows.length; i++) {
  182. this.payeeList.push({text: response.rows[i].payee, value: response.rows[i].id});
  183. }
  184. });
  185. },
  186. payeeDictLabel(datas, value) {
  187. var actions = [];
  188. Object.keys(datas).some((key) => {
  189. if (datas[key].payeeId == ('' + value)) {
  190. actions.push(datas[key].payee);
  191. return true;
  192. }
  193. })
  194. return actions.join('');
  195. },
  196. onConfirmCapital(data){
  197. console.log(data)
  198. if (data.value != 2){
  199. this.capitalExpenditureOpen = false;
  200. this.projectForm = [];
  201. }else{
  202. this.capitalExpenditureOpen = true;
  203. }
  204. this.capitalExpenditureType = data.text;
  205. this.form.capitalExpenditureType = data.value;
  206. this.showcapital = false;
  207. },
  208. onConfirmFundType(data){
  209. console.log(data)
  210. this.projectForm.projectFundType = data.value;
  211. this.projectFundType = data.text;
  212. this.showFundType = false;
  213. },
  214. onConfirmProject(data){
  215. console.log(data)
  216. this.projectList.map(res => {
  217. console.log(res)
  218. if(res.projectName==data.text){
  219. this.projectForm.projectId = res.id
  220. this.projectForm.projectName = res.projectName
  221. this.projectForm.projectContractor = res.projectContractor
  222. this.projectForm.projectAmount = res.projectAmount
  223. console.log(this.projectForm)
  224. }
  225. })
  226. this.showproject = false;
  227. },
  228. onConfirmPayee(data){
  229. // this.chargeItme[this.chargeItme.length-1].payeeText = data.text;
  230. this.chargeItme[this.chargeItme.length-1].payee = data.text;
  231. this.chargeItme[this.chargeItme.length-1].payeeId = data.value;
  232. console.log(this.chargeItme)
  233. this.showpayee = false;
  234. },
  235. onConfirmBankType(data){
  236. console.log(this.chargeItme)
  237. this.chargeItme[this.chargeItme.length-1].bankTypeText = data.text;
  238. this.chargeItme[this.chargeItme.length-1].bankType = data.value;
  239. this.showbankType = false;
  240. },
  241. onConfirmLasj(data){
  242. this.form.applyDate = this.getNowFormatDate(data).substr(0,10);
  243. this.showlasj = false;
  244. },
  245. accountTypeChange(e){
  246. console.log(e)
  247. this.payeeList = [];
  248. this.queryParams.accountType = this.form.accountType
  249. this.queryParams.status = "0"
  250. listPayee(this.queryParams).then((response) => {
  251. for (var i = 0; i < response.rows.length; i++) {
  252. this.payeeList.push({text: response.rows[i].payee, value: response.rows[i].id});
  253. }
  254. });
  255. },
  256. goAdd(){
  257. if(this.form.remark != null && this.form.remark.indexOf("|")!=-1){
  258. this.$toast.error("付款事由禁止包含|。");
  259. return;
  260. }
  261. if(this.form.capitalExpenditureType==2){
  262. if(this.projectForm.projectName==""||this.projectForm.projectName==null){
  263. this.$toast.error('请选择项目名称!');
  264. return;
  265. }
  266. if(this.projectForm.projectBillNum==""||this.projectForm.projectBillNum==null){
  267. this.$toast.error('请输入工程发票号!');
  268. return;
  269. }
  270. }
  271. this.$set(this.form, "payeeList", this.chargeItme);
  272. this.$set(this.form, "bankTypeList", this.chargeItme);
  273. this.$set(this.form, "accountTypeList", this.chargeItme);
  274. this.$set(this.form, "transferStatusList", this.chargeItme);
  275. console.log(this.form);
  276. updateTransfer(this.form).then(response => {
  277. console.log(response);
  278. this.projectForm.outId = this.form.id
  279. this.$set(this.projectForm, "ynType", '1');
  280. console.log(this.projectForm)
  281. if(this.form.capitalExpenditureType==2){
  282. addProjectto(this.projectForm).then(res => {
  283. customSubmit(this.form.id).then(res => {
  284. this.$toast.success('提交成功');
  285. setTimeout(function(){
  286. history.go(-1)
  287. },2000)
  288. })
  289. })
  290. }else{
  291. customSubmit(this.form.id).then(res => {
  292. this.$toast.success('提交成功');
  293. setTimeout(function(){
  294. history.go(-1)
  295. },2000)
  296. })
  297. }
  298. });
  299. },
  300. goUpdate(){
  301. if(this.form.remark != null && this.form.remark.indexOf("|")!=-1){
  302. this.$toast.error("付款事由禁止包含|。");
  303. return;
  304. }
  305. if(this.form.capitalExpenditureType==2){
  306. if(this.projectForm.projectName==""||this.projectForm.projectName==null){
  307. this.$toast.error('请选择项目名称!');
  308. return;
  309. }
  310. if(this.projectForm.projectBillNum==""||this.projectForm.projectBillNum==null){
  311. this.$toast.error('请输入工程发票号!');
  312. return;
  313. }
  314. }
  315. this.$set(this.form, "payeeList", this.chargeItme);
  316. this.$set(this.form, "bankTypeList", this.chargeItme);
  317. this.$set(this.form, "accountTypeList", this.chargeItme);
  318. this.$set(this.form, "transferStatusList", this.chargeItme);
  319. this.projectForm.outId = this.form.id
  320. updateTransfer(this.form).then((response) => {
  321. this.projectForm.outId = this.form.id
  322. this.$set(this.projectForm, "ynType", '1');
  323. if(this.form.capitalExpenditureType==2){
  324. addProjectto(this.projectForm).then(res => {
  325. this.$toast.success('修改成功');
  326. setTimeout(function(){
  327. history.go(-1)
  328. },2000)
  329. })
  330. }else{
  331. this.$toast.success('修改成功');
  332. setTimeout(function(){
  333. history.go(-1)
  334. },2000)
  335. }
  336. });
  337. },
  338. goBack(){
  339. window.history.go(-1)
  340. },
  341. //删除家庭成员
  342. deleteChargeItme(index){
  343. this.chargeItme.splice(index,1)
  344. },
  345. },
  346. }
  347. </script>
  348. <style scoped lang="scss">
  349. .app-container {
  350. padding: 2% 0;
  351. }
  352. .main_title{
  353. font-size: 0.4rem;
  354. color: #1D6FE9;
  355. margin: 0.2rem 6%;
  356. position: relative;
  357. }
  358. .main_box{
  359. width: 96%;
  360. margin: 0 auto;
  361. border-radius: 6px;
  362. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  363. overflow: hidden;
  364. background-color: #FFF;
  365. }
  366. .submitButton{
  367. width: 80%;
  368. margin: 0 auto;
  369. background-color: #1D6FE9;
  370. }
  371. .addFamily{
  372. position: absolute;
  373. top: -2px;
  374. right: 0;
  375. border-radius: 50%;
  376. }
  377. .deleteFamily{
  378. position: absolute;
  379. top: 0rem;
  380. right: 6%;
  381. z-index: 9;
  382. border-radius: 50%;
  383. }
  384. </style>