用工小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

360 lines
10 KiB

a. 前端小程序部分: ⅰ. 授权登录成功之后,后面点击头像进行个人资料编辑的时候,原来的历史个人资料需要展示在表单上:头像,昵称,手机号码 (已处理) ⅱ. 个人中心手机号码下方,如果做了企业认证则显示企业公司名称 (已处理 展示认证状态) ⅲ. 对接流水钱包的数据,让数据渲染正确,能正常提交以及审核提现,提现需要增加一个用户真实姓名的字段,提现需要一个到账状态,提现功能区看酒布代码或者是真世界代码,确保功能的完整性 提现新增字段 realName (已处理) ⅳ. 我的服务这些设置的小图标需要换成正常的,如果没画的区阿里巴巴矢量图标库找一个合适的(已处理) ⅴ. 企业入驻:公司地址需要吊起地图,记录经纬度,另外审核通过状态的数据,不能再进行修改 (已处理) longitude:"",latitude:"", ⅵ. 个人入住:审核通过状态的数据,不能再进行修改(已处理) ⅶ. 我的简历:审核通过状态的数据,不能再进行修改(没有status 字段) ⅷ. 发布订单:出行方式字段对接一下select_go字段,结算方式说明前端要跟后台数据说明同步 (已处理)selectGo ⅸ. 分类管理:点击分类管理可以只查询当前一级分类数据,另外名称搜索功能需要增加一下 (已处理) X. 工作详情里面的公司地址要能点击到地图中去,另外右边增加一个拨打电话的按钮 (这个是微信组件 不能添加) Xⅰ. 列表数据处理一下下拉刷新数据,每次数据没有更新,没有下啦刷新处理 (已处理)
3 months ago
3 months ago
3 months ago
a. 前端小程序部分: ⅰ. 授权登录成功之后,后面点击头像进行个人资料编辑的时候,原来的历史个人资料需要展示在表单上:头像,昵称,手机号码 (已处理) ⅱ. 个人中心手机号码下方,如果做了企业认证则显示企业公司名称 (已处理 展示认证状态) ⅲ. 对接流水钱包的数据,让数据渲染正确,能正常提交以及审核提现,提现需要增加一个用户真实姓名的字段,提现需要一个到账状态,提现功能区看酒布代码或者是真世界代码,确保功能的完整性 提现新增字段 realName (已处理) ⅳ. 我的服务这些设置的小图标需要换成正常的,如果没画的区阿里巴巴矢量图标库找一个合适的(已处理) ⅴ. 企业入驻:公司地址需要吊起地图,记录经纬度,另外审核通过状态的数据,不能再进行修改 (已处理) longitude:"",latitude:"", ⅵ. 个人入住:审核通过状态的数据,不能再进行修改(已处理) ⅶ. 我的简历:审核通过状态的数据,不能再进行修改(没有status 字段) ⅷ. 发布订单:出行方式字段对接一下select_go字段,结算方式说明前端要跟后台数据说明同步 (已处理)selectGo ⅸ. 分类管理:点击分类管理可以只查询当前一级分类数据,另外名称搜索功能需要增加一下 (已处理) X. 工作详情里面的公司地址要能点击到地图中去,另外右边增加一个拨打电话的按钮 (这个是微信组件 不能添加) Xⅰ. 列表数据处理一下下拉刷新数据,每次数据没有更新,没有下啦刷新处理 (已处理)
3 months ago
3 months ago
3 months ago
a. 前端小程序部分: ⅰ. 授权登录成功之后,后面点击头像进行个人资料编辑的时候,原来的历史个人资料需要展示在表单上:头像,昵称,手机号码 (已处理) ⅱ. 个人中心手机号码下方,如果做了企业认证则显示企业公司名称 (已处理 展示认证状态) ⅲ. 对接流水钱包的数据,让数据渲染正确,能正常提交以及审核提现,提现需要增加一个用户真实姓名的字段,提现需要一个到账状态,提现功能区看酒布代码或者是真世界代码,确保功能的完整性 提现新增字段 realName (已处理) ⅳ. 我的服务这些设置的小图标需要换成正常的,如果没画的区阿里巴巴矢量图标库找一个合适的(已处理) ⅴ. 企业入驻:公司地址需要吊起地图,记录经纬度,另外审核通过状态的数据,不能再进行修改 (已处理) longitude:"",latitude:"", ⅵ. 个人入住:审核通过状态的数据,不能再进行修改(已处理) ⅶ. 我的简历:审核通过状态的数据,不能再进行修改(没有status 字段) ⅷ. 发布订单:出行方式字段对接一下select_go字段,结算方式说明前端要跟后台数据说明同步 (已处理)selectGo ⅸ. 分类管理:点击分类管理可以只查询当前一级分类数据,另外名称搜索功能需要增加一下 (已处理) X. 工作详情里面的公司地址要能点击到地图中去,另外右边增加一个拨打电话的按钮 (这个是微信组件 不能添加) Xⅰ. 列表数据处理一下下拉刷新数据,每次数据没有更新,没有下啦刷新处理 (已处理)
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
a. 前端小程序部分: ⅰ. 授权登录成功之后,后面点击头像进行个人资料编辑的时候,原来的历史个人资料需要展示在表单上:头像,昵称,手机号码 (已处理) ⅱ. 个人中心手机号码下方,如果做了企业认证则显示企业公司名称 (已处理 展示认证状态) ⅲ. 对接流水钱包的数据,让数据渲染正确,能正常提交以及审核提现,提现需要增加一个用户真实姓名的字段,提现需要一个到账状态,提现功能区看酒布代码或者是真世界代码,确保功能的完整性 提现新增字段 realName (已处理) ⅳ. 我的服务这些设置的小图标需要换成正常的,如果没画的区阿里巴巴矢量图标库找一个合适的(已处理) ⅴ. 企业入驻:公司地址需要吊起地图,记录经纬度,另外审核通过状态的数据,不能再进行修改 (已处理) longitude:"",latitude:"", ⅵ. 个人入住:审核通过状态的数据,不能再进行修改(已处理) ⅶ. 我的简历:审核通过状态的数据,不能再进行修改(没有status 字段) ⅷ. 发布订单:出行方式字段对接一下select_go字段,结算方式说明前端要跟后台数据说明同步 (已处理)selectGo ⅸ. 分类管理:点击分类管理可以只查询当前一级分类数据,另外名称搜索功能需要增加一下 (已处理) X. 工作详情里面的公司地址要能点击到地图中去,另外右边增加一个拨打电话的按钮 (这个是微信组件 不能添加) Xⅰ. 列表数据处理一下下拉刷新数据,每次数据没有更新,没有下啦刷新处理 (已处理)
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
  1. <template>
  2. <!-- 个人 -->
  3. <view>
  4. <view class="se-pt-20 se-pb-20 se-px-40 se-bgc-green se-c-white se-ta-c se-fs-24" v-if="status==1">
  5. 个人认证-已通过
  6. </view>
  7. <u--form labelPosition="left" :model="form" :rules="rules" ref="uForm" labelWidth="80">
  8. <view class="se-p-20">
  9. <view class="se-p-20 se-bgc-white se-br-10 se-fs-20">
  10. <u-form-item label="姓名" prop="name">
  11. <u--input v-model="form.name" class="se-bgc-f5" placeholder="请输入姓名名称"></u--input>
  12. </u-form-item>
  13. <!-- <u-form-item label="密码" prop="password">
  14. <u--input v-model="form.password" class="se-bgc-f5" placeholder="请输入您的密码"></u--input>
  15. </u-form-item> -->
  16. <u-form-item label="联系电话" prop="mobile">
  17. <u--input v-model="form.mobile" class="se-bgc-f5" placeholder="请输入联系方式"></u--input>
  18. </u-form-item>
  19. <u-form-item label="居住地址" prop="address">
  20. <u--input v-model="form.address" class="se-bgc-f5" placeholder="请输入详细地址"></u--input>
  21. </u-form-item>
  22. <u-form-item label="行业" prop="industryId" @click="handleIndChange()">
  23. <u--input readonly v-model="form.industryName" placeholder="请选择行业" border="bottom"></u--input>
  24. <u-icon slot="right" name="arrow-right"></u-icon>
  25. </u-form-item>
  26. </view>
  27. </view>
  28. <view class="se-p-20">
  29. <view class="se-px-20 se-pb-20 se-bgc-white se-br-10 se-fs-20">
  30. <u-form-item prop="file" labelWidth="2">
  31. <view class="se-flex se-flex-v-sa">
  32. <view class="se-py-20 se-w-p-100 se-flex">
  33. <view class="line-orange"></view>
  34. <view class="se-ml-10">
  35. 个人照片
  36. </view>
  37. </view>
  38. <view class="se-py-20 se-w-p-100">
  39. <u-upload :fileList="form.imageFile" @afterRead="afterImageFileRead" @delete="deleteImageFilePic" name="1"
  40. multiple :maxCount="10"></u-upload>
  41. </view>
  42. </view>
  43. </u-form-item>
  44. </view>
  45. </view>
  46. <view class="se-p-20">
  47. <view class="se-px-20 se-pb-20 se-bgc-white se-br-10 se-fs-20">
  48. <u-form-item prop="file" labelWidth="2">
  49. <view class="se-flex se-flex-v-sa">
  50. <view class="se-py-20 se-w-p-100 se-flex">
  51. <view class="line-orange"></view>
  52. <view class="se-ml-10">
  53. 身份证上传(正面)
  54. </view>
  55. </view>
  56. <view class="se-py-20 se-w-p-100">
  57. <u-upload :fileList="form.cerImageBackFile" @afterRead="afterCerImageBackFileRead" @delete="deleteCerImageBackFilePic" name="1"
  58. multiple :maxCount="10"></u-upload>
  59. </view>
  60. </view>
  61. </u-form-item>
  62. </view>
  63. </view>
  64. <view class="se-p-20">
  65. <view class="se-px-20 se-pb-20 se-bgc-white se-br-10 se-fs-20">
  66. <u-form-item prop="file" labelWidth="2">
  67. <view class="se-flex se-flex-v-sa">
  68. <view class="se-py-20 se-w-p-100 se-flex">
  69. <view class="line-orange"></view>
  70. <view class="se-ml-10">
  71. 身份证上传(反面)
  72. </view>
  73. </view>
  74. <view class="se-py-20 se-w-p-100">
  75. <u-upload :fileList="form.cerImageFrontFile" @afterRead="afterCerImageFrontRead" @delete="deleteCerImageFrontReadPic" name="1"
  76. multiple :maxCount="10"></u-upload>
  77. </view>
  78. </view>
  79. </u-form-item>
  80. </view>
  81. </view>
  82. <view class="se-px-20 se-pt-20" v-if="status!=1">
  83. <view class="se-px-20 se-pb-80 se-fs-20 se-flex">
  84. <view @click="submit"
  85. class="se-mx-10 se-flex-1 se-br-40 se-flex-h-c se-h-60 se-lh-60 se-ta-c se-fs-28 se-c-white se-bgc-orange">
  86. <text>{{form.id?'保存':'提交审核'}}</text>
  87. </view>
  88. <!-- <view class="se-mx-10 se-flex-1 se-b se-br-40 se-flex-h-c se-h-60 se-lh-60 se-ta-c se-fs-28 se-c-66 se-bgc-f5">
  89. <text>联系我们</text>
  90. </view> -->
  91. </view>
  92. </view>
  93. </u--form>
  94. <u-action-sheet :actions="indList" @select="selectIndClick" title="行业" :show="show" @close="show=false"></u-action-sheet>
  95. </view>
  96. </template>
  97. <script>
  98. import {roleBoss,industryList,updateRoleBoss,queryCategoryList,addAuthenticationPerson,getAuthenticationPerson} from "@/common/api.js"
  99. export default{
  100. data(){
  101. return{
  102. status:-1,
  103. show:false,
  104. indList: [],
  105. fileList: [],
  106. form: {
  107. id:'',
  108. role:0,
  109. name: '',
  110. password: '',
  111. mobile: '',
  112. address:'',
  113. industryId:'',
  114. industryName:'',
  115. cerImageBackFile:[],
  116. cerImageFrontFile:[],
  117. imageFile:[]
  118. },
  119. rules: {
  120. name: [{
  121. type: 'string',
  122. required: true,
  123. message: '请输入姓名名称',
  124. trigger: ['blur', 'change']
  125. }],
  126. password: [{
  127. type: 'string',
  128. required: true,
  129. message: '请输入您的密码',
  130. trigger: ['blur', 'change']
  131. }],
  132. mobile: [
  133. {
  134. required: true,
  135. message: '请输入手机号',
  136. trigger: ['change','blur'],
  137. },
  138. {
  139. validator: (rule, value, callback) => {
  140. return uni.$u.test.mobile(value);
  141. },
  142. message: '手机号码不正确',
  143. trigger: ['change','blur'],
  144. },
  145. ],
  146. address: [{
  147. type: 'string',
  148. required: true,
  149. message: '请输入居住地址',
  150. trigger: ['blur', 'change']
  151. }],
  152. industryId: [{
  153. type: 'string',
  154. required: true,
  155. message: '请选择行业',
  156. trigger: ['blur', 'change']
  157. }],
  158. cerImageBackFile:[
  159. {
  160. validator: (rule, value, callback) => {
  161. if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) {
  162. callback(new Error('请选择身份证'));
  163. } else {
  164. callback();
  165. }
  166. },
  167. trigger: 'blur'
  168. }
  169. ],
  170. cerImageFrontFile:[
  171. {
  172. validator: (rule, value, callback) => {
  173. if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) {
  174. callback(new Error('请选择身份证'));
  175. } else {
  176. callback();
  177. }
  178. },
  179. trigger: 'blur'
  180. }
  181. ],
  182. imageFile:[
  183. {
  184. validator: (rule, value, callback) => {
  185. if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) {
  186. callback(new Error('请选择个人照片'));
  187. } else {
  188. callback();
  189. }
  190. },
  191. trigger: 'blur'
  192. }
  193. ],
  194. },
  195. }
  196. },
  197. watch: {
  198. },
  199. onReady() {
  200. this.onAuthenticationPerson()
  201. this.onQueryCategoryList()
  202. this.$refs.uForm.setRules(this.rules)
  203. },
  204. mounted() {
  205. },
  206. methods: {
  207. onAuthenticationPerson(){
  208. let params={}
  209. getAuthenticationPerson(params).then(response=>{
  210. let person = response.result
  211. if(response.result){
  212. this.form.id = person.id
  213. this.status = person.status
  214. this.form.name = person.name
  215. this.form.mobile = person.phone
  216. this.form.address = person.address
  217. this.form.industryId = person.industry
  218. this.form.industryName = person.industryName
  219. this.form.cerImageBackFile = this.stringToKeyValueArray(person.cerImageBack)
  220. this.form.cerImageFrontFile = this.stringToKeyValueArray(person.cerImageFront)
  221. this.form.imageFile = this.stringToKeyValueArray(person.image)
  222. }
  223. }).catch(error=>{
  224. })
  225. },
  226. onQueryCategoryList(){
  227. queryCategoryList({}).then(response=>{
  228. console.info(response)
  229. this.indList = response.result
  230. }).catch(error=>{
  231. })
  232. },
  233. stringToKeyValueArray(str, delimiter1 = ',') {
  234. if(str){
  235. let arro = str.split(delimiter1);
  236. let arr = [];
  237. arro.forEach(items=>{
  238. let obj = {};
  239. obj["url"] = items
  240. arr.push(obj)
  241. })
  242. console.info(arr)
  243. return arr
  244. }else{
  245. return []
  246. }
  247. },
  248. handleIndChange(){
  249. this.show = true
  250. },
  251. selectIndClick(event){
  252. console.info("selectIndClick",event)
  253. this.form.industryId = event.id
  254. this.form.industryName = event.name
  255. this.show = false
  256. },
  257. submit() {
  258. let that = this
  259. that.$refs.uForm.validate().then(res => {
  260. that.onRoleBoss()
  261. }).catch(errors => {
  262. console.info(errors)
  263. uni.$u.toast('校验失败')
  264. })
  265. },
  266. onRoleBoss(){
  267. let that = this
  268. let params={
  269. id:that.form.id,
  270. name:that.form.name,
  271. role:that.form.role,
  272. phone:that.form.mobile,
  273. address:that.form.address,
  274. industry:that.form.industryId,
  275. // categoryTwo:that.form.industryName,
  276. cerImageBack:that.form.cerImageBackFile.map(item => item.url).join(','),
  277. cerImageFront:that.form.cerImageFrontFile.map(item => item.url).join(','),
  278. image:that.form.imageFile.map(item => item.url).join(','),
  279. }
  280. // if(that.form.id){
  281. // updateRoleBoss(params).then(response=>{
  282. // uni.$u.toast("保存成功!")
  283. // setTimeout(()=>{
  284. // uni.navigateBack({
  285. // delta:1
  286. // })
  287. // },1500)
  288. // }).catch(error=>{
  289. // })
  290. // }else{
  291. addAuthenticationPerson(params).then(response=>{
  292. uni.$u.toast("提交成功,等待申请")
  293. setTimeout(()=>{
  294. uni.switchTab({
  295. url:"/pages/home/index"
  296. })
  297. },1500)
  298. }).catch(error=>{
  299. })
  300. // }
  301. },
  302. deleteCerImageBackFilePic(event) {
  303. this.form.cerImageBackFile.splice(e.index, 1)
  304. },
  305. async afterCerImageBackFileRead(e) {
  306. let self = this
  307. e.file.forEach(file => {
  308. self.$Oss.ossUpload(file.url).then(url => {
  309. self.form.cerImageBackFile.push({
  310. url
  311. })
  312. })
  313. })
  314. },
  315. deleteCerImageFrontReadPic(event) {
  316. this.form.cerImageFrontFile.splice(e.index, 1)
  317. },
  318. async afterCerImageFrontRead(e) {
  319. let self = this
  320. e.file.forEach(file => {
  321. self.$Oss.ossUpload(file.url).then(url => {
  322. self.form.cerImageFrontFile.push({
  323. url
  324. })
  325. })
  326. })
  327. },
  328. async afterImageFileRead(e) {
  329. let self = this
  330. e.file.forEach(file => {
  331. self.$Oss.ossUpload(file.url).then(url => {
  332. self.form.imageFile.push({
  333. url
  334. })
  335. })
  336. })
  337. },
  338. deleteImageFilePic(event) {
  339. this.form.imageFile.splice(e.index, 1)
  340. },
  341. }
  342. }
  343. </script>
  344. <style lang="scss" scoped>
  345. .line-orange {
  346. width: 8rpx;
  347. height: 32rpx;
  348. background: #ff7a31;
  349. border-radius: 4rpx;
  350. }
  351. </style>