移动端
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

199 linhas
6.3 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. </van-nav-bar>
  13. <van-form @submit="goAdd" @failed="getError" :show-error-message="false" scroll-to-error validate-first>
  14. <p class="main_title">基础信息</p>
  15. <div class="main_box">
  16. <van-field label="收款方" required :rules="[{ required: true , message:'请输入收款方' }]" v-model="form.payee" placeholder="请输入收款方" input-align="right" label-width="auto"/>
  17. <van-field label="收款账户" required :rules="[{ required: true , message:'请输入收款账户' }]" v-model="form.payeeAccount" placeholder="请输入收款账户" input-align="right" label-width="auto"/>
  18. <van-field
  19. readonly
  20. clickable
  21. label="所属银行"
  22. placeholder="请选择"
  23. v-model="bankType"
  24. @click="showBankType = true"
  25. input-align="right"
  26. right-icon="arrow-down"
  27. label-width="auto"
  28. required
  29. :rules="[{ required: true , message:'请选择所属银行' }]"
  30. />
  31. <van-popup v-model="showBankType" position="bottom">
  32. <van-picker
  33. show-toolbar
  34. :columns="bankTypeOptions"
  35. @confirm="onConfirmBankType"
  36. @cancel="showBankType = false"
  37. />
  38. </van-popup>
  39. <van-field label="开户银行" required :rules="[{ required: true , message:'请输入开户银行' }]" v-model="form.bankDeposit" placeholder="请输入开户银行" input-align="right" label-width="auto"/>
  40. </div>
  41. <div class="main_box" style="margin-top: 10px;">
  42. <van-field label="备注" v-model="form.remark" type="textarea" placeholder="请输入备注" input-align="right" rows="3" label-width="auto"/>
  43. </div>
  44. <div class="main_box" style="margin-top: 10px;">
  45. <van-cell title="账户类型" required>
  46. <template #right-icon>
  47. <van-radio-group direction="horizontal" required :rules="[{ required: true , message:'请选择账户类型' }]" v-model="form.accountType">
  48. <van-radio name="1">公户</van-radio>
  49. <van-radio name="2">私户</van-radio>
  50. </van-radio-group>
  51. </template>
  52. </van-cell>
  53. <van-field
  54. readonly
  55. clickable
  56. label="收款人类型"
  57. placeholder="请选择"
  58. v-model="payeeType"
  59. @click="showPayeeType = true"
  60. input-align="right"
  61. right-icon="arrow-down"
  62. label-width="auto"
  63. required
  64. :rules="[{ required: true , message:'请选择收款人类型' }]"
  65. />
  66. <van-popup v-model="showPayeeType" position="bottom">
  67. <van-picker
  68. show-toolbar
  69. :columns="payeeTypeOptions"
  70. @confirm="onConfirmPayeeType"
  71. @cancel="showPayeeType = false"
  72. />
  73. </van-popup>
  74. <van-cell title="数据状态" required>
  75. <template #right-icon>
  76. <van-radio-group direction="horizontal" required :rules="[{ required: true , message:'请选择数据状态' }]" v-model="form.status">
  77. <van-radio name="0">正常</van-radio>
  78. <van-radio name="1">停用</van-radio>
  79. </van-radio-group>
  80. </template>
  81. </van-cell>
  82. </div>
  83. <div style="padding: 16px 0;">
  84. <van-row>
  85. <van-col span="24" align="center">
  86. <van-button type="info" native-type="submit" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button>
  87. </van-col>
  88. </van-row>
  89. <div class="clear"></div>
  90. </div>
  91. </van-form>
  92. </div>
  93. </template>
  94. <script>
  95. import { getPayee , updatePayee } from "@/api/onlineHome/bankAgriculture/collectionAccount";
  96. export default {
  97. name: "collectionModify",
  98. data() {
  99. return {
  100. showBankType:false,
  101. showPayeeType:false,
  102. form:{},
  103. bankType:'',
  104. payeeType:'',
  105. bankTypeOptions:[],
  106. payeeTypeOptions:[],
  107. };
  108. },
  109. created() {
  110. this.getDictionaries();
  111. },
  112. methods: {
  113. getDictionaries(){
  114. getPayee(this.$route.query.id).then((response) => {
  115. this.houseGetDicts("bank_type").then((res) => {
  116. for(var i = 0 ; i < res.data.length ; i++){
  117. this.bankTypeOptions.push({text:res.data[i].dictLabel,value:res.data[i].dictValue});
  118. }
  119. this.bankType = this.selectDictLabel(res.data, response.data.bankType);
  120. });
  121. this.houseGetDicts("payee_type").then((res) => {
  122. for(var i = 0 ; i < res.data.length ; i++){
  123. this.payeeTypeOptions.push({text:res.data[i].dictLabel,value:res.data[i].dictValue});
  124. }
  125. this.payeeType = this.selectDictLabel(res.data, response.data.payeeType);
  126. });
  127. this.form = response.data;
  128. });
  129. },
  130. getError(e){
  131. console.log(e)
  132. this.$notify({ type: 'danger', message: e.errors[0].message });
  133. },
  134. onConfirmBankType(data){
  135. this.bankType = data.text;
  136. this.form.bankType = data.value;
  137. this.showBankType = false;
  138. },
  139. onConfirmPayeeType(data){
  140. this.payeeType = data.text;
  141. this.form.payeeType = data.value;
  142. this.showPayeeType = false;
  143. },
  144. goAdd(){
  145. console.log(this.form)
  146. updatePayee(this.form).then(response => {
  147. this.$toast.success('修改成功');
  148. setTimeout(function(){
  149. history.go(-1)
  150. },2000)
  151. });
  152. },
  153. goBack(){
  154. window.history.go(-1)
  155. }
  156. },
  157. }
  158. </script>
  159. <style scoped lang="scss">
  160. .app-container {
  161. padding: 2% 0;
  162. }
  163. .main_title{
  164. font-size: 0.4rem;
  165. color: #1D6FE9;
  166. margin: 0.2rem 6%;
  167. margin-top: 0;
  168. position: relative;
  169. }
  170. .main_box{
  171. width: 96%;
  172. margin: 0 auto;
  173. border-radius: 6px;
  174. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  175. overflow: hidden;
  176. background-color: #FFF;
  177. }
  178. .submitButton{
  179. width: 80%;
  180. margin: 0 auto;
  181. background-color: #1D6FE9;
  182. }
  183. .addFamily{
  184. position: absolute;
  185. top: -2px;
  186. right: 0;
  187. border-radius: 50%;
  188. }
  189. </style>