-
404
-
抱歉,页面不存在
-
返回首页
+
+
+

+
404
+
抱歉,您访问的页面不存在
+
可能是链接错误或者该页面已被删除
+
返回首页
+
-
\ No newline at end of file
diff --git a/src/views/Redirect.vue b/src/views/Redirect.vue
new file mode 100644
index 0000000..fb20ae8
--- /dev/null
+++ b/src/views/Redirect.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/images/ContainerImages.vue b/src/views/acs/images/ContainerImages.vue
new file mode 100644
index 0000000..96bb108
--- /dev/null
+++ b/src/views/acs/images/ContainerImages.vue
@@ -0,0 +1,1281 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+ {{ scope.row.name }}
+ {{ scope.row.tag || '无标签' }}
+
+
{{ scope.row.description || '暂无描述' }}
+
+
+
+
+
+
+ {{ scope.row.show_name || '未设置' }}
+
+
+
+
+
+ {{ scope.row.state == 0 ? '上传中' : scope.row.state == 1 ? '上传成功' : '上传失败' }}
+
+
+
+
+
+
+
+ 创建容器
+
+
+ 查看
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 镜像ID:
+ {{ currentImage.image_id }}
+
+
+ 展示名称:
+ {{ currentImage.show_name || '未设置' }}
+
+
+ 状态:
+
+
+ {{ currentImage.state == 0 ? '上传中' : currentImage.state == 1 ? '上传成功' : '上传失败' }}
+
+
+
+
+
+
+ 网络配置:
+ 已配置
+
+
+ 环境变量:
+ 已配置
+
+
+ 创建时间:
+ {{ currentImage.created_at || '未知' }}
+
+
+
+
+
描述
+
+
+ {{ currentImage.description || '暂无描述信息' }}
+
+
+
+
+
+
+
+
+
+
+ :
+
+
+
+
+
+
+
+
+
![]()
+
+ 选择文件
+
+
+ 已选择: {{ selectedFileName }}
+
+
+
+
从素材库选择
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.type === 'nginx' ? '建站服务' :
+ scope.row.type === 'port_forward' ? '自定义端口' :
+ scope.row.type === 'floating_ip' ? '独立IP' : scope.row.type }}
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
{{ item.title ? item.title.slice(0, 8) : '未命名' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/images/ImageCategories.vue b/src/views/acs/images/ImageCategories.vue
new file mode 100644
index 0000000..9838c1d
--- /dev/null
+++ b/src/views/acs/images/ImageCategories.vue
@@ -0,0 +1,708 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加分类
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getServerName(scope.row.server_id) }}
+
+
+
+
+ {{ scope.row.created_at }}
+
+
+
+
+
+ 编辑
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
{{ item.title ? item.title.slice(0, 8) : '未命名' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/images/ImageRequests.vue b/src/views/acs/images/ImageRequests.vue
new file mode 100644
index 0000000..d705efa
--- /dev/null
+++ b/src/views/acs/images/ImageRequests.vue
@@ -0,0 +1,728 @@
+
+
+
+
+
+
+
+ 申请的镜像需要经过安全审核,审核通过后可在创建云电脑或容器时使用,审核结果将通过站内信通知。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.type === 'docker' ? 'Docker' : 'Windows' }}
+
+
+
+
+
+
+
+ {{ getStatusText(scope.row.status) }}
+
+
+
+
+
+
+ 查看详情
+
+
+ 重新提交
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Docker镜像
+ Windows镜像
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Docker Hub格式:mysql:8.0;自建仓库格式:namespace/repo:tag
+
+
+ 环境变量配置
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加环境变量
+
+
+
+ 暴露端口
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加端口
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提供ISO镜像的下载链接,支持微软官方、MSDN等其他合法渠道的镜像
+
+
+
+
+ KMS激活
+ 产品密钥
+ 不需要激活
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ currentRequest.id }}
+ {{ currentRequest.name }}
+
+
+ {{ currentRequest.type === 'docker' ? 'Docker' : 'Windows' }}
+
+
+ {{ currentRequest.requestTime }}
+
+
+ {{ getStatusText(currentRequest.status) }}
+
+
+
+
+
详细信息
+
+
+
+
+ {{ currentRequest.dockerSource === 'dockerhub' ? 'Docker Hub: ' : '自定义: ' }}{{ currentRequest.dockerImage }}
+
+
+
+
+ 环境变量
+
+
+
+
+
+
+
+ 端口配置
+
+
+
+
+
+
+
+
+
+
+
+ {{ getWindowsVersionText(currentRequest.windowsVersion) }}
+
+
+ {{ currentRequest.windowsImageUrl }}
+
+
+ {{ getActivationMethodText(currentRequest.activationMethod) }}
+
+
+
+
+
申请理由
+
{{ currentRequest.reason }}
+
+
+ 审核意见
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/images/VmImages.vue b/src/views/acs/images/VmImages.vue
new file mode 100644
index 0000000..63dd130
--- /dev/null
+++ b/src/views/acs/images/VmImages.vue
@@ -0,0 +1,904 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+ {{ scope.row.name }}
+
+
{{ scope.row.description || '暂无描述' }}
+
+
+
+
+
+
+
+
+ {{ getStatusText(scope.row.state) }}
+
+
+
+
+
+
+
+ 创建虚拟机
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
{{ item.title ? item.title.slice(0, 8) : '未命名' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/messages/Announcements.vue b/src/views/acs/messages/Announcements.vue
new file mode 100644
index 0000000..a8d6051
--- /dev/null
+++ b/src/views/acs/messages/Announcements.vue
@@ -0,0 +1,423 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getStatusText(scope.row.status) }}
+
+
+
+
+
+
+ 查看
+
+
+ 编辑
+
+
+ 下线
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ currentAnnouncement.title }}
+
+ 发布人: {{ currentAnnouncement.publisher }}
+ 发布时间: {{ currentAnnouncement.publishTime }}
+ 状态: {{ getStatusText(currentAnnouncement.status) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 立即发布
+ 保存为草稿
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/messages/News.vue b/src/views/acs/messages/News.vue
new file mode 100644
index 0000000..ead8aa4
--- /dev/null
+++ b/src/views/acs/messages/News.vue
@@ -0,0 +1,490 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getCategoryText(scope.row.category) }}
+
+
+
+
+
+
+
+
+
+ 查看
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ currentNews.title }}
+
+
+
+ {{ getCategoryText(currentNews.category) }}
+
+
+ {{ currentNews.author }}
+ {{ currentNews.publishTime }}
+ {{ currentNews.viewCount }} 次阅读
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 实际使用时应为图片上传组件
+
+
+
+
+
+
+
+
+ 实际使用时应为富文本编辑器
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/messages/Policies.vue b/src/views/acs/messages/Policies.vue
new file mode 100644
index 0000000..f2e0f15
--- /dev/null
+++ b/src/views/acs/messages/Policies.vue
@@ -0,0 +1,498 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getPolicyTypeText(scope.row.type) }}
+
+
+
+
+
+
+
+
+
+ {{ getStatusText(scope.row.status) }}
+
+
+
+
+
+
+ 查看
+
+
+ 编辑
+
+
+ 下线
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ currentPolicy.title }}
+
+ 类型: {{ getPolicyTypeText(currentPolicy.type) }}
+ 发布人: {{ currentPolicy.publisher }}
+ 发布时间: {{ currentPolicy.publishTime }}
+ 生效时间: {{ currentPolicy.effectiveTime }}
+ 状态: {{ getStatusText(currentPolicy.status) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 立即生效
+ 计划中
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/nodes/Nodes.vue b/src/views/acs/nodes/Nodes.vue
new file mode 100644
index 0000000..81cc90d
--- /dev/null
+++ b/src/views/acs/nodes/Nodes.vue
@@ -0,0 +1,1036 @@
+
+
+
+
+
+
+
+
+
+
+
{{ serverStats.total }}
+
总服务器数
+
+
+
+
+
+
{{ serverStats.online }}
+
在线服务器
+
+
+
+
+
+
{{ serverStats.offline }}
+
离线服务器
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.state == 1 ? '在线' : '离线' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 服务器配置
+
+
+
+ Mbps
+
+
+
+
+ GB
+
+
+
+
+ GB
+
+
+
+
+ 核
+
+
+
+
+ 服务器类型
+
+
+ 容器云服务器
+ 虚拟机云服务器
+
+
+
+ 认证与展示
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/nodes/components/VmList.vue b/src/views/acs/nodes/components/VmList.vue
new file mode 100644
index 0000000..2de28a2
--- /dev/null
+++ b/src/views/acs/nodes/components/VmList.vue
@@ -0,0 +1,314 @@
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+ {{ scope.row.created_at }}
+
+
+
+
+ {{ scope.row.become_time }}
+
+
+
+
+
+ {{ getStatusText(scope.row.state) }}
+
+
+
+
+
+
+ 管理
+
+
+ 启动
+
+
+ 停止
+
+
+ 重启
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/nodes/components/serverChart.vue b/src/views/acs/nodes/components/serverChart.vue
new file mode 100644
index 0000000..d398f0b
--- /dev/null
+++ b/src/views/acs/nodes/components/serverChart.vue
@@ -0,0 +1,340 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/acs/nodes/server.vue b/src/views/acs/nodes/server.vue
new file mode 100644
index 0000000..fa9f259
--- /dev/null
+++ b/src/views/acs/nodes/server.vue
@@ -0,0 +1,1373 @@
+
+
+
+
+
+
+
+
+
+
+ 基本信息
+
+
+
+
服务器名称
+
{{ serverMessage.name || '未设置' }}
+
+
+
服务器ID
+
{{ serverMessage.server_id || '未知' }}
+
+
+
IP地址
+
{{ serverMessage.server_ip || '未设置' }}
+
+
+
创建时间
+
{{ serverMessage.created_at || '未知' }}
+
+
+
+
+
+
+
+ 资源配置
+
+
+
+
CPU
+
{{ serverMessage.cpu || '0' }} 核心
+
+
+
内存
+
{{ serverMessage.memory || '0' }} GB
+
+
+
硬盘
+
{{ serverMessage.disk || '0' }} GB
+
+
+
带宽
+
{{ serverMessage.bandwidth || '0' }} Mbps
+
+
+
+
+
+
+
+ 位置信息
+
+
+
+
地区
+
{{ serverMessage.location || '未设置' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.memory }} MB
+
+
+
+
+ {{ scope.row.disk }} GB
+
+
+
+
+ {{ scope.row.cpu }} {{ TypeData === 'dockerContainer' ? '毫核' : '核' }}
+
+
+
+
+ {{ scope.row.bandwidth_tx }} Mbps
+
+
+
+
+ {{ scope.row.bandwidth_rx }} Mbps
+
+
+
+
+ ¥ {{ scope.row.price }}
+
+
+
+
+
+ {{ scope.row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ¥ {{ scope.row.pay }}
+
+
+
+
+ {{ scope.row.created_at }}
+
+
+
+
+ {{ scope.row.become_time }}
+
+
+
+
+
+
+
+ {{
+ scope.row.container_state == 0
+ ? "未支付"
+ : scope.row.container_state == 1
+ ? "未开通"
+ : scope.row.container_state == 2
+ ? "开机"
+ : "关机"
+ }}
+
+
+
+
+
+
+ 管理
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.created_at }}
+
+
+
+
+
+
+ {{ scope.row.is_used ? "已绑定" : "未绑定" }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+
+
+
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/dashboard/Dashboard.vue b/src/views/dashboard/Dashboard.vue
new file mode 100644
index 0000000..963bf5d
--- /dev/null
+++ b/src/views/dashboard/Dashboard.vue
@@ -0,0 +1,892 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 总销售额
+ ¥ 893,204
+ +21.5%
+
+
+ 平均订单额
+ ¥ 5,618
+ +6.8%
+
+
+ 转化周期
+ 24天
+ -2.3%
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+ {{ item.percentage }}%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ activity.content }}
+
{{ activity.detail }}
+
+
+
+
+
+
+
+
+
+
+
+ 全部
+ 今日
+ 重要
+
+
+
+
+
+
+
+ 按优先级排序
+ 按截止日期排序
+
+
+
+
+
+
+
+
+
+
+
{{ todo.title }}
+
+
+ {{ todo.priority }}
+
+
+ {{ todo.deadline }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/profile/ChangePassword.vue b/src/views/profile/ChangePassword.vue
new file mode 100644
index 0000000..1fc43ff
--- /dev/null
+++ b/src/views/profile/ChangePassword.vue
@@ -0,0 +1,525 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
为了保障您的账号安全,密码需满足以下要求:
+
+
+ -
+
+
+
+ 长度至少8个字符
+
+ -
+
+
+
+ 包含至少一个大写字母 (A-Z)
+
+ -
+
+
+
+ 包含至少一个小写字母 (a-z)
+
+ -
+
+
+
+ 包含至少一个数字 (0-9)
+
+ -
+
+
+
+ 包含至少一个特殊字符 (@$!%*#?&)
+
+
+
+
+
+
为了您的账户安全,请不要使用与其他网站相同的密码,并定期更换密码。
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/profile/UserInfo.vue b/src/views/profile/UserInfo.vue
new file mode 100644
index 0000000..a4e080e
--- /dev/null
+++ b/src/views/profile/UserInfo.vue
@@ -0,0 +1,529 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 用户名
+ {{ userInfo.username }}
+
+
+ 真实姓名
+ {{ userInfo.realName }}
+
+
+ 邮箱
+ {{ userInfo.email }}
+
+
+ 手机号
+ {{ userInfo.phone }}
+
+
+
+
+
+
+
+
+
+ {{ userInfo.bio || '暂无个人简介' }}
+
+
+
+
+
+
+
+
+
+ 账号创建时间
+ {{ formatDateFull(userInfo.createTime) }}
+
+
+ 最后登录时间
+ {{ formatDateFull(userInfo.lastLogin) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+ 取消
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/system/DomainWhitelist.vue b/src/views/system/DomainWhitelist.vue
new file mode 100644
index 0000000..e1a84ef
--- /dev/null
+++ b/src/views/system/DomainWhitelist.vue
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.Domain }}
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/system/OperationLog.vue b/src/views/system/OperationLog.vue
new file mode 100644
index 0000000..8de1ab0
--- /dev/null
+++ b/src/views/system/OperationLog.vue
@@ -0,0 +1,395 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+ 导入
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ row.operator }}
+
{{ row.ip }}
+
+
+
+
+
+
+ {{ getTypeText(row.type) }}
+
+
+
+
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+
+ {{ detailData.operator }}
+
+ {{ getTypeText(detailData.type) }}
+
+ {{ detailData.description }}
+ {{ detailData.ip }}
+ {{ detailData.createTime }}
+
+ {{ JSON.stringify(detailData.params, null, 2) }}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/system/Users.vue b/src/views/system/Users.vue
new file mode 100644
index 0000000..3ea12b8
--- /dev/null
+++ b/src/views/system/Users.vue
@@ -0,0 +1,578 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+ 新增用户
+
+
+ 批量删除
+
+
+ 导入
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ row.username }}
+
{{ row.email }}
+
+
+
+
+
+
+
+
+ handleStatusChange(row, val)"
+ />
+
+
+
+
+
+ 编辑
+ 分配角色
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 启用
+ 禁用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/ticket/TicketChat.vue b/src/views/ticket/TicketChat.vue
new file mode 100644
index 0000000..8aca872
--- /dev/null
+++ b/src/views/ticket/TicketChat.vue
@@ -0,0 +1,1561 @@
+
+
+
+
+
+
+
+
+ 全部 ({{ stats.total }})
+
+
+ 待处理 ({{ stats.pending }})
+
+
+ 处理中 ({{ stats.processing }})
+
+
+ 已回复 ({{ stats.replied }})
+
+
+ 已完成 ({{ stats.completed }})
+
+
+
+
+
+
+ {{ ticket.username.charAt(0) }}
+
+
+
+
{{ ticket.username }}
+
{{ formatTime(ticket.lastReplyTime || ticket.createTime) }}
+
+
+
{{ ticket.title }}
+
+
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多工单了
+
+
+
+
+
+
+
+
+
+
{{ formatDate(currentTicket.createTime) }}
+
+
+
+
+ 聊天记录加载中...
+
+
+
+
+
+ {{ currentTicket.username.charAt(0) }}
+
+
+
+
+ {{ message.content }}
+
+
+
+
![]()
+
+
{{ formatMessageTime(message.time) }}
+
+
+ A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vite.config.js b/vite.config.js
index bbcf80c..6bdfa39 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -1,7 +1,12 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
-
+import { resolve } from 'path'
// https://vite.dev/config/
export default defineConfig({
plugins: [vue()],
-})
+ resolve: {
+ alias: {
+ '@': resolve(__dirname, 'src')
+ }
+ }
+})
\ No newline at end of file