用工小程序前端代码
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.

408 lines
12 KiB

a. 前端小程序部分: ⅰ. 授权登录成功之后,后面点击头像进行个人资料编辑的时候,原来的历史个人资料需要展示在表单上:头像,昵称,手机号码 (已处理) ⅱ. 个人中心手机号码下方,如果做了企业认证则显示企业公司名称 (已处理 展示认证状态) ⅲ. 对接流水钱包的数据,让数据渲染正确,能正常提交以及审核提现,提现需要增加一个用户真实姓名的字段,提现需要一个到账状态,提现功能区看酒布代码或者是真世界代码,确保功能的完整性 提现新增字段 realName (已处理) ⅳ. 我的服务这些设置的小图标需要换成正常的,如果没画的区阿里巴巴矢量图标库找一个合适的(已处理) ⅴ. 企业入驻:公司地址需要吊起地图,记录经纬度,另外审核通过状态的数据,不能再进行修改 (已处理) longitude:"",latitude:"", ⅵ. 个人入住:审核通过状态的数据,不能再进行修改(已处理) ⅶ. 我的简历:审核通过状态的数据,不能再进行修改(没有status 字段) ⅷ. 发布订单:出行方式字段对接一下select_go字段,结算方式说明前端要跟后台数据说明同步 (已处理)selectGo ⅸ. 分类管理:点击分类管理可以只查询当前一级分类数据,另外名称搜索功能需要增加一下 (已处理) X. 工作详情里面的公司地址要能点击到地图中去,另外右边增加一个拨打电话的按钮 (这个是微信组件 不能添加) Xⅰ. 列表数据处理一下下拉刷新数据,每次数据没有更新,没有下啦刷新处理 (已处理)
8 months ago
8 months ago
8 months ago
a. 前端小程序部分: ⅰ. 授权登录成功之后,后面点击头像进行个人资料编辑的时候,原来的历史个人资料需要展示在表单上:头像,昵称,手机号码 (已处理) ⅱ. 个人中心手机号码下方,如果做了企业认证则显示企业公司名称 (已处理 展示认证状态) ⅲ. 对接流水钱包的数据,让数据渲染正确,能正常提交以及审核提现,提现需要增加一个用户真实姓名的字段,提现需要一个到账状态,提现功能区看酒布代码或者是真世界代码,确保功能的完整性 提现新增字段 realName (已处理) ⅳ. 我的服务这些设置的小图标需要换成正常的,如果没画的区阿里巴巴矢量图标库找一个合适的(已处理) ⅴ. 企业入驻:公司地址需要吊起地图,记录经纬度,另外审核通过状态的数据,不能再进行修改 (已处理) longitude:"",latitude:"", ⅵ. 个人入住:审核通过状态的数据,不能再进行修改(已处理) ⅶ. 我的简历:审核通过状态的数据,不能再进行修改(没有status 字段) ⅷ. 发布订单:出行方式字段对接一下select_go字段,结算方式说明前端要跟后台数据说明同步 (已处理)selectGo ⅸ. 分类管理:点击分类管理可以只查询当前一级分类数据,另外名称搜索功能需要增加一下 (已处理) X. 工作详情里面的公司地址要能点击到地图中去,另外右边增加一个拨打电话的按钮 (这个是微信组件 不能添加) Xⅰ. 列表数据处理一下下拉刷新数据,每次数据没有更新,没有下啦刷新处理 (已处理)
8 months ago
8 months ago
8 months ago
a. 前端小程序部分: ⅰ. 授权登录成功之后,后面点击头像进行个人资料编辑的时候,原来的历史个人资料需要展示在表单上:头像,昵称,手机号码 (已处理) ⅱ. 个人中心手机号码下方,如果做了企业认证则显示企业公司名称 (已处理 展示认证状态) ⅲ. 对接流水钱包的数据,让数据渲染正确,能正常提交以及审核提现,提现需要增加一个用户真实姓名的字段,提现需要一个到账状态,提现功能区看酒布代码或者是真世界代码,确保功能的完整性 提现新增字段 realName (已处理) ⅳ. 我的服务这些设置的小图标需要换成正常的,如果没画的区阿里巴巴矢量图标库找一个合适的(已处理) ⅴ. 企业入驻:公司地址需要吊起地图,记录经纬度,另外审核通过状态的数据,不能再进行修改 (已处理) longitude:"",latitude:"", ⅵ. 个人入住:审核通过状态的数据,不能再进行修改(已处理) ⅶ. 我的简历:审核通过状态的数据,不能再进行修改(没有status 字段) ⅷ. 发布订单:出行方式字段对接一下select_go字段,结算方式说明前端要跟后台数据说明同步 (已处理)selectGo ⅸ. 分类管理:点击分类管理可以只查询当前一级分类数据,另外名称搜索功能需要增加一下 (已处理) X. 工作详情里面的公司地址要能点击到地图中去,另外右边增加一个拨打电话的按钮 (这个是微信组件 不能添加) Xⅰ. 列表数据处理一下下拉刷新数据,每次数据没有更新,没有下啦刷新处理 (已处理)
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
a. 前端小程序部分: ⅰ. 授权登录成功之后,后面点击头像进行个人资料编辑的时候,原来的历史个人资料需要展示在表单上:头像,昵称,手机号码 (已处理) ⅱ. 个人中心手机号码下方,如果做了企业认证则显示企业公司名称 (已处理 展示认证状态) ⅲ. 对接流水钱包的数据,让数据渲染正确,能正常提交以及审核提现,提现需要增加一个用户真实姓名的字段,提现需要一个到账状态,提现功能区看酒布代码或者是真世界代码,确保功能的完整性 提现新增字段 realName (已处理) ⅳ. 我的服务这些设置的小图标需要换成正常的,如果没画的区阿里巴巴矢量图标库找一个合适的(已处理) ⅴ. 企业入驻:公司地址需要吊起地图,记录经纬度,另外审核通过状态的数据,不能再进行修改 (已处理) longitude:"",latitude:"", ⅵ. 个人入住:审核通过状态的数据,不能再进行修改(已处理) ⅶ. 我的简历:审核通过状态的数据,不能再进行修改(没有status 字段) ⅷ. 发布订单:出行方式字段对接一下select_go字段,结算方式说明前端要跟后台数据说明同步 (已处理)selectGo ⅸ. 分类管理:点击分类管理可以只查询当前一级分类数据,另外名称搜索功能需要增加一下 (已处理) X. 工作详情里面的公司地址要能点击到地图中去,另外右边增加一个拨打电话的按钮 (这个是微信组件 不能添加) Xⅰ. 列表数据处理一下下拉刷新数据,每次数据没有更新,没有下啦刷新处理 (已处理)
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 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. callback: '', // 回调类型
  106. callbackStatus: '', // 回调状态参数
  107. fileList: [],
  108. form: {
  109. id:'',
  110. role:0,
  111. name: '',
  112. password: '',
  113. mobile: '',
  114. address:'',
  115. industryId:'',
  116. industryName:'',
  117. cerImageBackFile:[],
  118. cerImageFrontFile:[],
  119. imageFile:[]
  120. },
  121. rules: {
  122. name: [{
  123. type: 'string',
  124. required: true,
  125. message: '请输入姓名名称',
  126. trigger: ['blur', 'change']
  127. }],
  128. password: [{
  129. type: 'string',
  130. required: true,
  131. message: '请输入您的密码',
  132. trigger: ['blur', 'change']
  133. }],
  134. mobile: [
  135. {
  136. required: true,
  137. message: '请输入手机号',
  138. trigger: ['change','blur'],
  139. },
  140. {
  141. validator: (rule, value, callback) => {
  142. return uni.$u.test.mobile(value);
  143. },
  144. message: '手机号码不正确',
  145. trigger: ['change','blur'],
  146. },
  147. ],
  148. address: [{
  149. type: 'string',
  150. required: true,
  151. message: '请输入居住地址',
  152. trigger: ['blur', 'change']
  153. }],
  154. industryId: [{
  155. type: 'string',
  156. required: true,
  157. message: '请选择行业',
  158. trigger: ['blur', 'change']
  159. }],
  160. cerImageBackFile:[
  161. {
  162. validator: (rule, value, callback) => {
  163. if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) {
  164. callback(new Error('请选择身份证'));
  165. } else {
  166. callback();
  167. }
  168. },
  169. trigger: 'blur'
  170. }
  171. ],
  172. cerImageFrontFile:[
  173. {
  174. validator: (rule, value, callback) => {
  175. if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) {
  176. callback(new Error('请选择身份证'));
  177. } else {
  178. callback();
  179. }
  180. },
  181. trigger: 'blur'
  182. }
  183. ],
  184. imageFile:[
  185. {
  186. validator: (rule, value, callback) => {
  187. if (value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0)) {
  188. callback(new Error('请选择个人照片'));
  189. } else {
  190. callback();
  191. }
  192. },
  193. trigger: 'blur'
  194. }
  195. ],
  196. },
  197. }
  198. },
  199. watch: {
  200. },
  201. onLoad(options) {
  202. // 接收页面参数
  203. if (options.callback) {
  204. this.callback = options.callback
  205. }
  206. if (options.status) {
  207. this.callbackStatus = options.status
  208. }
  209. },
  210. onReady() {
  211. this.onAuthenticationPerson()
  212. this.onQueryCategoryList()
  213. this.$refs.uForm.setRules(this.rules)
  214. },
  215. mounted() {
  216. },
  217. methods: {
  218. onAuthenticationPerson(){
  219. let params={}
  220. getAuthenticationPerson(params).then(response=>{
  221. let person = response.result
  222. if(response.result){
  223. this.form.id = person.id
  224. this.status = person.status
  225. this.form.name = person.name
  226. this.form.mobile = person.phone
  227. this.form.address = person.address
  228. this.form.industryId = person.industry
  229. this.form.industryName = person.industryName
  230. this.form.cerImageBackFile = this.stringToKeyValueArray(person.cerImageBack)
  231. this.form.cerImageFrontFile = this.stringToKeyValueArray(person.cerImageFront)
  232. this.form.imageFile = this.stringToKeyValueArray(person.image)
  233. }
  234. }).catch(error=>{
  235. })
  236. },
  237. onQueryCategoryList(){
  238. queryCategoryList({}).then(response=>{
  239. console.info(response)
  240. this.indList = response.result
  241. }).catch(error=>{
  242. })
  243. },
  244. stringToKeyValueArray(str, delimiter1 = ',') {
  245. if(str){
  246. let arro = str.split(delimiter1);
  247. let arr = [];
  248. arro.forEach(items=>{
  249. let obj = {};
  250. obj["url"] = items
  251. arr.push(obj)
  252. })
  253. console.info(arr)
  254. return arr
  255. }else{
  256. return []
  257. }
  258. },
  259. handleIndChange(){
  260. this.show = true
  261. },
  262. selectIndClick(event){
  263. console.info("selectIndClick",event)
  264. this.form.industryId = event.id
  265. this.form.industryName = event.name
  266. this.show = false
  267. },
  268. submit() {
  269. let that = this
  270. that.$refs.uForm.validate().then(res => {
  271. that.onRoleBoss()
  272. }).catch(errors => {
  273. console.info(errors)
  274. uni.$u.toast('校验失败')
  275. })
  276. },
  277. onRoleBoss(){
  278. let that = this
  279. let params={
  280. id:that.form.id,
  281. name:that.form.name,
  282. role:that.form.role,
  283. phone:that.form.mobile,
  284. address:that.form.address,
  285. industry:that.form.industryId,
  286. // categoryTwo:that.form.industryName,
  287. cerImageBack:that.form.cerImageBackFile.map(item => item.url).join(','),
  288. cerImageFront:that.form.cerImageFrontFile.map(item => item.url).join(','),
  289. image:that.form.imageFile.map(item => item.url).join(','),
  290. }
  291. // if(that.form.id){
  292. // updateRoleBoss(params).then(response=>{
  293. // uni.$u.toast("保存成功!")
  294. // setTimeout(()=>{
  295. // uni.navigateBack({
  296. // delta:1
  297. // })
  298. // },1500)
  299. // }).catch(error=>{
  300. // })
  301. // }else{
  302. addAuthenticationPerson(params).then(response=>{
  303. uni.$u.toast("提交成功,等待申请")
  304. // 检查简历是否完成
  305. this.$store.dispatch('onResumeComplete').then(isComplete => {
  306. if (!isComplete) {
  307. setTimeout(() => {
  308. uni.$u.toast("请完善您的简历信息")
  309. setTimeout(() => {
  310. // 根据回调参数决定跳转页面
  311. if (this.callback === 'release' && this.callbackStatus) {
  312. uni.navigateTo({
  313. url: "/pages_subpack/resume/index?callback=release&status=" + this.callbackStatus
  314. })
  315. } else {
  316. uni.navigateTo({
  317. url: "/pages_subpack/resume/index"
  318. })
  319. }
  320. }, 1000)
  321. }, 1500)
  322. } else {
  323. setTimeout(()=>{
  324. // 根据回调参数决定跳转页面
  325. if (this.callback === 'release' && this.callbackStatus) {
  326. // 跳转到发布页面
  327. uni.navigateTo({
  328. url: "/pages_subpack/release/index?status=" + this.callbackStatus
  329. })
  330. } else {
  331. // 默认跳转到首页
  332. uni.switchTab({
  333. url:"/pages/home/index"
  334. })
  335. }
  336. },1500)
  337. }
  338. }).catch(error => {
  339. // 如果检查失败,默认跳转到首页
  340. setTimeout(()=>{
  341. uni.switchTab({
  342. url:"/pages/home/index"
  343. })
  344. },1500)
  345. })
  346. }).catch(error=>{
  347. })
  348. // }
  349. },
  350. deleteCerImageBackFilePic(event) {
  351. this.form.cerImageBackFile.splice(e.index, 1)
  352. },
  353. async afterCerImageBackFileRead(e) {
  354. let self = this
  355. e.file.forEach(file => {
  356. self.$Oss.ossUpload(file.url).then(url => {
  357. self.form.cerImageBackFile.push({
  358. url
  359. })
  360. })
  361. })
  362. },
  363. deleteCerImageFrontReadPic(event) {
  364. this.form.cerImageFrontFile.splice(e.index, 1)
  365. },
  366. async afterCerImageFrontRead(e) {
  367. let self = this
  368. e.file.forEach(file => {
  369. self.$Oss.ossUpload(file.url).then(url => {
  370. self.form.cerImageFrontFile.push({
  371. url
  372. })
  373. })
  374. })
  375. },
  376. async afterImageFileRead(e) {
  377. let self = this
  378. e.file.forEach(file => {
  379. self.$Oss.ossUpload(file.url).then(url => {
  380. self.form.imageFile.push({
  381. url
  382. })
  383. })
  384. })
  385. },
  386. deleteImageFilePic(event) {
  387. this.form.imageFile.splice(e.index, 1)
  388. },
  389. }
  390. }
  391. </script>
  392. <style lang="scss" scoped>
  393. .line-orange {
  394. width: 8rpx;
  395. height: 32rpx;
  396. background: #ff7a31;
  397. border-radius: 4rpx;
  398. }
  399. </style>