add.vue 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. <template>
  2. <view>
  3. <scroll-view scroll-y="true">
  4. <view class="form">
  5. <view class="card">
  6. <u-form :model="model" labelWidth="200" ref="uForm">
  7. <u-form-item :required="true" prop="enterpriseName" label="企业名称">
  8. <u-input type="text" v-model="model.enterpriseName" placeholder="请填写企业名称"></u-input>
  9. </u-form-item>
  10. <u-form-item :required="true" label="法定代表人" prop="representative">
  11. <u-input type="text" v-model="model.representative" placeholder="请输入法定代表人"></u-input>
  12. </u-form-item>
  13. <u-form-item label="所属区域" :required="true" prop="residentialName">
  14. <u-input type="select" @click="residentialShow=true" :select-open="residentialShow"
  15. v-model="model.residentialName" placeholder="请选择所属区域"></u-input>
  16. </u-form-item>
  17. <u-form-item label="企业位置">
  18. <u-input disabled v-model="location" placeholder="请选择企业位置" @click="chooseLocation"></u-input>
  19. </u-form-item>
  20. <u-form-item :required="true" label="详细地址" prop="region">
  21. <u-input type="text" v-model="model.region" placeholder="请输入详细地址"></u-input>
  22. </u-form-item>
  23. <u-form-item :required="true" label="统一信用代码" prop="creditCode">
  24. <u-input type="text" v-model="model.creditCode" placeholder="请输入统一信用代码"></u-input>
  25. </u-form-item>
  26. <u-form-item label="企业类型">
  27. <u-input type="select" @click="enterpriseTypeShow=true" :select-open="enterpriseTypeShow"
  28. v-model="model.enterpriseType" placeholder="请选择企业类型"></u-input>
  29. </u-form-item>
  30. <u-form-item label="组织机构代码">
  31. <u-input type="text" v-model="model.organizationCode" placeholder="请输入组织机构代码"></u-input>
  32. </u-form-item>
  33. <u-form-item label="注册资金">
  34. <u-input type="text" v-model="model.registeredCapital" placeholder="请输入注册资金"></u-input>
  35. </u-form-item>
  36. <u-form-item label="注册地址">
  37. <u-input type="text" v-model="model.registeredAddress" placeholder="请输入注册地址"></u-input>
  38. </u-form-item>
  39. <u-form-item label="成立日期">
  40. <u-input v-model="model.registeredDate" placeholder="请输入成立日期"></u-input>
  41. </u-form-item>
  42. <u-form-item label="办公电话">
  43. <u-input v-model="model.officeNum" placeholder="请输入办公电话"></u-input>
  44. </u-form-item>
  45. <u-form-item label="企业简介">
  46. <u-input type="textarea" height="200" v-model="model.enterpriseIntroduce" placeholder="请输入企业简介">
  47. </u-input>
  48. </u-form-item>
  49. <u-form-item class="" label="请上传营业执照" label-position="top">
  50. <view class="upload-img">
  51. <view class="" @click="chooseImage">
  52. <upload-img :width="width" :height="height" :currentImage="model.businessLicense"
  53. bgsrc="http://139.9.103.171:1888/miniofile/xlyq/upload.png">
  54. </upload-img>
  55. <view class="text-center padding-top-20 base-color">
  56. <text class="cuIcon-camera padding-right-sm" style="font-size: 30rpx;"></text>
  57. <text v-if="$isEmpty(model.businessLicense)">请上传营业执照</text>
  58. <text style="margin-top: 40rpx;display: inline-block;" v-else>点击重新上传</text>
  59. </view>
  60. </view>
  61. </view>
  62. </u-form-item>
  63. <u-form-item class="" label="请上传公司logo" label-position="top">
  64. <view class="upload-img">
  65. <view class="" @click="chooseImage('logo')">
  66. <upload-img :width="width" :height="height" :currentImage="model.logo"
  67. bgsrc="http://139.9.103.171:1888/miniofile/xlyq/upload.png">
  68. </upload-img>
  69. <view class="text-center padding-top-20 base-color">
  70. <text class="cuIcon-camera padding-right-sm" style="font-size: 30rpx;"></text>
  71. <text v-if="$isEmpty(model.logo)">请上传公司logo</text>
  72. <text style="margin-top: 40rpx;display: inline-block;" v-else>点击重新上传</text>
  73. </view>
  74. </view>
  75. </view>
  76. </u-form-item>
  77. </u-form>
  78. </view>
  79. </view>
  80. <view>
  81. <view class="bg-white" style="height: 80rpx;"></view>
  82. <view class="" @click="submit" style="width: 90%;margin: 0 auto ;margin-bottom: 10%;">
  83. <view class="cu-btn round base-bg-color" style="padding: 40rpx;width: 100%;">
  84. <text class="cuIcon-add"></text>
  85. <text>确认提交</text>
  86. </view>
  87. </view>
  88. </view>
  89. </scroll-view>
  90. <!-- 区域 -->
  91. <u-select @confirm="residentialConfirm" label-name="name" value-name="id" v-model="residentialShow" :list="residentialList"></u-select>
  92. <!-- 企业类型 -->
  93. <u-select @confirm="enterpriseTypeConfirm" v-model="enterpriseTypeShow" :list="enterpriseTypeList"></u-select>
  94. <!-- 成立日期 -->
  95. <u-picker v-model="registeredDateShow" mode="time" :params="params" @confirm="registeredDateConfirm"></u-picker>
  96. </view>
  97. </template>
  98. <script>
  99. import uploadImg from '@/components/uploadimg/uploadImg.vue'
  100. export default {
  101. components: {
  102. uploadImg
  103. },
  104. data() {
  105. return {
  106. width: 480,
  107. height: 320,
  108. model: {
  109. enterpriseName:'',
  110. representative:'',
  111. region:'',
  112. creditCode:'',
  113. businessLicense:'',
  114. logo:''
  115. },
  116. //区域
  117. residentialList:[],
  118. residentialShow:false,
  119. //企业位置
  120. location:'',
  121. //企业类型
  122. enterpriseTypeShow: false,
  123. enterpriseTypeList: [],
  124. //成立日期
  125. registeredDateShow: false,
  126. params: {
  127. year: true,
  128. month: true,
  129. day: true,
  130. hour: false,
  131. minute: false,
  132. second: false
  133. },
  134. rules: {
  135. enterpriseName: [
  136. {
  137. required: true,
  138. message: '请输入企业名称',
  139. trigger: ['change','blur'],
  140. }
  141. ],
  142. representative:[
  143. {
  144. required: true,
  145. message: '请输入法定代表人',
  146. trigger: ['change','blur'],
  147. }
  148. ],
  149. region:[
  150. {
  151. required: true,
  152. message: '请输入详细地址',
  153. trigger: ['change','blur'],
  154. }
  155. ],
  156. creditCode:[
  157. {
  158. required: true,
  159. message: '请输入统一信用代码',
  160. trigger: ['change','blur'],
  161. }
  162. ],
  163. residentialName:[
  164. {
  165. required: true,
  166. message: '请选择所属区域',
  167. trigger: ['change','blur'],
  168. }
  169. ]
  170. }
  171. }
  172. },
  173. onLoad() {
  174. this.fetchResidentialList()
  175. this.fetchEnterpriseList()
  176. },
  177. onReady() {
  178. this.$refs.uForm.setRules(this.rules);
  179. },
  180. methods: {
  181. //区域列表
  182. fetchResidentialList(){
  183. let params={
  184. agencyId:this.$cache.get('agencyId'),
  185. size:300,
  186. }
  187. this.$api.residential.page(params).then(res=>{
  188. this.residentialList=res.data.records
  189. })
  190. },
  191. residentialConfirm(e){
  192. console.log(e);
  193. this.model.residentialId=e[0].value
  194. this.model.residentialName=e[0].label
  195. },
  196. //企业类型
  197. enterpriseTypeConfirm(e){
  198. this.model.enterpriseType=e[0].value
  199. },
  200. fetchEnterpriseList(){
  201. this.enterpriseTypeList=[]
  202. this.$api.dict({code:'enterprise_type'}).then(res=>{
  203. res.data.forEach(item=>{
  204. let obj={
  205. label:item.dictValue,
  206. value:item.dictValue
  207. }
  208. this.enterpriseTypeList.push(obj)
  209. })
  210. })
  211. },
  212. //成立日期
  213. registeredDateConfirm(e) {
  214. this.model.registeredDate = e.year + '-' + e.month + '-' + e.day
  215. },
  216. chooseLocation(){
  217. let that=this
  218. uni.chooseLocation({
  219. success: function (res) {
  220. that.location=`经纬度:(${res.longitude},${res.latitude})`
  221. that.model.latitude=res.latitude
  222. that.model.longitude=res.longitude
  223. that.model.region=res.address
  224. }
  225. });
  226. },
  227. //上传照片
  228. async chooseImage(type) {
  229. let tempFilePaths = await this.$mpi.chooseImage()
  230. let res = await this.$api.uploadFile.submit(tempFilePaths[0])
  231. if (type == 'logo') {
  232. this.model.logo = res.data
  233. } else {
  234. this.model.businessLicense = res.data
  235. }
  236. },
  237. //提交
  238. submit() {
  239. this.$refs.uForm.validate(valid => {
  240. if (valid) {
  241. this.save()
  242. }
  243. });
  244. },
  245. async save(){
  246. let res=await this.$api.enterprise.submit(this.model)
  247. if (res.success==true) {
  248. this.$dialog.showModal('添加成功',false).then(()=>{
  249. this.$util.isReloadAndBack()
  250. })
  251. }
  252. }
  253. }
  254. }
  255. </script>
  256. <style lang="scss">
  257. page {
  258. background-color: #FFFFFF;
  259. }
  260. .form {
  261. padding: 40rpx 30rpx;
  262. .tag {
  263. width: 35rpx;
  264. height: 35rpx;
  265. display: block;
  266. padding-top: 6rpx;
  267. padding-right: 10rpx;
  268. }
  269. .card {
  270. margin-top: 20rpx;
  271. padding: 0 30rpx;
  272. box-sizing: border-box;
  273. border-radius: 12rpx;
  274. box-shadow: 0 -10rpx rgba(248, 248, 248, .9), 0 10rpx rgba(248, 248, 248, .9), -10rpx 0rpx rgba(248, 248, 248, .9), 10rpx 0rpx rgba(248, 248, 248, .9);
  275. .item {
  276. padding: 30rpx 0;
  277. display: flex;
  278. justify-content: space-between;
  279. }
  280. .upload-img {
  281. padding: 50rpx 0 30rpx;
  282. display: flex;
  283. justify-content: center;
  284. align-items: center;
  285. }
  286. }
  287. }
  288. </style>