diff --git a/dist/assets/Index.62e2dc47.css b/dist/assets/Index.62e2dc47.css deleted file mode 100644 index 4ae50ba..0000000 --- a/dist/assets/Index.62e2dc47.css +++ /dev/null @@ -1 +0,0 @@ -.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{border-left:1px var(--el-border-color) var(--el-border-style);display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.login-container[data-v-7830093b]{display:flex;justify-content:center;align-items:center;height:100vh;background:#f0f2f5}.header[data-v-7830093b]{text-align:center;margin-bottom:30px}.title[data-v-7830093b]{margin-bottom:8px;color:#333;font-size:24px;font-weight:600}.subtitle[data-v-7830093b]{margin:0;color:#666;font-size:14px}[data-v-7830093b] .el-form{width:400px;padding:40px;background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a}.form-item[data-v-7830093b]{margin-bottom:24px}.input-item[data-v-7830093b]{height:40px}[data-v-7830093b] .el-input__wrapper{height:100%;padding:0 12px}[data-v-7830093b] .el-input__inner{height:100%}.captcha-wrapper[data-v-7830093b]{display:flex;gap:10px;height:40px}.captcha-input[data-v-7830093b]{flex:1}.captcha-image[data-v-7830093b]{width:120px;height:40px;cursor:pointer;border:1px solid #ddd;border-radius:4px}.custom-divider[data-v-7830093b]{margin:24px 0}.login-btn[data-v-7830093b]{width:100%;height:40px;margin-top:0}[data-v-7830093b] .el-divider__text{color:#909399;font-size:12px}[data-v-7830093b] .el-divider--horizontal{margin:18px 0;border-top:1px solid #e8e8e8} diff --git a/dist/assets/el-form-item.8fb18a51.css b/dist/assets/el-form-item.8fb18a51.css deleted file mode 100644 index 95ca97c..0000000 --- a/dist/assets/el-form-item.8fb18a51.css +++ /dev/null @@ -1 +0,0 @@ -.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;text-align:left}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-input-tag__wrapper,.el-form-item.is-error .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-input-tag__wrapper:focus,.el-form-item.is-error .el-input-tag__wrapper:hover,.el-form-item.is-error .el-input__wrapper,.el-form-item.is-error .el-input__wrapper.is-focus,.el-form-item.is-error .el-input__wrapper:focus,.el-form-item.is-error .el-input__wrapper:hover,.el-form-item.is-error .el-select__wrapper,.el-form-item.is-error .el-select__wrapper.is-focus,.el-form-item.is-error .el-select__wrapper:focus,.el-form-item.is-error .el-select__wrapper:hover,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner.is-focus,.el-form-item.is-error .el-textarea__inner:focus,.el-form-item.is-error .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex} diff --git a/dist/index.html b/dist/index.html index 7075ec0..53683f3 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,10 +5,10 @@ Vite App - - + + - +
diff --git a/src/api/modules/cards.js b/src/api/modules/cards.js index a2a6c18..17e493b 100644 --- a/src/api/modules/cards.js +++ b/src/api/modules/cards.js @@ -25,8 +25,14 @@ const cardsApi = { }) }, - // 删除卡密 - deleteCard: (id) => instance.post('/cards/delete', null, { params: { id } }), + // 删除卡密(逻辑删除) + deleteCard: (id) => instance.post(`/cards/deleteCard`, { id }), + + // 停用卡密 + disableCard: (id) => instance.post(`/cards/disableCard`, { id }), + + // 启用卡密 + enableCard: (id) => instance.post(`/cards/enableCard`, { id }), // 获取卡密 createCardSecret: (data) => instance.post('/cards/createCardSecret', data), diff --git a/src/api/modules/settledMemberRecord.js b/src/api/modules/settledMemberRecord.js index 6c64172..d1d9060 100644 --- a/src/api/modules/settledMemberRecord.js +++ b/src/api/modules/settledMemberRecord.js @@ -4,6 +4,9 @@ const settledMemberRecordApi = { // 获取入驻会员开通记录列表 getSettledMemberRecordList: (params) => instance.get('/settledMember/record/list', { params }), + getSettledMemberRecordlistWithDetails: (params) => instance.get('/settledMember/record/listWithDetails', { params }), + + // 删除入驻会员开通记录 deleteSettledMemberRecord: (id) => instance.post('/settledMember/record/delete', null, { params: { id } }), diff --git a/src/views/Login/index.vue b/src/views/Login/index.vue index d2cfd63..a003832 100644 --- a/src/views/Login/index.vue +++ b/src/views/Login/index.vue @@ -49,13 +49,13 @@ }) // 验证码URL(示例需要替换真实验证码接口) - const captchaUrl = ref('http://146.56.227.42:8089/admin/generateCaptcha?t=' + Date.now()) + const captchaUrl = ref('https://newadmin.buzhiyushu.cn/admin/generateCaptcha?t=' + Date.now()) // 防止重复提交 const loading = ref(false) // 路由 const router = useRouter() // 刷新验证码 - const refreshCaptcha = () => { captchaUrl.value = `http://146.56.227.42:8089/admin/generateCaptcha?t=${Date.now()}` } + const refreshCaptcha = () => { captchaUrl.value = `https://newadmin.buzhiyushu.cn/admin/generateCaptcha?t=${Date.now()}` } // 处理登录 const handleLogin = async () => { diff --git a/src/views/SettledConfig/MemberRecord.vue b/src/views/SettledConfig/MemberRecord.vue index 385d069..0b695e7 100644 --- a/src/views/SettledConfig/MemberRecord.vue +++ b/src/views/SettledConfig/MemberRecord.vue @@ -57,7 +57,8 @@ 会员限制: 最小本数: {{ getConstraintValue(row.constraintJson, 'books_count_min', 0) }}, - 最大本数: {{ getConstraintValue(row.constraintJson, 'books_count_max', 3000) }} + 最大本数: {{ getConstraintValue(row.constraintJson, 'books_count_max', 3000) }}, + 当前本数: {{ row.booksCount || 0 }} - @@ -521,7 +522,7 @@ const fetchData = async () => { } console.log('最终发送的分页请求参数:', JSON.stringify(params)); // 使用JSON.stringify确保完整输出 - const res = await settledMemberRecordApi.getSettledMemberRecordList(params) + const res = await settledMemberRecordApi.getSettledMemberRecordlistWithDetails(params) console.log('获取分页数据响应:', res); if (res.code === 200 && res.data) { diff --git a/src/views/Tools/Cards/List.vue b/src/views/Tools/Cards/List.vue index a1678ba..cdddda7 100644 --- a/src/views/Tools/Cards/List.vue +++ b/src/views/Tools/Cards/List.vue @@ -111,16 +111,29 @@ - + @@ -355,8 +368,10 @@ const submitCardSecretRequest = async () => { }; const res = await cardsApi.createCardSecret(cardData) // 由于createCardSecret方法已经处理了响应,所以直接使用res + console.log("res",res) if (res.code === 200) { - cardSecretValue.value = res.message + cardSecretValue.value = res.data + // 关闭参数对话框,显示卡密结果对话框 cardParamsDialogVisible.value = false cardSecretDialogVisible.value = true @@ -370,14 +385,30 @@ const submitCardSecretRequest = async () => { } // 复制卡密 -const handleCopyCardSecret = async () => { +const handleCopyCardSecret = () => { try { - await navigator.clipboard.writeText(cardSecretValue.value) - ElMessage.success('复制成功') + // 创建临时文本区域元素 + const textarea = document.createElement('textarea') + textarea.value = cardSecretValue.value + textarea.style.position = 'fixed' // 避免滚动到底部 + textarea.style.opacity = '0' + document.body.appendChild(textarea) + textarea.select() + console.log("textarea",textarea) + + // 执行复制命令 + const successful = document.execCommand('copy') + document.body.removeChild(textarea) + + if (successful) { + ElMessage.success('复制成功') + } else { + ElMessage.warning('复制失败,请手动复制') + } cardSecretDialogVisible.value = false } catch (error) { console.error('复制失败:', error) - ElMessage.error('复制失败') + ElMessage.error('复制失败,请手动复制') } } @@ -418,14 +449,14 @@ const handleCurrentChange = (current) => { } // 删除 -const handleDelete = (row) => { +const handleDelete = (id) => { ElMessageBox.confirm('确定要删除该卡密吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(async () => { try { - const res = await cardsApi.deleteCard(row.id) + const res = await cardsApi.deleteCard(id) if (res.code === 200) { ElMessage.success('删除成功') fetchData() @@ -448,6 +479,68 @@ const handleDelete = (row) => { }) } +// 停用卡密 +const handleDisable = (id) => { + ElMessageBox.confirm('确定要停用该卡密吗?停用后将无法使用', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(async () => { + try { + const res = await cardsApi.disableCard(id) + if (res.code === 200) { + ElMessage.success('停用成功') + fetchData() + } else { + ElMessage.error(res.message || '停用失败') + } + } catch (error) { + console.error('停用失败:', error) + // 显示更具体的错误信息 + if (error.code === 'ECONNABORTED') { + ElMessage.error('请求超时,请稍后再试') + } else if (error.response) { + ElMessage.error(`停用失败: ${error.response.status} ${error.response.statusText}`) + } else { + ElMessage.error(`停用失败: ${error.message || '未知错误'}`) + } + } + }).catch(() => { + // 用户取消操作,不做处理 + }) +} + +// 启用卡密 +const handleEnable = (id) => { + ElMessageBox.confirm('确定要启用该卡密吗?启用后将可以使用', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(async () => { + try { + const res = await cardsApi.enableCard(id) + if (res.code === 200) { + ElMessage.success('启用成功') + fetchData() + } else { + ElMessage.error(res.message || '启用失败') + } + } catch (error) { + console.error('启用失败:', error) + // 显示更具体的错误信息 + if (error.code === 'ECONNABORTED') { + ElMessage.error('请求超时,请稍后再试') + } else if (error.response) { + ElMessage.error(`启用失败: ${error.response.status} ${error.response.statusText}`) + } else { + ElMessage.error(`启用失败: ${error.message || '未知错误'}`) + } + } + }).catch(() => { + // 用户取消操作,不做处理 + }) +} + // 获取状态类型 const getStatusType = (status) => { const map = {