移动端
Você não pode selecionar mais de 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.
 
 

194 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="goModify" @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
  17. readonly
  18. clickable
  19. label="账户类型"
  20. placeholder="请选择"
  21. v-model="accountType"
  22. @click="showAccountType = true"
  23. input-align="right"
  24. right-icon="arrow-down"
  25. label-width="auto"
  26. />
  27. <van-popup v-model="showAccountType" position="bottom">
  28. <van-picker
  29. show-toolbar
  30. :columns="typeDictionaries"
  31. @confirm="onConfirmType"
  32. @cancel="showAccountType = false"
  33. />
  34. </van-popup>
  35. <van-field label="账户名称" required :rules="[{ required: true , message:'请输入账户名称' }]" v-model="form.accountName" placeholder="请输入账户名称" input-align="right" label-width="auto"/>
  36. <van-field
  37. readonly
  38. clickable
  39. label="关联科目"
  40. placeholder="请选择"
  41. v-model="subjectDeatil"
  42. @click="showSubjectId = true"
  43. input-align="right"
  44. right-icon="arrow-down"
  45. label-width="auto"
  46. required
  47. :rules="[{ required: true , message:'请选择关联科目' }]"
  48. />
  49. <van-popup v-model="showSubjectId" position="bottom">
  50. <van-picker
  51. show-toolbar
  52. :columns="subjectDictionaries"
  53. @confirm="onConfirmSubject"
  54. @cancel="showSubjectId = false"
  55. />
  56. </van-popup>
  57. <van-field label="银行账户" v-model="form.bankAccountNumber" placeholder="请输入银行账户" input-align="right" label-width="auto"/>
  58. <van-field label="开户银行" v-model="form.bankName" placeholder="请输入开户银行" input-align="right" label-width="auto"/>
  59. <van-field label="联行号" v-model="form.paymentLines" placeholder="请输入联行号" input-align="right" label-width="auto"/>
  60. <van-field label="操作员代码" v-model="form.operatorCode" placeholder="请输入操作员代码" input-align="right" label-width="auto"/>
  61. <van-field label="企业编码" v-model="form.enterpriseCode" placeholder="请输入企业编码" input-align="right" label-width="auto"/>
  62. <van-field label="开户银行地址" v-model="form.site" placeholder="请输入开户银行地址" input-align="right" label-width="auto"/>
  63. <van-field label="账户密码" v-model="form.accountPassword" placeholder="请输入账户密码" input-align="right" label-width="auto"/>
  64. <van-field label="初始余额" v-model="form.initialBalance" required :rules="[{ required: true , message:'请输入初始余额' }]" placeholder="请输入初始余额" input-align="right" label-width="auto"/>
  65. <van-cell title="是否停用">
  66. <template #right-icon>
  67. <van-radio-group direction="horizontal" v-model="form.status">
  68. <van-radio name="Y">是</van-radio>
  69. <van-radio name="N">否</van-radio>
  70. </van-radio-group>
  71. </template>
  72. </van-cell>
  73. </div>
  74. <div style="padding: 16px 0;">
  75. <van-row>
  76. <van-col span="24" align="center">
  77. <van-button type="info" native-type="submit" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button>
  78. </van-col>
  79. </van-row>
  80. <div class="clear"></div>
  81. </div>
  82. </van-form>
  83. </div>
  84. </template>
  85. <script>
  86. import { getSubjectDetail , addAccount } from "@/api/onlineHome/bankAgriculture/paymentAccount";
  87. export default {
  88. name: "paymentAccountAdd",
  89. data() {
  90. return {
  91. showAccountType:false,
  92. showSubjectId:false,
  93. minDate: new Date(),
  94. maxDate: new Date(2025, 10, 1),
  95. currentDate: new Date(),
  96. jgList:{},
  97. accountType:'',
  98. jglx:'',
  99. wfydlx:'',
  100. wfydlxDictionaries:[],
  101. jglxDictionaries:[],
  102. subjectDictionaries:[],
  103. typeDictionaries:[],
  104. subjectDeatil:'',
  105. form:{}
  106. };
  107. },
  108. created() {
  109. this.getDetail();
  110. },
  111. methods: {
  112. getDetail(){
  113. // 账户类型
  114. this.houseGetDicts("account_type_cashier").then((res) => {
  115. for (var i = 0; i < res.data.length; i++) {
  116. this.typeDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  117. }
  118. });
  119. getSubjectDetail().then((res) => {
  120. for (var i = 0; i < res.rows.length; i++) {
  121. this.subjectDictionaries.push({text: res.rows[i].subjectNameAll, value: res.rows[i].subjectId});
  122. }
  123. });
  124. },
  125. getError(e){
  126. console.log(e)
  127. this.$notify({ type: 'danger', message: e.errors[0].message });
  128. },
  129. onConfirmSubject(data){
  130. this.subjectDeatil = data.text;
  131. this.form.subjectId = data.value;
  132. this.form.subjectNameAll = data.text;
  133. this.showSubjectId = false;
  134. },
  135. onConfirmType(data){
  136. this.accountType = data.text;
  137. this.form.accountType = data.value;
  138. this.showAccountType = false;
  139. },
  140. goModify(){
  141. console.log(this.form)
  142. this.form.balance = this.form.initialBalance;
  143. addAccount(this.form).then((response) => {
  144. this.$toast.success('添加成功');
  145. setTimeout(function(){
  146. history.go(-1)
  147. },2000)
  148. });
  149. },
  150. goBack(){
  151. window.history.go(-1)
  152. }
  153. },
  154. }
  155. </script>
  156. <style scoped lang="scss">
  157. .app-container {
  158. padding: 2% 0;
  159. }
  160. .main_title{
  161. font-size: 0.4rem;
  162. color: #1D6FE9;
  163. margin: 0.2rem 6%;
  164. margin-top: 0;
  165. position: relative;
  166. }
  167. .main_box{
  168. width: 96%;
  169. margin: 0 auto;
  170. border-radius: 6px;
  171. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  172. overflow: hidden;
  173. background-color: #FFF;
  174. }
  175. .submitButton{
  176. width: 80%;
  177. margin: 0 auto;
  178. background-color: #1D6FE9;
  179. }
  180. .addFamily{
  181. position: absolute;
  182. top: -2px;
  183. right: 0;
  184. border-radius: 50%;
  185. }
  186. </style>