Просмотр исходного кода

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

wangxy 2 месяцев назад
Родитель
Сommit
172465a09c

+ 13 - 0
api/banzheng.js

@@ -71,3 +71,16 @@ export function getKaozhengKaoshi(data = {}) {
   })
 }
 
+
+export function kaozhengDelete(data = {}) {
+  return request({
+    url: '/app/user/kaozheng/delete',
+    headers: {
+      isToken: true
+    },
+    method: 'post',
+    data,
+    timeout: 20000
+  })
+}
+

+ 11 - 0
api/jiazheng.js

@@ -280,4 +280,15 @@ export function jiazhengCheck(data = {}) {
 		data,
 		timeout: 20000
 	})
+}
+export function jiazhengKaozhengUpdate(data = {}) {
+	return request({
+		url: '/app/user/jiazheng/kaozheng/update',
+		headers: {
+			isToken: true
+		},
+		method: 'post',
+		data,
+		timeout: 20000
+	})
 }

+ 17 - 7
common/styles/global/pages.scss

@@ -513,6 +513,7 @@
 			.is-add{justify-content: space-between;}
 			.file-picker__box{width: 100%!important;}
 			.file-picker-image{max-height: 200rpx;max-width: 160rpx;}
+			.file-image >div{max-width: 160rpx;max-height: 200rpx;margin: 0 auto;}
 			img{max-width: 100%;max-height: 200rpx;}
 		}
 		.user-title{font-size: 30rpx;color: #333;margin-left: 20rpx;}
@@ -652,6 +653,7 @@
 	// 办证信息list
 	.bzxx-list-page{
 		width:100%;height: 100vh;background-color: #f8f9fd;
+		display: flex;flex-direction: column;
 		.bzxx-wrap-box{flex: 1;overflow: auto;height: calc(100vh - 288rpx - var(--status-bar-height));padding-bottom: 20rpx;}
 		.bzxx-card-box{background-color: #fff;padding:24rpx 38rpx;font-size: 28rpx;color: #666;line-height: 1;margin-top: 20rpx;}
 		.name-btn-box{
@@ -679,6 +681,14 @@
 			margin: 20rpx 0 0;display: flex;justify-content: center;padding: 32rpx 0;background-color: #fff;
 			.phone-white-btn,.phone-green-btn{width: 36%;font-size: 28rpx;margin: 0 16rpx;}
 		}
+		.bzxx-add-btn-box{
+			width: 100%;background-color: #fff;display: flex;flex: 1;justify-content: center;
+			.bzxx-add-btn{
+				width: 400rpx;height: 220rpx;line-height: 220rpx;border: 1rpx dashed #3fd2a1;font-size: 32rpx;
+				border-radius: 8rpx;color: #3fd2a1;text-align: center;margin-top: 100rpx;
+				text{color:#3fd2a1;font-size: 42rpx;margin-right: 16rpx;}
+			}
+		}
 	}
 }
 
@@ -790,7 +800,7 @@
 		
 		.head-content-box{
 			display: flex;flex-direction: column;justify-content: space-around;font-size: 28rpx;color:#fff;
-			.name-row{font-size: 32rpx;font-weight: 600;}
+			.name-row{font-size: 34rpx;font-weight: bold;}
 		}
 	}
 	
@@ -798,17 +808,17 @@
 	.jbxx-label{word-spacing: 48rpx;margin-right: 10rpx;color: #666;flex-shrink: 0;}
 	.leixing-row{
 		display: flex;background-color: #e7f8f2;border-radius: 10rpx;
-		box-sizing: border-box;padding: 24rpx 32rpx;font-size: 28rpx;
-		.leixing-content{color: #333;font-weight: 600;}
+		box-sizing: border-box;padding: 24rpx 32rpx;font-size: 30rpx;
+		.leixing-content{color: #333;font-weight: bold;}
 	}
 	
 	.body-jbxx-box{
 		box-sizing: border-box;padding: 24rpx 32rpx 0;
-		>view{color: #333;font-size: 28rpx;display: flex;margin-bottom: 20rpx;line-height: 1.5;}
-		.jbxx-title{font-size: 30rpx;color: #3fd2a1;font-weight: 600;}
-		.jbxx-tip{border-top: 1rpx solid #ebebeb;font-size: 24rpx;color: #666;
-		box-sizing: border-box;padding: 20rpx 0 0;justify-content: center;margin-bottom: 0;}
+		>view{color: #333;font-size: 32rpx;display: flex;margin-bottom: 20rpx;line-height: 1.5;}
+		.jbxx-title{font-size: 30rpx;color: #3fd2a1;font-weight: bold;}
 	}
+	.jbxx-tip{font-size: 24rpx;color: #666;text-align:center;
+	box-sizing: border-box;padding: 20rpx 0 0;justify-content: center;margin-bottom: 0;}
 	
 	.jianli-bottom-box{
 		width: 100%;height: 100rpx;background-color: #f9f9f9;border-top: 1rpx solid #eeeeee;z-index: 9;

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

@@ -3,7 +3,7 @@
 		<view class="login-wrap-box">
 			<view class="bjcx-head-box">
 				<icon class="bjcx-logo-box"></icon>
-				<view class="bjcx-logo-title">家政系统</view>
+				<view class="bjcx-logo-title">家政</view>
 			</view>
 			
 			<view class="login-input-box">

+ 1 - 1
pages/Login/components/clientloginBox.vue

@@ -3,7 +3,7 @@
 		<view class="login-wrap-box">
 			<view class="bjcx-head-box">
 				<icon class="bjcx-logo-box"></icon>
-				<view class="bjcx-logo-title">家政系统</view>
+				<view class="bjcx-logo-title">家政</view>
 			</view>
 			
 			<view class="login-input-box">

+ 34 - 15
pages/admin/Jiazheng/banzhengXinxi.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="jz-content-box">
-		<view class="bzsm-tip-box form-top-margin">
+		<view v-if="status =='add'" class="bzsm-tip-box form-top-margin">
 			<view class="title-btn-box">
 				<view class="phone-line-title">说明</view>
 				<view @click="resetFun" class="reset-btn">重置</view>
@@ -11,8 +11,9 @@
 		<!-- 报证机构(picker 实现下拉选择) -->
 		<view class="form-label-select form-top-margin">
 			<view class="phone-form-label"><text class="form-label-require">*</text>报证机构</view>
-			<picker :disabled="status =='edit'" mode="selector" :range="jigouNames" @change="jigouChange" class="select-picker-box">
-				<view class="form-radio-select" :class="{'form-radio-disabled': status =='edit'}">
+			<picker :disabled="(status =='edit'&&localStatus=='')" mode="selector" :range="jigouNames"
+				@change="jigouChange" class="select-picker-box">
+				<view class="form-radio-select" :class="{'form-radio-disabled': (status =='edit'&&localStatus=='')}">
 					<view>{{ formData.baozhengJigouName || '请选择报证机构' }}</view>
 					<icon></icon>
 				</view>
@@ -21,7 +22,8 @@
 		<!-- 职业名称(picker 实现下拉选择) -->
 		<view class="form-label-select">
 			<view class="phone-form-label"><text class="form-label-require">*</text>职业名称</view>
-			<picker mode="selector" :range="zhiyeNames" range-key="name" @change="zhiyeChange" class="select-picker-box">
+			<picker mode="selector" :range="zhiyeNames" range-key="name" @change="zhiyeChange"
+				class="select-picker-box">
 				<view class="form-radio-select">
 					<view>{{ formData.zhiyeName || '请选择职业名称' }}</view>
 					<icon></icon>
@@ -91,7 +93,7 @@
 			</radio-group>
 		</view>
 		<view class="page-btn-box">
-
+			<button type="default" v-if="status!='add'" @click="goBack" class="phone-white-btn">返回</button>
 			<button type="default" @click="addSaveForm" class="phone-green-btn">保存</button>
 		</view>
 		<!-- 提交按钮 -->
@@ -132,7 +134,8 @@
 				zhiyelevelsOpt: [],
 				zhiyeNameOpt: [
 
-				]
+				],
+				localStatus: ''
 			};
 		},
 		props: {
@@ -153,11 +156,16 @@
 		},
 		created() {
 			this.getJigou()
+			this.localStatus = this.status
+
 		},
 		methods: {
+			goBack(){
+				this.$emit('goBack');	
+			},
 			editinfo(data) {
 				this.$nextTick(() => {
-					if(!data){
+					if (!data) {
 						return false
 					}
 					console.log('datssssa', data);
@@ -339,6 +347,12 @@
 			kaoshiChange(e) {
 				this.formData.needKaoshi = e.detail.value.toString();
 			},
+			currentMove(data) {
+				console.log('');
+				// currentMove 编辑状态下的新增
+				this.localStatus = data
+				console.log('localStatus', this.localStatus);
+			},
 			// 提交表单
 			addSaveForm() {
 				debugger
@@ -355,14 +369,15 @@
 					zyId: this.formData.zhiyeId,
 					zyLevel: this.formData.zhiyeLevelId,
 					jgType: this.formData.baozhengJigouType,
-					jgName:this.formData.baozhengJigouName,
-					zyName:this.formData.zhiyeName,
-					zyLevelName:this.formData.zhiyeLevelName				
+					jgName: this.formData.baozhengJigouName,
+					zyName: this.formData.zhiyeName,
+					zyLevelName: this.formData.zhiyeLevelName
 				}
 				console.log('req', req);
 
-				if (this.formData.baozhengJigouType == 1 && (this.formData.shicaochengji == '' || this.formData.zongkeshi ==
-					'' || this.formData.canxunshijian == '')) {
+				if (this.formData.baozhengJigouType == 1 && (this.formData.shicaochengji == '' || this.formData
+						.zongkeshi ==
+						'' || this.formData.canxunshijian == '')) {
 					uni.showToast({
 						title: '请填写参训时间,实操成绩,总课时',
 						icon: 'none'
@@ -372,21 +387,25 @@
 				if (req.jgId && req.zyId && req.zyLevel) {
 					if (this.status == 'add') {
 						this.$emit('addSave', req);
+					} else if (this.localStatus == 'editAdd') {
+						this.$emit('editSave', req, 'editAdd');
 					} else {
-						this.$emit('editSave', req);
+						this.$emit('editSave', req, 'edit');
 					}
 
 				} else if (req.jgId == '' && req.zyId == '' && req.zyLevel == '') {
 					if (this.status == 'add') {
 						this.$emit('addSave', '');
-					} else {
-						this.$emit('editSave', '');
+					} else if(this.localStatus == 'editAdd') {
+						//this.$emit('editSave', '');
 						// uni.showToast({
 						// 	title: '请选择保证机构,职业名称,职业等级',
 						// 	icon: 'none'
 						// });
 
 						// return false
+					}else{
+						
 					}
 				} else {
 					uni.showToast({

+ 5 - 2
pages/admin/Jiazheng/banzhengXinxiList.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="bzxx-list-page">
-		<view class="bzxx-wrap-box">
+		<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>
@@ -12,9 +12,12 @@
 				<view class="bzxx-time-row"><icon class="time-icon"></icon><text>申报时间:{{item.createTime}}</text></view>
 			</view>
 		</view>
-		<view class="bzxx-btn-box">
+		<view v-if="list.length>0" class="bzxx-btn-box">
 			<button type="default" @click="addBanzheng" class="phone-white-btn">添加</button>
 		</view>
+		<view v-else class="bzxx-add-btn-box">
+			<view  @click="addBanzheng" class="bzxx-add-btn"><text>+</text>添加办证信息</view>
+		</view>
 	</view>
 </template>
 

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

@@ -54,9 +54,9 @@
 					<view>
 						<view class="jbxx-label">家政公司:</view>{{jianliInfo.jzName}}
 					</view>
-					<view class="jbxx-tip">{{jianliInfo.tips}} </view>
 				</view>
 			</view>
+			<view class="jbxx-tip">{{jianliInfo.tips}} </view>
 			<view class="jianli-bottom-box">
 				<view @click="goJiazhengManage">
 					<icon class="bottom-icon zl-icon"></icon>

+ 31 - 27
pages/admin/Jiazheng/jiazhengUserManager.vue

@@ -13,7 +13,7 @@
 		</qiuzhiXinxi>
 		<zhaopianZiliao ref="zhaopianZiliao" :status='status' @editSave="editSaveZhaopianziliao"
 			@goNext="goNextZhaopianZiliao" v-show="current ==2"></zhaopianZiliao>
-		<banzhengXinxi ref="banzhengXinxi" :status='status' @addSave="addSave" @editSave="editSave"
+		<banzhengXinxi ref="banzhengXinxi" :status='status' @goBack="goBack" @addSave="addSave" @editSave="editSave"
 			v-show="current ==3">
 		</banzhengXinxi>
 		<banzhengXinxiList :list="editInfo.kaozhengList" v-show="banzhengXinxiFlag" @editBanzheng="editBanzheng"
@@ -38,7 +38,8 @@
 		jiazhengAdd,
 		jiazhengUpdate,
 		jiazhengKaozhengAdd,
-		jiazhengKaozhengDelete
+		jiazhengKaozhengDelete,
+		jiazhengKaozhengUpdate
 	} from "@/api/jiazheng.js";
 	export default {
 		data() {
@@ -88,8 +89,8 @@
 				editInfo: {},
 				deleteConcent: '你确定要执行这个操作吗?',
 				deleteTitle: '删除',
-				deleteIndex:'',
-				deleteId:'',
+				deleteIndex: '',
+				deleteId: '',
 			}
 		},
 		components: {
@@ -106,16 +107,20 @@
 			this.dataHandle(pageInfo)
 		},
 		methods: {
-
+			goBack() {
+				this.banzhengXinxiFlag = true
+			},
 			editBanzheng(data, index) {
 				this.current = 3
 				this.banzhengXinxiFlag = false
 				this.$refs.banzhengXinxi.editinfo(data, index)
+				this.$refs.banzhengXinxi.currentMove('edit')
 			},
 			addBanzheng(data, index) {
 				this.banzhengXinxiFlag = false
 				this.current = 3
 				this.$refs.banzhengXinxi.resetFun()
+				this.$refs.banzhengXinxi.currentMove('editAdd')
 			},
 			deleteBanzheng(data, index) {
 				console.log('data', data);
@@ -143,10 +148,9 @@
 							icon: 'none',
 							duration: 2000
 						})
-						this.editInfo.kaozhengList = this.editInfo.kaozhengList.splice(index, 1);
+						this.editInfo.kaozhengList.splice(this.deleteIndex, 1);
 						if (this.editInfo.kaozhengList.length == 0) {
-							this.banzhengXinxiFlag = false
-							this.current = 3
+							this.banzhengXinxiFlag = true
 						}
 					}
 				})
@@ -228,13 +232,12 @@
 			},
 			changeTab(data) {
 				console.log('data', data);
-				if (this.status == 'edit' && data == 3 && this.editInfo.kaozhengList.length > 0) {
+				if (this.status == 'edit') {
 					this.banzhengXinxiFlag = true
 					return false
 				} else {
 					this.banzhengXinxiFlag = false
 				}
-
 				if (this.status == 'add') {
 					if (this.current >= 0) {
 						this.current--;
@@ -393,18 +396,13 @@
 				this.zhaopianziliaoDataHandle(data, 'edit')
 			},
 			addSave(data) {
-				if (data != '') {
-					this.allData.kaozhengList.push(data)
-				}
 				if (this.status == 'add') {
-					this.submitJiazheng()
-				} else {
-
-				}
+					this.submitJiazheng(data)
+				} else {}
 
 
 			},
-			submitJiazheng() {
+			submitJiazheng(data) {
 				console.log('this.allData', this.allData);
 				if (this.allData.kaozhengList.length > 0 && this.allData.icon == '') {
 					uni.showToast({
@@ -414,6 +412,9 @@
 					})
 					return false
 				}
+				if (data != '') {
+					this.allData.kaozhengList.push(data)
+				}
 				jiazhengAdd(this.allData).then(res => {
 					if (res.code == 0) {
 						uni.showToast({
@@ -436,19 +437,22 @@
 				})
 
 			},
-			editSave(data) {
+			editSave(data, flag) {
 				debugger
 				console.log('this.allData', this.allData);
 				console.log('this.editInfo', this.editInfo);
-				if (data == '' && this.status == 'edit') {
-					jiazhengUpdate(this.allData).then(res => {
-						uni.showToast({
-							title: "保存成功!",
-							icon: 'none',
-							duration: 2000
-						})
+				if (flag == 'edit') {
+					jiazhengKaozhengUpdate(data).then(res => {
+						if(res.code ==0){
+							uni.showToast({
+								title: "保存成功!",
+								icon: 'none',
+								duration: 2000
+							})
+						}
+					
 					})
-				} else if (data && this.status == 'edit') {
+				} else if (flag == 'editAdd') {
 					data.userId = this.userId
 					if (this.allData.icon == '') {
 						uni.showToast({

+ 91 - 37
pages/admin/banzheng/list.vue

@@ -18,11 +18,13 @@
 								<view class="head-name">{{item.realName}}</view>
 								<view class="head-status">
 									<text>{{item.statusBanzheng}}</text>
-									<text class="status-line" v-if="item.statusKaoshi != '-' && item.statusKaoshi != ''">|</text>
-									<text v-if="item.statusKaoshi != '-' && item.statusKaoshi != ''">{{item.statusKaoshi}}</text>
+									<text class="status-line"
+										v-if="item.statusKaoshi != '-' && item.statusKaoshi != ''">|</text>
+									<text
+										v-if="item.statusKaoshi != '-' && item.statusKaoshi != ''">{{item.statusKaoshi}}</text>
 									<!-- 删除 wgy看这里↓-->
-									<icon class="head-clear"></icon>
-								  </view>
+									<icon class="head-clear" @click.stop="deleteFun(item)"></icon>
+								</view>
 							</view>
 							<view class="card-body-row">
 								<view class="card-img-box">
@@ -32,12 +34,18 @@
 								<view class="body-content-row">
 									<view class="content-text-row">
 										<text>手机号:</text>{{item.userName}}
-										<button type="default" class="phone-green-btn bz-tel-btn" @click.stop="telCallBtn(item.userName)">打电话</button>
+										<button type="default" class="phone-green-btn bz-tel-btn"
+											@click.stop="telCallBtn(item.userName)">打电话</button>
 									</view>
 									<view class="content-text-row"><text>证件号:</text>{{item.idcard}}</view>
 									<view class="jg-zy-box">
-										<view class="jg-zy-row"><icon class="bz-icon"></icon><text>报证机构:{{item.jgName}}</text></view>
-										<view class="jg-zy-row"><icon class="zy-icon"></icon><text>职业名称:{{item.zyName}} {{item.zyLevel}}</text></view>
+										<view class="jg-zy-row">
+											<icon class="bz-icon"></icon><text>报证机构:{{item.jgName}}</text>
+										</view>
+										<view class="jg-zy-row">
+											<icon class="zy-icon"></icon><text>职业名称:{{item.zyName}}
+												{{item.zyLevel}}</text>
+										</view>
 									</view>
 								</view>
 							</view>
@@ -53,21 +61,41 @@
 		<!-- 筛选 -->
 		<filter-dialog ref="filterDialogRef" @confirm-btn="confirmBtn"></filter-dialog>
 		<!-- 搜索 -->
-		<search-dialog ref="searchDialogRef" @search-btn="dialogSearchBtn" @reset-search="dialogSearchReset"></search-dialog>
+		<search-dialog ref="searchDialogRef" @search-btn="dialogSearchBtn"
+			@reset-search="dialogSearchReset"></search-dialog>
+		<common-dialog ref="commonDialogRef" :title="deleteTitle" :content="deleteConcent"
+			@confirm-btn="deleteQuerenBtn"></common-dialog>
 	</view>
 </template>
 
 <script setup>
 	import customTabbarClientVue from "@/components/custom-tabbar/custom-tabbar-admin.vue";
 	import filterDialog from "./filter.vue";
+	import commonDialog from '@/components/dialog/commonDialog.vue';
 	import searchDialog from "./search.vue";
-	import {ref,reactive} from "vue";
-	import {onLoad,onShow} from "@dcloudio/uni-app";
-	import {getKaozhengList} from '@/api/banzheng.js'
-	import {formatSecondsToCnhms} from "@/utils/common.js"
+	import {
+		ref,
+		reactive
+	} from "vue";
+	import {
+		onLoad,
+		onShow
+	} from "@dcloudio/uni-app";
+	import {
+		getKaozhengList,
+		kaozhengDelete
+	} from '@/api/banzheng.js'
+	import {
+		formatSecondsToCnhms
+	} from "@/utils/common.js"
 
 	const filterDialogRef = ref(null);
 	const searchDialogRef = ref(null);
+	const commonDialogRef = ref(null);
+	const deleteId = ref('');
+	const deleteTitle = ref('删除');
+	const deleteConcent = ref('你确定要执行这个操作吗');
+
 	const data = reactive({
 		jgId: '', // 机构ID
 		realName: '', // 姓名
@@ -89,14 +117,40 @@
 		from: ''
 	})
 
+
+	function deleteFun(data) {
+		console.log('data', data);
+		deleteId.value = data.id
+		commonDialogRef.value.handleShow();
+
+	}
+
+	function deleteQuerenBtn() {
+		kaozhengDelete({
+			ids: [deleteId.value]
+		}).then(res => {
+			if (res.code == 0) {
+				uni.showToast({
+					title: '成功'
+				})
+				handleSearch()
+			} else {
+				uni.showToast({
+					title: '失败'
+				})
+			}
+
+		})
+	}
+
 	function goUpPage() {
 		uni.redirectTo({
 			url: '/pages/admin/ShouYe/shouye'
 		})
 	}
-	
+
 	// 筛选
-	function filterBtn(){
+	function filterBtn() {
 		filterDialogRef.value.initPage();
 		filterDialogRef.value.handleShow();
 	}
@@ -108,13 +162,13 @@
 
 	function goBzDetail(item) {
 		let pageInfo = {
-			status:'edit',
-			id:'',
-			userId:item.userId,
-			from:'banzheng'
+			status: 'edit',
+			id: '',
+			userId: item.userId,
+			from: 'banzheng'
 		}
 		uni.redirectTo({
-			url: `/pages/admin/Jiazheng/jiazhengUserInfo?pageInfo=`+JSON.stringify(pageInfo)
+			url: `/pages/admin/Jiazheng/jiazhengUserInfo?pageInfo=` + JSON.stringify(pageInfo)
 		})
 	}
 
@@ -192,8 +246,8 @@
 			data.loading = false;
 		})
 	}
-	
-	function confirmBtn(dialogData){
+
+	function confirmBtn(dialogData) {
 		data.jgId = dialogData.jigouId;
 		data.zyId = dialogData.zhiyeId;
 		data.zyLevel = dialogData.levelId;
@@ -202,37 +256,37 @@
 		data.page = 0;
 		refreshData();
 	}
-	
-	function searchBtn(){
+
+	function searchBtn() {
 		searchDialogRef.value.handleShow();
 	}
 
-	function dialogSearchBtn(name,searchData){
+	function dialogSearchBtn(name, searchData) {
 		switch (name) {
 			case '姓名':
 				dialogSearchReset();
-			    data.realName = searchData.value;
-			    break;
+				data.realName = searchData.value;
+				break;
 			case '手机号':
-			    data.userName = searchData.value;
-			    break;	
+				data.userName = searchData.value;
+				break;
 		}
 		data.page = 0;
 		refreshData();
-		
+
 	}
-	
-	function dialogSearchReset(){
-		data.userName='';
-		data.realName='';
+
+	function dialogSearchReset() {
+		data.userName = '';
+		data.realName = '';
 	}
-	
-	function telCallBtn(data){
+
+	function telCallBtn(data) {
 		uni.makePhoneCall({
 			phoneNumber: data //仅为示例
 		});
 	}
-	
+
 	onLoad((options) => {
 		data.from = options.from;
 	})
@@ -240,4 +294,4 @@
 	onShow(() => {
 		getMore()
 	})
-</script>
+</script>

+ 0 - 1
utils/request.js

@@ -18,7 +18,6 @@ const request = config => {
 	// 是否需要设置 token
 	// const isToken = (config.headers || {}).isToken === false
 	config.header = config.header || {}
-	console.log('config', config);
 
 	//  if (getToken() && !isToken) {
 	// config.headers['X-AUTH-SIGN'] = Md5.hashStr(JSON.stringify(config.data) +auth.secret);