From 799f767e0dc46aca72b52dd95d78f7e3aecc0a9f Mon Sep 17 00:00:00 2001
From: chenruiye <862859104@qq.com>
Date: Mon, 9 Jun 2025 16:52:55 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8B=8B=E7=AB=A0=E4=BF=A1=E6=81=AF=E7=AE=A1?=
=?UTF-8?q?=E7=90=86-=E6=96=B0=E5=A2=9E=E4=B8=8A=E4=BC=A0mp4=E3=80=81?=
=?UTF-8?q?=E8=8E=B7=E5=BE=97=E6=96=B9=E5=BC=8F=EF=BC=8C=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E5=8B=8B=E7=AB=A0=E7=AD=89=E7=BA=A7=E7=AE=A1=E7=90=86=E9=A1=B5?=
=?UTF-8?q?=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/medal/MedalLevelManagement.js | 28 ++
src/views/medal/MedalInfo.vue | 424 ++++++++++-----------
src/views/medal/MedalLevelManagement.vue | 445 +++++++++++++++++++++++
3 files changed, 662 insertions(+), 235 deletions(-)
create mode 100644 src/api/medal/MedalLevelManagement.js
create mode 100644 src/views/medal/MedalLevelManagement.vue
diff --git a/src/api/medal/MedalLevelManagement.js b/src/api/medal/MedalLevelManagement.js
new file mode 100644
index 0000000..549944d
--- /dev/null
+++ b/src/api/medal/MedalLevelManagement.js
@@ -0,0 +1,28 @@
+import request from '@/utils/request';
+
+// 勋章等级管理-列表
+export const getMedalSeriesList = query => {
+ return request({
+ url: '/admin/medalSeries/list',
+ method: 'get',
+ params: query
+ });
+};
+// 保存
+export const saveOrUpdate = query => {
+ return request({
+ url: '/admin/medalSeries/saveOrUpdate',
+ method: 'post',
+ headers: {"Content-Type": 'application/json;charset=UTF-8' },
+ data: query
+ });
+};
+
+// 上下架
+export const updateStatus = query => {
+ return request({
+ url: '/admin/medalSeries/updateStatus',
+ method: 'post',
+ params: query
+ });
+};
diff --git a/src/views/medal/MedalInfo.vue b/src/views/medal/MedalInfo.vue
index 61fc43c..6131756 100644
--- a/src/views/medal/MedalInfo.vue
+++ b/src/views/medal/MedalInfo.vue
@@ -11,10 +11,8 @@
@@ -23,12 +21,7 @@
新增
-
+
{{
@@ -47,22 +40,23 @@
{{ JSON.parse(scope.row.name).tr }}
-
+
+ {{ JSON.parse(scope.row.medalDesc)?.zh || ''}}
+
+
+ {{ JSON.parse(scope.row.medalDesc)?.en || ''}}
+
+
+ {{ JSON.parse(scope.row.medalDesc)?.ar || ''}}
+
+
+ {{ JSON.parse(scope.row.medalDesc)?.tr || ''}}
+
+
-
+
@@ -73,21 +67,11 @@
-
+
编辑
-
+
发放
@@ -95,139 +79,95 @@
-
+
-
+
- 地区
-
-
+ 地区
+
+
- 勋章名称-华语
-
+ 勋章名称-华语
+
- 勋章名称-英语
-
+ 勋章名称-英语
+
- 勋章名称-阿语
-
+ 勋章名称-阿语
+
- 勋章名称-土耳其
-
+ 勋章名称-土耳其
+
-
勋章图片
-
+ 勋章图片
+
+
+
+ 勋章获得方式-华语
+
+
+
+
+
+ 勋章获得方式-英语
+
+
+
+
+
+ 勋章获得方式-阿语
+
+
+
+
+ 勋章获得方式-土耳其
+
+
+
+
+
+ 勋章动态图
+
+
+
+
+
- 状态
+ 状态
-
+
@@ -243,71 +183,30 @@
-
+
- 勋章名称
-
+ 勋章名称
+
- 发放对象平台号
-
+ 发放对象平台号
+
- 发放天数
-
+ 发放天数
+
- 备注
-
+ 备注
+
@@ -330,7 +229,7 @@ import { ElMessage } from "element-plus";
import PartitionSelect from "@/views/common/partitionSelect.vue";
export default {
name: "MedalInfo",
- components: {PartitionSelect},
+ components: { PartitionSelect },
data() {
return {
loading: false,
@@ -358,7 +257,12 @@ export default {
nickAr: "",
nickTr: "",
imageUrl1: "",
+ imageUrl2: '',
value2: "",
+ medalDescZh: '',
+ medalDescEn: '',
+ medalDescAr: '',
+ medalDescTr: '',
options2: [
{
desc: "生效",
@@ -420,6 +324,11 @@ export default {
this.controlsObj.nickAr = "";
this.controlsObj.nickTr = "";
this.controlsObj.imageUrl1 = "";
+ this.controlsObj.imageUrl2 = "";
+ this.controlsObj.medalDescZh = "";
+ this.controlsObj.medalDescEn = "";
+ this.controlsObj.medalDescAr = "";
+ this.controlsObj.medalDescTr = "";
this.controlsObj.value2 = "";
this.controlsDialog = true;
},
@@ -432,7 +341,14 @@ export default {
this.controlsObj.nickEn = JSON.parse(val.name).en;
this.controlsObj.nickAr = JSON.parse(val.name).ar;
this.controlsObj.nickTr = JSON.parse(val.name).tr;
+ if (val.medalDesc) {
+ this.controlsObj.medalDescZh = JSON.parse(val.medalDesc).zh;
+ this.controlsObj.medalDescEn = JSON.parse(val.medalDesc).en;
+ this.controlsObj.medalDescAr = JSON.parse(val.medalDesc).ar;
+ this.controlsObj.medalDescTr = JSON.parse(val.medalDesc).tr;
+ }
this.controlsObj.imageUrl1 = val.picUrl;
+ this.controlsObj.imageUrl2 = val.mp4Url;
this.controlsObj.value2 = val.enable;
this.controlsObj.id = val.id;
this.controlsDialog = true;
@@ -455,7 +371,15 @@ export default {
ar: this.controlsObj.nickAr,
tr: this.controlsObj.nickTr,
});
+
+ obj.medalDesc = JSON.stringify({
+ zh: this.controlsObj.medalDescZh,
+ en: this.controlsObj.medalDescEn,
+ ar: this.controlsObj.medalDescAr,
+ tr: this.controlsObj.medalDescTr,
+ });
obj.picUrl = this.controlsObj.imageUrl1;
+ obj.mp4Url = this.controlsObj.imageUrl2;
obj.enable = this.controlsObj.value2;
console.log(obj);
medalSave(obj).then((res) => {
@@ -484,7 +408,14 @@ export default {
ar: this.controlsObj.nickAr,
tr: this.controlsObj.nickTr,
});
+ obj1.medalDesc = JSON.stringify({
+ zh: this.controlsObj.medalDescZh,
+ en: this.controlsObj.medalDescEn,
+ ar: this.controlsObj.medalDescAr,
+ tr: this.controlsObj.medalDescTr,
+ });
obj1.picUrl = this.controlsObj.imageUrl1;
+ obj1.mp4Url = this.controlsObj.imageUrl2;
obj1.enable = this.controlsObj.value2;
obj1.id = this.controlsObj.id;
console.log(1111111111, this.controlsObj.value);
@@ -536,56 +467,44 @@ export default {
},
partitionFlagFun(num, type) {
//1 2 4
- var val = 0;
+ var val = '';
+ let valArr = [];
if (type == 2) {
- if (num == 0 || num == 15) {
- val = [1, 2, 4, 8];
+ if ((num & 1) != 0) {
+ valArr.push(1);
}
- if (num == 0 || num == 15) {
- val = [1, 2, 4, 8];
- } else if (num == 1) {
- val = [1];
- } else if (num == 3) {
- val = [1, 2];
- } else if (num == 7) {
- val = [1, 2, 4];
- } else if (num == 2) {
- val = [2];
- } else if (num == 6) {
- val = [2, 4];
- } else if (num == 14) {
- val = [2, 4, 8];
- } else if (num == 4) {
- val = [4];
- } else if (num == 12) {
- val = [4, 8];
- } else if (num == 8) {
- val = [8];
+ if ((num & 2) != 0) {
+ valArr.push(2);
}
+ if ((num & 4) != 0) {
+ valArr.push(4);
+ }
+ if ((num & 8) != 0) {
+ valArr.push(8);
+ }
+ if ((num & 16) != 0) {
+ valArr.push(16);
+ }
+ return valArr;
} else {
- if (num == 0 || num == 15) {
- val = "英语区、阿语区、华语区、土耳其区";
- } else if (num == 1) {
- val = "英语区";
- } else if (num == 3) {
- val = "英语区、阿语区";
- } else if (num == 7) {
- val = "英语区、阿语区、华语区";
- } else if (num == 2) {
- val = "阿语区";
- } else if (num == 6) {
- val = "阿语区、华语区";
- } else if (num == 14) {
- val = "阿语区、华语区、土耳其区";
- } else if (num == 4) {
- val = "华语区";
- } else if (num == 12) {
- val = "华语区、土耳其区";
- } else if (num == 8) {
- val = "土耳其区";
+ if ((num & 1) != 0) {
+ val += '英语区 ';
}
+ if ((num & 2) != 0) {
+ val += '阿拉伯语区 ';
+ }
+ if ((num & 4) != 0) {
+ val += '华语区 ';
+ }
+ if ((num & 8) != 0) {
+ val += '土耳其 ';
+ }
+ if ((num & 16) != 0) {
+ val += '英语2区 ';
+ }
+ return val;
}
- return val;
+
},
beforeAvatarUpload() {
ElMessage({
@@ -610,6 +529,36 @@ export default {
type: "success",
});
},
+ handleAvatarSuccess2(res, file) {
+ console.log(file);
+ this.controlsObj.imageUrl2 = file.response.data;
+ ElMessage({
+ showClose: true,
+ message: "上传成功!",
+ type: "success",
+ });
+ },
+ beforeAvatarUploadMp4(file) {
+ const dotIndex = (file.name).indexOf('.'); // 找到 '.' 的位置
+ if (dotIndex !== -1) {
+ const result = (file.name).substring(dotIndex + 1); // 从 '.' 之后开始截取
+ console.log(result);
+ if (result == 'mp4') {
+ ElMessage({
+ showClose: true,
+ message: "上传中~",
+ type: "warning",
+ });
+ return true;
+ } else {
+ ElMessage.error('请上传mp4格式文件');
+ return false;
+ }
+ } else {
+ ElMessage.error('请上传mp4格式文件');
+ return false;
+ }
+ },
// 分页导航
handleSizeChange() {
this.getData();
@@ -624,21 +573,26 @@ export default {
.box {
padding-top: 20px;
background: #ecf0f5;
+
.inquire {
display: inline-block;
margin-right: 20px;
+
span {
margin-right: 10px;
}
+
.input {
width: 180px;
margin-right: 10px;
}
}
+
.dialogTableVisibleBut {
display: block;
margin: 30px 0 0 830px;
}
+
.paginationClass {
margin: 15px 0 5px 0px;
}
diff --git a/src/views/medal/MedalLevelManagement.vue b/src/views/medal/MedalLevelManagement.vue
new file mode 100644
index 0000000..77667f6
--- /dev/null
+++ b/src/views/medal/MedalLevelManagement.vue
@@ -0,0 +1,445 @@
+
+
+
+
+ 勋章类型
+
+
+
+
+
+ 勋章等级
+
+
+
+
+
查询
+
新增
+
+
+
+
+ {{ JSON.parse(scope.row.seriesName).zh }}
+
+
+ {{ JSON.parse(scope.row.seriesName).en }}
+
+
+ {{ JSON.parse(scope.row.seriesName).ar }}
+
+
+ {{ JSON.parse(scope.row.seriesName).tr }}
+
+
+ {{
+ partitionFlagFun(scope.row.partitionFlag, 1)
+ }}
+
+
+ {{
+ scope.row.type == 1 ? '任务勋章' : scope.row.type == 2 ? '成就勋章' : '荣耀勋章'
+ }}
+
+
+
+
+ {{ scope.row.squareShow == 1 ? '展示' : '不展示' }}
+
+
+
+
+ {{ scope.row.status == 1 ? '上架' : '下架'}}
+
+
+
+
+ 编辑
+
+
+
+
+
+
+
+
+
+ 分区
+
+
+
+
+
+
+
+ 勋章等级名称-华语
+
+
+
+
+ 勋章等级名称-英语
+
+
+
+
+ 勋章等级名称-阿语
+
+
+
+
+ 勋章等级名称-土耳其
+
+
+
+
+ 勋章类型
+
+
+
+
+
+
+
+ 勋章等级
+
+
+
+
+
+
+ 勋章ID LV{{ index + 1 }}
+
+
+
+
+ 是否展示在勋章广场
+
+
+
+
+
+
+ 状态
+
+
+
+
+
+
+ 排序
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file