Bootstrap

TS1005: ‘,‘ expected.

[0]  ERROR  Failed to compile with 3 errors15:04:40
[0] 
[0]  error  in /Users/dgq/Downloads/cursor/spid-admin/src/views/tools/fake-strategy/components/invite-code-list.vue.ts
[0] 
[0] [tsl] ERROR in /Users/dgq/Downloads/cursor/spid-admin/src/views/tools/fake-strategy/components/invite-code-list.vue.ts(139,13)
[0]       TS1005: ',' expected.
[0] 
[0]  @ ./src/views/tools/fake-strategy/components/invite-code-list.vue?vue&type=script&lang=ts& 1:0-379 1:395-398 1:400-776 1:400-776
[0]  @ ./src/views/tools/fake-strategy/components/invite-code-list.vue
[0]  @ ./node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--15-2!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/tools/fake-strategy/components/config-form2.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/components/config-form2.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/components/config-form2.vue
[0]  @ ./node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--15-2!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/tools/fake-strategy/index.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/index.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/index.vue
[0]  @ ./src/router/index.ts
[0]  @ ./src/main.ts
[0]  @ multi (webpack)-dev-server/client?http://192.168.1.105:9527&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.ts
[0] 
[0]  error  in /Users/dgq/Downloads/cursor/spid-admin/src/views/tools/fake-strategy/components/invite-code-list.vue.ts
[0] 
[0] [tsl] ERROR in /Users/dgq/Downloads/cursor/spid-admin/src/views/tools/fake-strategy/components/invite-code-list.vue.ts(146,13)
[0]       TS1005: ',' expected.
[0] 
[0]  @ ./src/views/tools/fake-strategy/components/invite-code-list.vue?vue&type=script&lang=ts& 1:0-379 1:395-398 1:400-776 1:400-776
[0]  @ ./src/views/tools/fake-strategy/components/invite-code-list.vue
[0]  @ ./node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--15-2!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/tools/fake-strategy/components/config-form2.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/components/config-form2.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/components/config-form2.vue
[0]  @ ./node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--15-2!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/tools/fake-strategy/index.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/index.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/index.vue
[0]  @ ./src/router/index.ts
[0]  @ ./src/main.ts
[0]  @ multi (webpack)-dev-server/client?http://192.168.1.105:9527&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.ts
[0] 
[0]  error  in /Users/dgq/Downloads/cursor/spid-admin/src/views/tools/fake-strategy/components/invite-code-list.vue.ts
[0] 
[0] [tsl] ERROR in /Users/dgq/Downloads/cursor/spid-admin/src/views/tools/fake-strategy/components/invite-code-list.vue.ts(179,17)
[0]       TS1005: ',' expected.
[0] 
[0]  @ ./src/views/tools/fake-strategy/components/invite-code-list.vue?vue&type=script&lang=ts& 1:0-379 1:395-398 1:400-776 1:400-776
[0]  @ ./src/views/tools/fake-strategy/components/invite-code-list.vue
[0]  @ ./node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--15-2!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/tools/fake-strategy/components/config-form2.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/components/config-form2.vue?vue&type=script&lang=ts&
[0]  @ ./src/views/tools/fake-strategy/components/config-form2.vue
[0]  @ ./node_modules/cache-loader/dist/cjs.js??ref--15-0!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--15-2!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/tools/fake-strategy/index.vue?vue&type=script&lang=ts&
Webpack: Starting ...

1、源代码

  private async handleLock(row: any) {
    const newIsLocked = row.isLocked === 0 ? 1 : 0
    const newStatus = newIsLocked === 0
      ? InviteCodeStatus.EFFECTIVE.name
      : InviteCodeStatus.LOCKED.name

    this.$confirm(
      `确定要${row.isLocked === 0 ? '锁定' : '解锁'}该邀请码吗?`,
      '提示',
      {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }
    )
      .then(async() => {
        try {
          console.log('请求参数:', {
            inviteCodeId: row.id,
            statusName: newStatus
            isLocked: newIsLocked, // 添加 isLocked 参数
          })

          // 调用后端的更新状态接口
          const response = await updateInviteCodeStatus({
            inviteCodeId: row.id,
            statusName: newStatus
            isLocked: newIsLocked, // 添加 isLocked 参数
          })

          console.log('response.data:', response.data)
          console.log('typeof response.data', typeof response.data)

          if (response && response.data && typeof response.data === 'object' && 'status' in response.data) {

            const status = response.data.status
            const isLocked = response.data.isLocked

            // 调试步骤 1:打印状态值
            console.log('状态值:', status)
            console.log('后端返回的isLocked值:',isLocked)

            // 调试步骤 2:检查状态映射
            let statusObj
            try {
              statusObj = InviteCodeStatus.fromValue(status)
              console.log('映射后的状态:', statusObj)
            } catch (e) {
              console.error('状态映射错误:', e)
              this.$message.error('状态映射错误,请联系管理员')
              return
            }

            // 更新本地数据
            const index = this.tableData.findIndex(item => item.id === row.id)
            if (index !== -1) {
              this.$set(this.tableData, index, {
                ...this.tableData[index],
                // isLocked: newIsLocked,
                status: status // 使用后端返回的 status 值
                isLocked: isLocked, // 使用后端返回的isLocked
              })
              console.log('更新后的行数据:', this.tableData[index])
            }

            this.$message.success(`${newIsLocked === 0 ? '解锁' : '锁定'}成功`)

            // 选择性地重新拉取数据,根据实际需求
            // await this.fetchInviteCodeList();
          } else {
            this.$message.error('更新失败')
          }
        } catch (error) {
          console.error('更新邀请码状态失败:', error)
          console.error('错误详情:', error.response || error.message)
          this.$message.error('更新邀请码状态失败:未知错误')
        }
      })
      .catch(() => { })
  }

2、修改后的代码

          console.log('请求参数:', {
            inviteCodeId: row.id,
            statusName: newStatus,
            isLocked: newIsLocked, // 添加 isLocked 参数
          })
          // 调用后端的更新状态接口
          const response = await updateInviteCodeStatus({
            inviteCodeId: row.id,
            statusName: newStatus,
            isLocked: newIsLocked, // 添加 isLocked 参数
          })

缺失了逗号,导致 isLocked: newIsLocked 被认为是 statusName 的值,进而产生语法错误。

              this.$set(this.tableData, index, {
                ...this.tableData[index],
                // isLocked: newIsLocked,
                status: status, // 使用后端返回的 status 值
                isLocked: isLocked, // 使用后端返回的isLocked
              })

在对象字面量中漏写了逗号
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

;