auth.vue 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <template>
  2. <div id="auth">
  3. <el-row>
  4. <el-form :model="identitys" :rules="rules" ref="form">
  5. <form-item label="所属行业" type="select" prop="industry">
  6. <el-select v-model="identity.industry" placeholder="请选择所属行业">
  7. <el-option v-for="(item, index) in selectList1" :key="index" :label="item.name" :value="item.name"></el-option>
  8. </el-select>
  9. </form-item>
  10. <form-item label="单位性质" prop="nature">
  11. <el-select v-model="identity.nature" placeholder="请选择单位性质">
  12. <el-option v-for="(item, index) in selectList2" :key="index" :label="item.name" :value="item.name"></el-option>
  13. </el-select>
  14. </form-item>
  15. <form-item label="注册资金" prop="reg_capital">
  16. <el-select v-model="identity.reg_capital" placeholder="请输入注册资金">
  17. <el-option v-for="(item, index) in selectList3" :key="index" :label="item.name" :value="item.name"></el-option>
  18. </el-select>
  19. </form-item>
  20. <form-item label="信用代码" prop="org_code">
  21. <el-input v-model="identity.org_code" placeholder="统一社会信用代码(或组织机构代码)" :disabled="false"> </el-input>
  22. </form-item>
  23. <form-item label="单位标签(选填)" prop="tags">
  24. <el-select v-model="identity.tags" placeholder="请选择单位标签" multiple>
  25. <el-option v-for="(item, index) in selectList4" :key="index" :label="item.name" :value="item.name"></el-option>
  26. </el-select>
  27. </form-item>
  28. <form-item label="企业LOGO">
  29. <el-row>
  30. <el-col :span="24">
  31. <span class="tip">最大支持100k </span>
  32. </el-col>
  33. <el-col :span="24">
  34. <upload ref="logo" :data="imgs.logo_url" :limit="1" :url="`/files/corp/identity/upload`" type="logo_url" @upload="uploadSuccess"></upload>
  35. </el-col>
  36. </el-row>
  37. </form-item>
  38. <form-item label="企业资料">
  39. <el-row>
  40. <el-col :span="24">
  41. <span class="tip">1、每张最大支持2M</span>
  42. </el-col>
  43. <el-col :span="24">
  44. <span class="tip">2、组织机构代码证,必填:三证合一,请在此上传,如果是老证,请上传组织机构代码证</span>
  45. </el-col>
  46. <el-col :span="24">
  47. <span class="tip">3、请务必上传带彩色公章的企业资料(扫描彩色件或原件)图片</span>
  48. </el-col>
  49. <el-col :span="24">
  50. 营业执照
  51. </el-col>
  52. <el-col :span="24">
  53. <upload type="yyzz" :data="imgs.yyzz" :limit="1" :url="`/files/corp/identity/upload`" @upload="uploadSuccess"></upload>
  54. </el-col>
  55. <el-col :span="24">
  56. 组织机构代码
  57. </el-col>
  58. <el-col :span="24">
  59. <upload type="zzjgdm" :data="imgs.zzjgdm" :limit="1" :url="`/files/corp/identity/upload`" @upload="uploadSuccess"></upload>
  60. </el-col>
  61. </el-row>
  62. </form-item>
  63. </el-form>
  64. <el-row type="flex" justify="center">
  65. <el-col :span="6">
  66. <el-button type="success" style="width:60%" @click="onSubmits">保&nbsp;&nbsp;&nbsp;&nbsp;存</el-button>
  67. </el-col>
  68. </el-row>
  69. </el-row>
  70. </div>
  71. </template>
  72. <script>
  73. import upload from '@/components/upload.vue';
  74. import formItem from '@/components/form-item.vue';
  75. import { mapActions, mapState } from 'vuex';
  76. import { filter } from 'minimatch';
  77. export default {
  78. name: 'auth',
  79. props: {
  80. original: { type: Object, default: () => {} },
  81. identitys: { type: Object, default: () => {} },
  82. },
  83. components: {
  84. formItem,
  85. upload,
  86. },
  87. data: () => ({
  88. identity: {
  89. tags: [],
  90. },
  91. imgs: {},
  92. corp2: {},
  93. selectList1: [],
  94. selectList2: [],
  95. selectList3: [],
  96. selectList4: [],
  97. rules: {
  98. value1: [{ required: true, message: '选择测试', trigger: 'change' }],
  99. // value3: [{ required: true, message: '输入测试', trigger: 'blur' }],
  100. },
  101. }),
  102. created() {
  103. this.otherList();
  104. },
  105. watch: {
  106. identitys: {
  107. handler(val) {
  108. if (val.ident_pics.length > 0) {
  109. val.ident_pics.map(item => {
  110. // let url = item.name.replace('/files', 'http://smart.cc-lotus.info/files');
  111. // console.log(url);
  112. this.imgs[item.title] = item.name;
  113. });
  114. }
  115. this.$set(this, `identity`, val);
  116. if (val.logo_url) {
  117. this.imgs['logo_url'] = val.logo_url;
  118. }
  119. },
  120. },
  121. },
  122. mounted() {},
  123. computed: {
  124. ...mapState(['user']),
  125. },
  126. methods: {
  127. ...mapActions(['dicOperation']),
  128. async otherList() {
  129. let result = await this.dicOperation('hylb');
  130. if (`${result.errcode}` === '0') {
  131. //给this=>vue的实例下在中的list属性,赋予result。data的值
  132. this.$set(this, `selectList1`, result.data);
  133. } else {
  134. this.$message.error(result.errmsg ? result.errmsg : 'error');
  135. }
  136. result = await this.dicOperation('dwxz');
  137. if (`${result.errcode}` === '0') {
  138. //给this=>vue的实例下在中的list属性,赋予result。data的值
  139. this.$set(this, `selectList2`, result.data);
  140. } else {
  141. this.$message.error(result.errmsg ? result.errmsg : 'error');
  142. }
  143. result = await this.dicOperation('zczj');
  144. if (`${result.errcode}` === '0') {
  145. //给this=>vue的实例下在中的list属性,赋予result。data的值
  146. this.$set(this, `selectList3`, result.data);
  147. } else {
  148. this.$message.error(result.errmsg ? result.errmsg : 'error');
  149. }
  150. result = await this.dicOperation('dwbq');
  151. if (`${result.errcode}` === '0') {
  152. //给this=>vue的实例下在中的list属性,赋予result。data的值
  153. this.$set(this, `selectList4`, result.data);
  154. } else {
  155. this.$message.error(result.errmsg ? result.errmsg : 'error');
  156. }
  157. },
  158. onSubmits() {
  159. let keys = Object.keys(this.imgs);
  160. let arr = [];
  161. keys.map(key => {
  162. if (key === 'logo_url') {
  163. this.identity.logo_url = this.imgs[key];
  164. } else {
  165. arr.push({ name: this.imgs[key], title: key });
  166. }
  167. });
  168. this.identity.ident_pics = arr;
  169. console.log(this.identity);
  170. this.$emit(`onSubmit`, { data: this.identity, type: 'identity' });
  171. },
  172. uploadSuccess({ type, data }) {
  173. // if (type === 'logo_url') {
  174. // console.log(data);
  175. // this.$set(this.identity, type, data.uri);
  176. // } else {
  177. this.imgs[type] = data.uri;
  178. //}
  179. },
  180. },
  181. };
  182. </script>
  183. <style lang="less" scoped>
  184. .tip {
  185. color: #999999;
  186. }
  187. .el-select {
  188. width: 100%;
  189. }
  190. </style>