Browse Source

Merge remote-tracking branch 'origin/2025北京诚祥' into 2025北京诚祥

# Conflicts:
#	pages/admin/ShouYe/shouye.vue
wangxy 1 month ago
parent
commit
dae42bc509

+ 15 - 5
common/styles/global/pages.scss

@@ -156,17 +156,25 @@
 		.active{border-bottom: 2rpx solid #3fd2a1;color:#3fd2a1;}
 	}
 	
-	.index-tj-row{width: 100%;display: flex;box-sizing: border-box;padding:6rpx 16rpx;}
+	.index-tj-row{width: 100%;display: flex;box-sizing: border-box;padding:6rpx 16rpx;align-items: center;}
 	.index-tj-box{
 		width: 400rpx;height: 150rpx;@include ezy-no-repeat-cover(right);background-image: url("@/static/images/index/tj-bj.png");
 		border-radius: 25rpx;padding: 16rpx 30rpx;box-sizing:border-box;flex-shrink: 0;
 		.tj-num-box{font-size: 48rpx;color:#fff;margin: 12rpx 0 6rpx;font-weight: bold;}
 		.tj-tip-box{font-size: 24rpx;color:#fff;}
 	}
+	.index-kc-box{
+		height: 136rpx;flex: 1;background-color: #fff;border: 1rpx solid #3fd2a1;position: relative;
+		border-radius: 16rpx;padding: 6rpx 16rpx;box-sizing:border-box;margin: 4rpx 0 0 8rpx;
+		.tj-num-box{font-size: 42rpx;color: #3fd2a1;margin: 12rpx 0 6rpx;font-weight: bold;}
+		.tj-tip-box{font-size: 24rpx;color: #3fd2a1;}
+		.sjkc-jt-icon{width: 30rpx;height: 30rpx;@include ezy-no-repeat-cover;
+			background-image: url("@/static/images/common/nav-bar-green-jt.svg");
+			position: absolute;right:12rpx;top:48rpx;transform: rotate(180deg);}
+	}
 	.index-tongzhi-box{
-		display: flex;justify-content: space-between;align-items: center;margin:8rpx  0 8rpx 10rpx;
-		background-color: #fff;border-radius: 12rpx;padding:10rpx 24rpx;box-sizing:border-box;
-		box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);flex: 1;
+		display: flex;justify-content: space-between;align-items: center;margin:6rpx 16rpx 16rpx;
+		background-color: #fff;border-radius: 12rpx;padding:10rpx 12rpx 10rpx 24rpx;box-sizing:border-box;
 		.tongzhi-num{
 			width: 80rpx;height: 80rpx;color: #3fd2a1;@include ezy-no-repeat-contain;text-align: center;flex-shrink: 0;
 			background-image: url("@/static/images/index/tz-icon.png");padding-top: 42rpx;box-sizing:border-box;
@@ -193,6 +201,7 @@
 	}
 	.card-item-box:nth-child(5) ~ *{margin-top: 30rpx;}
 	.jz-icon{background-image: url("@/static/images/index/jz-icon.png");}
+	.zzh-icon{background-image: url("@/static/images/index/zzh-icon.png");}
 	.kz-icon{background-image: url("@/static/images/index/kz-icon.png");}
 	.ks-icon{background-image: url("@/static/images/index/ks-icon.png");}
 	.cj-icon{background-image: url("@/static/images/index/cj-icon.png");}
@@ -727,7 +736,8 @@
 		.bzxx-card-box{background-color: #fff;padding:24rpx 38rpx;font-size: 28rpx;color: #666;line-height: 1;margin-top: 20rpx;}
 		.name-btn-box{
 			font-size: 32rpx;color: #000;display: flex;justify-content: space-between;align-items: center;margin-bottom: 16rpx;
-			.name-btn{font-size: 26rpx;padding: 8rpx 20rpx;border-radius: 8rpx;line-height: 1.1;}
+			.jg-name{@include single-line-ellipsis();}
+			.name-btn{font-size: 26rpx;padding: 8rpx 20rpx;border-radius: 8rpx;line-height: 1.1;flex-shrink: 0;}
 			.editer-btn{background-color: #fff;color: #3fd2a1;border: 1rpx solid #3fd2a1;margin-left: auto;}
 			.delete-btn{background-color: #3fd2a1;color: #fff;margin-left: 20rpx;}
 			}

+ 1 - 0
config.js

@@ -1,5 +1,6 @@
 // 应用全局配置
 // 切换环境后 注意 :map 要去对应manifest.json文件修改
+// 打正式包前一定要和后台确认版本号,修改appInfo.version
 let isPro = process.env.NODE_ENV === 'production'
 const devUrl = 'https://kf3.mtavip.com/api'
 const proUrl = 'https://www.chengxiangjiaoyu.com/api'

+ 4 - 1
pages/Login/components/adminloginBox.vue

@@ -33,6 +33,7 @@
 	import {ref} from "vue"
 	import {toast} from "@/utils/common";
 	import {useIsCanBack} from "@/store/isCanBack.js"
+	import config from '../../../config.js'
 	
 	
 	const userName = ref('') // 用户名
@@ -44,10 +45,10 @@
 	const clearPwIcon= ref(false)
 	
 	const store = useIsCanBack();
+	const version = config.version;
 	
 	// 加密
 	function handleUpdateLLiPassword() {
-		console.log('handleUpdateLLiPassword')
 		passLLiRef.value.lliPassword();
 	}
 	function onLliPassword(password) {
@@ -108,6 +109,8 @@
 		
 	
 		httpApi.login({
+			// type 1app 2为H5
+			type:1,
 			userName: trimmedUserName,
 			password: lliPassword.value,
 		}).then(res => {

+ 2 - 0
pages/Login/components/clientloginBox.vue

@@ -111,6 +111,8 @@
 		})
 		
 		httpApi.login({
+			// type 1app 2为H5
+			type:2,
 			userName: trimmedUserName,
 			password: lliPassword.value,
 		}).then(res => {

+ 1 - 1
pages/admin/Jiazheng/banzhengXinxiList.vue

@@ -3,7 +3,7 @@
 		<view class="bzxx-wrap-box" v-if="list.length>0">
 			<view v-for="(item,index) in list" :key="index" class="bzxx-card-box">
 				<view class="name-btn-box">
-					<view>报证机构:{{item.jgName}}</view>
+					<view class="jg-name">报证机构:{{item.jgName}}</view>
 					<view class="name-btn editer-btn" @click="goEdit(item,index)">编辑</view>
 					<view class="name-btn delete-btn" @click="deleteFun(item,index)">删除</view>
 				</view>

+ 2 - 1
pages/admin/Jiazheng/index.vue

@@ -100,6 +100,7 @@
 	} from "@dcloudio/uni-app";
 	import {
 		getJiazhengList,
+		getJiazhengJineng,
 		getJiazhengLeixing
 	} from "@/api/jiazheng.js"
 	import dataChecked from './common/dataChecked.vue';
@@ -399,7 +400,7 @@
 
 	function getLeixing() {
 		let req = {}
-		getJiazhengLeixing(req).then(res => {
+		getJiazhengJineng(req).then(res => {
 			res.data.unshift("全部类型");
 			allType = dataConversionObject(res.data)
 			console.log('allType', allType);

+ 2 - 2
pages/admin/Jiazheng/jiazhengUserManager.vue

@@ -66,7 +66,7 @@
 					"jingyan": "",
 					"juzhuDizhi": "",
 					"kaozhengList": [],
-					"leixing": "",
+					//"leixing": "",
 					"minzu": '',
 					"qiwangxinzi": "",
 					"realName": "",
@@ -337,7 +337,7 @@
 				this.gerenZiliaoDataHandle(data, 'edit')
 			},
 			qiuzhiXinxiDataHandle(data, flag) {
-				this.allData.leixing = data.leixing
+			//	this.allData.leixing = data.leixing
 				this.allData.jingyan = data.jingyan
 				this.allData.jineng = data.jineng
 				this.allData.zhuangtai = data.zhuangtai

+ 13 - 13
pages/admin/Jiazheng/qiuzhiXinxi.vue

@@ -1,10 +1,10 @@
 <template>
 	<view class="jz-content-box">
-		<view class="form-label-radio form-top-margin flex-start-row">
+		<!-- <view class="form-label-radio form-top-margin flex-start-row">
 			<view class="phone-form-label"> <text class="form-label-require">*</text>类型</view>
 			<dataChecked :list="typeList" mode="multiple" :defaultCount="9" :selectedNames="leixing"
 				@change="selectChangeType" @add="addType" />
-		</view>
+		</view> -->
 		<view class="form-label-select">
 			<view class="phone-form-label"><text class="form-label-require"></text>经验</view>
 			<picker :range="jingyanList" mode='selector' :value="jingyanIndex" range-key="name" @change="jingyanChange"
@@ -98,7 +98,7 @@
 		methods: {
 			async initRequests() {
 				await Promise.all([
-					this.getLeixing(),
+				//	this.getLeixing(),
 					this.getJineng(),
 					this.getZhuangtai()
 				]);
@@ -106,7 +106,7 @@
 			editinfo(data) {
 				this.$nextTick(() => {
 					console.log('data11111', data);
-					this.leixing = data.leixing
+				//	this.leixing = data.leixing
 					this.jingyan = data.jingyan
 					this.jineng = data.jineng
 					this.zhuangtai = data.zhuangtai
@@ -215,7 +215,7 @@
 			},
 			yanzheng() {
 				this.formData = {
-					leixing: this.leixing,
+				//	leixing: this.leixing,
 					jingyan: this.jingyan,
 					jineng: this.jineng,
 					zhuangtai: this.zhuangtai,
@@ -224,14 +224,14 @@
 					jingli: this.jingli,
 
 				}
-				if (!this.formData.leixing) {
-					uni.showToast({
-						title: "请选择类型!",
-						icon: 'none',
-						duration: 2000
-					})
-					return false
-				}
+				// if (!this.formData.leixing) {
+				// 	uni.showToast({
+				// 		title: "请选择类型!",
+				// 		icon: 'none',
+				// 		duration: 2000
+				// 	})
+				// 	return false
+				// }
 				// if (!this.formData.jingyan) {
 				// 	uni.showToast({
 				// 		title: "请选择经验年限!",

+ 29 - 5
pages/admin/ShouYe/shouye.vue

@@ -10,6 +10,7 @@
 	  		</swiper-item>
 	  	</swiper>
 	  </uni-swiper-dot>
+
 	  <view class="tj-btn-box">
 	  		<text :class="{active: tjBtn == 1}" @click="tjBtnClick(1)">本周</text>
 	  		<text :class="{active: tjBtn == 2}" @click="tjBtnClick(2)">本月</text>
@@ -20,11 +21,16 @@
 		 		  <view class="tj-num-box">{{indexInfoData.bzCount}}/{{indexInfoData.jzCount}}</view>
 		 		  <view class="tj-tip-box">考证人员/家政人员</view>
 		 </view>
-		 <view class="index-tongzhi-box" @click="goToPage('tz')">
-		 		  <text class="tongzhi-num">{{tzNum}}</text>
-		 		  <rich-text :nodes="tzContent" class="tongzhi-content"></rich-text>
-		 		  <icon></icon>
-		 </view> 
+		 <view class="index-kc-box" @click="goToPage('sykc')">
+		 	<view class="tj-num-box">{{indexInfoData.kechengCount}}/{{indexInfoData. kechengUsed}}</view>
+		 	<view class="tj-tip-box">剩余课程/已售课程</view>
+			<icon class="sjkc-jt-icon"></icon>
+		 </view>
+	  </view>
+	  <view class="index-tongzhi-box" @click="goToPage('tz')">
+	  		  <text class="tongzhi-num">{{tzNum}}</text>
+	  		  <rich-text :nodes="tzContent" class="tongzhi-content"></rich-text>
+	  		  <icon></icon>
 	  </view>
 	  <view class="card-list-box">
 		 <view class="card-list-title">管理家政人员</view>
@@ -32,6 +38,10 @@
 		 	<icon class="index-icon jz-icon"></icon>
 		 	<text>家政人员</text>
 		 </view>
+		 <view @click="goToPage('zzh')" class="card-item-box">
+		 	<icon class="index-icon zzh-icon"></icon>
+		 	<text>创建子账号</text>
+		 </view>
 	  </view>
 	  <view class="card-list-box">  
 		<view class="card-list-title">管理考证人员</view>
@@ -77,6 +87,8 @@ let indexInfoData = reactive({
 		bzCount: 0,
 		jzCount: 0,
 		jzName: '',
+		kechengCount: 0,//剩余课程数量
+		kechengUsed: 0,//售出课程数量
 	});
 const swiperInfo = ref([]);
 const dotStyle = reactive({
@@ -125,6 +137,8 @@ function getIndexInfo(){
 		indexInfoData.bzCount = res.data.bzCount;
 		indexInfoData.jzCount = res.data.jzCount;
 		indexInfoData.jzName = res.data.jzName;
+		indexInfoData.kechengCount = res.data.kechengCount;
+		indexInfoData.kechengUsed = res.data.kechengUsed;
 	})
 }
 
@@ -152,6 +166,16 @@ function tjBtnClick(data){
 		        	url:'/pages/admin/Jiazheng/index'
 		        })
 		        break;
+			case 'zzh':
+			    uni.redirectTo({
+			    	url:'/pages/admin/zizhanghao/list'
+			    })
+			    break;
+			case 'sykc':
+			    uni.redirectTo({
+			    	url:'/pages/admin/yishou/yishou'
+			    })
+			    break;
 		    case 'bz':
 		        uni.redirectTo({
 		        	url:'/pages/admin/banzheng/list'

+ 9 - 0
pages/admin/yishou/yishou.vue

@@ -0,0 +1,9 @@
+<template>
+	<view></view>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

BIN
static/images/index/zzh-icon.png