Bläddra i källkod

Revert "入驻申请"

This reverts commit a6cb80ecb71cbd1189a8a37576aa1b659c8e1418.
MS-IOHQJGHXZHQD\Administrator 1 dag sedan
förälder
incheckning
8982e00e1f

+ 27 - 57
src/App.vue

@@ -1,6 +1,5 @@
 <script>
-import { getTechnicianToken } from "@/api/newLogin";
-import { getTechnician } from "@/api/index";
+import {  getAccessToken } from "@/api/index";
 export default {
 	globalData: {
 		couponSelected: {}
@@ -10,69 +9,40 @@ export default {
 		}
 	},
 	onLaunch() {
-		this.getTechnicianTokenFun()
 		console.log('App Launch')
+		let isWechat = navigator.userAgent.toLowerCase().includes('micromessenger');
+		// 非微信环境直接跳过
+		if (!isWechat) return;
 
+		const code = this.$utils.getQueryStr('code');
+		const token = uni.getStorageSync('token');
 
-	},
-	onShow() {
-		console.log('App Show')
-	},
-	methods: {
-		//存入openid
-		getTechnicianTokenFun() {
-			let isWechat = navigator.userAgent.toLowerCase().includes('micromessenger');
-			// 非微信环境直接跳过
-			//if (!isWechat) return;//guo
-
-			const code = this.$utils.getQueryStr('code');
-			const token = uni.getStorageSync('access-token');
+		// 已有登录态,不用登录
+		if (token) return;
+		// 1. 没有code → 跳转微信静默授权
+		if (!code && isWechat) {
+			let appid = 'wx9dc677bd41e82569'
+			//https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9dc677bd41e82569&redirect_uri=https://city.baoxianzhanggui.com/fragrance/wxcode/&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
+			let ruri = encodeURIComponent('https://city.baoxianzhanggui.com/fragrance/');
+			const authUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${ruri}&response_type=code&scope=snsapi_base&state=123#wechat_redirect`
+			window.location.href = authUrl
+		}
 
-			// 已有登录态,不用登录
-			if (token) {
-				//this.getTechnicianFun()
-				return
-			};
-			// // 1. 没有code → 跳转微信静默授权
-			// if (!code && isWechat) {
-			// 	let appid = 'wx9dc677bd41e82569'
-			// 	//https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9dc677bd41e82569&redirect_uri=https://city.baoxianzhanggui.com/fragrance/wxcode/&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
-			// 	let ruri = encodeURIComponent('https://city.baoxianzhanggui.com/fragrance/');
-			// 	const authUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${ruri}&response_type=code&scope=snsapi_base&state=123#wechat_redirect`
-			// 	window.location.href = authUrl
-			// }
 
-			let params = {
-				//code: this.$utils.('code') //guo
-				code: '031Ccs1w3bRDa73fin2w3BSsSe0Ccs13'
+		let params = {
+			code: code
+		}
+		getAccessToken(params).then(res => {
+			if (res.data.code == 200) {
+				uni.setStorageSync('wx_copenid', res.data.data.copenid);
+				uni.setStorageSync('access-token', res.data.data.token);
 			}
-			getTechnicianToken(params).then(res => {
-
-				if (res.data.code == 200) {
-					uni.setStorageSync('wx_copenid', res.data.data.copenid);
-					uni.setStorageSync('access-token', res.data.data.token);
-					this.getTechnicianFun()
-				}
-			})
-		},
-		//查询商户信息   auditStatus 审核状态:-1-申请入住,0-待入驻,1-待审核,2-审核通过,3-审核驳回"
-		getTechnicianFun() {
-			let openid = uni.getStorageSync('wx_copenid')
-			getTechnician({ openid: openid }).then(res => {
-				
-				if (res.data.code == 200) {
-					if(!res.data.result)return
-					if (res.data.result.auditStatus == -1) {
-						uni.navigateTo({
-							url: '/pages/join/staff'
-						})
-					}
-
-				}
-			})
-		},
+		});
 
 	},
+	onShow() {
+		console.log('App Show')
+	},
 	onHide() {
 		console.log('App Hide')
 	}

+ 0 - 37
src/api/index.js

@@ -630,40 +630,3 @@ export function getIsLottery(data) {
         data
     })
 }
-
-
-
-// 商户注册接口
-export function technicianApply(data) {
-    return request({
-        method: 'post',
-        url: '/technician/technician/apply',
-        data,
-        // header: {
-        //     'content-type': 'multipart/form-data'
-        // }
-    });
-}
-//获取手机验证码
-export function sendMsg(data) {
-    return request({
-        method: 'get',
-        url: '/weChat/sendMsg',
-        data
-    });
-}
-//查询开通服务接口
-export function getServiceCategoryList(dictType) {
-    return request({
-        method: 'get',
-        url: `/system/dict/data/type/${dictType}`
-    });
-}
-//查询商户信息
-export function getTechnician(data) {
-    return request({
-        method: 'get',
-        url:'/technician/technician/getTechnician',
-        data
-    });
-}

+ 1 - 20
src/api/newLogin.js

@@ -1,14 +1,5 @@
 import request from "@/utils/request.js";
-
-//存openid
-export function getTechnicianToken(data) {
-    return request({
-        method: 'get',
-        url: '/sq/getTechnicianToken',
-        data
-    });
-}
-//获取手机验证码
+//获取验证码
 export function sendMsg(data) {
     return request({
         method: 'get',
@@ -40,13 +31,3 @@ export function resetPassword(data) {
         // }
     });
 }
-
-//获取图形验证码
-export function captchaImage(data) {
-    return request({
-        method: 'get',
-        url: '/nightFragrance/captchaImage',
-        data
-    });
-}
-

+ 1 - 3
src/common/config.js

@@ -5,10 +5,8 @@ const staticUrl = 'https://life.baoxianzhanggui.com/pro-img/nightFragrance';
 
 // 正式环境
 // let baseUrl = 'https://test.baoxianzhanggui.com/nightFragrance';
-//let baseUrl = 'https://city.baoxianzhanggui.com/nightFragrance'
+let baseUrl = 'https://city.baoxianzhanggui.com/nightFragrance'
 let h5Url = 'https://city.baoxianzhanggui.com/fragrance'
-// let baseUrl = 'https://9ml9749325jl.vicp.fun/jeecg-boot';
-let baseUrl = 'https://9ml9749325jl.vicp.fun';
 //let baseUrl = 'http://192.168.0.49:8087'
 // let baseUrl = 'https://8c55-171-118-90-51.ngrok-free.app'
 

+ 2 - 2
src/components/upload/index.vue

@@ -1,6 +1,6 @@
 <template>
 	<u-upload :name="name" 
-		:width="width" :height="height"
+		:width="width" :height="height" 
 		:accept="accept" :fileList="fileList" 
 		:multiple="multiple" :maxCount="maxCount" 
 		@afterRead="afterRead" @delete="onDelete">
@@ -10,7 +10,7 @@
       v-if="customImg"
       src="@/static/discover/ic_upload.png"
       mode=""
-      :style="{width: width + 'px', height: height + 'px',borderRadius: '12rpx'}"
+      :style="{width: width + 'px', height: height + 'px'}"
     ></image>
 	</u-upload>
 </template>

+ 9 - 50
src/pages.json

@@ -117,18 +117,7 @@
     {
 			"path": "pages/my/dynamic/index",
 			"style": {
-				"navigationBarTitleText": "动态",
-				"navigationBarBackgroundColor": "#2cb8d4",
-				"navigationBarTextStyle": "white",
-				"app-plus": {
-					"softinputNavBar": "none",
-					"titleNView": false
-				}
-			}
-		},{
-			"path": "pages/my/dynamic/dynamicDetail",
-			"style": {
-				"navigationBarTitleText": "动态详情",
+				"navigationBarTitleText": "我的动态",
 				"navigationBarBackgroundColor": "#2cb8d4",
 				"navigationBarTextStyle": "white",
 				"app-plus": {
@@ -149,7 +138,7 @@
 				}
 			}
 		},
-    	{
+    {
 			"path": "pages/login/wxLogin",
 			"style": {
 				"navigationBarTitleText": "",
@@ -252,69 +241,39 @@
 			"path": "pages/join/staff",
 			"style": {
 				"navigationBarTitleText": "商户入驻",
-				"navigationBarBackgroundColor": "#2cb8d4",
-						"navigationBarTextStyle": "white",
-						"app-plus": {
-							"softinputNavBar": "none",
-							"titleNView": false
-						}
+				"navigationStyle": "default"
 			}
 		},
 		{
 			"path": "pages/join/applyJoin",
 			"style": {
 				"navigationBarTitleText": "申请入驻",
-				"navigationBarBackgroundColor": "#2cb8d4",
-						"navigationBarTextStyle": "white",
-						"app-plus": {
-							"softinputNavBar": "none",
-							"titleNView": false
-						}
+				"navigationStyle": "default"
 			}
 		},
 		{
 			"path": "pages/join/introduceYourselfEdit",
 			"style": {
 				"navigationBarTitleText": "简介",
-				"navigationBarBackgroundColor": "#2cb8d4",
-						"navigationBarTextStyle": "white",
-						"app-plus": {
-							"softinputNavBar": "none",
-							"titleNView": false
-						}
+				"navigationStyle": "default"
 			}
 		},{
 			"path": "pages/join/lifePhotosEdit",
 			"style": {
 				"navigationBarTitleText": "生活照",
-				"navigationBarBackgroundColor": "#2cb8d4",
-						"navigationBarTextStyle": "white",
-						"app-plus": {
-							"softinputNavBar": "none",
-							"titleNView": false
-						}
+				"navigationStyle": "default"
 			}
 		},{
 			"path": "pages/join/idCardEdit", 
 			"style": {
 				"navigationBarTitleText": "身份证",
-				"navigationBarBackgroundColor": "#2cb8d4",
-						"navigationBarTextStyle": "white",
-						"app-plus": {
-							"softinputNavBar": "none",
-							"titleNView": false
-						}
+				"navigationStyle": "default"
 			}
 		},{
 			"path": "pages/join/commitDocumentEdit", 
 			"style": {
 				"navigationBarTitleText": "承诺文件",
-				"navigationBarBackgroundColor": "#2cb8d4",
-						"navigationBarTextStyle": "white",
-						"app-plus": {
-							"softinputNavBar": "none",
-							"titleNView": false
-						}
+				"navigationStyle": "default"
 			}
 		},
 		//编辑资料
@@ -598,7 +557,7 @@
 				"selectedIconPath": "static/identify/index-cur.png"
 			},
       {
-				"text": "动态",
+				"text": "发现",
 				"pagePath": "pages/my/dynamic/index",
 				//"pagePath": "pages/discover/discover",
 				"iconPath": "static/discover/discover.png",

+ 17 - 150
src/pages/join/applyJoin.vue

@@ -1,45 +1,27 @@
 <template>
     <view class="applyJoin">
-        <view class="baseInfo">
-            <view class="title">
-                <view class="lineIcon">
-                    <image src="/static/login/lineIcon.png" mode=""></image>
-                </view>
-                <view style="position: relative; z-index: 999!important;">基础信息</view>
-
-            </view>
+        <view>
+            <view> 基本信息</view>
             <uni-list>
                 <uni-list-item title="姓名" :rightText="baseInfo.name" />
                 <uni-list-item title="性别" :rightText="baseInfo.name" />
                 <uni-list-item title="手机号" :rightText="baseInfo.name" />
-                <uni-list-item  showArrow title="昵称" :class="{'hasText': baseInfo.name}" clickable @click="introduceYourselfEdit(baseInfo.introduceYourself)"
-                    :rightText="baseInfo.name ? baseInfo.name : '昵称'" style="color: red!important;"/>
-
+                <uni-list-item title="昵称" :rightText="baseInfo.name" />
                 <uni-list-item title="入驻城市" :rightText="baseInfo.name" />
-                <uni-list-item showArrow title="简介" :class="{'hasText': baseInfo.introduceYourself}" clickable @click="introduceYourselfEdit(baseInfo.introduceYourself)"
+                <uni-list-item showArrow title="简介" clickable @click="introduceYourselfEdit(baseInfo.introduceYourself)"
                     :rightText="baseInfo.introduceYourself ? baseInfo.introduceYourself : '简单的介绍您自己~'" />
             </uni-list>
         </view>
-        <view class="baseInfo" style="margin-top: 16rpx;height: 69vh;">
-            <view class="title">
-                <view class="lineIcon">
-                    <image src="/static/login/lineIcon.png" mode=""></image>
-                </view>
-                <view style="position: relative; z-index: 999!important;">入驻资料</view>
-
-            </view>
+        <view>
+            <view> 入驻资料</view>
             <uni-list>
 
-                <uni-list-item title="形象照" :class="{'portraitPhotoRow': baseInfo.portraitPhoto}" showArrow clickable
-                 @click="portraitPhotoFun" :rightText="baseInfo.portraitPhoto? '形象照' : '形象照'">
-                    <template v-slot:footer v-if="baseInfo.portraitPhoto">
-                        <image  class="slot-image"
-                            :src="baseInfo.portraitPhoto ? baseInfo.portraitPhoto : '/static/logo.png'" mode="widthFix">
-                        </image>
+                <uni-list-item title="形象照" showArrow clickable @click="portraitPhotoFun">
+                    <template v-slot:footer>
+                        <image class="slot-image" :src="baseInfo.portraitPhoto?baseInfo.portraitPhoto:'/static/logo.png'" mode="widthFix"></image>
                     </template>
                 </uni-list-item>
-                <uni-list-item showArrow title="生活照" :rightText="baseInfo.cImgList.length > 0 ? baseInfo.cImgList.length+'项' : '去上传'"
-                    :class="{'hasText': baseInfo.cImgList.length > 0}" clickable
+                <uni-list-item showArrow title="生活照" :rightText="baseInfo.cImgList.length > 0 ? '已上传' : '去上传'" clickable
                     @click="pictureUpLoad('cImgList', '生活照', 9)" />
                 <uni-list-item showArrow title="宣传视频" :rightText="baseInfo.promotionalVideo.length > 0 ? '已上传' : '去上传'"
                     clickable @click="pictureUpLoad('promotionalVideo', '宣传视频')" />
@@ -55,7 +37,7 @@
                     clickable @click="pictureUpLoad('noCrime', '无犯罪证明', 9)" />
 
                 <uni-list-item showArrow title="承诺文件" :rightText="baseInfo.commitDocment[0].length > 0 && baseInfo.commitDocment[1].length > 0 && baseInfo.commitDocment[2].length > 0
-                    ? '已上传' : '去上传'" clickable @click="commitDocmentEditFun('commitDocment')" />
+                ? '已上传' : '去上传'" clickable @click="commitDocmentEditFun('commitDocment')" />
 
             </uni-list>
         </view>
@@ -65,7 +47,7 @@
 
         <!-- 提交按钮 pages/join/introduceYourselfEdit-->
         <view class="submit-box">
-            <u-button @click="submitForm">提交</u-button>
+            <u-button type="primary" disabled block @click="submitForm">提交</u-button>
         </view>
 
     </view>
@@ -81,7 +63,7 @@ export default {
                 { taskName: '222' }
             ],
             baseInfo: {
-                portraitPhoto: '',
+                portraitPhoto:'',
                 name: '萧然然',
                 gender: '女',
                 phone: '18366668888',
@@ -98,7 +80,7 @@ export default {
                 noCrime: [],
                 promotionalVideo: [],
                 idCard: [],
-                commitDocment: [[], [], []],
+                commitDocment: [[],[],[]],
             }
 
         }
@@ -149,7 +131,7 @@ export default {
                 sourceType: ['album'],
                 success: (res) => {
                     if (res) {
-                        this.baseInfo.portraitPhoto = res.tempFilePaths[0]
+                        this.baseInfo.portraitPhoto=res.tempFilePaths[0]
                     }
                 }
             });
@@ -169,112 +151,10 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-::v-deep .uni-list--border-top {
-    display: none;
-}
-
-::v-deep .uni-list-item {
-    .uni-icon-wrapper {
-        padding: 0 !important;
-
-    }
-    .uni-icons {
-        color: #1D2129 !important;
-        font-size: 26rpx !important;
-        margin-right: -10rpx!important;
-        margin-top: 6rpx;
-    }
-
-}
-
-
-::v-deep .uni-list-item__container {
-    padding: 0;
-
-    .uni-list-item__content-title {
-        font-weight: 400;
-        font-size: 30rpx;
-        color: #1D2129;
-        text-align: left;
-    }
-
-    .uni-list-item__extra-text {
-        font-weight: 400;
-        font-size: 30rpx;
-        color: #4E5969;
-        text-align: right;
-    }
-
-
-
-    
-
-}
-
-::v-deep .container--right {
-
-    .uni-list-item__extra-text {
-        font-weight: 400;
-        font-size: 30rpx !important;
-        color: #C9CDD4 !important;
-    }
-}
-::v-deep .hasText {
-    .uni-list-item__extra-text {
-        color: #4E5969!important;
-    }
-   
-}
-::v-deep .slot-image{
-    width: 58px;
-    height: 58px;
-    border-radius: 50%;
-
-}
-::v-deep .portraitPhotoRow{
-    .uni-list-item__content-title{
-        margin-top: 13rpx;
-    }
-
-}
-
 .applyJoin {
-    background-color: #F7F8FA;
+    background-color: #f5f5f5;
     min-height: 100vh;
-  
-
-    ::v-deep .uni-list-item {
-        height: 106rpx;
-    }
-
-    .baseInfo {
-        margin: 16rpx 32rpx;
-        background: #FFFFFF;
-        border-radius: 16rpx 16rpx 16rpx 16rpx;
-        padding: 32rpx;
-
-        .title {
-            font-weight: 500;
-            font-size: 36rpx;
-            color: #1D2129;
-            line-height: 36rpx;
-            position: relative;
-
-            .lineIcon {
-                position: absolute;
-                top: 8rpx;
-                width: 144rpx;
-                height: 24rpx;
-                z-index: 5 !important;
-
-                image {
-                    width: 100%;
-                    height: 100%;
-                }
-            }
-        }
-
-    }
+    padding: 20rpx 0;
 
     .slot-box {
         /* #ifndef APP-NVUE */
@@ -301,20 +181,7 @@ export default {
     }
 
     .submit-box {
-        width: 100%;
         padding: 30rpx;
-        font-size: 32rpx;
-        background-color: #fff;
-        position: fixed;
-        bottom: 0;
-        height: 136rpx;
-        button {
-            color: #FFFFFF;
-            width: 654rpx;
-            height: 88rpx;
-            background: #333335;
-            border-radius: 60rpx 60rpx 60rpx 60rpx;
-        }
     }
 }
 </style>

+ 9 - 47
src/pages/join/introduceYourselfEdit.vue

@@ -1,18 +1,12 @@
 <template>
-    <view class="introduceYourselfEdit">
+    <view>
         <view class="u-cell-group">
-            <u--textarea placeholderClass="textarea-placeholder" autoHeight v-model="value" placeholder="简单的介绍您自己~"
-                class="textareaDef"></u--textarea>
+            <u--textarea :height="300" v-model="value" autoHeight placeholder="简单的介绍您自己~"></u--textarea>
         </view>
         <view class="footer-bar">
-            <u-button :customStyle="{
-                padding: '24rpx 48rpx',
+            <u-button shape="circle" :customStyle="{
                 color: '#fff',
-                background: 'var(--theme-color-gradient)',
-                width: '654rpx',
-                height: '88rpx',
-                background: '#333335',
-                borderRadius: '60rpx 60rpx 60rpx 60rpx',
+                background: 'var(--theme-color-gradient)'
             }" @click="onSubmit">确认修改</u-button>
         </view>
     </view>
@@ -30,9 +24,9 @@ export default {
     onLoad() {
     },
     onLoad(query) {
-        console.log(query, 'query')
-        this.value = (query.introduceYourself === undefined || query.introduceYourself === 'undefined') ? '' : decodeURIComponent(query.introduceYourself)
-    },
+        console.log(query,'query')
+		this.value = (query.introduceYourself === undefined || query.introduceYourself === 'undefined') ? '' : decodeURIComponent(query.introduceYourself)
+	},
     onShow() {
     },
     methods: {
@@ -54,39 +48,7 @@ export default {
 </script>
 
 <style scoped lang="scss">
-.introduceYourselfEdit {
-    height: 100vh;
-    background-color: #F7F8FA;
-
-    .u-cell-group {
-        background: #fff;
-        min-height: 260rpx;
-        box-sizing: border-box;
-        border-radius: 8rpx 8rpx 8rpx 8rpx;
-        padding: 32rpx;
-
-        .u-textarea {
-            background: #F7F8FA;
-            min-height: 200rpx !important;
-        }
-
-        .textareaDef {
-
-            .uni-textarea-placeholder {
-                font-weight: 400;
-                font-size: 30rpx;
-                color: #C9CDD4;
-            }
-
-            .uni-textarea-wrapper {
-                font-weight: 400;
-                font-size: 30rpx;
-                color: #4E5969;
-            }
-
-        }
-    }
-
-
+.u-cell-group {
+    padding: 30rpx;
 }
 </style>

+ 7 - 36
src/pages/join/lifePhotosEdit.vue

@@ -1,15 +1,13 @@
 <template>
-    <view class="lifePhotosEdit">
-        <view class="u-cell-group">
+    <view>
+        <view class="images">
             <!-- <Upload :maxCount="1" @fileList="onUpload($event, 'cImgList')" /> -->
-            <Upload :accept="title == '宣传视频' ? 'file' : 'image'" :maxSize="title == '宣传视频' ? 51200 : 10240"
-                :maxCount="maxCount" :width="80" :height="80" @fileList="onUpload" :fileList="fileList" />
-
+            <Upload  :accept="title == '宣传视频'?'file':'image'" :maxSize="title == '宣传视频'?51200:10240"  :maxCount="maxCount" :customImg="true" :width="'70'" :height="'70'"
+                :src="'/static/points/picture2.png'" @fileList="onUpload" :fileList="fileList" />
             <view class="tagText" v-if="title == '生活照'">简单介绍自己的生活照,可以说说自己的基本信息,工作场景,等等;
                 或者上传自己清晰露脸半身照/全身照/工作照。最多上传{{ maxCount }}张</view>
             <view class="tagText" v-if="title == '宣传视频'">请上传 大小不超过 50MB 格式为 mp4/mov/mkv/wmv 的文件</view>
-            <view class="tagText" v-if="title == '健康证' || title == '从业资格证' || title == '无犯罪证明'">请上传小于10MB的{{ title
-                }}图片,最多上传{{ maxCount }}张
+            <view class="tagText" v-if="title == '健康证' || title =='从业资格证' || title =='无犯罪证明'">请上传小于10MB的{{ title }}图片,最多上传{{ maxCount }}张
             </view>
 
 
@@ -35,7 +33,6 @@ export default {
             fieldName: '',
             maxCount: 9,
             title: '',
-            img: '/static/login/cameraIcon.png'
         }
     },
 
@@ -70,18 +67,8 @@ export default {
         onSubmit() {
             // 获取页面栈
             const pages = getCurrentPages()
-            // 至少要有上一页才执行
-            if (pages.length < 2) {
-                uni.navigateBack()
-                return
-            }
             // 上一页实例
             const prevPage = pages[pages.length - 2]
-            // 再校验页面实例是否存在
-            if (!prevPage) {
-                uni.navigateBack()
-                return
-            }
             // 直接修改上一页data里的字段
             prevPage.$data.baseInfo[this.fieldName] = this.fileList
             uni.navigateBack()
@@ -92,23 +79,7 @@ export default {
 </script>
 
 <style scoped lang="scss">
-.lifePhotosEdit {
-    height: 100vh;
-    background-color: #F7F8FA;
-
-    .tagText {
-        margin-top: 32rpx;
-        font-weight: 400;
-        font-size: 26rpx;
-        color: #86909C;
-    }
-
-    ::v-deep .u-cell-group {
-        padding: 32rpx;
-        background-color: #fff;
-        .u-upload__button{
-            margin:0!important;
-        }
-    }
+.u-cell-group {
+    padding: 30rpx;
 }
 </style>

+ 236 - 707
src/pages/join/staff.vue

@@ -1,107 +1,81 @@
 <template>
 	<view class="join">
 		<view class="banner">
-			<image src="/static/login/banner.png" mode=""></image>
+			<image src="/static/other/banner.png" mode=""></image>
 		</view>
 		<view class="top">
-			<view v-if="ShopInfo" class="checkBox" :style="{
-				borderColor: ShopInfo.auditStatus == 1 ? '#F76560' : '#FF7D00',
-				color: ShopInfo.auditStatus === 1 ? '#F53F3F' : '#FF7D00', background: status === 1 ? '#FFF5F5' : '#FFF8EC'
-			}">
-				<view class="checkStatus">审核中</view>
-				<view class="text">入驻审核中,审核结果将会在9个工作日通知您</view>
-			</view>
-			<view class="title">
-				<view class="lineIcon">
-					<image src="/static/login/lineIcon.png" mode=""></image>
-				</view>
-				<view style="position: relative;">申请入驻</view>
-
-			</view>
 			<view class="content">
-				<view class="input-box">
-					<u-input v-model="form.teName" border="none" placeholder="输入真实姓名" class="input-item"
-						placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;text-align: right;">
-						<template slot="prefix">
-							<view class="label">
-								<text>姓名</text>
-							</view>
-						</template>
-					</u-input>
+				<view class="page-section">
+					<view class="name">您的姓名</view>
+					<view class="inp">
+						<!-- <input class="weui-input" v-model="form.cName" placeholder="请输入姓名,最多四个字" /> -->
+						<u-input v-model="form.cName" :type="type" placeholder="输入您的姓名" maxlength='4' />
+					</view>
 				</view>
-				<view class="input-box service">
-					<view class="label">性别</view>
-					<u-radio-group v-model="form.teSex">
-						<u-radio activeColor="#333335" v-for="(item, index) in sex" :key="index" :name="item.value"
-							:label="item.label" :customStyle="{ margin: '0 12rpx' }" />
+				<view class="page-section">
+					<view class="name">您的性别</view>
+					<u-radio-group v-model="form.nSex">
+						<u-radio v-for="(item, index) in sex" :key="index" 
+							:name="item.value" :label="item.label" 
+							:customStyle="{ margin: '0 12rpx' }"
+						/>
 					</u-radio-group>
 				</view>
-
-
-				<view class="input-box">
-					<u-input v-model="form.tePhone" border="none" maxlength='11' placeholder="请输入手机号" class="input-item"
-						placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;text-align: right;">
-						<template slot="prefix">
-							<view class="label">
-								<text>手机号</text>
-							</view>
-						</template>
-					</u-input>
+				<view class="page-section">
+					<view class="name">手机号:</view>
+					<view class="inp">
+						<!-- <input class="weui-input" v-model="form.cPhone" placeholder="请输入手机号" /> -->
+						<u-input v-model="form.cPhone" placeholder="请输入手机号" maxlength='11' />
+					</view>
 				</view>
 				<view class="input-box">
-					<u-input v-model="form.phoneMsg" type="number" border="none" maxlength="6" placeholder="输入短信验证码"
-						placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;text-align: right;margin-right: 42rpx;"
-						class="input-item code-input">
-						<template slot="prefix">
-							<view class="label">
-								<text>验证码</text>
-							</view>
-						</template>
-					</u-input>
+					<u-input
+						v-model="code"
+						type="number"
+						maxlength="6"
+						placeholder="请输入手机验证码"
+						placeholder-style="color: #999"
+						class="input-item code-input"
+					></u-input>
 					<view class="code-btn" :class="{ disabled: !canGetCode }" @click="getCode">
-						<text v-if="!CodeSendNum" @click="getCode">发送验证码</text>
-						<view v-else>
-							<text v-if="startCountdownFlag">{{ countdown }}s</text>
-							<text @click="agginGetCode">重新获取</text>
-						</view>
-						<!-- <text v-if="countdown === 60">发送验证码</text>
-          				<text v-else>{{ countdown }}s 后重新获取</text> -->
+						<text v-if="countdown === 60">获取验证码</text>
+						<text v-else>{{ countdown }}s 后重新获取</text>
 					</view>
 				</view>
-
-				<view class="input-box">
-					<view class="label" style="width: 50%;">合作意向城市</view>
+				<view class="page-section">
+					<view class="name">合作意向城市</view>
 					<view class="inp select" @click="show = true">
-						<view class="text" :style="{ color: form.teAddress ? '#4E5969Z' : '#C9CDD4' }">{{ form.teAddress
-							|| '选择城市' }}</view>
-						<img src="/static/login/arrowIcon.png" alt="" />
+						<text>{{form.city}}</text>
+						<img src="/static/identify/down.png" alt="" />
+						<!-- <view class="city" @click="selectCity" v-if="form.city == ''">
+							入驻城市
+						</view>
+						<view class="city" @click="selectCity" v-else>
+							{{form.city}}
+						</view> -->
+						<!-- 	<view class="city" v-if="form.city == ''">
+							选择所在城市(自动定位)
+						</view> -->
+						<!-- <view class="city" v-else  @click="goCity"> -->
+						<!-- <view class="city" v-else>
+							{{form.city}}市
+						</view> -->
+						<!-- <input class="weui-input" v-model="form.cNickName" placeholder="请输入昵称" /> -->
+						<!-- <u-input v-model="form.cNickName" :type="type" placeholder="请输入昵称" maxlength = '4'/> -->
 					</view>
-
-					<u-popup :show="show" mode="bottom" border-radius="16rpx 16rpx 0 0"
-						:style="{ height: '600rpx', zIndex: 9999,}">
-
-						<u-picker :show="show" confirmColor="#fff" title="合作意向城市" :columns="[cityList]" keyName="label"
-							:style="{ zIndex: 0, }" @confirm="onSelect" @cancel="cancel"></u-picker>
-					</u-popup>
+					<u-picker :show="show" :columns="[cityList]" keyName="label" 
+						@cancel="show = false" @confirm="onSelect"
+					></u-picker>
 				</view>
-				<view class="input-box service">
-					<view class="label">开通服务</view>
-					<u-radio-group v-model="form.openService">
-						<u-radio activeColor="#333335" v-for="(item, index) in serveArr" :key="index"
-							:name="item.dictValue" :label="item.dictLabel" :customStyle="{ fontSize: '20rpx' }" />
+				<view class="page-section">
+					<view class="name">开通服务</view>
+					<u-radio-group v-model="form.serveType">
+						<u-radio v-for="(item, index) in serveArr" :key="index" 
+							:name="item.value" :label="item.label" 
+							:customStyle="{ margin: '0 12rpx' }"
+						/>
 					</u-radio-group>
 				</view>
-
-				<!-- <view class="page-section">
-					<view class="name">合作意向城市</view>
-					<view class="inp select" @click="show = true">
-						<text>{{ form.teAddress }}</text>
-						<img src="/static/identify/down.png" alt="" />
-					</view>
-					<u-picker :show="show" :columns="[cityList]" keyName="label" @cancel="show = false"
-						@confirm="onSelect"></u-picker>
-				</view> -->
-
 				<!-- <view class="page-section">
 					<view class="name">您所在的位置:</view>
 					<view class="weui-cells weui-cells_after-title location" @click="getAddress">
@@ -111,88 +85,45 @@
 				</view> -->
 				<view class="updata" style="border:0;">
 					<view class="name">工作形象照</view>
-
+					
 					<view class="images">
-						<Upload :maxImageSize=2097152 :maxCount="2" :width="80" :height="80" :fileList="avatarList"
-							@fileList="onUpload($event)" />
+						<Upload
+							:maxCount="2"
+							@fileList="onUpload($event, 'cImgList')"
+						/>
 					</view>
 					<view class="title">
-						请上传本人2张近期照片,图片大小不超过2M(建议清晰正脸照)
+						请上传本人近期照片,图片大小不超过10M (建议清晰正脸照)
 					</view>
 				</view>
 			</view>
 
-
-		</view>
-		<view class="submits">
-
-			<view class="btn" @click="submit">
-				提交
-			</view>
-			<text>平台不会通过任何渠道泄漏你的个人信息,请放心输入</text>
-		</view>
-
-
-		<!-- 图形验证码弹窗 -->
-		<u-popup :show="showCaptcha" mode="center" border-radius="12">
-			<view class="captcha-box">
-				<view class="captcha-title">
-					<view>请输入下方图形验证码</view>
-					<u-icon custom-style="position: relative;left:90rpx ;" name="close" color="#C9CDD4" size="20"
-						@click="showCaptcha = false"></u-icon>
-				</view>
-				<view style="padding: 0 48rpx;margin-top: 48rpx;">
-					<view
-						style="display: flex;justify-content: space-between;height: 106rpx;border-bottom: 1rpx solid #E7E7E7;">
-
-						<!-- 验证码输入框,唤起全字符键盘 -->
-						<u-input v-model="imgCode" placeholder="请输入图形验证码" :focus="showCaptcha" type="text" maxlength="4"
-							border="none"
-							placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;"></u-input>
-						<!-- 图形验证码图片,点击刷新 -->
-						<image :src="captchaImg" @click="refreshCaptcha" class="captcha-img"></image>
-					</view>
-					<view class="text">看不清? 换一张</view>
-					<u-button class="submitImgCode" @click="submitImgCode" block>确定</u-button>
-
+			<view class="submits">
+				
+				<view class="btn" @click="submit">
+					提交
 				</view>
+				<text>平台不会通过任何渠道泄漏你的个人信息,请放心输入</text>
 			</view>
-		</u-popup>
+		</view>
 	</view>
 </template>
 
 <script>
-
 import {
-	getCityList, technicianApply, sendMsg, getServiceCategoryList, getTechnician
+	getInfo,
+	getCityList,
 } from '@/api/index';
 import {
-	captchaImage
-} from '@/api/newLogin';
-
+	netStaffAdd,
+} from '@/api/staff';
 import Upload from '@/components/upload/index.vue';
 export default {
 	components: {
 		Upload
 	},
-	computed: {
-		canGetCode() {
-			return !this.isSendingCode && this.countdown === 60
-		},
-		// canBind() {
-		// 	return this.phoneMsg && this.phoneMsg.length === 6 && !this.isBinding
-		// }
-	},
 	data() {
 		return {
-			status: 1,
-			imgCode: '',        // 用户填写的图形验证码
-			captchaImg: '',     // 图形验证码图片地址
-			captchaKey: '',     // 后端返回验证码标识
-			showCaptcha: false,
-			startCountdownFlag: false,
-			timer: null,
-			isSendingCode: false,
 			countdown: 60,
 			cityList: [],
 			show: false,
@@ -210,272 +141,157 @@ export default {
 				}
 			],
 			serveArr: [
-				// {
-				// 	value: 1,
-				// 	label: '上门按摩'
-				// },
-				// {
-				// 	value: 2,
-				// 	label: '同城陪玩'
-				// }
+				{
+					value: 1,
+					label: '上门按摩'
+				},
+				{
+					value: 0,
+					label: '同城陪玩'
+				}
 			],
-			avatarList: [],
-			CodeSendNum: 0,
 			form: {
-				teAreaCode: '',
-				cOpenid: uni.getStorageSync('wx_copenid'),
-				teName: '',
-				//cNickName: '',
-				//cPortrait: '',
-				tePhone: '',
-				phoneMsg: '',
-				//cJianjie: '',
-				teSex: null,
-				openService: null,
-				//cSfzImg: [],
-				avatar: '',
-				//latitude: '',
-				//longitude: '',
-				//name: '0',
-				//cOpenId: '',
-				//cBhList: '',
-				teAddress: ''
+				id: '',
+				cName: '',
+				cNickName: '',
+				cPortrait: '',
+				cPhone: '',
+				cJianjie: '',
+				nSex: 0,
+				serveType:0,
+				cSfzImg: [],
+				cImgList: [],
+				latitude: '',
+				longitude: '',
+				name: '0',
+				address: '',
+				cOpenId: '',
+				cBhList: '',
+				city: '请选择'
 			},
 			token: '',
-			uuid: '',
-			ShopInfo: {}
 		}
 	},
-	onLoad(options) {
-		if (options.ShopInfo) this.ShopInfo = JSON.parse(options.ShopInfo)
+	onLoad() {
 		this.isLogin = !!uni.getStorageSync('access-token');
 	},
 	onShow() {
-		//this.getServiceCategoryList()
-		//this.getCity()
+		this.getinfo()
+		this.getCity()
 
-		//this.getinfo()
 		// let city = uni.getStorageSync('selectCity')
 		// let lastCity = city.charAt(city.length - 1)
 		// lastCity == '市' ? this.form.city = city.slice(0, -1) : this.form.city = city
 		// this.form.city = uni.getStorageSync('selectCity')
 	},
 	methods: {
-		//查询商户信息 auditStatus 审核状态:-1-申请入住,0-待入驻,1-待审核,2-审核通过,3-审核驳回"
-		getTechnicianFun() {
-			let openid = uni.getStorageSync('wx_copenid')
-			getTechnician({ openid: openid }).then(res => {
-				console.log(res)
-				if (res.data.code == 200) {
-					if (!res.data.result) return
-					this.ShopInfo = res.data.result
-
-					if (res.data.result.auditStatus == -1) {
-						uni.navigateTo({
-							url: '/pages/join/staff'
-						})
-					} else if (res.data.result.auditStatus == 0) {
-						let str = uni.$u.queryParams(res.data.result)
-						uni.navigateTo({ url: `/pages/join/staff${str}` })
-					}
-
-				}
-			})
-		},
-		//图形验证码提交
-		submitImgCode() {
-			if (!this.imgCode) {
-				uni.showToast({
-					title: '请输入验证码',
-					icon: 'none'
-				})
-				return
-			}
-			sendMsg33333({ uuid: this.uuid, imgCode: this.imgCode }).then(res => {
-				console.log(res)
-				if (res.data.code == 200) {
-					this.showCaptcha = false
-					this.getCode()
-				}
-
-
-			})
-
+		// upload事件
+		onUpload(e, t) {
+			this.form[t] = e.map(item => item.url);
 		},
-
-
-		//查询开通服务接口
-		getServiceCategoryList() {
-			getServiceCategoryList('service_tag').then(res => {
-				this.serveArr = res.data.data
-				console.log(this.serveArr)
+		goCity() {
+			uni.navigateTo({
+				url: '/pages/identify/city?type=' + 'indent'
 			})
 		},
-		//重新获取验证码
-		agginGetCode() {
-			if (!this.form.tePhone) {
-				uni.showToast({
-					title: '请输入手机号',
-					icon: 'none'
-				})
-				return
-			}
-
-			if (!/^1[3456789]\d{9}$/.test(this.form.tePhone)) {
-				uni.showToast({
-					title: '请输入正确的手机号',
-					icon: 'none'
-				})
-				return
-			}
-			captchaImage().then(res => {
-				console.log(res)
-				if (res.data.code == 200) {
-					this.uuid = res.data.uuid
+		getAddress() {
+			uni.chooseLocation({
+				success: res => {
+					this.form.name = res.name;
+					this.form.latitude = res.latitude;
+					this.form.longitude = res.longitude;
+					// this.form.address = res.address
 				}
-			})
-			this.showCaptcha = true
-
+			});
 		},
-		//获取验证码
-		getCode() {
-			if (!/^1[3456789]\d{9}$/.test(this.form.tePhone)) {
-				uni.showToast({
-					title: '请输入正确的手机号',
-					icon: 'none'
-				});
-				return;
-			}
-			if (this.isSendingCode || this.countdown < 60) return
-
-			this.isSendingCode = true
-			sendMsg({ phone: this.form.tePhone }).then(res => {
-				console.log(res)
+		getinfo() {
+			getInfo().then(res => {
 				if (res.data.code == 200) {
-					uni.showToast({
-						title: '验证码已发送',
-						icon: 'none'
+					this.isLogin = true
+					// this.info = res.data.data,
+					// this.dBalance = res.data.data.dBalance.toFixed(2)
+				} else if (res.data.code == 401) {
+					uni.showModal({
+						title: '请先登录!',
+						success: (res) => {
+							if (res.confirm) {
+								uni.switchTab({
+									url: '/pages/my/my'
+								})
+							} else if (res.cancel) {
+								return
+							}
+						}
 					})
-					this.CodeSendNum = 1
-
-					this.startCountdown()
-					this.isSendingCode = false
-				} else {
-					uni.showToast({
-						title: res.msg,
-						icon: 'none'
-					});
 				}
-
-
-
 			})
-
-
-		},
-		startCountdown() {
-			this.startCountdownFlag = true
-			this.countdown = 60
-			this.timer = setInterval(() => {
-				this.countdown--
-				if (this.countdown <= 0) {
-					clearInterval(this.timer)
-					this.startCountdownFlag = false
-					//this.countdown = 60
-					this.timer = null
-				}
-			}, 1000)
-		},
-
-		// upload事件
-		onUpload(e) {
-			this.avatarList = e;
 		},
 		//提交
 		submit() {
-			console.log(this.avatarList, 'avatarList')
-			console.log(this.form)
 			// var openids = uni.getStorageSync('wx_copenid')
 			// this.form.cOpenId = openids
 			// this.form.cAddress =this.form.cAddress
 			// this.form.cSfzImg = this.idCard
 			// that.data.form.cBhList = that.data.form.cBhList.join(", ")
-			if (this.form.teName == '') {
+			if (this.form.cName == '') {
 				uni.showToast({
 					title: '请输入您的姓名',
 					icon: 'none'
 				})
 				return
 			}
-			if (this.form.teSex === null) {
-				uni.showToast({
-					title: '请选择您的性别',
-					icon: 'none'
-				})
-				return
-			}
-
-			if (!/^1[3456789]\d{9}$/.test(this.form.tePhone)) {
+			if (!/^1[3456789]\d{9}$/.test(this.form.cPhone)) {
 				uni.showToast({
 					title: '请输入正确的手机号',
 					icon: 'none'
 				});
 				return;
 			}
-
-			if (this.form.phoneMsg == '') {
+			if (this.form.city == '') {
 				uni.showToast({
-					title: '请输入验证码',
+					title: '请选择所在城市',
 					icon: 'none'
 				});
 				return
 			}
-			if (this.form.teAddress == '') {
+			if (this.form.cImgList.length < 1) {
 				uni.showToast({
-					title: '请选择城市',
-					icon: 'none'
-				});
-				return
-			}
-			if (!this.form.openService) {
-				uni.showToast({
-					title: '请选择开通服务',
-					icon: 'none'
-				});
-				return
-
-			}
-
-			if (this.avatarList.length) {
-				this.form.avatar = this.avatarList.map(item => item.url).join(',')
-			}
-			if (this.avatarList.length < 1) {
-				uni.showToast({
-					title: '最少上传一张工作形象照',
+					title: '最少上传一张生活照片',
 					icon: 'none'
 				});
 				return
 			} else {
-				technicianApply(this.form).then(res => {
+				netStaffAdd(this.form).then(res => {
 					if (res.data.code == 200) {
-						uni.setStorageSync('wx_phone', this.form.tePhone)
 						uni.showToast({
-							title: res.data.message,
-							icon: 'none'
+							title: "申请成功",
+						})
+						setTimeout(() => {
+							uni.navigateBack()
+						}, 1000)
+					} else if (res.data.code == 401) {
+						uni.showModal({
+							title: '请先登录!',
+							success: (res) => {
+								if (res.confirm) {
+									uni.switchTab({
+										url: '/pages/my/my'
+									})
+								} else if (res.cancel) {
+									return
+								}
+
+							}
 						})
-						this.getTechnicianFun()
-
 					} else {
 						uni.showToast({
-							title: res.msg,
+							title: res.data.msg,
 							icon: 'none'
-						});
+						})
 					}
 				})
-
 			}
 		},
-		//获取城市
 		getCity() {
 			getCityList().then(res => {
 				this.cityList = res.data.data.map(({
@@ -490,167 +306,25 @@ export default {
 		selectCity() {
 			this.show = true
 		},
-		cancel() {
-			console.log('cancel')
-			this.show = false
-		},
 		onSelect(e) {
-			console.log(e)
-			if (!e.value[0]) return
-			this.form.teAddress = e.value[0].label
-			this.form.teAreaCode = e.value[0].value
-			//this.form.deptId = e.value[0].value
+			this.form.city = e.value[0].label
+			this.form.deptId = e.value[0].value
 			this.show = false
 		},
-		// goCity() {
-		// 	uni.navigateTo({
-		// 		url: '/pages/identify/city?type=' + 'indent'
-		// 	})
-		// },
-		// getAddress() {
-		// 	uni.chooseLocation({
-		// 		success: res => {
-		// 			this.form.name = res.name;
-		// 			this.form.latitude = res.latitude;
-		// 			this.form.longitude = res.longitude;
-		// 			// this.form.address = res.address
-		// 		}
-		// 	});
-		// },
-
 	},
 	mounted() {
 		this.token = uni.getStorageSync('access-token'); // 假设token保存在本地缓存中
-	},
-	beforeDestroy() {
-		if (this.timer) {
-			clearInterval(this.timer)
-			this.timer = null
-		}
 	}
 }
 </script>
 
 <style lang="scss" scoped>
-::v-deep .u-picker {
-	bottom: 136rpx;
-	background-color: #ffffff;
-	position: relative;
-}
-
-::v-deep .u-toolbar__cancel__wrapper {
-	width: 30rpx;
-	height: 30rpx;
-	position: absolute;
-	right: 32rpx;
-	background-image: url('/static/login/closeIcon.png');
-	background-repeat: no-repeat;
-	background-size: 100% 100%;
-
-	.u-toolbar__wrapper__cancel {
-		width: 30rpx;
-		height: 30rpx;
-
-		span {
-			display: none;
-		}
-
-	}
-}
-
-
-
-/* 关键:穿透隐藏原生 toolbar,只留插槽内容 */
-.u-toolbar {
-	z-index: 9999 !important;
-	display: block !important;
-}
-
-::v-deep .u-toolbar__cancel__wrapper {
-	color: #666;
-}
-
-::v-deep .u-toolbar__confirm__wrapper {
-	position: fixed;
-	bottom: 0;
-	width: 100%;
-	padding: 24rpx 48rpx;
-
-	.u-toolbar__wrapper__confirm {
-		width: 654rpx;
-		height: 88rpx;
-		background: #333335;
-		border-radius: 60rpx 60rpx 60rpx 60rpx;
-
-		font-weight: 400;
-		font-size: 32rpx;
-		color: #FFFFFF;
-		text-align: center;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-}
-
-.captcha-box {
-	width: 622rpx;
-	background: #FFFFFF;
-	border-radius: 32rpx 32rpx 32rpx 32rpx;
-
-	.captcha-title {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		font-weight: 500;
-		font-size: 32rpx;
-		color: #333333;
-		text-align: center;
-		padding: 32rpx 0;
-		border-bottom: 1rpx solid #E7E7E7;
-
-	}
-
-	.captcha-img {
-		//width: 100%;
-		width: 200rpx;
-		height: 106rpx;
-	}
-
-	.submitImgCode {
-		width: 526rpx;
-		height: 80rpx;
-		background: linear-gradient(263deg, #45FFD7 0%, #7FFFBD 100%);
-		border-radius: 60rpx 60rpx 60rpx 60rpx;
-		margin-top: 48rpx;
-
-		font-weight: 500;
-		font-size: 32rpx;
-		color: #1D2129;
-		text-align: center;
-		margin-bottom: 48rpx;
-	}
-
-	.text {
-		margin-top: 12rpx;
-		font-weight: 400;
-		font-size: 28rpx;
-		color: #86909C;
-		text-align: right;
-
-	}
-
-	.u-input {}
-}
-
 .join {
-	height: 105vh;
-	overflow: auto;
-
-	background-color: #F7F8FA;
+	min-height: 100vh;
 
 	.banner {
 		width: 100%;
-		height: 304rpx;
+		height: 424rpx;
 
 		image {
 			width: 100%;
@@ -659,267 +333,122 @@ export default {
 	}
 
 	.top {
-		margin: 0 32rpx;
-		position: relative;
+		width: 100%;
+		height: 100px;
 		padding: 32rpx;
 		box-sizing: border-box;
-		margin-top: -42rpx;
-		background-color: #FFF;
-		border-radius: 16rpx;
-
-		.checkBox {
-			padding: 24rpx;
-			width: 622rpx;
-			height: 134rpx;
-			border-radius: 8rpx 8rpx 8rpx 8rpx;
-			border: 1rpx solid #111111;
-			margin-bottom: 32rpx;
-
-			//color: #FF7D00;
-			.checkStatus {
-				font-weight: 500;
-				font-size: 30rpx;
-
-				text-align: left;
-
-			}
-
-			.text {
-				margin-top: 8rpx;
-				font-weight: 400;
-				font-size: 26rpx;
-				text-align: left;
-			}
-		}
-
-		.title {
-			font-weight: 500;
-			font-size: 36rpx;
-			color: #1D2129;
-			line-height: 36rpx;
-			position: relative;
-
-			.lineIcon {
-				position: absolute;
-				top: 10rpx;
-				width: 130rpx;
-				height: 24rpx;
-
-				image {
-					width: 100%;
-					height: 100%;
-				}
-			}
-		}
+		margin-top: 44rpx;
+		background-color: #FDFDFD;
 
 		.content {
 			width: 100%;
 			height: auto;
+			padding: 24rpx 32rpx;
 			box-sizing: border-box;
+			background: #FFFFFF;
 			box-shadow: 0 4rpx 12rpx 0 rgba(209, 168, 88, 0.1);
 			border-radius: 24rpx;
 
-			.input-box {
-				width: 622rpx;
-				height: 110rpx;
-				background: #ffffff00 !important;
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				border-bottom: 1rpx solid #E7E7E7;
-
-
-				.u-input {
-					background: #ffffff00 !important;
-				}
-
-				.label {
-					font-weight: 400;
-					font-size: 30rpx;
-					color: #1D2129;
-					text-align: left;
-				}
-
-				.input-item {
-					flex: 1;
-				}
-
-				.captcha-img {
-					width: 30rpx;
-					height: 30rpx;
-				}
-
-				::v-deep .uni-input-input {
-					font-weight: 400;
-					font-size: 30rpx;
-					color: #4E5969;
-					text-align: right;
-				}
-
-				.code-input {
-					margin-right: 42rpx;
-					border: 1px solid re;
-
-				}
+			.page-section {
+				width: 100%;
+				font-size: 28rpx;
+				margin-bottom: 32rpx;
 
-				.code-btn {
-					font-weight: 400;
-					font-size: 30rpx;
-					color: #19D29B;
-					text-align: center;
-					font-style: normal;
-					text-transform: none;
+				.name {
+					width: 31%;
+					margin-bottom: 20rpx;
 				}
 
-				// .name {
-				// 	width: 31%;
-				// 	margin-bottom: 20rpx;
-				// }
-
 				.inp {
 					width: 100%;
 				}
 
-				.select {
+				.select{
 					width: 100%;
-
+					padding: 12rpx 18rpx;
+					border-radius: 8rpx;
+					border: 2rpx solid #dadbde;
 					display: flex;
 					align-items: center;
-					justify-content: flex-end;
+					justify-content: space-between;
 
-					.text {
-						font-weight: 400;
+					text {
+						width: auto;
+						color: #333333;
 						font-size: 30rpx;
-						text-align: right;
 					}
 
 					img {
-						width: 22rpx;
-						height: 22rpx;
+						width: 24rpx;
+						height: 24rpx;
 					}
 				}
-			}
-
-			.page-section {
-				width: 100%;
-				font-size: 28rpx;
-				height: 106rpx;
-				display: flex;
-				align-items: center;
-
-
-
-
-			}
-
-			.service {
-				/* 普通中文/英文自动换行 */
-				word-wrap: break-word;
-				word-break: break-all;
-				white-space: normal;
-
-				.u-radio-group--row {
-					display: flex;
-					justify-content: flex-end;
-					flex-wrap: wrap;
-					/* 放不下自动换行 */
-					gap: 10px;
-					/* 间距,可选 */
-				}
+				
+				
+			}.code-box {
 
-				.u-radio {
-					/* 减去3个gap宽度,均分4份 */
-					// width: calc((100% - 2 * 12px) / 3);
-					// box-sizing: border-box;
-				}
-
-				::v-deep .u-radio__text {
-					font-weight: 400;
-					font-size: 30rpx;
-					color: #f10000;
-					text-align: right;
-				}
-			}
-
-			.code-box {
-
-				.code-btn {
-					width: 200rpx;
-					text-align: right;
-					font-size: 28rpx;
-					color: #2DB1A8;
-					line-height: 88rpx;
+					.code-btn {
+						width: 200rpx;
+						text-align: right;
+						font-size: 28rpx;
+						color: #2DB1A8;
+						line-height: 88rpx;
 
-					&.disabled {
+						&.disabled {
 						color: #2DB1A8;
+						}
 					}
 				}
-			}
+			.input-box {
+					width:100%;
+					height: 92rpx;
+					background: #FFFFFF;
+					border-radius: 24rpx;
+					margin: 46rpx auto;
+					display: flex;
+					align-items: center;
 
+					.input-item {
+						width: 100rpx;
+					}
+				}
 
 			.updata {
-				margin-top: 32rpx;
+				margin-top: 20rpx;
 				width: 100%;
-
-				.name {
-					font-weight: 400;
-					font-size: 30rpx;
-					color: #1D2129;
-					text-align: left;
-				}
+				font-size: 28rpx;
 
 				.images {
-					border-radius: 12rpx 12rpx 12rpx 12rpx;
-					margin-top: 16rpx;
+					margin-top: 20rpx;
 				}
-
-				.title {
-					font-weight: 400;
-					font-size: 26rpx;
-					color: #86909C;
-					text-align: justified;
-					overflow: hidden;
-					// text-overflow: ellipsis;
-					white-space: nowrap;
+				.title{
+					font-size: 22rpx;
+					color: #999999;
 				}
 			}
 
 		}
 
-
-	}
-
-	.submits {
-		padding: 24rpx 48rpx;
-		background-color: #fff;
-		position: fixed;
-		bottom: 0;
-		width: 100%;
-		margin-top: 28rpx;
-
-		text {
-			font-weight: 400;
-			font-size: 22rpx;
-			color: #86909C;
-
-			display: block;
+		.submits {
 			width: 100%;
-			margin-top: 10rpx;
-			text-align: center;
-		}
-
-		.btn {
-			width: 654rpx;
-			height: 88rpx;
-			background: #333335;
-			border-radius: 60rpx 60rpx 60rpx 60rpx;
-			font-weight: 500;
-			font-size: 32rpx;
-			color: #FFFFFF;
-			text-align: center;
-			display: flex;
-			justify-content: center;
-			align-items: center;
+			margin-top: 28rpx;
+			text{
+				display: block;
+				width: 100%;
+				text-align: center;
+				font-size: 22rpx;
+				color: #999999;
+			}
+			.btn {
+				width: 100%;
+				height: 84rpx;
+				text-align: center;
+				background: linear-gradient(90deg, #BFA061 0%, #BD9961 100%);
+				border-radius: 14rpx;
+				margin: 16rpx auto;
+				line-height: 84rpx;
+				color: #ffffff;
+			}
 		}
 	}
 }

+ 107 - 122
src/pages/my/dynamic/add_dynamic.vue

@@ -2,63 +2,119 @@
   <view class="publish-container">
     <view class="content-body">
       <view class="text-area">
-        <u--textarea v-model="formData.title" placeholder="请输入标题..." maxLength="30" border="none"
-          height="20"></u--textarea>
+        <u--textarea
+          v-model="formData.title"
+          placeholder="请输入标题..."
+          maxLength="20"
+          border="none"
+          height="20"
+        ></u--textarea>
         <view class="line"></view>
       </view>
       <view class="content-area">
-        <u--textarea v-model="formData.content" placeholder="记录美好生活时刻..." maxLength="500" border="none" height="150"
-          count></u--textarea>
+        <u--textarea
+          v-model="formData.content"
+          placeholder="记录美好生活时刻..."
+          maxLength="300"
+          border="none"
+          height="150"
+          count
+        ></u--textarea>
       </view>
       <view class="media-area">
         <view v-if="formData.videoUrl">
-          <uni-icons class="icon iconfont icon-cuo" type="trash-filled" size="20" @tap="delectVideo"></uni-icons>
-          <video ref="myVideo" :src="formData.videoUrl" class="video-container" controls></video>
+          <uni-icons
+            class="icon iconfont icon-cuo"
+            type="trash-filled"
+            size="20"
+            @tap="delectVideo"
+          ></uni-icons>
+          <video
+            ref="myVideo"
+            :src="formData.videoUrl"
+            class="video-container"
+            controls
+          ></video>
         </view>
-        <clUpload v-else v-model="fileList" :action="uploadApi" :headers="headers" :count="maxCount" :listStyle="{
-          columnGap: '20rpx',
-          rowGap: '20rpx',
-          width: '130rpx',
-          radius: '12rpx',
-        }" :imageFormData="{
+        <clUpload
+          v-else
+          v-model="fileList"
+          :action="uploadApi"
+          :headers="headers"
+          :count="maxCount"
+          :listStyle="{
+            columnGap: '20rpx',
+            rowGap: '20rpx',
+            width: '130rpx',
+            radius: '12rpx',
+          }"
+          :imageFormData="{
             count: 9,
             size: 2,
-          }" :videoFromData="{
+          }"
+          :videoFromData="{
             count: 1,
             size: 50,
-          }" :maxVideo="1" :fileType="mediaType" addImg="/static/discover/ic_upload.png"
-          deleteImg="/static/discover/ic_delete.png" @onSuccess="onSuccess" @onMediaTypeSelect="selectMediaType"
-          @onError="onCancel"></clUpload>
+          }"
+          :maxVideo="1"
+          :fileType="mediaType"
+          addImg="/static/discover/ic_upload.png"
+          deleteImg="/static/discover/ic_delete.png"
+          @onSuccess="onSuccess"
+          @onMediaTypeSelect="selectMediaType"
+          @onError="onCancel"
+        ></clUpload>
       </view>
       <view class="tips">
-        <text v-if="fileList.length === 0">支持上传图片(最多9张)或视频(1个)</text>
+        <text v-if="fileList.length === 0"
+          >支持上传图片(最多9张)或视频(1个)</text
+        >
       </view>
     </view>
     <view class="location-cell">
       <u-cell-group :border="false">
-        <u-cell title="地点" :value="formData.location || '请选择'" isLink :border="true" @click="selectLocation">
+        <u-cell
+          title="发布地"
+          :value="formData.location || '请选择'"
+          isLink
+          :border="true"
+          @click="selectLocation"
+        >
         </u-cell>
-        <!-- <u-cell
+        <u-cell
           title="可见范围"
           :value="formData.visibleRange || '请选择'"
           isLink
           :border="true"
           @click="showScopePicker = true"
         >
-        </u-cell> -->
+        </u-cell>
       </u-cell-group>
     </view>
     <view class="footer-bar">
-      <u-button text="存为草稿" shape="circle" customStyle="height: 38px; font-size: 18px; margin-right: 20rpx;"
-        @click="cancel"></u-button>
-      <u-button text="发布动态" color="linear-gradient(80deg,#02f6c1 0%,#07cdc4 100%)" shape="circle"
-        customStyle="height: 38px; font-size: 18px;" @click="submit('publish')"></u-button>
+      <u-button
+        text="返回"
+        shape="circle"
+        customStyle="height: 38px; font-size: 18px; margin-right: 20rpx;"
+        @click="cancel"
+      ></u-button>
+      <u-button
+        text="立即发布"
+        color="linear-gradient(80deg,#02f6c1 0%,#07cdc4 100%)"
+        shape="circle"
+        customStyle="height: 38px; font-size: 18px;"
+        @click="submit('publish')"
+      ></u-button>
     </view>
     <!-- 可见范围 -->
-    <u-picker title="请选择" :show="showScopePicker" :columns="scopeList" confirmColor="#1ecbc3" @confirm="confirmScope"
-      @cancel="showScopePicker = false"></u-picker>
-
-
+    <u-picker
+      title="请选择"
+      :show="showScopePicker"
+      :columns="scopeList"
+      confirmColor="#1ecbc3"
+      @confirm="confirmScope"
+      @cancel="showScopePicker = false"
+    ></u-picker>
     <!-- 确认返回 -->
     <u-popup :show="popShow" mode="center" :round="12">
       <view class="popup-content">
@@ -67,31 +123,19 @@
           <text>是否存入草稿箱?</text>
         </view>
         <view class="popup-btn">
-          <u-button text="不保存" shape="circle"
+          <u-button
+            text="不保存"
+            shape="circle"
             customStyle="width: 225rpx; height: 68rpx; font-size: 28px; color: #1BD6CD; border-color: #1BD6CD;"
-            @click="popClose"></u-button>
-          <u-button text="保存" color="linear-gradient( 90deg, #1AD7CE 0%, #21C9C1 100%)" shape="circle"
-            customStyle="width: 225rpx; height: 68rpx; font-size: 28px;" @click="save('draft')"></u-button>
-        </view>
-      </view>
-    </u-popup>
-    <!-- 草稿提示弹窗 -->
-    <u-popup :show="popShow1" mode="center" class='popShow1' :round="12">
-      <view class="popup-content1">
-        <view class="popup-title">您有一篇未发布的草稿,要继续写吗?</view>
-
-        <view class="popup-desc">
-          <text>简单描述《春秋笔法》在的应用场景</text>
-        </view>
-        <view class="popup-btn1">
-          <u-button text="继续编辑" shape="circle"
-            customStyle=" height: 68rpx; font-size: 28px; color: #1BD6CD; border-color: #1BD6CD;"
-            @click="goOnFun"></u-button>
-          <u-button text="重新写" shape="circle"
-            customStyle=" height: 68rpx;margin:30rpx 0; font-size: 28px; color: #1BD6CD; border-color: #1BD6CD;"
-            @click="popClose"></u-button>
-          <u-button text="删除草稿" color="linear-gradient( 90deg, #1AD7CE 0%, #21C9C1 100%)" shape="circle"
-            customStyle="height: 68rpx; font-size: 28px;" @click="deleteFun"></u-button>
+            @click="popClose"
+          ></u-button>
+          <u-button
+            text="保存"
+            color="linear-gradient( 90deg, #1AD7CE 0%, #21C9C1 100%)"
+            shape="circle"
+            customStyle="width: 225rpx; height: 68rpx; font-size: 28px;"
+            @click="save('draft')"
+          ></u-button>
         </view>
       </view>
     </u-popup>
@@ -106,7 +150,6 @@ export default {
   components: { clUpload },
   data() {
     return {
-      popShow1: true,
       loading: false,
       showScopePicker: false,
       popShow: false,
@@ -284,17 +327,13 @@ export default {
         this.popShow = true
       }
     },
-    //继续写
-    goOnFun(){
-
-    },
-    //重新写
     popClose() {
       this.popShow = false
+      uni.navigateBack()
     },
-    //删除草稿
-    deleteFun(){
-      uni.showToast({ title: '草稿已删除', icon: 'none' })
+    save() {
+      this.popShow = false
+      this.submit('draft')
     },
     async submit(type) {
       if (
@@ -303,8 +342,8 @@ export default {
           !this.formData.content ||
           !this.formData.location ||
           (this.mediaType == 1 && this.fileList.length === 0) ||
-          (this.mediaType == 2 && !this.formData.videoUrl)
-        )//!this.formData.visibleRange
+          (this.mediaType == 2 && !this.formData.videoUrl) ||
+          !this.formData.visibleRange)
       ) {
         uni.showToast({ title: '请完善动态内容', icon: 'none' })
         return
@@ -313,10 +352,10 @@ export default {
           uni.showToast({ title: '动态标题不能为空', icon: 'none' })
           return
         }
-        // if (!this.formData.visibleRange) {
-        //   uni.showToast({ title: '请选择可见范围', icon: 'none' })
-        //   return
-        // }
+        if (!this.formData.visibleRange) {
+          uni.showToast({ title: '请选择可见范围', icon: 'none' })
+          return
+        }
       }
 
       // 检查是否有文件正在上传
@@ -349,7 +388,7 @@ export default {
         // 接口调用成功
         if (res.data.code == 200) {
           uni.showToast({
-            title: '动态已发布',
+            title: type === 'publish' ? '发布成功,等待审核' : '保存草稿成功',
             icon: 'none',
           })
 
@@ -456,16 +495,13 @@ export default {
   .u-line {
     border: none !important;
   }
-
   .u-button__text {
     font-weight: 500;
     font-size: 32rpx;
   }
-
   .u-upload__wrap__preview {
     border-radius: 12rpx;
   }
-
   .cl-updata {
     .file-list .add-image {
       border: none;
@@ -474,10 +510,8 @@ export default {
         width: 100%;
       }
     }
-
     .file-list-row .remove {
       background-color: transparent !important;
-
       .image[data-v-0b7ccd9e] {
         width: 24rpx;
         height: 24rpx;
@@ -492,7 +526,6 @@ export default {
 .popup-content {
   width: 630rpx;
   height: 380rpx;
-
   .popup-title {
     display: flex;
     justify-content: center;
@@ -504,7 +537,6 @@ export default {
     background: #e6f8f7;
     border-radius: 24rpx 24rpx 0rpx 0rpx;
   }
-
   .popup-desc {
     height: 168rpx;
     font-weight: 500;
@@ -514,7 +546,6 @@ export default {
     justify-content: center;
     align-items: center;
   }
-
   .popup-btn {
     display: flex;
     justify-content: space-between;
@@ -522,56 +553,10 @@ export default {
     height: 120rpx;
     padding: 24rpx 60rpx;
     border-top: 2rpx solid #eeeeee;
-
     ::v-deep .u-botton {
       width: 225rpx;
       height: 68rpx;
     }
   }
 }
-
-::v-deep .popShow1 {
-  .u-transition {
-    background-color: rgba(0, 0, 0, 0.6) !important;
-  }
-}
-
-.popup-content1 {
-
-  width: 630rpx;
-
-  //height: 380rpx;
-  .popup-title {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    font-weight: bold;
-    font-size: 32rpx;
-    color: #000000;
-    height: 92rpx;
-    background: #e6f8f7;
-    border-radius: 24rpx 24rpx 0rpx 0rpx;
-  }
-
-  .popup-desc {
-    height: 168rpx;
-    font-weight: 500;
-    font-size: 28rpx;
-    color: #333333;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-  }
-
-  .popup-btn1 {
-
-    //height: 120rpx;
-    //padding: 24rpx 60rpx;
-    //border-top: 2rpx solid #eeeeee;
-    ::v-deep .u-botton {
-      width: 100%;
-      height: 68rpx;
-    }
-  }
-}
 </style>

+ 83 - 173
src/pages/my/dynamic/components/my_list.vue

@@ -1,54 +1,41 @@
 <template>
   <view class="list-box" v-if="dataList && dataList.length > 0">
-    <view class="item" v-for="(item, index) in dataList" :key="index" @click="goDetails(item)">
-
-      <view class="item-content" @click.stop="goToDateil">
-        <view style="display: flex;justify-content: space-between;">
-          <view>
-            <view class="title">{{ item.title }}</view>
-
-          </view>
-          <view v-if="item.auditStatus == 2" class="diamond-count">
-            <text>已读{{ item.viewCount }}</text>
+    <view
+      class="item"
+      v-for="(item, index) in dataList"
+      :key="index"
+      @click="goDetails(item)"
+    >
+      <view class="item-image">
+        <image :src="item.coverUrl" mode="aspectFill"></image>
+      </view>
+      <view class="item-content">
+        <view class="item-title">
+          <text>{{ item.title }}</text>
+          <view
+            v-if="type != 'merchant'"
+            :class="{
+              'service-status': item.auditStatus != 1,
+              'reserve-status': item.auditStatus == 1,
+            }"
+            >{{ item.auditStatus == 2 ? '已审核' : '审核中' }}</view
+          >
+        </view>
+        <view class="item-service">
+          <view class="service-info">
+            <text class="service-time">{{ item.publishTime }}</text>
           </view>
-          <view class="reserve-status" v-if="item.auditStatus == 1">审核中</view>
-
-          <view class="moreClass" @click.stop="editFun(item.auditStatus)">
-
+          <view class="diamond-count">
+            <image
+              src="/static/discover/icon_eye.png"
+              mode=""
+              class="eye-icon"
+            />
+            <text>{{ item.viewCount }}</text>
           </view>
         </view>
-        <view class="service-info">
-          <text class="service-time">{{ item.publishTime }}发布</text>
-        </view>
-        <view class="contentText">{{ item.content }}</view>
-        <view class="item-image">
-          <image :src="item.coverUrl" mode="aspectFill"></image>
-        </view>
-
-
       </view>
     </view>
-
-    <!-- 底部操作菜单 -->
-    <u-action-sheet :show="sheetShow" :actions="actionList" cancel-text="取消" @select="selectItem" safe-area-bottom
-      @close="closeSheetShow" />
-
-    <u-popup :show="showModal" mode="center" border-radius="16rpx" :mask-close-able="false">
-      <view class="modal-wrap">
-        <!-- 标题居中 -->
-        <view class="title">提示</view>
-        <!-- 正文 -->
-        <view class="content">
-          确定要删除该动态吗
-        </view>
-        <!-- 底部双按钮(必显示) -->
-        <view class="btn-box">
-          <view class="btn left" @click="cancel">取消</view>
-          <view class="btn right" @click="sure">确定</view>
-        </view>
-      </view>
-    </u-popup>
-
   </view>
 </template>
 
@@ -64,77 +51,9 @@ export default {
       type: Array,
       default: () => [],
     },
-  },
-  data() {
-    return {
-      showModal: false,
-      sheetShow: false,
-      actionList: [
-        { name: '编辑' },
-        { name: '删除', color: '#f56c6c' } // 删除红色字体
-      ]
-    }
-
-  },
-  mounted() {
-
   },
   methods: {
-    goToDateil(){
-      uni.navigateTo({
-          url: `/pages/my/dynamic/dynamicDetail`,
-        })
-    },
-    sure() {
-      this.showModal = false
-      uni.showToast({
-        title: '动态删除成功',
-        icon: 'none'
-      })
-
-    },
-    //取消
-    cancel() {
-      this.showModal = false
-    },
-    closeSheetShow() {
-      this.sheetShow = false
-      uni.showTabBar()
-    },
-    selectItem(item) {
-      console.log('8888')
-      this.sheetShow = false
-      uni.showTabBar()
-      if (item.name === '编辑') {
-        let str = uni.$u.queryParams({
-          item: item,
-        })
-        uni.navigateTo({
-          url: `/pages/my/dynamic/add_dynamic${str}`,
-        })
-      } else if (item.name === '删除') {
-
-        if (this.currentAuditStatus == 1) {
-          uni.showToast({
-            title: '审核中的动态不支持删除',
-            icon: 'none'
-          })
-          return
-        }
-        this.showModal = true
-      }
-
-    },
-    editFun(auditStatus) {
-      this.currentAuditStatus = auditStatus
-      this.sheetShow = true
-      //隐藏tabbar
-      uni.hideTabBar()
-      //uni.showTabBar()
-
-    },
     goDetails(item) {
-      return
       let str = uni.$u.queryParams({
         momentId: item.id,
       })
@@ -148,14 +67,14 @@ export default {
 
 <style scoped lang="scss">
 .list-box {
-  //display: flex;
+  display: flex;
   flex-wrap: wrap;
   justify-content: space-between;
   padding: 26rpx;
   font-family: PingFang SC, PingFang SC;
 
   .item {
-    //width: calc(50% - 14rpx);
+    width: calc(50% - 14rpx);
     margin-bottom: 28rpx;
     box-sizing: border-box;
     background: #ffffff;
@@ -163,40 +82,8 @@ export default {
     border-radius: 12rpx;
     overflow: hidden;
 
-    .contentText {
-      font-size: 28rpx;
-      overflow: hidden;
-      display: -webkit-box;
-      -webkit-line-clamp: 2;
-      /* 控制行数:2行 */
-      -webkit-box-orient: vertical;
-    }
-
-    .title {
-      font-size: 28rpx;
-      width: 520rpx;
-      border: 1px solid red;
-      white-space: nowrap;
-      /* 禁止换行 单行 */
-      overflow: hidden;
-      /* 超出隐藏 */
-      text-overflow: ellipsis;
-      /* 末尾... */
-    }
-
-    .service-info {
-      display: flex;
-      flex: 1;
-
-      .service-time {
-        display: block;
-        font-size: 24rpx;
-        color: #999999;
-      }
-    }
-
     .item-image {
-      width: 200rpx;
+      width: 100%;
       height: 200rpx;
       background-color: #f0f0f0;
       display: flex;
@@ -211,40 +98,63 @@ export default {
       }
     }
 
-    .service-status {
-      font-size: 24rpx;
-      color: #03c8be;
-    }
+    .item-content {
+      padding: 20rpx;
 
-    .reserve-status {
-      font-size: 24rpx;
-      color: #f16336;
-    }
+      .item-title {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-bottom: 16rpx;
 
-    .diamond-count {
-      display: flex;
-      align-items: center;
+        text:first-child {
+          font-size: 28rpx;
+          font-weight: bold;
+          color: #333;
+        }
 
-      image {
-        width: 22rpx;
-        height: 18rpx;
-        margin-right: 8rpx;
-      }
+        .service-status {
+          font-size: 24rpx;
+          color: #03c8be;
+        }
 
-      text {
-        font-size: 24rpx;
-        color: #999999;
+        .reserve-status {
+          font-size: 24rpx;
+          color: #f16336;
+        }
       }
-    }
 
-    .moreClass {
-      background-color: #03c8be;
-      height: 40rpx;
-      width: 40rpx;
-      border-radius: 50%;
-    }
+      .item-service {
+        display: flex;
 
+        .service-info {
+          display: flex;
+          flex: 1;
 
+          .service-time {
+            display: block;
+            font-size: 24rpx;
+            color: #999999;
+          }
+        }
+
+        .diamond-count {
+          display: flex;
+          align-items: center;
+
+          image {
+            width: 22rpx;
+            height: 18rpx;
+            margin-right: 8rpx;
+          }
+
+          text {
+            font-size: 24rpx;
+            color: #999999;
+          }
+        }
+      }
+    }
   }
 }
 </style>

+ 0 - 120
src/pages/my/dynamic/dynamicDetail.vue

@@ -1,120 +0,0 @@
-<template>
-  <view class="dynamic-detail">
-    <!-- 滚动容器 -->
-    <scroll-view scroll-y class="scroll-wrap">
-      <view class="page-content">
-        <!-- 审核驳回区域 -->
-        <view class="reject-card">
-          <view class="reject-head">
-            <u-icon name="close-circle" size="38" color="#999"></u-icon>
-            <text class="reject-title">审核驳回</text>
-            <text>审核中</text>
-          </view>
-          <view class="reject-text">
-            审核结果将会在X-X个工作日通知您
-          </view>
-        </view>
-
-        <!-- 文章标题 -->
-        <view class="article-title">
-          业财对账总对不平?先搞清楚你对的是「业务账」还是「资金账」
-        </view>
-
-        <!-- 发布信息 -->
-        <view class="info-bar">
-          <text>娜娜</text>
-          <text>2025.12.25 16:23:25</text>
-          <text>252已读</text>
-        </view>
-
-        <!-- 正文内容 -->
-        <view class="article-body">
-          「业务账」是什么:业务账是从业务视角算出来的「该收多少、该付多少」,订单、支付、退款、手续费、调账,按业务规则轧差后的结果。例如:某商户今日订单100万、退款5万、手续费2万,业务上净应收93万。数据来源是业务系统:交易、清结算、账务等,不涉及「银行/渠道实际到没到账」。「资金账」是什么:资金账是从资金视角看到的「实际到账多少、实际划出多少」,渠道给我们的到账、我们给商户的划付、银行流水。例如:某日渠道实际到账92万、我们实际划给商户90万,资金上就是这两笔数。数据来源是渠道对账文件、银行流水、划付记录,是「钱真的动了」的那部分。
-        </view>
-
-        <!-- 图片/视频占位 -->
-        <view class="media-placeholder">
-          <text>视频/图片</text>
-        </view>
-      </view>
-    </scroll-view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'DynamicDetail',
-  data() {
-    return {}
-  }
-}
-</script>
-
-<style lang="scss"  scoped>
-/* 滚动区域高度:扣除导航栏高度 */
-.scroll-wrap {
-  height: calc(100vh - var(--u-navbar-height));
-}
-/* 页面整体内边距 */
-.page-content {
-  padding: 32rpx;
-}
-/* 驳回卡片样式 */
-.reject-card {
-  border: 1rpx solid #eeeeee;
-  border-radius: 12rpx;
-  padding: 28rpx;
-  margin-bottom: 36rpx;
-}
-.reject-head {
-  display: flex;
-  align-items: center;
-  gap: 18rpx;
-  margin-bottom: 16rpx;
-}
-.reject-title {
-  font-size: 32rpx;
-  font-weight: 500;
-  color: #333333;
-}
-.reject-text {
-  font-size: 28rpx;
-  color: #666666;
-  line-height: 1.6;
-}
-/* 文章标题 */
-.article-title {
-  font-size: 34rpx;
-  font-weight: 500;
-  line-height: 1.5;
-  color: #222;
-  margin-bottom: 22rpx;
-}
-/* 发布信息栏 */
-.info-bar {
-  display: flex;
-  gap: 32rpx;
-  font-size: 26rpx;
-  color: #888888;
-  margin-bottom: 32rpx;
-}
-/* 正文 */
-.article-body {
-  font-size: 30rpx;
-  color: #333333;
-  line-height: 1.7;
-  margin-bottom: 42rpx;
-}
-/* 媒体占位框 */
-.media-placeholder {
-  width: 300rpx;
-  height: 300rpx;
-  background-color: #eeeeee;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  font-size: 30rpx;
-  color: #666666;
-}
-</style>
-

+ 19 - 31
src/pages/my/dynamic/index.vue

@@ -8,12 +8,30 @@
       }"
       @query="queryList"
     >
+      <template #top>
+        <view class="tab-box">
+          <view
+            v-for="(item, index) in tabList"
+            :key="index"
+            :class="{ item: true, active: current === index }"
+            @click="onTabChange(index)"
+          >
+            {{ item.name }}
+          </view>
+        </view>
+      </template>
 
       <!-- 我的动态 -->
       <my-dynamic-list
+        v-if="current === 0"
         :data-list="dynamicList"
       ></my-dynamic-list>
 
+      <!-- 草稿动态 -->
+      <draft-dynamic-list
+        v-if="current === 1"
+        :data-list="dynamicList"
+      ></draft-dynamic-list>
 
       <template v-slot:empty>
         <u-empty
@@ -69,7 +87,6 @@ export default {
   },
   onLoad() {
     this.isLogin = !!uni.getStorageSync('wx_copenid')
-    console.log(this.isLogin,'this.isLogin')
   },
   onShow() {
     this.queryList(1, 10)
@@ -80,7 +97,6 @@ export default {
         pageNum: pageNo,
         pageSize: pageSize,
       }
-      //this.current=0
       const api = this.current == 0 ? myDynamicList : draftDynamicList
       api(params).then(res => {
         if (
@@ -99,34 +115,6 @@ export default {
           this.$refs.paging.complete([])
         }
       })
-
-      //  this. dynamicList= [
-      //   {title:'哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈lalallalaal哈',
-      //   auditStatus:2,
-      //   publishTime:'2023.12.25 18:25',
-      //   viewCount:'99999',
-      //   coverUrl:'/static/login/closeEye.png',
-      //   content:'偶滴啊发撒积分非机动撒JFK的拉萨偶滴啊发撒积分非机动撒JFK的拉萨佛海飞机滴哦撒娇放大 地方到南方粉底哦撒飞机殴打佛教道教佛海飞机滴哦撒娇放大 地方到南方粉底哦撒飞机殴打佛教道教佛'
-
-
-      //   },
-      //   {title:'444',
-      //   auditStatus:1,
-      //   publishTime:'88962333',
-      //   viewCount:'99999'
-
-
-      //   },
-      //   {title:'444',
-      //   auditStatus:1,
-      //   publishTime:'88962333',
-      //   viewCount:'99999'
-
-
-      //   },
-
-      // ]
-
     },
     onTabChange(index) {
       this.current = index
@@ -194,7 +182,7 @@ export default {
 
   .add-btn {
     position: fixed;
-    bottom: 150rpx;
+    bottom: 50rpx;
     right: 40rpx;
     display: flex;
     justify-content: center;

+ 2 - 2
src/pages/my/my.vue

@@ -332,9 +332,9 @@ export default {
       });
     },
 		onLogin() {
-			//if (this.$utils.checkLogin()) return;
+			if (this.$utils.checkLogin()) return;
 			uni.navigateTo({
-				url: '/setting/myNew/phone'
+				url: '/pages/login/wxLogin'
 			})
 		},
 		// 退出登录

+ 18 - 110
src/setting/myNew/forgetPassword.vue

@@ -1,30 +1,24 @@
 <script>
-import { resetPassword, sendMsg,captchaImage } from '@/api/newLogin.js'
+import { resetPassword, sendMsg } from '@/api/newLogin.js'
 export default {
   data() {
     return {
-      phone: '18434361582', phoneMsg: '',
+      phone: '', code: '',
       countdown: 60,
       // 整体8-20位,只能大小写+数字
       regPwd: /^[A-Za-z0-9]{8,20}$/,
       isPwdHide: true,
       isBinding: false,
-      timer: null,
       password: '',
-      isSendingCode: false,
-      showCaptcha: false,
-      startCountdownFlag: false,
-      uuid:'',
-      imgCode:''
     }
   },
   computed: {
     canGetCode() {
       return !this.isSendingCode && this.countdown === 60
     },
-    // canBind() {
-    //   return this.code && this.code.length === 6 && !this.isBinding
-    // }
+    canBind() {
+      return this.code && this.code.length === 6 && !this.isBinding
+    }
   },
   onLoad(options) {
     if (options.phone) {
@@ -53,54 +47,6 @@ export default {
       const reg = /^1[3-9]\d{9}$/
       return reg.test(phone)
     },
-      //图形验证码提交
-    submitImgCode() {
-      if (!this.imgCode) {
-        uni.showToast({
-          title: '请输入验证码',
-          icon: 'none'
-        })
-        return
-      }
-      sendMsg33333({ uuid:this.uuid,imgCode:this.imgCode}).then(res => {
-        console.log(res)
-        if (res.data.code == 200) {
-          this.showCaptcha = false
-            this.getCode()
-        }
-        
-
-      })
-
-    },
-    //重新获取验证码
-		agginGetCode() {
-			if (!this.phone) {
-				uni.showToast({
-					title: '请输入手机号',
-					icon: 'none'
-				})
-				return
-			}
-
-			if (!/^1[3456789]\d{9}$/.test(this.phone)) {
-				uni.showToast({
-					title: '手机号不正确',
-					icon: 'none'
-				})
-				return
-			}
-			captchaImage().then(res=>{
-				console.log(res)
-				if (res.data.code == 200) {
-					this.uuid=res.data.uuid
-				}
-			})
-      this.imgCode=''
-			this.showCaptcha = true
-
-		},
-    //获取验证码
     getCode() {
       if (this.isSendingCode || this.countdown < 60) return
 
@@ -121,13 +67,11 @@ export default {
 
     },
     startCountdown() {
-      this.startCountdownFlag = true
       this.countdown = 60
       this.timer = setInterval(() => {
         this.countdown--
         if (this.countdown <= 0) {
           clearInterval(this.timer)
-          this.startCountdownFlag = false
           this.countdown = 60
           this.timer = null
         }
@@ -141,7 +85,7 @@ export default {
 
     // },
     submitFun() {
-      if (!this.phoneMsg) {
+      if (!this.code) {
         uni.showToast({
           title: '请输入验证码',
           icon: 'none'
@@ -170,7 +114,7 @@ export default {
         userType: '2',
         phone: this.phone,
         codeSwitch: 'false',//是否开启验证码登录 true-是 false-否
-        phoneMsg: this.phoneMsg,
+        phoneMsg: this.code,
         passWord: this.password
       }).then(res => {
         if (res.data.code == 200) {
@@ -245,8 +189,8 @@ export default {
       </view>
 
       <view class="input-box">
-        <u-input v-model="phoneMsg" type="number" border="none" maxlength="6" placeholder=""
-          placeholder-style="color: #999" class="input-item">
+        <u-input v-model="code" type="number" border="none" maxlength="6" placeholder="" placeholder-style="color: #999"
+          class="input-item">
           <template slot="prefix">
             <view class="label">
               <text>验证码</text>
@@ -254,13 +198,8 @@ export default {
           </template>
         </u-input>
         <view class="code-btn" :class="{ disabled: !canGetCode }" @click="getCode">
-          <text v-if="countdown === 60" @click="getCode">发送验证码</text>
-          <view v-else>
-            <text v-if="startCountdownFlag">{{ countdown }}s</text>
-            <text @click="agginGetCode">重新获取</text>
-          </view>
-          <!-- <text v-if="countdown === 60">发送验证码</text>
-          <text v-else>{{ countdown }}s 后重新获取</text> -->
+          <text v-if="countdown === 60">获取验证码</text>
+          <text v-else>{{ countdown }}s 后重新获取</text>
         </view>
       </view>
       <view class="input-box">
@@ -273,10 +212,7 @@ export default {
             </view>
           </template>
           <template #suffix>
-            <image v-if="isPwdHide" src="/static/login/closeEye.png" @click="isPwdHide = !isPwdHide"
-              class="captcha-img"></image>
-            <image v-if="!isPwdHide" src="/static/login/openEye.png" @click="isPwdHide = !isPwdHide"
-              class="captcha-img"></image>
+            <image src="/static/login/closeEye.png" @click="isPwdHide = !isPwdHide" class="captcha-img"></image>
             <!-- <u-icon :name="isPwdHide ? 'eye-off' : 'eye'" @click="isPwdHide = !isPwdHide" size="32rpx" color="#999" /> -->
           </template>
         </u-input>
@@ -287,32 +223,6 @@ export default {
     </view>
 
 
-    <!-- 图形验证码弹窗 -->
-    <u-popup :show="showCaptcha" mode="center" border-radius="12">
-      <view class="captcha-box">
-        <view class="captcha-title">
-          <view>请输入下方图形验证码</view>
-          <u-icon custom-style="position: relative;left:90rpx ;" name="close" color="#C9CDD4" size="20"
-            @click="showCaptcha = false"></u-icon>
-        </view>
-        <view style="padding: 0 48rpx;margin-top: 48rpx;">
-          <view style="display: flex;justify-content: space-between;height: 106rpx;border-bottom: 1rpx solid #E7E7E7;">
-
-            <!-- 验证码输入框,唤起全字符键盘 -->
-            <u-input v-model="imgCode" placeholder="请输入图形验证码" :focus="showCaptcha" type="text" maxlength="4"
-              border="none" placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;"></u-input>
-            <!-- 图形验证码图片,点击刷新 -->
-            <image :src="captchaImg" @click="refreshCaptcha" class="captcha-img"></image>
-          </view>
-          <view class="text" @click="submitImgCode">看不清? 换一张</view>
-          <u-button class="submitImgCode" @click="submitImgCode" block>确定</u-button>
-
-        </view>
-      </view>
-    </u-popup>
-
-
-
 
   </view>
 </template>
@@ -376,13 +286,12 @@ export default {
 .input-box {
   width: 622rpx;
   height: 110rpx;
-  background: #ffffff00 !important;
+  background: #ffffff00!important;
   display: flex;
   align-items: center;
   border-bottom: 1rpx solid #E7E7E7;
-
-  .u-input {
-    background: #ffffff00 !important;
+  .u-input{
+    background: #ffffff00!important;
   }
 
   .label {
@@ -397,8 +306,7 @@ export default {
   .input-item {
     flex: 1;
   }
-
-  .captcha-img {
+  .captcha-img{
     width: 30rpx;
     height: 30rpx;
   }
@@ -418,13 +326,13 @@ export default {
   ::v-deep .u-button {
     width: 622rpx;
     height: 88rpx;
-    background: #333335;
+    background: linear-gradient(263deg, #45FFD7 0%, #7FFFBD 100%);
     border-radius: 60rpx 60rpx 60rpx 60rpx;
     border: none;
 
     font-weight: 500;
     font-size: 32rpx;
-    color: #fff;
+    color: #1D2129;
     text-align: center;
   }
 

+ 21 - 21
src/setting/myNew/phone.vue

@@ -5,6 +5,7 @@ export default {
     return {
       phone: '',
       password: '',
+      code: '',
       countdown: 60,
       timer: null,
       isSendingCode: false,
@@ -13,7 +14,7 @@ export default {
       isPasswordLogin: true,
       useCodeLogin: false,
 
-      showCaptcha: false, // 弹窗显隐
+      showCaptcha: true, // 弹窗显隐
       imgCode: '',        // 用户填写的图形验证码
       captchaImg: '',     // 图形验证码图片地址
       captchaKey: ''      // 后端返回验证码标识
@@ -23,9 +24,9 @@ export default {
     canGetCode() {
       return this.phone && this.validatePhone(this.phone) && !this.isSendingCode && this.countdown === 60
     },
-    // canBind() {
-    //   return this.phone && this.validatePhone(this.phone) && this.code && this.code.length === 6 && !this.isBinding
-    // }
+    canBind() {
+      return this.phone && this.validatePhone(this.phone) && this.code && this.code.length === 6 && !this.isBinding
+    }
 
   },
   onShow() {
@@ -145,14 +146,11 @@ export default {
         })
         return
       }
-      sendMsg33333({ uuid:this.uuid,imgCode:this.imgCode}).then(res => {
+      sendMsg({ phone: this.phone }).then(res => {
         console.log(res)
-        if (res.data.code == 200) {
-            uni.navigateTo({
-            url: `/setting/myNew/useCodeLogin?phone=` + this.phone
-          })
-        }
-        
+        uni.navigateTo({
+          url: `/setting/myNew/useCodeLogin?phone=` + this.phone
+        })
 
       })
 
@@ -205,9 +203,8 @@ export default {
           :password="isPwdHide" maxlength="20" customClass="pwd-star" placeholder="请输入密码"
           placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;" class="input-item">
           <!-- <template #suffix>
-            <image v-if="isPwdHide" src="/static/login/closeEye.png" @click="isPwdHide = !isPwdHide" class="captcha-img"></image>
-            <image v-if="!isPwdHide" src="/static/login/openEye.png" @click="isPwdHide = !isPwdHide" class="captcha-img"></image>
-             </template> -->
+            <u-icon :name="isPwdHide ? 'eye-off' : 'eye'" @click="isPwdHide = !isPwdHide" size="32rpx" color="#999" />
+          </template> -->
         </u-input>
       </view>
       <view class="bind-btn">
@@ -224,6 +221,13 @@ export default {
 
 
 
+
+
+
+
+
+
+
     <!-- //myNew/forgetPassword -->
 
     <!-- 图形验证码弹窗 -->
@@ -243,7 +247,7 @@ export default {
             <!-- 图形验证码图片,点击刷新 -->
             <image :src="captchaImg" @click="refreshCaptcha" class="captcha-img"></image>
           </view>
-          <view class="text" @click="submitImgCode">看不清? 换一张</view>
+          <view class="text">看不清? 换一张</view>
           <u-button class="submitImgCode" @click="submitImgCode" block>确定</u-button>
 
         </view>
@@ -396,10 +400,6 @@ export default {
     font-size: 30rpx;
     color: #1D2129;
   }
-  .captcha-img{
-    width: 30rpx;
-    height: 30rpx;
-  }
 }
 
 .code-box {
@@ -426,13 +426,13 @@ export default {
   ::v-deep .u-button {
     width: 622rpx;
     height: 88rpx;
-    background:  #333335;
+    background: linear-gradient(263deg, #45FFD7 0%, #7FFFBD 100%);
     border-radius: 60rpx 60rpx 60rpx 60rpx;
     border: none;
 
     font-weight: 500;
     font-size: 32rpx;
-    color: #fff;
+    color: #1D2129;
     text-align: center;
   }
 

+ 9 - 76
src/setting/myNew/useCodeLogin.vue

@@ -3,22 +3,17 @@ import { loginPhone, sendMsg } from '@/api/newLogin.js'
 export default {
   data() {
     return {
-      phone: '', phoneMsg: '',
+      phone: '', code: '',
       countdown: 60,
-      startCountdownFlag: false,
-      showCaptcha: false,
-      imgCode: '',
-      captchaImg: '',
-      uuid: '',
     }
   },
   computed: {
     canGetCode() {
       return !this.isSendingCode && this.countdown === 60
     },
-    // canBind() {
-    //   return this.code && this.code.length === 6 && !this.isBinding
-    // }
+    canBind() {
+      return this.code && this.code.length === 6 && !this.isBinding
+    }
   },
   onLoad(options) {
     if (options.phone) {
@@ -30,43 +25,10 @@ export default {
 
   },
   methods: {
-     //图形验证码提交
-    submitImgCode() {
-      if (!this.imgCode) {
-        uni.showToast({
-          title: '请输入验证码',
-          icon: 'none'
-        })
-        return
-      }
-      sendMsg33333({ uuid:this.uuid,imgCode:this.imgCode}).then(res => {
-        console.log(res)
-        if (res.data.code == 200) {
-          this.showCaptcha = false
-            this.getCode()
-        }
-        
-
-      })
-
-    },
     validatePhone(phone) {
       const reg = /^1[3-9]\d{9}$/
       return reg.test(phone)
     },
-    //重新获取验证码
-		agginGetCode() {
-			captchaImage().then(res=>{
-				console.log(res)
-				if (res.data.code == 200) {
-					this.uuid=res.data.uuid
-				}
-			})
-      this.imgCode=''
-			this.showCaptcha = true
-
-		},
-    //获取验证码
     getCode() {
       if (this.isSendingCode || this.countdown < 60) return
 
@@ -87,13 +49,11 @@ export default {
 
     },
     startCountdown() {
-      this.startCountdownFlag = true
       this.countdown = 60
       this.timer = setInterval(() => {
         this.countdown--
         if (this.countdown <= 0) {
           clearInterval(this.timer)
-          this.startCountdownFlag = false
           this.countdown = 60
           this.timer = null
         }
@@ -109,7 +69,7 @@ export default {
           userType: '2',
           phone: this.phone,
           codeSwitch: 'true',//是否开启验证码登录 true-是 false-否
-          phoneMsg: this.phoneMsg
+          phoneMsg: this.code
         }).then(res => {
           if (res.data.code == 200) {
             // uni.showToast({
@@ -175,44 +135,17 @@ export default {
     <view class="greeting-area1"></view>
     <view style="display: flex;justify-content: center;padding: 0 64rpx;">
       <view class="input-box">
-        <u-input v-model="phoneMsg" type="number" border="none" maxlength="6" placeholder="请输入手机验证码"
+        <u-input v-model="code" type="number" border="none" maxlength="6" placeholder="请输入手机验证码"
           placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;" class="input-item code-input"
           @input="autoCheckCode"></u-input>
         <view class="code-btn" :class="{ disabled: !canGetCode }" @click="getCode">
-            <text v-if="startCountdownFlag">{{ countdown }}s</text>
-            <text @click="agginGetCode">重新获取</text>
-          
+          <text v-if="countdown === 60">获取验证码</text>
+          <text v-else>{{ countdown }}s 后重新获取</text>
         </view>
       </view>
     </view>
 
 
-     <!-- 图形验证码弹窗 -->
-    <u-popup :show="showCaptcha" mode="center" border-radius="12">
-      <view class="captcha-box">
-        <view class="captcha-title">
-          <view>请输入下方图形验证码</view>
-          <u-icon custom-style="position: relative;left:90rpx ;" name="close" color="#C9CDD4" size="20"
-            @click="showCaptcha = false"></u-icon>
-        </view>
-        <view style="padding: 0 48rpx;margin-top: 48rpx;">
-          <view style="display: flex;justify-content: space-between;height: 106rpx;border-bottom: 1rpx solid #E7E7E7;">
-
-            <!-- 验证码输入框,唤起全字符键盘 -->
-            <u-input v-model="imgCode" placeholder="请输入图形验证码" :focus="showCaptcha" type="text" maxlength="4"
-              border="none" placeholder-style="font-weight: 400;font-size: 30rpx;color: #C9CDD4;"></u-input>
-            <!-- 图形验证码图片,点击刷新 -->
-            <image :src="captchaImg" @click="refreshCaptcha" class="captcha-img"></image>
-          </view>
-          <view class="text"@click="submitImgCode">看不清? 换一张</view>
-          <u-button class="submitImgCode" @click="submitImgCode" block>确定</u-button>
-
-        </view>
-      </view>
-    </u-popup>
-
-
-
 
 
   </view>
@@ -262,7 +195,7 @@ export default {
 
   }
 
-  .code-btn {
+  .code-btn{
     font-weight: 400;
     font-size: 30rpx;
     color: #19D29B;

BIN
src/static/login/arrowIcon.png


BIN
src/static/login/banner.png


BIN
src/static/login/cameraIcon.png


BIN
src/static/login/lineIcon.png


BIN
src/static/login/openEye.png


BIN
src/static/login/selectIcon.png


BIN
src/static/login/serviceIcon.png


+ 1 - 1
src/utils/request.js

@@ -17,7 +17,7 @@ export default (params) => {
 				if (res.statusCode === 200) {
                     // 401
                     if (res.data.code == 401) {
-						// uni.clearStorage();
+						uni.clearStorage();
 						// uni.removeStorageSync('access-token');
                     }
 					resolve(res);