Sfoglia il codice sorgente

新增学生管理弹窗页面

xiaoxin 2 anni fa
parent
commit
eff62f53e2

+ 141 - 1
pages/studentManage/studentManage.vue

@@ -1,5 +1,5 @@
 <template>
-	<view class="container" :style="showEdit ? 'padding-bottom:180rpx' : ''">
+	<view class="container" :style="[showEdit ? 'padding-bottom:180rpx' : '', showPage ? 'overflow:hidden' : 'overflow:visible']">
 		<!-- 背景图片区域 -->
 		<img class="img_bg" src="../../static/images/center-bg.png" />
 
@@ -44,6 +44,25 @@
 
 		<!-- 没有数据时展示的页面 -->
 		<NoData v-if="!list.length" style="margin-top: 140rpx" />
+
+		<!-- 弹窗区域 -->
+		<uni-popup ref="popupDom">
+			<view class="pop_up">
+				<!-- 头部标题区域 -->
+				<view class="popup_top">{{ headerName }} - 关联时间组</view>
+				<!-- 时间组区域 -->
+				<view class="popup_body">
+					<!-- 每一个时间组区域 -->
+					<view class="time_item" v-for="item in timeGroups" :key="item.id" @click="handleClickItemPop(item)">
+						<view class="item_left">
+							<view class="top">{{ item.name }}</view>
+							<view class="bottom">{{ item.remark }}</view>
+						</view>
+						<radio color="#0061FF" style="transform: scale(0.9)" :checked="item.isChecked" />
+					</view>
+				</view>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
@@ -73,6 +92,20 @@ const showEdit = ref(false)
 // 是否全选
 const allChecked = ref(false)
 
+// 弹窗DOM
+const popupDom = ref()
+
+// 时间组列表
+const timeGroups = ref([])
+
+// 弹窗标题
+const headerName = ref('')
+// 当前学生id
+const studentId = ref()
+
+// 滚动穿透控制
+const showPage = ref(false)
+
 onLoad(() => {
 	getData()
 })
@@ -133,6 +166,69 @@ const handleClickItem = (item) => {
 
 		// 判断全选按钮的状态
 		allChecked.value = list.value.every((ele) => ele.isChecked)
+	} else {
+		// 编辑单个学生
+		showPage.value = true
+		headerName.value = item.name
+		studentId.value = item.id
+		getTimeGroups()
+		popupDom.value.open('center')
+	}
+}
+
+// 获取时间组列表数据
+const getTimeGroups = async () => {
+	const res = await myRequest({
+		url: '/wanzai/api/smartUser/timeGroups'
+	})
+	// console.log(res)
+	const result = JSON.parse(decryptDes(res.data))
+	// console.log(result)
+	timeGroups.value = result
+	timeGroups.value.forEach((ele) => {
+		ele.isChecked = false
+	})
+}
+
+// 点击弹窗每一个时间组的回调
+const handleClickItemPop = (item) => {
+	timeGroups.value.forEach((ele) => {
+		ele.isChecked = false
+	})
+	item.isChecked = !item.isChecked
+
+	uni.showModal({
+		title: '提示',
+		content: '确定修改时间组吗?',
+		success: async (res) => {
+			if (res.confirm) {
+				handleConfirm(item.id)
+			}
+		}
+	})
+}
+
+const handleConfirm = async (timeGroupId) => {
+	const res = await myRequest({
+		url: '/wanzai/api/smartUser/setUserTimeGroup',
+		method: 'post',
+		data: {
+			ids: [studentId.value],
+			timeGroupId
+		}
+	})
+	// console.log(res)
+	uni.showToast({
+		title: res.message,
+		icon: 'none',
+		mask: true
+	})
+	if (res.code == 200) {
+		setTimeout(() => {
+			uni.reLaunch({
+				url: '/pages/studentManage/studentManage'
+			})
+		}, 1500)
 	}
 }
 
@@ -266,5 +362,49 @@ const changeInputValue = (value) => {
 			}
 		}
 	}
+
+	.pop_up {
+		width: 710rpx;
+		height: 855rpx;
+		border-radius: 22rpx;
+		background-color: #fff;
+
+		.popup_top {
+			height: 94rpx;
+			line-height: 94rpx;
+			text-align: center;
+			font-size: 28rpx;
+			border-bottom: 1rpx solid #e6e6e6;
+		}
+
+		.popup_body {
+			height: 760rpx;
+			overflow-y: auto;
+
+			.time_item {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				padding: 0 40rpx;
+				height: 130rpx;
+				border-bottom: 1rpx solid #e6e6e6;
+
+				.item_left {
+					display: flex;
+					flex-direction: column;
+					justify-content: space-between;
+					height: 80rpx;
+
+					.top {
+						font-size: 28rpx;
+					}
+					.bottom {
+						font-size: 24rpx;
+						color: #b3b3b3;
+					}
+				}
+			}
+		}
+	}
 }
 </style>

File diff suppressed because it is too large
+ 1816 - 1039
unpackage/dist/dev/mp-weixin/common/vendor.js


+ 0 - 6
unpackage/dist/dev/mp-weixin/uni_modules/uv-badge/components/uv-badge/uv-badge.js

@@ -3,12 +3,6 @@ const uni_modules_uvUiTools_libs_mixin_mpMixin = require("../../../uv-ui-tools/l
 const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/libs/mixin/mixin.js");
 const uni_modules_uvBadge_components_uvBadge_props = require("./props.js");
 const common_vendor = require("../../../../common/vendor.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/test.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 const _sfc_main = {
   name: "uv-badge",
   mixins: [uni_modules_uvUiTools_libs_mixin_mpMixin.mpMixin, uni_modules_uvUiTools_libs_mixin_mixin.mixin, uni_modules_uvBadge_components_uvBadge_props.props],

+ 0 - 6
unpackage/dist/dev/mp-weixin/uni_modules/uv-icon/components/uv-icon/uv-icon.js

@@ -4,12 +4,6 @@ const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/lib
 const uni_modules_uvIcon_components_uvIcon_icons = require("./icons.js");
 const uni_modules_uvIcon_components_uvIcon_props = require("./props.js");
 const common_vendor = require("../../../../common/vendor.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/test.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 const _sfc_main = {
   name: "uv-icon",
   emits: ["click"],

+ 0 - 6
unpackage/dist/dev/mp-weixin/uni_modules/uv-link/components/uv-link/uv-link.js

@@ -3,12 +3,6 @@ const common_vendor = require("../../../../common/vendor.js");
 const uni_modules_uvUiTools_libs_mixin_mpMixin = require("../../../uv-ui-tools/libs/mixin/mpMixin.js");
 const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/libs/mixin/mixin.js");
 const uni_modules_uvLink_components_uvLink_props = require("./props.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/test.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 const _sfc_main = {
   name: "uv-link",
   emits: ["click"],

+ 0 - 6
unpackage/dist/dev/mp-weixin/uni_modules/uv-qrcode/components/uv-qrcode/uv-qrcode.js

@@ -6,12 +6,6 @@ const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/lib
 const uni_modules_uvQrcode_components_uvQrcode_qrcode = require("./qrcode.js");
 const uni_modules_uvQrcode_components_uvQrcode_queue = require("./queue.js");
 const uni_modules_uvQrcode_components_uvQrcode_cache = require("./cache.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/test.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 let instance = null;
 const _sfc_main = {
   name: "uv-qrcode",

+ 0 - 6
unpackage/dist/dev/mp-weixin/uni_modules/uv-safe-bottom/components/uv-safe-bottom/uv-safe-bottom.js

@@ -2,12 +2,6 @@
 const uni_modules_uvUiTools_libs_mixin_mpMixin = require("../../../uv-ui-tools/libs/mixin/mpMixin.js");
 const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/libs/mixin/mixin.js");
 const common_vendor = require("../../../../common/vendor.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/test.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 const _sfc_main = {
   name: "uv-safe-bottom",
   mixins: [uni_modules_uvUiTools_libs_mixin_mpMixin.mpMixin, uni_modules_uvUiTools_libs_mixin_mixin.mixin],

+ 0 - 6
unpackage/dist/dev/mp-weixin/uni_modules/uv-steps/components/uv-steps-item/uv-steps-item.js

@@ -3,12 +3,6 @@ const uni_modules_uvUiTools_libs_mixin_mpMixin = require("../../../uv-ui-tools/l
 const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/libs/mixin/mixin.js");
 const uni_modules_uvSteps_components_uvStepsItem_props = require("./props.js");
 const common_vendor = require("../../../../common/vendor.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/test.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 const _sfc_main = {
   name: "uv-steps-item",
   mixins: [uni_modules_uvUiTools_libs_mixin_mpMixin.mpMixin, uni_modules_uvUiTools_libs_mixin_mixin.mixin, uni_modules_uvSteps_components_uvStepsItem_props.props],

+ 0 - 5
unpackage/dist/dev/mp-weixin/uni_modules/uv-steps/components/uv-steps/uv-steps.js

@@ -4,11 +4,6 @@ const uni_modules_uvUiTools_libs_mixin_mpMixin = require("../../../uv-ui-tools/l
 const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/libs/mixin/mixin.js");
 const uni_modules_uvSteps_components_uvSteps_props = require("./props.js");
 const common_vendor = require("../../../../common/vendor.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 const _sfc_main = {
   name: "uv-steps",
   mixins: [uni_modules_uvUiTools_libs_mixin_mpMixin.mpMixin, uni_modules_uvUiTools_libs_mixin_mixin.mixin, uni_modules_uvSteps_components_uvSteps_props.props],

+ 0 - 6
unpackage/dist/dev/mp-weixin/uni_modules/uv-tabbar/components/uv-tabbar-item/uv-tabbar-item.js

@@ -3,12 +3,6 @@ const uni_modules_uvUiTools_libs_mixin_mpMixin = require("../../../uv-ui-tools/l
 const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/libs/mixin/mixin.js");
 const uni_modules_uvTabbar_components_uvTabbarItem_props = require("./props.js");
 const common_vendor = require("../../../../common/vendor.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/test.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 const _sfc_main = {
   name: "uv-tabbar-item",
   mixins: [uni_modules_uvUiTools_libs_mixin_mpMixin.mpMixin, uni_modules_uvUiTools_libs_mixin_mixin.mixin, uni_modules_uvTabbar_components_uvTabbarItem_props.props],

+ 0 - 6
unpackage/dist/dev/mp-weixin/uni_modules/uv-tabbar/components/uv-tabbar/uv-tabbar.js

@@ -3,12 +3,6 @@ const uni_modules_uvUiTools_libs_mixin_mpMixin = require("../../../uv-ui-tools/l
 const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/libs/mixin/mixin.js");
 const uni_modules_uvTabbar_components_uvTabbar_props = require("./props.js");
 const common_vendor = require("../../../../common/vendor.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/test.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 const _sfc_main = {
   name: "uv-tabbar",
   mixins: [uni_modules_uvUiTools_libs_mixin_mpMixin.mpMixin, uni_modules_uvUiTools_libs_mixin_mixin.mixin, uni_modules_uvTabbar_components_uvTabbar_props.props],

+ 0 - 6
unpackage/dist/dev/mp-weixin/uni_modules/uv-text/components/uv-text/uv-text.js

@@ -6,12 +6,6 @@ const uni_modules_uvUiTools_libs_mixin_mixin = require("../../../uv-ui-tools/lib
 const uni_modules_uvUiTools_libs_mixin_button = require("../../../uv-ui-tools/libs/mixin/button.js");
 const uni_modules_uvUiTools_libs_mixin_openType = require("../../../uv-ui-tools/libs/mixin/openType.js");
 const uni_modules_uvText_components_uvText_props = require("./props.js");
-require("../../../uv-ui-tools/libs/function/test.js");
-require("../../../uv-ui-tools/libs/function/index.js");
-require("../../../uv-ui-tools/libs/function/digit.js");
-require("../../../uv-ui-tools/libs/util/route.js");
-require("../../../uv-ui-tools/libs/function/debounce.js");
-require("../../../uv-ui-tools/libs/function/throttle.js");
 const _sfc_main = {
   name: "uv-text",
   emits: ["click"],

+ 3 - 3
unpackage/dist/dev/mp-weixin/uni_modules/uv-ui-tools/libs/function/index.js

@@ -346,9 +346,9 @@ function type2icon(type = "success", fill = false) {
     iconName += "-fill";
   return iconName;
 }
-function priceFormat(number, decimals = 0, decimalPoint = ".", thousandsSeparator = ",") {
-  number = `${number}`.replace(/[^0-9+-Ee.]/g, "");
-  const n = !isFinite(+number) ? 0 : +number;
+function priceFormat(number2, decimals = 0, decimalPoint = ".", thousandsSeparator = ",") {
+  number2 = `${number2}`.replace(/[^0-9+-Ee.]/g, "");
+  const n = !isFinite(+number2) ? 0 : +number2;
   const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals);
   const sep = typeof thousandsSeparator === "undefined" ? "," : thousandsSeparator;
   const dec = typeof decimalPoint === "undefined" ? "." : decimalPoint;

+ 1 - 1
utils/api.js

@@ -15,7 +15,7 @@ export const myRequest = (options) => {
 				'userhead': uni.getStorageSync('userhead')
 			},
 			data: options.data || {},
-			timeout: 15000,
+			timeout: 25000,
 			success: (res) => {
 				// if (res.data.code == 200) {
 				// 	resolve(res.data)