first.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. <template>
  2. <view>
  3. <uni-forms class='inform' ref="form" :rules="rules" :value="datainfo">
  4. <view class="info_tit">基本信息</view>
  5. <uni-forms-item name="sbdw" style='margin-bottom: 0;'>
  6. <view class="flexc infolist">
  7. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>上报单位</view>
  8. <input placeholder="请输入上报单位" v-model="datainfo.sbdw" class="f16 c34 flex1 txr"/>
  9. </view>
  10. </uni-forms-item>
  11. <uni-forms-item name="tbrq" style='margin-bottom: 0;'>
  12. <view class="flexc infolist">
  13. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>填表日期</view>
  14. <picker mode="date" :value="datainfo.tbrq" class="infolist_a" @change='bindDateChange'>
  15. <view :class="datainfo.tbrq?'':'f16 co80'">{{datainfo.tbrq||"请选择填表日期"}}</view>
  16. </picker>
  17. </view>
  18. </uni-forms-item>
  19. <uni-forms-item name="zszxfzr" style='margin-bottom: 0;'>
  20. <view class="flexc infolist">
  21. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>项目负责人</view>
  22. <input placeholder="请输入项目负责人姓名" v-model="datainfo.zszxfzr" class="f16 c34 flex1 txr"/>
  23. </view>
  24. </uni-forms-item>
  25. <view class="info_tit">投资方信息</view>
  26. <uni-forms-item name="ziranren" style='margin-bottom: 0;'>
  27. <view class="flexc infolist">
  28. <view class="flexc infolist_add" @click="getAdd">
  29. <image :src="addimg"></image>
  30. <view>新增企业/自然人</view>
  31. </view>
  32. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>添加企业/自然人</view>
  33. <view class="flex1 txr flexc">
  34. <text class="uni-calendar__header-text" v-if="datainfo.sbdw">{{datainfo.sbdw}}</text>
  35. <text class="f16 co80" v-else>请先选择添加企业/自然人</text>
  36. <image :src="delimg" class="delimg"></image>
  37. </view>
  38. </view>
  39. </uni-forms-item>
  40. <uni-forms-item name="tzrxm" style='margin-bottom: 0;'>
  41. <view class="flexc infolist">
  42. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>投资人姓名</view>
  43. <input placeholder="请输入投资人姓名" v-model="datainfo.tzrxm" class="f16 c34 flex1 txr"/>
  44. </view>
  45. </uni-forms-item>
  46. <uni-forms-item name="tzrzw" style='margin-bottom: 0;'>
  47. <view class="flexc infolist">
  48. <view class="f16 fw c34 flex0 pr pl12">投资人职务</view>
  49. <input placeholder="请输入投资人职务" v-model="datainfo.tzrzw" class="f16 c34 flex1 txr"/>
  50. </view>
  51. </uni-forms-item>
  52. <uni-forms-item name="tzrdh" style='margin-bottom: 0;'>
  53. <view class="flexc infolist">
  54. <view class="f16 fw c34 flex0 pr pl12">联系方式</view>
  55. <input placeholder="请输入联系方式" v-model="datainfo.tzrdh" class="f16 c34 flex1 txr"/>
  56. </view>
  57. </uni-forms-item>
  58. <uni-forms-item name="gtzzrsfzhm" style='margin-bottom: 0;'>
  59. <view class="flexc infolist">
  60. <view class="f16 fw c34 flex0 pr pl12">身份证号</view>
  61. <input placeholder="请输入个体投资人身份证号" v-model="datainfo.gtzzrsfzhm" class="f16 c34 flex1 txr"/>
  62. </view>
  63. </uni-forms-item>
  64. <uni-forms-item name="qytzrxyzdm" style='margin-bottom: 0;'>
  65. <view class="flexc infolist">
  66. <view class="f16 fw c34 flex0 pr pl12">信用证代码</view>
  67. <input placeholder="请输入企业投资人信用证代码" v-model="datainfo.qytzrxyzdm" class="f16 c34 flex1 txr"/>
  68. </view>
  69. </uni-forms-item>
  70. </uni-forms>
  71. <view class="infobtn flexcc cf f16 f500" @click="getNext">下一步</view>
  72. <!-- 弹框 -->
  73. <view class="bgbox" @click="getClose" v-if="addflag"></view>
  74. <view class="fixedbox" v-if="addflag">
  75. <image :src="closeimg" class="choseimg" @click="getClose"></image>
  76. <view class="top">添加信息</view>
  77. <view class="boxs">
  78. <view class="mb30">
  79. <view class="flexc">
  80. <view class="flexcc boxcen" :class="shenflag?'act':''" @click="shenflag=true">
  81. <image :src="gcheckimg" v-if="shenflag"></image>
  82. <image :src="checknimg" v-else></image>
  83. <view :class="shenflag?'co28':''">添加企业</view>
  84. </view>
  85. <view class="flexcc boxcen" :class="shenflag?'':'act'" @click="shenflag=false">
  86. <image :src="checknimg" v-if="shenflag"></image>
  87. <image :src="gcheckimg" v-else></image>
  88. <view :class="shenflag?'':'co28'">添加自然人</view>
  89. </view>
  90. </view>
  91. </view>
  92. <!-- 企业 -->
  93. <uni-forms ref="qiform" :rules="qirules" :value="qiinfo" v-if="shenflag">
  94. <uni-forms-item name="companyName" style='margin-bottom: 0;'>
  95. <view class="flexc infolist">
  96. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>企业名称</view>
  97. <input placeholder="请输入企业名称" v-model="qiinfo.companyName" class="f16 c34 flex1 txr"/>
  98. </view>
  99. </uni-forms-item>
  100. <uni-forms-item name="companyAddress" style='margin-bottom: 0;'>
  101. <view class="flexc infolist">
  102. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>企业所在地</view>
  103. <input placeholder="请输入企业所在地" v-model="qiinfo.companyAddress" class="f16 c34 flex1 txr"/>
  104. </view>
  105. </uni-forms-item>
  106. <uni-forms-item name="companyLegal" style='margin-bottom: 0;'>
  107. <view class="flexc infolist">
  108. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>法人代表姓名</view>
  109. <input placeholder="请输入法人代表姓名" v-model="qiinfo.companyLegal" class="f16 c34 flex1 txr"/>
  110. </view>
  111. </uni-forms-item>
  112. <uni-forms-item name="companyCode" style='margin-bottom: 0;'>
  113. <view class="flexc infolist">
  114. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>统一社会信用代码</view>
  115. <input placeholder="请输入统一社会信用代码" v-model="qiinfo.companyCode" class="f16 c34 flex1 txr"/>
  116. </view>
  117. </uni-forms-item>
  118. <uni-forms-item name="phone" style='margin-bottom: 0;'>
  119. <view class="flexc infolist">
  120. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>联系方式</view>
  121. <input placeholder="请输入联系方式" v-model="qiinfo.phone" class="f16 c34 flex1 txr"/>
  122. </view>
  123. </uni-forms-item>
  124. </uni-forms>
  125. <!-- 自然人 -->
  126. <uni-forms ref="ziform" :rules="zirules" :value="ziinfo" v-else>
  127. <uni-forms-item name="idcode" style='margin-bottom: 0;'>
  128. <view class="flexc infolist">
  129. <view class="f16 fw c34 flex0 pr pl12">身份证号码</view>
  130. <input placeholder="请输入身份证号码" v-model="ziinfo.idcode" class="f16 c34 flex1 txr"/>
  131. </view>
  132. </uni-forms-item>
  133. <uni-forms-item name="name" style='margin-bottom: 0;'>
  134. <view class="flexc infolist">
  135. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>姓名</view>
  136. <input placeholder="请输入姓名" v-model="ziinfo.name" class="f16 c34 flex1 txr"/>
  137. </view>
  138. </uni-forms-item>
  139. <uni-forms-item name="address" style='margin-bottom: 0;'>
  140. <view class="flexc infolist">
  141. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>自然人所在地</view>
  142. <input placeholder="请输入自然人所在地" v-model="ziinfo.address" class="f16 c34 flex1 txr"/>
  143. </view>
  144. </uni-forms-item>
  145. <uni-forms-item name="phone" style='margin-bottom: 0;'>
  146. <view class="flexc infolist">
  147. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>联系方式</view>
  148. <input placeholder="请输入联系方式" v-model="ziinfo.phone" class="f16 c34 flex1 txr"/>
  149. </view>
  150. </uni-forms-item>
  151. </uni-forms>
  152. </view>
  153. <view class="fixedbtn" @click="getyjSubmit">确认</view>
  154. </view>
  155. </view>
  156. </template>
  157. <script>
  158. export default{
  159. data(){
  160. return{
  161. datainfo:{
  162. sbdw:'',
  163. tbrq:'',
  164. zszxfzr:'',
  165. tzrxm:'',
  166. tzrzw:'',
  167. tzrdh:'',
  168. gtzzrsfzhm:'',
  169. qytzrxyzdm:'',
  170. },
  171. qiinfo:{
  172. companyName:'',
  173. companyAddress:'',
  174. companyLegal:'',
  175. companyCode:'',
  176. phone:'',
  177. },
  178. ziinfo:{
  179. name:'',
  180. address:'',
  181. idcode:'',
  182. phone:'',
  183. },
  184. addflag:false,
  185. shenflag:true,
  186. addimg:require("@/static/images/mine/add.png"),
  187. delimg:require("@/static/images/mine/del.png"),
  188. checknimg:require("@/static/images/mine/jnicon.png"),
  189. gcheckimg:require("@/static/images/mine/jicon.png"),
  190. closeimg:require('@/static/images/close.png'),
  191. rules: {
  192. sbdw: {rules: [{required: true,errorMessage: '请输入上报单位'}]},
  193. tbrq: {rules: [{required: true,errorMessage: '请选择填表日期',}]},
  194. zszxfzr: {rules: [{required: true,errorMessage: '请输入项目负责人姓名' } ]},
  195. tzrxm: {rules: [{required: true,errorMessage: '请输入投资人姓名'} ]},
  196. },
  197. qirules:{
  198. companyName: {rules: [{required: true,errorMessage: '请输入企业名称'}]},
  199. companyAddress: {rules: [{required: true,errorMessage: '请输入企业所在地'}]},
  200. companyLegal: {rules: [{required: true,errorMessage: '请输入法人代表姓名'}]},
  201. companyCode: {rules: [{required: true,errorMessage: '请输入统一社会信用代码'}]},
  202. phone: {rules: [{required: true,errorMessage: '请输入联系方式'}]},
  203. },
  204. zirules:{
  205. name: {rules: [{required: true,errorMessage: '请输入姓名'}]},
  206. address: {rules: [{required: true,errorMessage: '请输入自然人所在地'}]},
  207. phone: {rules: [{required: true,errorMessage: '请输入联系方式'}]},
  208. }
  209. }
  210. },
  211. mounted() {
  212. // {
  213. // pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
  214. // message: '身份证格式错误',
  215. // trigger: 'blur'
  216. // }
  217. },
  218. methods:{
  219. bindDateChange(e) {
  220. this.datainfo.tbrq = e.detail.value
  221. },
  222. getClose(){
  223. this.addflag=false
  224. },
  225. getAdd(){
  226. this.addflag=true;
  227. },
  228. getNext(){
  229. this.$emit("getNext")
  230. // this.$refs.form.validate().then(res => {
  231. // })
  232. }
  233. }
  234. }
  235. </script>
  236. <style lang="scss" scoped>
  237. .inform{padding-top: 30rpx; padding-bottom: 160rpx;}
  238. .infolist{padding: 30rpx 32rpx 30rpx 24rpx;position: relative;
  239. .cir{position: absolute;font-size: 36rpx;font-weight: bold;color: #FE5706;left: 0rpx;}
  240. .delimg{width: 30rpx;height:30rpx;margin-left: 8rpx;}
  241. }
  242. .infobtn{width: 100%;height: 88rpx;background: #FA5F03;line-height: 88rpx;position: fixed;left: 0;right: 0;bottom: 0;z-index: 3;}
  243. .input_ye image{width: 34rpx;height: 18rpx;}
  244. .info_tit{font-size: 32rpx;color: #FE5706;padding: 30rpx 26rpx;font-weight: bold;}
  245. .infolist_a{height: 44rpx;flex: 1;text-align: right;font-size: 32rpx;color: #343434;}
  246. .infolist_add{position: absolute;right: 0;top: -40rpx;font-size: 28rpx;color: #41C942;padding-right: 30rpx;
  247. image{width: 30rpx;height: 30rpx;margin-right: 20rpx;}
  248. }
  249. // // 弹窗
  250. .fixedbox{position: fixed;left:24rpx;right: 24rpx;background: #fff;border-radius: 10rpx;min-height: 468rpx;top: 50%;transform: translateY(-60%);z-index: 20;padding: 48rpx 36rpx 68rpx;max-height: calc(100vh - 200rpx);overflow: auto;box-sizing: border-box;
  251. .infolist{padding:24rpx 0 24rpx 0;}
  252. .choseimg{width: 34rpx;height: 34rpx;position: absolute;left: 36rpx;top: 54rpx;z-index: 22;}
  253. .chebox{position: absolute;right: 36rpx;top:54rpx;display: flex;align-items: center;
  254. image{width: 30rpx;height: 32rpx;margin-right: 12rpx;}
  255. view{font-size: 32rpx;font-weight: 500;color: #F13800;;}
  256. }
  257. .top{position: relative;text-align: center;font-size: 32rpx;font-weight: bold;color: #343434;}
  258. .boxs{padding: 60rpx 0;
  259. .box{display: flex;align-items: center;min-height:100rpx;}
  260. .boxcen{flex:1;
  261. &.act{
  262. view{color: #FF6400;}
  263. }
  264. image{width: 32rpx;height: 32rpx;margin-right: 20rpx;}
  265. view{font-size: 32rpx;font-weight: 500;
  266. color: #666666;}
  267. }
  268. }
  269. .fixedbtn{width:100%;height: 80rpx;background: #FF6400;
  270. border-radius: 10rpx;display: flex;align-items: center;justify-content: center;font-size: 32rpx;font-weight: bold;color: #FFFFFF;
  271. &.btn1{background-color: #20ACCF;margin-bottom: 36rpx;}
  272. }
  273. }
  274. .inform /deep/ .uni-forms-item__error{margin-top: -30rpx;margin-left: 24rpx;}
  275. </style>