diff --git a/src/pages.json b/src/pages.json index e4c280b..051ec05 100644 --- a/src/pages.json +++ b/src/pages.json @@ -108,6 +108,96 @@ "navigationStyle": "custom" } }, + { + "path": "pages/distribution/data", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/distribution/profit-rule", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/distribution/qrcode", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/account/manage", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/account/quota", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/account/log", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/account/personal", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/student/list", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/student/analysis", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/student/remind", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/member/order", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/member/gift", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/member/general-code", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/member/personal-order", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/member/personal-gift", + "style": { + "navigationStyle": "custom" + } + }, { "path": "pages/mine/school-info", "style": { @@ -167,6 +257,30 @@ "style": { "navigationStyle": "custom" } + }, + { + "path": "pages/stats/distribution", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/stats/member", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/stats/student", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/student/detail", + "style": { + "navigationStyle": "custom" + } } ], "tabBar": { diff --git a/src/pages/account/log.vue b/src/pages/account/log.vue new file mode 100644 index 0000000..77c7590 --- /dev/null +++ b/src/pages/account/log.vue @@ -0,0 +1,490 @@ + + + + + \ No newline at end of file diff --git a/src/pages/account/manage.vue b/src/pages/account/manage.vue new file mode 100644 index 0000000..39d8c7c --- /dev/null +++ b/src/pages/account/manage.vue @@ -0,0 +1,390 @@ + + + + + \ No newline at end of file diff --git a/src/pages/account/personal.vue b/src/pages/account/personal.vue new file mode 100644 index 0000000..b2696f4 --- /dev/null +++ b/src/pages/account/personal.vue @@ -0,0 +1,410 @@ + + + + + \ No newline at end of file diff --git a/src/pages/account/quota.vue b/src/pages/account/quota.vue new file mode 100644 index 0000000..609f321 --- /dev/null +++ b/src/pages/account/quota.vue @@ -0,0 +1,454 @@ + + + + + \ No newline at end of file diff --git a/src/pages/distribution/data.vue b/src/pages/distribution/data.vue new file mode 100644 index 0000000..a31b819 --- /dev/null +++ b/src/pages/distribution/data.vue @@ -0,0 +1,672 @@ + + + + + \ No newline at end of file diff --git a/src/pages/distribution/personal.vue b/src/pages/distribution/personal.vue new file mode 100644 index 0000000..4a90163 --- /dev/null +++ b/src/pages/distribution/personal.vue @@ -0,0 +1,535 @@ + + + + + \ No newline at end of file diff --git a/src/pages/distribution/profit-rule.vue b/src/pages/distribution/profit-rule.vue new file mode 100644 index 0000000..9db84d4 --- /dev/null +++ b/src/pages/distribution/profit-rule.vue @@ -0,0 +1,533 @@ + + + + + \ No newline at end of file diff --git a/src/pages/distribution/profit.vue b/src/pages/distribution/profit.vue new file mode 100644 index 0000000..f9a3ef7 --- /dev/null +++ b/src/pages/distribution/profit.vue @@ -0,0 +1,528 @@ + + + + + \ No newline at end of file diff --git a/src/pages/distribution/qrcode.vue b/src/pages/distribution/qrcode.vue new file mode 100644 index 0000000..c7d5f03 --- /dev/null +++ b/src/pages/distribution/qrcode.vue @@ -0,0 +1,654 @@ + + + + + \ No newline at end of file diff --git a/src/pages/distributor/add.vue b/src/pages/distributor/add.vue index 72a1484..9af88e7 100644 --- a/src/pages/distributor/add.vue +++ b/src/pages/distributor/add.vue @@ -1,224 +1,314 @@ \ No newline at end of file diff --git a/src/pages/distributor/edit.vue b/src/pages/distributor/edit.vue index d49f8aa..6cf8039 100644 --- a/src/pages/distributor/edit.vue +++ b/src/pages/distributor/edit.vue @@ -1,85 +1,88 @@ @@ -87,162 +90,286 @@ \ No newline at end of file diff --git a/src/pages/distributor/index.vue b/src/pages/distributor/index.vue index 322e116..c948f56 100644 --- a/src/pages/distributor/index.vue +++ b/src/pages/distributor/index.vue @@ -1,398 +1,495 @@ \ No newline at end of file diff --git a/src/pages/distributor/rule.vue b/src/pages/distributor/rule.vue index efd6c79..9a3f967 100644 --- a/src/pages/distributor/rule.vue +++ b/src/pages/distributor/rule.vue @@ -1,40 +1,153 @@ @@ -42,104 +155,319 @@ \ No newline at end of file diff --git a/src/pages/member/general-code.vue b/src/pages/member/general-code.vue new file mode 100644 index 0000000..27db8d5 --- /dev/null +++ b/src/pages/member/general-code.vue @@ -0,0 +1,433 @@ + + + + + \ No newline at end of file diff --git a/src/pages/member/gift.vue b/src/pages/member/gift.vue new file mode 100644 index 0000000..b634d70 --- /dev/null +++ b/src/pages/member/gift.vue @@ -0,0 +1,633 @@ + + + + + \ No newline at end of file diff --git a/src/pages/member/order.vue b/src/pages/member/order.vue new file mode 100644 index 0000000..be446d9 --- /dev/null +++ b/src/pages/member/order.vue @@ -0,0 +1,623 @@ + + + + + \ No newline at end of file diff --git a/src/pages/member/personal-gift.vue b/src/pages/member/personal-gift.vue new file mode 100644 index 0000000..34413f0 --- /dev/null +++ b/src/pages/member/personal-gift.vue @@ -0,0 +1,548 @@ + + + + + \ No newline at end of file diff --git a/src/pages/member/personal-order.vue b/src/pages/member/personal-order.vue new file mode 100644 index 0000000..db55dbd --- /dev/null +++ b/src/pages/member/personal-order.vue @@ -0,0 +1,548 @@ + + + + + \ No newline at end of file diff --git a/src/pages/mine/custom-fields.vue b/src/pages/mine/custom-fields.vue index a730b14..76584b7 100644 --- a/src/pages/mine/custom-fields.vue +++ b/src/pages/mine/custom-fields.vue @@ -55,9 +55,10 @@ 字段类型 {{ getFieldTypeName(field.type) }} @@ -82,7 +83,8 @@ 是否必填 @@ -113,7 +115,8 @@ 启用字段筛选 @@ -123,18 +126,19 @@ 默认显示字段 - - - {{ filterRules.defaultFields.length }} 个字段 + + + {{ filterRules.defaultFields.length }} 个字段 + + - - @@ -188,6 +192,9 @@ defaultFields: [0, 1] }) + // 当前编辑的字段索引 + const currentEditIndex = ref(null) + // 计算可用字段 const availableFields = computed(() => { return customFields.value.map((field, index) => ({ @@ -237,6 +244,39 @@ }) } + // 获取字段类型索引 + function getFieldTypeIndex(type) { + return fieldTypes.value.findIndex(item => item.value === type) + } + + // 处理字段类型变更 + function onFieldTypeChange(e) { + const index = e.detail.value + if (currentEditIndex.value !== null) { + customFields.value[currentEditIndex.value].type = fieldTypes.value[index].value + } + } + + // 获取默认字段索引 + function getDefaultFieldsIndex() { + return filterRules.value.defaultFields + } + + // 处理默认字段变更 + function onDefaultFieldsChange(e) { + filterRules.value.defaultFields = e.detail.value + } + + // 处理必填状态变更 + function onRequiredChange(e, index) { + customFields.value[index].required = e.detail.value + } + + // 处理筛选启用状态变更 + function onFilterEnabledChange(e) { + filterRules.value.enabled = e.detail.value + } + // 移动字段 function moveField(index, direction) { if (direction === 'up' && index > 0) { diff --git a/src/pages/mine/password-change.vue b/src/pages/mine/password-change.vue index 77624ee..6c7a024 100644 --- a/src/pages/mine/password-change.vue +++ b/src/pages/mine/password-change.vue @@ -69,16 +69,16 @@ • 密码长度至少8位 - + • 包含大写字母 - + • 包含小写字母 - + • 包含数字 - ]/.test(passwordForm.newPassword) }"> + • 包含特殊字符 @@ -119,7 +119,13 @@ confirmPassword: '' }) - // 显示密码 + // 密码强度计算属性 + const hasUpperCase = computed(() => /[A-Z]/.test(passwordForm.value.newPassword)) + const hasLowerCase = computed(() => /[a-z]/.test(passwordForm.value.newPassword)) + const hasNumber = computed(() => /[0-9]/.test(passwordForm.value.newPassword)) + const hasSpecialChar = computed(() => /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(passwordForm.value.newPassword)) + + // 密码强度文本显示密码 const showPassword = ref(false) // 切换密码显示状态 diff --git a/src/pages/mine/personal-info.vue b/src/pages/mine/personal-info.vue index d86b6e0..9002a5c 100644 --- a/src/pages/mine/personal-info.vue +++ b/src/pages/mine/personal-info.vue @@ -67,8 +67,9 @@ 性别 {{ userInfo.gender || '请选择性别' }} @@ -165,6 +166,17 @@ uni.navigateBack({ delta: 1 }) } + // 获取性别索引 + function getGenderIndex() { + return genders.indexOf(userInfo.value.gender) + } + + // 处理性别变更 + function onGenderChange(e) { + const index = e.detail.value + userInfo.value.gender = genders[index] + } + // 选择头像 function chooseAvatar() { uni.chooseImage({ diff --git a/src/pages/stats/distribution.vue b/src/pages/stats/distribution.vue new file mode 100644 index 0000000..b2266a5 --- /dev/null +++ b/src/pages/stats/distribution.vue @@ -0,0 +1,589 @@ + + + + + \ No newline at end of file diff --git a/src/pages/stats/member.vue b/src/pages/stats/member.vue new file mode 100644 index 0000000..ed040fc --- /dev/null +++ b/src/pages/stats/member.vue @@ -0,0 +1,743 @@ + + + + + \ No newline at end of file diff --git a/src/pages/stats/student.vue b/src/pages/stats/student.vue new file mode 100644 index 0000000..1b62285 --- /dev/null +++ b/src/pages/stats/student.vue @@ -0,0 +1,762 @@ + + + + + \ No newline at end of file diff --git a/src/pages/student/analysis.vue b/src/pages/student/analysis.vue new file mode 100644 index 0000000..3390c46 --- /dev/null +++ b/src/pages/student/analysis.vue @@ -0,0 +1,475 @@ + + + + + \ No newline at end of file diff --git a/src/pages/student/detail.vue b/src/pages/student/detail.vue new file mode 100644 index 0000000..0ad2d3d --- /dev/null +++ b/src/pages/student/detail.vue @@ -0,0 +1,642 @@ + + + + + \ No newline at end of file diff --git a/src/pages/student/list.vue b/src/pages/student/list.vue new file mode 100644 index 0000000..6282c0e --- /dev/null +++ b/src/pages/student/list.vue @@ -0,0 +1,511 @@ + + + + + \ No newline at end of file diff --git a/src/pages/student/remind.vue b/src/pages/student/remind.vue new file mode 100644 index 0000000..263ba16 --- /dev/null +++ b/src/pages/student/remind.vue @@ -0,0 +1,515 @@ + + + + + \ No newline at end of file diff --git a/src/pages/work/index.vue b/src/pages/work/index.vue index 3d56b73..db670c0 100644 --- a/src/pages/work/index.vue +++ b/src/pages/work/index.vue @@ -235,17 +235,6 @@ - - - 🤖 - {{ exceptionCount.ai }} - - - AI充值订单异常 - 处理AI充值订单失败等异常 - - - 🛒 @@ -268,7 +257,6 @@ const userRole = ref('admin') // 模拟角色,实际应从登录状态获取 const exceptionCount = ref({ // 模拟异常数量 profit: 2, // 分润异常数量 - ai: 1, // AI充值订单异常数量 member: 3 // 会员订单异常数量 }) @@ -457,12 +445,6 @@ }) } - function goToAiRechargeException() { - uni.navigateTo({ - url: '/pages/exception/ai-recharge' - }) - } - function goToMemberOrderException() { uni.navigateTo({ url: '/pages/exception/member-order'