index.vue 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. <template>
  2. <div class="wrapper">
  3. <div class="title">资质申请</div>
  4. <el-form class="form" ref="form" :model="form" label-width="200px" :rules="rules">
  5. <el-form-item label="一级类目:" prop="level1">
  6. <el-input placeholder="请输入" type='number' oninput="if(value.length>9)value=value.slice(0,9)" v-model="form.level1" maxlength="15">
  7. </el-input>
  8. </el-form-item>
  9. <el-form-item label="二级类目:" label-width="100px" prop="level2">
  10. <el-input placeholder="请输入" type='number' oninput="if(value.length>9)value=value.slice(0,9)" v-model="form.level2" maxlength="15">
  11. </el-input>
  12. </el-form-item>
  13. <el-form-item label="三级类目:" prop="level3">
  14. <el-input placeholder="请输入" type='number' oninput="if(value.length>9)value=value.slice(0,9)" v-model="form.level3" maxlength="15">
  15. </el-input>
  16. </el-form-item>
  17. <el-form-item label="三级类目名称:" label-width="120px" prop="level3_name">
  18. <el-input placeholder="请输入" v-model="form.level3_name" maxlength="15">
  19. </el-input>
  20. </el-form-item>
  21. <el-form-item class="single" label="营业执照或组织机构代码证:" required>
  22. <upload v-if="updatePic" acceptType='.jpg, .jpeg, .png' ref="upload_goods" :file="licenseImgs" limitNum="10"></upload>
  23. </el-form-item>
  24. <el-form-item class="single" label="资质材料URL:" required>
  25. <upload v-if="updatePic" acceptType='.jpg, .jpeg, .png' ref="upload_zizhi" :file="certificateImgs" limitNum="10"></upload>
  26. </el-form-item>
  27. <el-form-item class="single" label="备注:">
  28. <el-input placeholder="请输入" v-model="form.remark" maxlength="25">
  29. </el-input>
  30. </el-form-item>
  31. <el-form-item class="commit">
  32. <el-button class="blackbtn" :loading="loading" @click.native.prevent="commit">提交
  33. </el-button>
  34. </el-form-item>
  35. </el-form>
  36. </div>
  37. </template>
  38. <script>
  39. import store from '@/store/index'
  40. import upload from '@/components/upload'
  41. import {
  42. validnumber,
  43. } from '@/utils/validate'
  44. import {
  45. add,
  46. } from "@/api/category";
  47. export default {
  48. name: 'addBrand',
  49. components: {
  50. upload
  51. },
  52. props: {},
  53. data() {
  54. return {
  55. licenseImgs: [],
  56. certificateImgs: [],
  57. outProductId: 0,
  58. commodity_id: 0,
  59. updatePic: true,
  60. form: {
  61. level1: '',
  62. level3: '',
  63. level2: '',
  64. level3_name: '',
  65. remark: ''
  66. },
  67. loading: false,
  68. rules: {
  69. level1: [{
  70. required: true,
  71. validator: validnumber,
  72. trigger: 'blur'
  73. }],
  74. level2: [{
  75. required: true,
  76. validator: validnumber,
  77. trigger: 'blur'
  78. }],
  79. level3: [{
  80. required: true,
  81. validator: validnumber,
  82. trigger: 'blur'
  83. }],
  84. level3_name: [{
  85. required: true,
  86. message: '请输入必填项',
  87. trigger: 'blur'
  88. }]
  89. }
  90. };
  91. },
  92. watch: {},
  93. computed: {},
  94. methods: {
  95. commit() {
  96. this.$refs.form.validate(valid => {
  97. if (valid) {
  98. if (this.licenseImgs.length == 0) {
  99. this.$message.error('请选择营业执照或组织机构代码证');
  100. return
  101. }
  102. if (this.certificateImgs.length == 0) {
  103. this.$message.error('请选择资质材料');
  104. return
  105. }
  106. let licenseImgs_temp = []
  107. this.licenseImgs.forEach(element => {
  108. licenseImgs_temp.push(element.url)
  109. });
  110. let certificateImgs_temp = []
  111. this.certificateImgs.forEach(element => {
  112. certificateImgs_temp.push(element.url)
  113. });
  114. let params = {
  115. certificateImgs: certificateImgs_temp.join(","),
  116. level1: this.form.level1,
  117. level2: this.form.level2,
  118. level3: this.form.level3,
  119. licenseImgs: licenseImgs_temp.join(","),
  120. level3_name: this.form.level3_name,
  121. remark: this.form.remark,
  122. }
  123. this.loading = true
  124. add(params).then(() => {
  125. this.$message.success('添加成功');
  126. store.commit('REMOVETAB', '资质申请')
  127. this.$router.go(-1)
  128. }).catch(() => {
  129. this.loading = false
  130. });
  131. }
  132. })
  133. },
  134. initPage() {
  135. this.loading = false
  136. this.$refs.form.clearValidate()
  137. if (this.$route.params.isNew) {
  138. this.form = {
  139. level1: '',
  140. level3: '',
  141. level2: '',
  142. level3_name: '',
  143. remark: ''
  144. }
  145. this.licenseImgs = []
  146. this.certificateImgs = []
  147. //刷新子组件
  148. this.updatePic = false
  149. this.$nextTick(() => {
  150. this.updatePic = true
  151. })
  152. }
  153. }
  154. },
  155. created() {},
  156. activated() {
  157. this.initPage()
  158. },
  159. mounted() {}
  160. };
  161. </script>
  162. <style lang="less" scoped>
  163. .wrapper {
  164. display: flex;
  165. flex-direction: column;
  166. align-items: center;
  167. .title {
  168. font-weight: bold;
  169. width: 90%;
  170. text-align: left;
  171. margin-left: 100px;
  172. }
  173. .form {
  174. margin-top: 20px;
  175. width: 90%;
  176. display: flex;
  177. justify-content: space-between;
  178. flex-wrap: wrap;
  179. .el-form-item {
  180. color: #232323;
  181. font-weight: bold;
  182. }
  183. .el-select {
  184. width: 300px;
  185. }
  186. .el-input {
  187. width: 300px;
  188. }
  189. .single {
  190. width: 100%;
  191. .el-input {
  192. width: 875px;
  193. }
  194. .el-select {
  195. width: 875px;
  196. }
  197. }
  198. .commit {
  199. width: 100%;
  200. text-align: center;
  201. }
  202. }
  203. }
  204. </style>