葡萄牙语

This commit is contained in:
khalil
2025-07-15 11:31:45 +08:00
parent 7d04f3c012
commit adc74fe2ae
27 changed files with 10039 additions and 8262 deletions

View File

@@ -4,6 +4,7 @@ const partitionInfoMap = {
4: '华语区',
8: '土耳其区',
16: '英语2区',
32: '葡萄牙语区',
}
export const partitionDesc = (val) => {

View File

@@ -4,100 +4,85 @@
<div class="inquire">
<div class="block">
<span class="demonstration">选择分区</span>
<el-select
v-model="inquire.partitionId"
<el-select v-model="inquire.partitionId"
style="width: 75%"
placeholder="请选择"
@change="handleChange"
>
<el-option
v-for="item in inquire.inquireonInfos"
@change="handleChange">
<el-option v-for="item in inquire.inquireonInfos"
:key="item.id"
:label="item.desc"
:value="item.id"
></el-option>
:value="item.id"></el-option>
</el-select>
</div>
</div>
<!-- 表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="seq" align="center" label="排序" />
<el-table-column prop="name" align="center" label="礼物面板类型" />
<el-table-column prop="enable" align="center" label="是否生效">
style="width: 100%; margin-top: 25px">
<el-table-column prop="seq"
align="center"
label="排序" />
<el-table-column prop="name"
align="center"
label="礼物面板类型" />
<el-table-column prop="enable"
align="center"
label="是否生效">
<template v-slot="scope">{{ scope.row.enable ? "是" : "否" }}</template>
</el-table-column>
<el-table-column align="center" label="操作">
<el-table-column align="center"
label="操作">
<template v-slot="scope">
<el-button
@click="ediClick(scope.row)"
<el-button @click="ediClick(scope.row)"
class="primary"
type="primary"
size="default"
>编辑</el-button
>
size="default">编辑</el-button>
</template>
</el-table-column>
</el-table>
<!-- 编辑弹窗 -->
<el-dialog v-model="eidDialog" :title="eidDialogTitle" width="30%" center>
<el-dialog v-model="eidDialog"
:title="eidDialogTitle"
width="30%"
center>
<!-- 礼物面板类型 -->
<div style="margin-bottom: 25px; margin-top: 10px">
<span
style="display: inline-block; white-space: nowrap; margin-right: 70px"
class="col-sm-2 control-label"
>礼物面板类型</span
>
<el-input
v-model="eidObj.type"
<span style="display: inline-block; white-space: nowrap; margin-right: 70px"
class="col-sm-2 control-label">礼物面板类型</span>
<el-input v-model="eidObj.type"
style="width: 60%"
class="input"
placeholder="请输入"
disabled
></el-input>
disabled></el-input>
</div>
<!-- 面板排序 -->
<div style="margin-bottom: 25px; margin-top: 10px">
<span
style="display: inline-block; white-space: nowrap; margin-right: 70px"
class="col-sm-2 control-label"
>面板排序-{{ eidText }}</span
>
<el-input
v-model="eidObj.seq"
<span style="display: inline-block; white-space: nowrap; margin-right: 70px"
class="col-sm-2 control-label">面板排序-{{ eidText }}</span>
<el-input v-model="eidObj.seq"
style="width: 60%"
class="input"
placeholder="请输入"
></el-input>
placeholder="请输入"></el-input>
</div>
<!-- 是否生效 -->
<div style="margin-bottom: 25px; margin-top: 10px">
<span
style="display: inline-block; white-space: nowrap; margin-right: 70px"
class="col-sm-2 control-label"
>是否生效</span
>
<el-select
v-model="eidObj.value"
<span style="display: inline-block; white-space: nowrap; margin-right: 70px"
class="col-sm-2 control-label">是否生效</span>
<el-select v-model="eidObj.value"
style="width: 60%"
placeholder="请选择"
>
<el-option
v-for="item in eidObj.option"
placeholder="请选择">
<el-option v-for="item in eidObj.option"
:key="item.id"
:label="item.desc"
:value="item.id"
></el-option>
:value="item.id"></el-option>
</el-select>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="eidDialog = false">取消</el-button>
<el-button type="primary" @click="eidDialogClick()"> 确认 </el-button>
<el-button type="primary"
@click="eidDialogClick()"> 确认 </el-button>
</span>
</template>
</el-dialog>
@@ -105,19 +90,19 @@
</template>
<script>
import { list, update } from "@/api/GiftPanelManagement/GiftPanelManagement";
import { listAll} from "@/api/partition/partitionInfo";
import { listAll } from "@/api/partition/partitionInfo";
// @ts-ignore
import { dateFormat } from "@/utils/system-helper";
// @ts-ignore
import { ElMessage } from "element-plus";
export default {
name: "GiftPanelManagement",
data() {
data () {
return {
loading: false,
//查询所需条件对象
inquire: {
partitionId: 4,
partitionId: 1,
inquireonInfos: [
// { desc: "英语区", id: 1 },
// { desc: "阿拉伯区", id: 2 },
@@ -150,7 +135,7 @@ export default {
},
};
},
created() {
created () {
this.eidDialogTitle = `编辑礼物面板信息-华语区`;
this.eidText = `华语区`;
this.getData();
@@ -160,7 +145,7 @@ export default {
},
methods: {
// 查询接口
getData() {
getData () {
this.loading = true;
list({
partitionId: this.inquire.partitionId,
@@ -169,14 +154,14 @@ export default {
this.loading = false;
});
},
ediClick(val) {
ediClick (val) {
this.eidDialog = true;
this.eidObj.type = val.name;
this.eidObj.seq = val.seq;
this.eidObj.value = val.enable;
this.eidObjNew = val;
},
eidDialogClick() {
eidDialogClick () {
update({
enable: this.eidObj.value,
id: this.eidObjNew.id,
@@ -200,7 +185,7 @@ export default {
}
});
},
handleChange(val) {
handleChange (val) {
console.log(val);
if (val == 1) {
this.eidDialogTitle = `编辑礼物面板信息-英语区`;
@@ -211,9 +196,15 @@ export default {
} else if (val == 4) {
this.eidDialogTitle = `编辑礼物面板信息-华语区`;
this.eidText = `华语区`;
}else if (val == 8) {
} else if (val == 8) {
this.eidDialogTitle = `编辑礼物面板信息-土耳其区`;
this.eidText = `土耳其区`;
} else if (val == 16) {
this.eidDialogTitle = `编辑礼物面板信息-英语2区`;
this.eidText = `英语2区`;
} else if (val == 32) {
this.eidDialogTitle = `编辑礼物面板信息-葡萄牙语区`;
this.eidText = `葡萄牙语区`;
}
this.getData();
},

View File

@@ -11,43 +11,62 @@
<div id="table"></div>
<div id="toolbar">
<div class="col-sm-12">
<label for="query_carGoodsId" class="col-sm-1 control-label">座驾ID:</label>
<label for="query_carGoodsId"
class="col-sm-1 control-label">座驾ID:</label>
<div class="col-sm-3">
<input type="number" class="form-control" name="query_carGoodsId"
<input type="number"
class="form-control"
name="query_carGoodsId"
id="query_carGoodsId" />
</div>
<label for="query_carGoodsName" class="col-sm-1 control-label">名称:</label>
<div class="col-sm-3"><input type="text" class="form-control" name="query_carGoodsName"
<label for="query_carGoodsName"
class="col-sm-1 control-label">名称:</label>
<div class="col-sm-3"><input type="text"
class="form-control"
name="query_carGoodsName"
id="query_carGoodsName" />
</div>
<label for="query_carGoodsType" class="col-sm-1 control-label">类型:</label>
<label for="query_carGoodsType"
class="col-sm-1 control-label">类型:</label>
<div class="col-sm-3">
<select name="query_carGoodsType" id="query_carGoodsType" class="form-control">
<option value="" selected="selected">全部</option>
<select name="query_carGoodsType"
id="query_carGoodsType"
class="form-control">
<option value=""
selected="selected">全部</option>
<option value="1">普通座驾</option>
<option value="2">贵族座驾</option>
</select>
</div>
</div>
<div class="col-sm-12">
<label for="condition_type" class="col-sm-1 control-label">状态:</label>
<label for="condition_type"
class="col-sm-1 control-label">状态:</label>
<div class="col-sm-3">
<select name="condition_type" id="condition_type" class="form-control">
<option value="-1" selected="selected">全部</option>
<select name="condition_type"
id="condition_type"
class="form-control">
<option value="-1"
selected="selected">全部</option>
<option value="2">启用</option>
<option value="1">未启用</option>
</select>
</div>
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
<label for="partitionId"
class="col-sm-1 control-label">地区:</label>
<div class="col-sm-3">
<select name="partitionId" id="partitionId" class="form-control"></select>
<select name="partitionId"
id="partitionId"
class="form-control"></select>
</div>
</div>
<div class="col-sm-12">
<button id="car-goods-refresh" class="btn btn-default">
<button id="car-goods-refresh"
class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="car-goods-add" class="btn btn-default">
<button id="car-goods-add"
class="btn btn-default">
<i class="glyphicon glyphicon-plus"></i>增加
</button>
</div>
@@ -57,31 +76,59 @@
</div>
</div>
</section>
<div class="modal fade" id="cardGoodsModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="cardGoodsModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="modalLabel">商城座驾信息</h4>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"
id="modalLabel">商城座驾信息</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="carGoodsForm">
<input type="hidden" name="id" id="id" />
<form class="form-horizontal"
id="carGoodsForm">
<input type="hidden"
name="id"
id="id" />
<div class="form-group">
<label for="partitionFlag" class="col-sm-4 control-label">选择分区</label>
<label for="partitionFlag"
class="col-sm-4 control-label">选择分区</label>
<div class="col-sm-6">
<input type="checkbox" name="partitionFlag" value="1"/>英语区<br>
<input type="checkbox" name="partitionFlag" value="2"/>阿拉伯语区<br>
<input type="checkbox" name="partitionFlag" value="4"/>语区<br>
<input type="checkbox" name="partitionFlag" value="8"/>土耳其区<br>
<input type="checkbox" name="partitionFlag" value="16"/>英语2区<br>
<input type="checkbox"
name="partitionFlag"
value="1" />语区<br>
<input type="checkbox"
name="partitionFlag"
value="2" />阿拉伯语区<br>
<input type="checkbox"
name="partitionFlag"
value="4" />华语区<br>
<input type="checkbox"
name="partitionFlag"
value="8" />土耳其区<br>
<input type="checkbox"
name="partitionFlag"
value="16" />英语2区<br>
<input type="checkbox"
name="partitionFlag"
value="32" />葡萄牙语区<br>
</div>
</div>
<div class="form-group">
<label for="carGoodsType" class="col-sm-3 control-label">座驾类型:</label>
<label for="carGoodsType"
class="col-sm-3 control-label">座驾类型:</label>
<div class="col-sm-9">
<select name="carGoodsType" id="carGoodsType" data-btn-class="btn-warning"
<select name="carGoodsType"
id="carGoodsType"
data-btn-class="btn-warning"
class="form-control">
<option value="">请选择</option>
<option value="1">普通座驾</option>
@@ -90,59 +137,102 @@
</div>
</div>
<div class="form-group">
<label for="name" class="col-sm-3 control-label">座驾名称</label>
<label for="name"
class="col-sm-3 control-label">座驾名称</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="name">
<input type="text"
class="form-control validate[required]"
name="name"
id="name">
</div>
</div>
<div class="form-group">
<label for="ar_name" class="col-sm-3 control-label">阿语座驾名称</label>
<label for="en_name"
class="col-sm-3 control-label">英语名称</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="ar_name">
<input type="text"
class="form-control validate[required]"
name="name"
id="en_name">
</div>
</div>
<div class="form-group">
<label for="en_name" class="col-sm-3 control-label">英语座驾名称</label>
<label for="ar_name"
class="col-sm-3 control-label">阿语名称</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="en_name">
<input type="text"
class="form-control validate[required]"
name="name"
id="ar_name">
</div>
</div>
<div class="form-group">
<label for="tr_name" class="col-sm-3 control-label">土耳其驾名称</label>
<label for="tr_name"
class="col-sm-3 control-label">土耳其名称</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="tr_name">
<input type="text"
class="form-control validate[required]"
name="name"
id="tr_name">
</div>
</div>
<div class="form-group">
<label for="pt_name"
class="col-sm-3 control-label">葡萄牙语名称</label>
<div class="col-sm-9">
<input type="text"
class="form-control validate[required]"
name="name"
id="pt_name">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">使用萝卜购买</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio" name="radishSale" value="0"
<label class="radio-inline"><input type="radio"
name="radishSale"
value="0"
checked></label>
<label class="radio-inline"><input type="radio" name="radishSale" value="1"></label>
<label class="radio-inline"><input type="radio"
name="radishSale"
value="1"></label>
</div>
</div>
<div class="form-group">
<label for="radishPrice" class="col-sm-3 control-label">首次价格:</label>
<label for="radishPrice"
class="col-sm-3 control-label">首次价格:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="radishPrice" id="radishPrice">
<input type="text"
class="form-control"
name="radishPrice"
id="radishPrice">
</div>
<span class="col-sm-3">萝卜</span>
</div>
<div class="form-group">
<label for="radishRenewPrice" class="col-sm-3 control-label">续费价格:</label>
<label for="radishRenewPrice"
class="col-sm-3 control-label">续费价格:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="radishRenewPrice" id="radishRenewPrice">
<input type="text"
class="form-control"
name="radishRenewPrice"
id="radishRenewPrice">
</div>
<span class="col-sm-3">萝卜</span>
</div>
<div class="form-group">
<label for="radishOriginalPrice" class="col-sm-3 control-label">原价:</label>
<label for="radishOriginalPrice"
class="col-sm-3 control-label">原价:</label>
<div class="col-sm-6">
<input type="number" class="form-control" placeholder="没有填0" value="0"
name="radishOriginalPrice" id="radishOriginalPrice">
<input type="number"
class="form-control"
placeholder="没有填0"
value="0"
name="radishOriginalPrice"
id="radishOriginalPrice">
</div>
<span class="col-sm-3">萝卜</span>
</div>
@@ -150,115 +240,192 @@
<div class="form-group">
<label class="col-sm-3 control-label">使用钻石购买</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio" name="goldSale" value="0"></label>
<label class="radio-inline"><input type="radio" name="goldSale" value="1" checked></label>
<label class="radio-inline"><input type="radio"
name="goldSale"
value="0"></label>
<label class="radio-inline"><input type="radio"
name="goldSale"
value="1"
checked></label>
</div>
</div>
<div class="form-group">
<label for="price" class="col-sm-3 control-label">首次价格:</label>
<label for="price"
class="col-sm-3 control-label">首次价格:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="price" id="price">
<input type="text"
class="form-control"
name="price"
id="price">
</div>
<span class="col-sm-3">钻石</span>
</div>
<div class="form-group">
<label for="renewPrice" class="col-sm-3 control-label">续费价格:</label>
<label for="renewPrice"
class="col-sm-3 control-label">续费价格:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="renewPrice" id="renewPrice">
<input type="text"
class="form-control"
name="renewPrice"
id="renewPrice">
</div>
<span class="col-sm-3">钻石</span>
</div>
<div class="form-group">
<label for="originalPrice" class="col-sm-3 control-label">原价:</label>
<label for="originalPrice"
class="col-sm-3 control-label">原价:</label>
<div class="col-sm-6">
<input type="number" class="form-control" placeholder="没有填0" value="0" name="originalPrice"
<input type="number"
class="form-control"
placeholder="没有填0"
value="0"
name="originalPrice"
id="originalPrice">
</div>
<span class="col-sm-3">钻石</span>
</div>
<div class="form-group">
<label for="days" class="col-sm-3 control-label">购买天数</label>
<label for="days"
class="col-sm-3 control-label">购买天数</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="days" id="days">
<input type="text"
class="form-control validate[required]"
name="days"
id="days">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">启用状态</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio" name="enable" value="2" checked>启用</label>
<label class="radio-inline"><input type="radio" name="enable" value="1">未启用</label>
<label class="radio-inline"><input type="radio"
name="enable"
value="2"
checked>启用</label>
<label class="radio-inline"><input type="radio"
name="enable"
value="1">未启用</label>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否可售卖</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio" name="isSale" value="1" checked></label>
<label class="radio-inline"><input type="radio" name="isSale" value="0"></label>
<label class="radio-inline"><input type="radio"
name="isSale"
value="1"
checked></label>
<label class="radio-inline"><input type="radio"
name="isSale"
value="0"></label>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">贵族限定</label>
<div class="col-sm-3">
<label class="radio-inline"><input type="radio" name="isNobleLimit" value="0"
<label class="radio-inline"><input type="radio"
name="isNobleLimit"
value="0"
checked></label>
<label class="radio-inline"><input type="radio" name="isNobleLimit" value="1"></label>
<label class="radio-inline"><input type="radio"
name="isNobleLimit"
value="1"></label>
</div>
<label class="col-sm-3 control-label">怪兽限定</label>
<div class="col-sm-3">
<label class="radio-inline"><input type="radio" name="isMonsterLimit" value="0"
<label class="radio-inline"><input type="radio"
name="isMonsterLimit"
value="0"
checked></label>
<label class="radio-inline"><input type="radio" name="isMonsterLimit" value="1"></label>
<label class="radio-inline"><input type="radio"
name="isMonsterLimit"
value="1"></label>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">周星榜限定</label>
<div class="col-sm-3">
<label class="radio-inline"><input type="radio" name="isWeekStarLimit" value="0"
<label class="radio-inline"><input type="radio"
name="isWeekStarLimit"
value="0"
checked></label>
<label class="radio-inline"><input type="radio" name="isWeekStarLimit" value="1"></label>
<label class="radio-inline"><input type="radio"
name="isWeekStarLimit"
value="1"></label>
</div>
<label class="col-sm-3 control-label">活动限定</label>
<div class="col-sm-3">
<label class="radio-inline"><input type="radio" name="isActivityLimit" value="0"
<label class="radio-inline"><input type="radio"
name="isActivityLimit"
value="0"
checked></label>
<label class="radio-inline"><input type="radio" name="isActivityLimit" value="1"></label>
<label class="radio-inline"><input type="radio"
name="isActivityLimit"
value="1"></label>
</div>
</div>
<div class="form-group">
<label for="limitTipMsg" class="col-sm-3 control-label">限定提示信息</label>
<label for="limitTipMsg"
class="col-sm-3 control-label">限定提示信息</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="limitTipMsg" id="limitTipMsg">
<input type="text"
class="form-control"
name="limitTipMsg"
id="limitTipMsg">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">座驾图片:</label>
<div class="col-sm-9">
<img src="" id="picImage" style="width:250px;height:90px;" alt="">
<input type="file" id="picUploadFile" name="file">
<button class="btn btn-success" type="button" id="picUploadBtn">上传</button>
<input type="hidden" id="pic" name="pic" class="form-control validate[required]" />
<span id="picImgInfo" style="color:red;"></span>
<img src=""
id="picImage"
style="width:250px;height:90px;"
alt="">
<input type="file"
id="picUploadFile"
name="file">
<button class="btn btn-success"
type="button"
id="picUploadBtn">上传</button>
<input type="hidden"
id="pic"
name="pic"
class="form-control validate[required]" />
<span id="picImgInfo"
style="color:red;"></span>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">动画图片:</label>
<div class="col-sm-9">
<img src="" id="effectImage" style="width:250px;height:90px;" alt="">
<input type="file" id="vggUploadFile" name="file">
<button class="btn btn-success" type="button" id="vggUploadBtn">上传</button>
<input type="hidden" id="effect" name="effect" class="form-control validate[required]" />
<span id="effectImgInfo" style="color:red;"></span>
<img src=""
id="effectImage"
style="width:250px;height:90px;"
alt="">
<input type="file"
id="vggUploadFile"
name="file">
<button class="btn btn-success"
type="button"
id="vggUploadBtn">上传</button>
<input type="hidden"
id="effect"
name="effect"
class="form-control validate[required]" />
<span id="effectImgInfo"
style="color:red;"></span>
</div>
</div>
<div class="form-group">
<label for="otherViewType" class="col-sm-3 control-label">其他视图文件类型:</label>
<label for="otherViewType"
class="col-sm-3 control-label">其他视图文件类型:</label>
<div class="col-sm-9">
<select name="otherViewType" id="otherViewType" data-btn-class="btn-warning">
<select name="otherViewType"
id="otherViewType"
data-btn-class="btn-warning">
<option value="0">全部</option>
<option value="1">MP4</option>
</select>
@@ -267,18 +434,32 @@
<div class="form-group">
<label class="col-sm-3 control-label">其他视图文件:</label>
<div class="col-sm-9">
<img src="" id="viewFile" style="width:250px;height:90px;" alt="">
<input type="file" id="viewUploadFile" name="file">
<button class="btn btn-success" type="button" id="viewFileUploadBtn">上传</button>
<input type="hidden" id="viewUrl" name="viewUrl" class="form-control validate[required]" />
<span id="viewFileInfo" style="color:red;"></span>
<img src=""
id="viewFile"
style="width:250px;height:90px;"
alt="">
<input type="file"
id="viewUploadFile"
name="file">
<button class="btn btn-success"
type="button"
id="viewFileUploadBtn">上传</button>
<input type="hidden"
id="viewUrl"
name="viewUrl"
class="form-control validate[required]" />
<span id="viewFileInfo"
style="color:red;"></span>
</div>
</div>
<div class="form-group">
<label for="nobleId" class="col-sm-3 control-label">贵族等级</label>
<label for="nobleId"
class="col-sm-3 control-label">贵族等级</label>
<div class="col-sm-9">
<select name="nobleId" id="nobleId" data-btn-class="btn-warning">
<select name="nobleId"
id="nobleId"
data-btn-class="btn-warning">
<option value="0">&nbsp;&nbsp;</option>
<option value="1">男爵</option>
<option value="2">子爵</option>
@@ -290,79 +471,123 @@
</select>
</div>
</div>
<input type="hidden" id="nobleName" name="nobleName">
<input type="hidden"
id="nobleName"
name="nobleName">
<div class="form-group">
<label for="seq" class="col-sm-3 control-label">排序</label>
<label for="seq"
class="col-sm-3 control-label">排序</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="seq" id="seq">
<input type="text"
class="form-control validate[required]"
name="seq"
id="seq">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">标签:</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio" name="labelType" id="noOne" value="0"
<label class="radio-inline"><input type="radio"
name="labelType"
id="noOne"
value="0"
checked></label>
<label class="radio-inline"><input type="radio" name="labelType" id="newOne"
<label class="radio-inline"><input type="radio"
name="labelType"
id="newOne"
value="1">新品</label>
<label class="radio-inline"><input type="radio" name="labelType" id="discountOne"
<label class="radio-inline"><input type="radio"
name="labelType"
id="discountOne"
value="2">折扣</label>
<label class="radio-inline"><input type="radio" name="labelType" id="limitOne"
<label class="radio-inline"><input type="radio"
name="labelType"
id="limitOne"
value="3">限定</label>
<label class="radio-inline"><input type="radio" name="labelType" id="exclusiveOne"
<label class="radio-inline"><input type="radio"
name="labelType"
id="exclusiveOne"
value="4">专属</label>
</div>
</div>
<div class="form-group">
<label for="limitDesc" class="col-sm-3 control-label">限定描述:</label>
<label for="limitDesc"
class="col-sm-3 control-label">限定描述:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="limitDesc" placeholder="限定和专属需要填写描述限制30字"
<input type="text"
class="form-control"
name="limitDesc"
placeholder="限定和专属需要填写描述限制30字"
id="limitDesc">
</div>
</div>
<div class="form-group">
<label for="redirectLink" class="col-sm-3 control-label">跳转链接:</label>
<label for="redirectLink"
class="col-sm-3 control-label">跳转链接:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="redirectLink"
placeholder="非必填,若填写,前端展示去看看按钮,反之则无按钮" id="redirectLink">
<input type="text"
class="form-control"
name="redirectLink"
placeholder="非必填,若填写,前端展示去看看按钮,反之则无按钮"
id="redirectLink">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="save">保存</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="save">保存</button>
</div>
</div>
</div>
</div>
<!-- 为用户赠送座驾弹窗 -->
<div class="modal fade" id="sendCarModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="sendCarModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">x</span></button>
<h4 class="modal-title" id="modalSendLabel">赠送座驾</h4>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title"
id="modalSendLabel">赠送座驾</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="carSendForm">
<input type="hidden" name="sendCarId" id="sendCarId" />
<form class="form-horizontal"
id="carSendForm">
<input type="hidden"
name="sendCarId"
id="sendCarId" />
<div class="form-group">
<label for="sendErbanNo" class="col-sm-3 control-label">平台号</label>
<label for="sendErbanNo"
class="col-sm-3 control-label">平台号</label>
<div class="col-sm-9">
<textarea name="sendErbanNo" id="sendErbanNo" class="form-control validate[required]"
<textarea name="sendErbanNo"
id="sendErbanNo"
class="form-control validate[required]"
placeholder="多个平台号使用换行符分隔"></textarea>
</div>
</div>
<div class="form-group">
<label for="sendDays" class="col-sm-3 control-label">体验天数</label>
<label for="sendDays"
class="col-sm-3 control-label">体验天数</label>
<div class="col-sm-9">
<select name="days" id="sendDays">
<select name="days"
id="sendDays">
<option value="">-- 请选择 --</option>
<option value="1">1</option>
<option value="3">3</option>
@@ -374,23 +599,36 @@
</select>
</div>
</div>
<div class="form-group otherZDY" style="display: none">
<label for="otherVal" class="col-sm-3 control-label">自定义</label>
<div class="form-group otherZDY"
style="display: none">
<label for="otherVal"
class="col-sm-3 control-label">自定义</label>
<div class="col-sm-9">
<input type="text" id="otherVal" class="" oninput="value=value.replace(/[^\d]/g,'')" />
<input type="text"
id="otherVal"
class=""
oninput="value=value.replace(/[^\d]/g,'')" />
</div>
</div>
<div class="form-group">
<label for="sendDesc" class="col-sm-3 control-label">备注</label>
<label for="sendDesc"
class="col-sm-3 control-label">备注</label>
<div class="col-sm-9">
<input type="text" name="desc" id="sendDesc" class="form-control validate[required]" />
<input type="text"
name="desc"
id="sendDesc"
class="form-control validate[required]" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="send">提交</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="send">提交</button>
</div>
</div>
</div>
@@ -416,17 +654,17 @@ import { buildSelectOption } from '@/utils/system-helper';
export default {
name: "CarGoodsAdminView",
setup() {
setup () {
return {};
},
created() {
created () {
this.$nextTick(function () {
this.initPartition();
this.initData();
});
},
methods: {
initData() {
initData () {
ComboboxHelper.build(null, '#enable');
//ComboboxHelper.build(null,'#condition_type');
ComboboxHelper.build(null, '#nobleId');
@@ -447,10 +685,11 @@ export default {
columns: [
{ field: 'tmp', title: 'id', align: 'center', checkbox: true, width: '5%' },
{ field: 'id', title: '座驾ID', align: 'center', width: '5%' },
{field: 'name.zh', title: '座驾名称', align: 'center', width: '20%'},
{field: 'name.ar', title: '阿语座驾名称', align: 'center', width: '20%'},
{field: 'name.en', title: '英语座驾名称', align: 'center', width: '20%'},
{field: 'name.tr', title: '土耳其名称', align: 'center', width: '20%'},
{ field: 'name.zh', title: '座驾名称', align: 'center', width: '20%' },
{ field: 'name.en', title: '英语名称', align: 'center', width: '20%' },
{ field: 'name.ar', title: '阿语名称', align: 'center', width: '20%' },
{ field: 'name.tr', title: '土耳其名称', align: 'center', width: '20%' },
{ field: 'name.pt', title: '葡萄牙语名称', align: 'center', width: '20%' },
{
field: 'partitionFlag',
title: '地区',
@@ -473,6 +712,9 @@ export default {
if ((val & 16) != 0) {
value += '英语2区<br>';
}
if ((val & 32) != 0) {
value += '葡萄牙语<br>';
}
return value;
}
},
@@ -584,7 +826,7 @@ export default {
//设置为undefined可以获取pageNumberpageSizesearchTextsortNamesortOrder
//设置为limit可以获取limit, offset, search, sort, order
queryParamsType: "undefined",
queryParams: function queryParams(params) { //设置查询参数
queryParams: function queryParams (params) { //设置查询参数
var param = {
page: params.pageNumber,
pageSize: params.pageSize,
@@ -597,17 +839,17 @@ export default {
};
return param;
},
ajax:function(request){ //使用ajax请求
ajax: function (request) { //使用ajax请求
$.ajax({
type:"GET",
url:'/admin/car/goods?enable=' + ComboboxHelper.getSelected("#condition_type"),
contentType:'application/json;charset=utf-8',
dataType:'json',
type: "GET",
url: '/admin/car/goods?enable=' + ComboboxHelper.getSelected("#condition_type"),
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: request.data,
success:function (res) {
success: function (res) {
console.log(res);
request.success({
"rows": res.rows.map(i=>{
"rows": res.rows.map(i => {
let value = i.name;
if (value.startsWith('{') && value.endsWith('}')) {
i.name = JSON.parse(value);
@@ -623,7 +865,7 @@ export default {
"total": res.total
});
},
error:function(error){
error: function (error) {
console.log(error);
}
})
@@ -685,10 +927,12 @@ export default {
$('#ar_name').val('');
$('#en_name').val('');
$('#tr_name').val('');
$('#pt_name').val('');
$("#name").attr('readonly', false);
$("#ar_name").attr('readonly', false);
$("#en_name").attr('readonly', false);
$("#tr_name").attr('readonly', false);
$("#pt_name").attr('readonly', false);
// $("#price").attr('readonly', false);
// $("#renewPrice").attr('readonly', false);
$("#seq").val('');
@@ -710,7 +954,7 @@ export default {
$("input:radio[name='isWeekStarLimit']")[0].checked = true;
$("input:radio[name='isActivityLimit']")[0].checked = true;
$('input[name="partitionFlag"]').each(function() {
$('input[name="partitionFlag"]').each(function () {
$(this).checked = false;
});
$("#nobleId").btComboBox('disable');
@@ -852,7 +1096,7 @@ export default {
TableHelper.unCheckAll("#table");
});
function parseNum(val) {
function parseNum (val) {
if (val == undefined || val == 'false' || val == 0) {
return 0;
}
@@ -888,11 +1132,13 @@ export default {
$("#ar_name").val(jsonName.ar);
$("#en_name").val(jsonName.en);
$("#tr_name").val(jsonName.tr);
$("#pt_name").val(jsonName.pt);
} else {
$("#name").val(name);
$("#ar_name").val(name);
$("#en_name").val(name);
$("#tr_name").val(name);
$("#pt_name").val(name);
}
$("#price").val(json.entity.price);
$("#renewPrice").val(json.entity.renewPrice);
@@ -1101,7 +1347,7 @@ export default {
return;
}
// 获取序列化字符串并转换为对象
let formData = $('#carGoodsForm').serializeArray().reduce(function(obj, item) {
let formData = $('#carGoodsForm').serializeArray().reduce(function (obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
@@ -1113,8 +1359,9 @@ export default {
var en_name = $("#en_name").val();
// 土耳其名称
var tr_name = $("#tr_name").val();
var pt_name = $("#pt_name").val();
// 国际化字段
var jsonName = {"zh":name,"ar":ar_name,"en":en_name,"tr":tr_name}
var jsonName = { "zh": name, "ar": ar_name, "en": en_name, "tr": tr_name, "pt": pt_name }
const nameValue = JSON.stringify(jsonName);
// 修改属性值
formData.name = nameValue; // 将giftName修改为"newGiftName"
@@ -1138,7 +1385,7 @@ export default {
$("#carGoodsModal").modal('hide');
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
setTimeout(function() {
setTimeout(function () {
TableHelper.doRefresh("#table");
$("#cardGoodsModal").modal('hide');
}, 1000);
@@ -1215,7 +1462,7 @@ export default {
});
},
initPartition() {
initPartition () {
getPartitionInfoList().then(res => {
let data = res.data;
buildSelectOption(

View File

@@ -6,36 +6,59 @@
<section class="content-header">
<h1 id="itemTitle"></h1>
</section>
<div id="toolbar" style="height: auto;">
<form id="searchForm" class="" action="" method="post" target="_blank">
<div id="toolbar"
style="height: auto;">
<form id="searchForm"
class=""
action=""
method="post"
target="_blank">
<div class="col-sm-12">
<label for="type" class="col-sm-1 control-label">气泡类型:</label>
<label for="type"
class="col-sm-1 control-label">气泡类型:</label>
<div class="col-sm-2">
<select name="type" id="type" data-btn-class="btn-warning" class="form-control">
<option value="" selected="selected">全部</option>
<select name="type"
id="type"
data-btn-class="btn-warning"
class="form-control">
<option value=""
selected="selected">全部</option>
<option value="1">普通</option>
<option value="2">贵族</option>
</select>
</div>
<label for="id" class="col-sm-1 control-label">气泡id:</label>
<div class="col-sm-2"><input type="text" class="form-control" name="id" id="id"></div>
<label for="id"
class="col-sm-1 control-label">气泡id:</label>
<div class="col-sm-2"><input type="text"
class="form-control"
name="id"
id="id"></div>
<label for="name" class="col-sm-1 control-label">气泡名称:</label>
<div class="col-sm-2"><input type="text" class="form-control" name="name" id="name"></div>
<label for="name"
class="col-sm-1 control-label">气泡名称:</label>
<div class="col-sm-2"><input type="text"
class="form-control"
name="name"
id="name"></div>
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
<label for="partitionId"
class="col-sm-1 control-label">地区:</label>
<div class="col-sm-2">
<select name="partitionId" id="partitionId" class="form-control"></select>
<select name="partitionId"
id="partitionId"
class="form-control"></select>
</div>
</div>
</form>
<div class="col-sm-12">
<button id="btnSearch" class="btn btn-default">
<button id="btnSearch"
class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="btnAdd" class="btn btn-default">
<button id="btnAdd"
class="btn btn-default">
<i class="glyphicon glyphicon-plus"></i>新增
</button>
</div>
@@ -46,91 +69,177 @@
</div>
</section>
<div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content" style="width: 500px;">
<div class="modal fade"
id="addModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content"
style="width: 500px;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="modalLabel">新增气泡</h4>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"
id="modalLabel">新增气泡</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="addForm">
<input type="hidden" name="id" id="modal_id" />
<form class="form-horizontal"
id="addForm">
<input type="hidden"
name="id"
id="modal_id" />
<div class="form-group">
<label for="partitionFlag" class="col-sm-4 control-label">选择分区</label>
<label for="partitionFlag"
class="col-sm-4 control-label">选择分区</label>
<div class="col-sm-6">
<input type="checkbox" name="partitionFlag" value="1"/>英语区<br>
<input type="checkbox" name="partitionFlag" value="2"/>阿拉伯语区<br>
<input type="checkbox" name="partitionFlag" value="4"/>语区<br>
<input type="checkbox" name="partitionFlag" value="8"/>土耳其区<br>
<input type="checkbox" name="partitionFlag" value="16"/>英语2区<br>
<input type="checkbox"
name="partitionFlag"
value="1" />语区<br>
<input type="checkbox"
name="partitionFlag"
value="2" />阿拉伯语区<br>
<input type="checkbox"
name="partitionFlag"
value="4" />华语区<br>
<input type="checkbox"
name="partitionFlag"
value="8" />土耳其区<br>
<input type="checkbox"
name="partitionFlag"
value="16" />英语2区<br>
<input type="checkbox"
name="partitionFlag"
value="32" />葡萄牙语区<br>
</div>
</div>
<div class="form-group">
<label for="modal_type" class="col-sm-4 control-label">装扮类型:</label>
<label for="modal_type"
class="col-sm-4 control-label">装扮类型:</label>
<div class="col-sm-6">
<select name="type" id="modal_type" data-btn-class="btn-warning" class="form-control">
<select name="type"
id="modal_type"
data-btn-class="btn-warning"
class="form-control">
<option value="1">普通装扮</option>
<option value="2">贵族装扮</option>
</select>
</div>
</div>
<div class="form-group">
<label for="modal_name" class="col-sm-4 control-label">装扮名称:</label>
<label for="modal_name"
class="col-sm-4 control-label">装扮名称:</label>
<div class="col-sm-6">
<input type="text" class="form-control validate[required]" name="name" id="modal_name"
<input type="text"
class="form-control validate[required]"
name="name"
id="modal_name"
placeholder="请输入气泡名称">
</div>
</div>
<div class="form-group">
<label for="ar_modal_name" class="col-sm-4 control-label">阿语装扮名称:</label>
<label for="en_modal_name"
class="col-sm-4 control-label">英语装扮名称:</label>
<div class="col-sm-6">
<input type="text" class="form-control validate[required]" name="name" id="ar_modal_name" placeholder="请输入气泡名称">
<input type="text"
class="form-control validate[required]"
name="name"
id="en_modal_name"
placeholder="请输入气泡名称">
</div>
</div>
<div class="form-group">
<label for="en_modal_name" class="col-sm-4 control-label">英语装扮名称:</label>
<label for="ar_modal_name"
class="col-sm-4 control-label">阿语装扮名称:</label>
<div class="col-sm-6">
<input type="text" class="form-control validate[required]" name="name" id="en_modal_name" placeholder="请输入气泡名称">
<input type="text"
class="form-control validate[required]"
name="name"
id="ar_modal_name"
placeholder="请输入气泡名称">
</div>
</div>
<div class="form-group">
<label for="tr_modal_name" class="col-sm-4 control-label">土耳其装扮名称:</label>
<label for="tr_modal_name"
class="col-sm-4 control-label">土耳其语装扮名称:</label>
<div class="col-sm-6">
<input type="text" class="form-control validate[required]" name="name" id="tr_modal_name" placeholder="请输入气泡名称">
<input type="text"
class="form-control validate[required]"
name="name"
id="tr_modal_name"
placeholder="请输入气泡名称">
</div>
</div>
<form class="form-horizontal" id="addForm1">
<div class="form-group">
<label for="pt_modal_name"
class="col-sm-4 control-label">葡萄牙语装扮名称:</label>
<div class="col-sm-6">
<input type="text"
class="form-control validate[required]"
name="name"
id="pt_modal_name"
placeholder="请输入气泡名称">
</div>
</div>
<form class="form-horizontal"
id="addForm1">
<div class="form-group">
<label class="col-sm-4 control-label">安卓图片:</label>
<div class="col-sm-6">
<img src="" id="addAndroidIconPicUrl" style="height:44px;" alt="">
<input type="file" id="add_android_UploadIconPic" name="uploadFile"
<img src=""
id="addAndroidIconPicUrl"
style="height:44px;"
alt="">
<input type="file"
id="add_android_UploadIconPic"
name="uploadFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg">
<button class="btn btn-success" type="button" name="uploadBtn"
<button class="btn btn-success"
type="button"
name="uploadBtn"
id="addAndroidIconPicUrl_androidUrl">上传</button>
<input type="hidden" id="androidUrl" name="androidUrl" class="form-control" />
<input type="hidden"
id="androidUrl"
name="androidUrl"
class="form-control" />
</div>
</div>
</form>
<form class="form-horizontal" id="addForm2">
<div class="form-group" >
<form class="form-horizontal"
id="addForm2">
<div class="form-group">
<label class="col-sm-4 control-label">IOS图片:</label>
<div class="col-sm-6">
<img src="" id="addIosIconPicUrl" style="height:44px;" alt="">
<input type="file" id="add_ios_UploadIconPic" name="uploadFile"
<img src=""
id="addIosIconPicUrl"
style="height:44px;"
alt="">
<input type="file"
id="add_ios_UploadIconPic"
name="uploadFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg">
<button class="btn btn-success" type="button" name="uploadBtn"
<button class="btn btn-success"
type="button"
name="uploadBtn"
id="addIosIconPicUrl_iosUrl">上传</button>
<input type="hidden" id="iosUrl" name="iosUrl" class="form-control" />
<input type="hidden"
id="iosUrl"
name="iosUrl"
class="form-control" />
</div>
</div>
</form>
<div class="form-group">
<label for="status" class="col-sm-4 control-label">装扮状态:</label>
<label for="status"
class="col-sm-4 control-label">装扮状态:</label>
<div class="col-sm-6">
<select name="status" id="status" data-btn-class="btn-warning" class="form-control">
<select name="status"
id="status"
data-btn-class="btn-warning"
class="form-control">
<option value="1">有效</option>
<option value="2">无效</option>
</select>
@@ -140,49 +249,79 @@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="button-save">保存</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="button-save">保存</button>
</div>
</div>
</div>
</div>
<!-- 为用户赠送铭牌弹窗 -->
<div class="modal fade" id="sendModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="sendModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">x</span></button>
<h4 class="modal-title" id="modalSendLabel">赠送装扮</h4>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title"
id="modalSendLabel">赠送装扮</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="sendForm">
<input type="hidden" name="id" id="sendId" />
<form class="form-horizontal"
id="sendForm">
<input type="hidden"
name="id"
id="sendId" />
<div class="form-group">
<label for="sendErbanNo" class="col-sm-3 control-label">ID</label>
<label for="sendErbanNo"
class="col-sm-3 control-label">ID</label>
<div class="col-sm-9">
<textarea name="erbanNos" id="sendErbanNo" class="form-control validate[required]"
<textarea name="erbanNos"
id="sendErbanNo"
class="form-control validate[required]"
placeholder="多个ID使用,分隔一次性不得超过100个"></textarea>
</div>
</div>
<div class="form-group">
<label for="sendDays" class="col-sm-3 control-label">赠送天数</label>
<label for="sendDays"
class="col-sm-3 control-label">赠送天数</label>
<div class="col-sm-9">
<input type="text" name="days" id="sendDays" class="form-control validate[required]" />
<input type="text"
name="days"
id="sendDays"
class="form-control validate[required]" />
</div>
</div>
<div class="form-group">
<label for="sendDesc" class="col-sm-3 control-label">备注</label>
<label for="sendDesc"
class="col-sm-3 control-label">备注</label>
<div class="col-sm-9">
<input type="text" name="remark" id="sendDesc" class="form-control validate[required]" />
<input type="text"
name="remark"
id="sendDesc"
class="form-control validate[required]" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="send">提交</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="send">提交</button>
</div>
</div>
</div>
@@ -196,17 +335,17 @@ import { buildSelectOption } from '@/utils/system-helper';
export default {
name: "ChatbubbleManageView",
setup() {
setup () {
return {};
},
created() {
created () {
this.$nextTick(function () {
this.initPartition();
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
$('#table').bootstrapTable('destroy');
$('#table').bootstrapTable({
@@ -234,13 +373,17 @@ export default {
if ((val & 16) != 0) {
value += '英语2区<br>';
}
if ((val & 32) != 0) {
value += '葡萄牙语区<br>';
}
return value;
}
},
{field: 'name.zh', title: '装扮名称', align: 'middle', width: '5%'},
{field: 'name.ar', title: '语装扮名称', align: 'middle', width: '5%'},
{field: 'name.en', title: '语装扮名称', align: 'middle', width: '5%'},
{field: 'name.tr', title: '土耳其扮名称', align: 'middle', width: '5%'},
{ field: 'name.zh', title: '装扮名称', align: 'middle', width: '5%' },
{ field: 'name.en', title: '语装扮名称', align: 'middle', width: '5%' },
{ field: 'name.ar', title: '语装扮名称', align: 'middle', width: '5%' },
{ field: 'name.tr', title: '土耳其扮名称', align: 'middle', width: '5%' },
{ field: 'name.pt', title: '葡萄牙语名称', align: 'middle', width: '5%' },
{
field: 'iosUrl',
title: '装扮图片',
@@ -321,7 +464,7 @@ export default {
sidePagination: "server", //表示服务端请求
queryParamsType: "-",
uniqueId: "id",
queryParams: function queryParams(params) { //设置查询参数
queryParams: function queryParams (params) { //设置查询参数
var param = {
page: params.pageNumber,
pageSize: params.pageSize,
@@ -332,17 +475,17 @@ export default {
};
return param;
},
ajax:function(request){ //使用ajax请求
ajax: function (request) { //使用ajax请求
$.ajax({
type:"GET",
url:'/admin/chatbubble/listByPage',
contentType:'application/json;charset=utf-8',
dataType:'json',
type: "GET",
url: '/admin/chatbubble/listByPage',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: request.data,
success:function (res) {
success: function (res) {
console.log(res);
request.success({
"rows": res.rows.map(i=>{
"rows": res.rows.map(i => {
let value = i.name;
if (value.startsWith('{') && value.endsWith('}')) {
i.name = JSON.parse(value);
@@ -351,6 +494,7 @@ export default {
zh: value,
ar: value,
en: value,
pr: value,
};
}
return i;
@@ -358,7 +502,7 @@ export default {
"total": res.total
});
},
error:function(error){
error: function (error) {
console.log(error);
}
})
@@ -387,7 +531,11 @@ export default {
$("#addForm #modal_type").val(row.type);
console.log(row.name)
let name = row.name;
if (Object.prototype.hasOwnProperty.call(name, 'zh') || Object.prototype.hasOwnProperty.call(name, 'ar') || Object.prototype.hasOwnProperty.call(name, 'en')) {
if (Object.prototype.hasOwnProperty.call(name, 'zh')
|| Object.prototype.hasOwnProperty.call(name, 'ar')
|| Object.prototype.hasOwnProperty.call(name, 'en')
|| Object.prototype.hasOwnProperty.call(name, 'tr')
|| Object.prototype.hasOwnProperty.call(name, 'pt')) {
$("#modal_name").val(row.name.zh);
// 阿语名称
$("#ar_modal_name").val(row.name.ar);
@@ -395,6 +543,7 @@ export default {
$("#en_modal_name").val(row.name.en);
// 土耳其名称
$("#tr_modal_name").val(row.name.tr);
$("#pt_modal_name").val(row.name.pt);
} else {
$("#modal_name").val(name);
// 阿语名称
@@ -403,6 +552,7 @@ export default {
$("#en_modal_name").val(name);
// 土耳其名称
$("#tr_modal_name").val(name);
$("#pt_modal_name").val(name);
}
$('#addAndroidIconPicUrl').attr("src", row.androidUrl);
$("#addForm #androidUrl").val(row.androidUrl);
@@ -436,6 +586,11 @@ export default {
} else {
$("input:checkbox[name='partitionFlag']")[4].checked = false;
}
if ((partitionFlag & 32) != 0) {
$("input:checkbox[name='partitionFlag']")[5].checked = true;
} else {
$("input:checkbox[name='partitionFlag']")[5].checked = false;
}
$("#addModal").modal('show');
});
@@ -488,7 +643,7 @@ export default {
var androidUrl = $('#androidUrl').val();
var iosUrl = $('#iosUrl').val();
// 获取序列化字符串并转换为对象
let formData = $('#addForm').serializeArray().reduce(function(obj, item) {
let formData = $('#addForm').serializeArray().reduce(function (obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
@@ -500,8 +655,9 @@ export default {
var en_name = $("#en_modal_name").val();
// 土耳其名称
var tr_name = $("#tr_modal_name").val();
var pt_name = $("#pt_modal_name").val();
// 国际化字段
var jsonName = {"zh":name,"ar":ar_name,"en":en_name,"tr":tr_name}
var jsonName = { "zh": name, "ar": ar_name, "en": en_name, "tr": tr_name, "pr": pt_name }
const nameValue = JSON.stringify(jsonName);
// 修改属性值
formData.name = nameValue; // 将giftName修改为"newGiftName"
@@ -523,13 +679,23 @@ export default {
$("#tipModal").modal('show');
return;
}
if (isEmpty(en_name)) {
$("#tipMsg").text("英语装扮名字不能为空");
$("#tipModal").modal('show');
return;
}
if (isEmpty(ar_name)) {
$("#tipMsg").text("阿语装扮名字不能为空");
$("#tipModal").modal('show');
return;
}
if (isEmpty(en_name)) {
$("#tipMsg").text("语装扮名字不能为空");
if (isEmpty(tr_name)) {
$("#tipMsg").text("土耳其语装扮名字不能为空");
$("#tipModal").modal('show');
return;
}
if (isEmpty(pt_name)) {
$("#tipMsg").text("葡萄牙语装扮名字不能为空");
$("#tipModal").modal('show');
return;
}
@@ -544,7 +710,7 @@ export default {
if (json.code === 200) {
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
setTimeout(function() {
setTimeout(function () {
TableHelper.doRefresh("#table");
$("#addModal").modal('hide');
}, 1000);
@@ -557,7 +723,7 @@ export default {
}
});
function cleanModal() {
function cleanModal () {
$('#id').val('');
$("#addForm #modal_id").val('');
$('#addAndroidIconPicUrl').attr('src', '');
@@ -572,12 +738,13 @@ export default {
$('#ar_modal_name').val('');
$('#en_modal_name').val('');
$('#tr_modal_name').val('');
$('input[name="partitionFlag"]').each(function() {
$('#pt_modal_name').val('');
$('input[name="partitionFlag"]').each(function () {
$(this).checked = false;
});
}
//判断空值
function isEmpty(data) {
function isEmpty (data) {
if (data == null || data == undefined || data == "") {
return true;
}
@@ -667,7 +834,7 @@ export default {
});
});
},
initPartition() {
initPartition () {
getPartitionInfoList().then(res => {
let data = res.data;
buildSelectOption(
@@ -689,10 +856,12 @@ export default {
};
</script>
<style scoped>.fixed-table-body {
<style scoped>
.fixed-table-body {
height: auto !important;
}
.pull-left {
width: 100% !important;
}</style>
}
</style>

View File

@@ -4,167 +4,187 @@
<div class="inquire">
<div class="block">
<span class="demonstration">开始时间</span>
<el-date-picker
v-model="inquire.time[0]"
<el-date-picker v-model="inquire.time[0]"
type="dates"
placeholder="开始时间"
>
placeholder="开始时间">
</el-date-picker>
</div>
</div>
<div class="inquire">
<div class="block">
<span class="demonstration">结束时间</span>
<el-date-picker
v-model="inquire.time[1]"
<el-date-picker v-model="inquire.time[1]"
type="dates"
placeholder="结束时间"
>
placeholder="结束时间">
</el-date-picker>
</div>
</div>
<!-- 查询按钮 -->
<el-button style="" type="primary" @click="getData()">查询</el-button>
<el-button style=""
type="primary"
@click="getData()">查询</el-button>
<!-- <el-button style="" type="primary" @click="exportDate()">导出</el-button> -->
</div>
<!-- 表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="date" align="center" label="日期" />
<el-table-column align="center" label="全平台真实消耗" width="">
style="width: 100%; margin-top: 25px">
<el-table-column prop="date"
align="center"
label="日期" />
<el-table-column align="center"
label="全平台真实消耗"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '全平台金币明细';
edi(scope.row, 0);
"
type="text"
size="small"
>
size="small">
{{ formattedNumber(scope.row.totalDiamond) }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="阿拉伯区真实消耗" width="">
<el-table-column align="center"
label="阿拉伯区真实消耗"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '阿拉伯区金币明细';
edi(scope.row, 2);
"
type="text"
size="small"
>
size="small">
{{ formattedNumber(scope.row.arDiamond) }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语区真实消耗" width="">
<el-table-column align="center"
label="英语区真实消耗"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语区金币明细';
edi(scope.row, 1);
"
type="text"
size="small"
>
size="small">
{{ formattedNumber(scope.row.enDiamond) }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="华语区真实消耗" width="">
<el-table-column align="center"
label="华语区真实消耗"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '华语区金币明细';
edi(scope.row, 4);
"
type="text"
size="small"
>
size="small">
{{ formattedNumber(scope.row.zhDiamond) }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="土耳其区真实消耗" width="">
<el-table-column align="center"
label="土耳其区真实消耗"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '土耳其区金币明细';
edi(scope.row, 8);
"
type="text"
size="small"
>
size="small">
{{ formattedNumber(scope.row.trDiamond) }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语2区真实消耗" width="">
<el-table-column align="center"
label="英语2区真实消耗"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语区2金币明细';
edi(scope.row, 16);
"
type="text"
size="small"
>
size="small">
{{ formattedNumber(scope.row.en2Diamond) }}
</el-button>
</template>
</el-table-column>
<el-table-column
prop="totalRemainDiamond"
<el-table-column align="center"
label="葡萄牙语区真实消耗"
width="">
<template v-slot="scope">
<el-button @click="
detailsTitle = '葡萄牙语区金币明细';
edi(scope.row, 32);p
"
type="text"
size="small">
{{ formattedNumber(scope.row.ptDiamond) }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="totalRemainDiamond"
align="center"
label="全平台库存"
>
label="全平台库存">
<template v-slot="scope">
{{ formattedNumber(scope.row.totalRemainDiamond) }}
</template>
</el-table-column>
<el-table-column
prop="arRemainDiamond"
<el-table-column prop="arRemainDiamond"
align="center"
label="阿拉伯区库存"
>
label="阿拉伯区库存">
<template v-slot="scope">
{{ formattedNumber(scope.row.arRemainDiamond) }}
</template>
</el-table-column>
<el-table-column prop="enRemainDiamond" align="center" label="英语区库存" >
<el-table-column prop="enRemainDiamond"
align="center"
label="英语区库存">
<template v-slot="scope">
{{ formattedNumber(scope.row.enRemainDiamond) }}
</template>
</el-table-column>
<el-table-column prop="zhRemainDiamond" align="center" label="华语区库存" >
<el-table-column prop="zhRemainDiamond"
align="center"
label="华语区库存">
<template v-slot="scope">
{{ formattedNumber(scope.row.zhRemainDiamond) }}
</template>
</el-table-column>
<el-table-column
prop="trRemainDiamond"
<el-table-column prop="trRemainDiamond"
align="center"
label="土耳其区库存"
>
label="土耳其区库存">
<template v-slot="scope">
{{ formattedNumber(scope.row.trRemainDiamond) }}
</template>
</el-table-column>
<el-table-column prop="en2RemainDiamond" align="center" label="英语2区库存" >
<el-table-column prop="en2RemainDiamond"
align="center"
label="英语2区库存">
<template v-slot="scope">
{{ formattedNumber(scope.row.en2RemainDiamond) }}
</template>
</el-table-column>
<el-table-column prop="prRemainDiamond"
align="center"
label="葡萄牙语区库存">
<template v-slot="scope">
{{ formattedNumber(scope.row.ptRemainDiamond) }}
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
@@ -181,26 +201,35 @@
/> -->
<!-- 详情 -->
<el-dialog v-model="detailsDialog" :title="detailsTitle" width="30%" center>
<el-dialog v-model="detailsDialog"
:title="detailsTitle"
width="30%"
center>
<!-- 内表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableDataIn"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="domainDesc" align="center" label="类型" />
<el-table-column prop="addDiamond" align="center" label="增加" >
style="width: 100%; margin-top: 25px">
<el-table-column prop="domainDesc"
align="center"
label="类型" />
<el-table-column prop="addDiamond"
align="center"
label="增加">
<template v-slot="scope">
{{ formattedNumber(scope.row.addDiamond) }}
</template>
</el-table-column>
<el-table-column prop="subDiamond" align="center" label="消耗" >
<el-table-column prop="subDiamond"
align="center"
label="消耗">
<template v-slot="scope">
{{ formattedNumber(scope.row.subDiamond) }}
</template>
</el-table-column>
<el-table-column prop="subDiamond" align="center" label="留存" >
<el-table-column prop="subDiamond"
align="center"
label="留存">
<template #default="row">
{{ formattedNumber(totalDiamonds(row.row)) }}
<div v-if="row.row.domainDesc ==='小游戏' || row.row.domainDesc ==='幸运数字礼物' || row.row.domainDesc ==='Bravo礼物'">
@@ -212,9 +241,9 @@
<!-- 操作 -->
<template #footer>
<span class="dialog-footer">
<el-button type="primary" class="primary" @click="detailsDialog = false"
>关闭</el-button
>
<el-button type="primary"
class="primary"
@click="detailsDialog = false">关闭</el-button>
</span>
</template>
</el-dialog>
@@ -225,7 +254,7 @@ import { dateFormat } from "@/utils/system-helper";
import { ElMessage } from "element-plus";
export default {
name: "dailyCoinStatistics",
data() {
data () {
return {
loading: false,
// 查询条件
@@ -244,12 +273,12 @@ export default {
tableDataIn: [],
};
},
created() {
created () {
// this.getData();
},
computed: {
// 千分位
formattedNumber() {
formattedNumber () {
return (num) => {
if (num === null || num === undefined) return '';
return Math.floor(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
@@ -258,13 +287,13 @@ export default {
},
methods: {
totalDiamonds(row) {
totalDiamonds (row) {
const subDiamond = Number(row.subDiamond || 0);
const addDiamond = Number(row.addDiamond || 0);
return subDiamond + addDiamond;
},
// 计算百分比,防止除零异常
percentage(row) {
percentage (row) {
const subDiamond = Number(row.subDiamond || 0);
const addDiamond = Number(row.addDiamond || 0);
@@ -277,7 +306,7 @@ export default {
return result.toFixed(2); // 格式化为两位小数
},
// 查询
getData() {
getData () {
this.loading = true;
let time = this.inquire.time;
let startTime = null;
@@ -310,7 +339,7 @@ export default {
});
},
// 详情
edi(res, type) {
edi (res, type) {
var jsonArr =
type == 0
? res.totalDiamondDetail
@@ -324,16 +353,18 @@ export default {
? res.trDomainDetail
: type == 16
? res.en2DomainDetail
: type == 32
? res.ptDomainDetail
: `"[""]"`;
this.tableDataIn = JSON.parse(jsonArr);
this.detailsDialog = true;
},
// 分页导航
handleSizeChange() {
handleSizeChange () {
this.getData();
},
handleCurrentChange() {
handleCurrentChange () {
this.getData();
},
},

View File

@@ -1,170 +1,195 @@
<template>
<!-- 表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column align="center" label="日期" width="220px">
style="width: 100%; margin-top: 25px">
<el-table-column align="center"
label="日期"
width="220px">
<template v-slot="scope">
{{ scope.row.date }} ~ {{ scope.row.endDate }}
</template>
</el-table-column>
<el-table-column
prop="totalNewCount"
<el-table-column prop="totalNewCount"
align="center"
label="全服公会总新增"
/>
label="全服公会总新增" />
<el-table-column align="center" label="阿拉伯公会总新增" width="">
<el-table-column align="center"
label="阿拉伯公会总新增"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '阿拉伯公会总新增' + scope.row.date;
edi(scope.row.arNewCountDetail, false);
"
type="text"
size="small"
>
size="small">
{{ scope.row.arNewCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语区总新增" width="">
<el-table-column align="center"
label="英语区总新增"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语区总新增' + scope.row.date;
edi(scope.row.enNewCountDetail, false);
"
type="text"
size="small"
>
size="small">
{{ scope.row.enNewCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="华语区总新增" width="">
<el-table-column align="center"
label="华语区总新增"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '华语区总新增' + scope.row.date;
edi(scope.row.zhNewCountDetail, false);
"
type="text"
size="small"
>
size="small">
{{ scope.row.zhNewCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="土耳其区总新增" width="">
<el-table-column align="center"
label="土耳其区总新增"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '土耳其区总新增' + scope.row.date;
edi(scope.row.trNewCountDetail, false);
"
type="text"
size="small"
>
size="small">
{{ scope.row.trNewCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语2区总新增" width="">
<el-table-column align="center"
label="英语2区总新增"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语2区总新增' + scope.row.date;
edi(scope.row.en2NewCountDetail, false);
"
type="text"
size="small"
>
size="small">
{{ scope.row.en2NewCount }}
</el-button>
</template>
</el-table-column>
<el-table-column
prop="totalActiveCount"
align="center"
label="全服公会活跃度"
/>
<el-table-column align="center" label="阿拉伯公会活跃度" width="">
<el-table-column align="center"
label="葡萄牙语区总新增"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '葡萄牙语区总新增' + scope.row.date;
edi(scope.row.ptNewCountDetail, false);
"
type="text"
size="small">
{{ scope.row.ptNewCount }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="totalActiveCount"
align="center"
label="全服公会活跃度" />
<el-table-column align="center"
label="阿拉伯公会活跃度"
width="">
<template v-slot="scope">
<el-button @click="
detailsTitle = '阿拉伯公会活跃度' + scope.row.date;
edi(scope.row.arActiveCountDetail, true);
"
type="text"
size="small"
>
size="small">
{{ scope.row.arActiveCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语区活跃度" width="">
<el-table-column align="center"
label="英语区活跃度"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语区活跃度' + scope.row.date;
edi(scope.row.enActiveCountDetail, true);
"
type="text"
size="small"
>
size="small">
{{ scope.row.enActiveCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="华语区活跃度" width="">
<el-table-column align="center"
label="华语区活跃度"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '华语区活跃度' + scope.row.date;
edi(scope.row.zhActiveCountDetail, true);
"
type="text"
size="small"
>
size="small">
{{ scope.row.zhActiveCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="土耳其区活跃度" width="">
<el-table-column align="center"
label="土耳其区活跃度"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '土耳其区活跃度' + scope.row.date;
edi(scope.row.trActiveCountDetail, true);
"
type="text"
size="small"
>
size="small">
{{ scope.row.trActiveCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语2区活跃度" width="">
<el-table-column align="center"
label="英语2区活跃度"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语2区活跃度' + scope.row.date;
edi(scope.row.en2ActiveCountDetail, true);
"
type="text"
size="small"
>
size="small">
{{ scope.row.en2ActiveCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center"
label="葡萄牙语区活跃度"
width="">
<template v-slot="scope">
<el-button @click="
detailsTitle = '葡萄牙语区活跃度' + scope.row.date;
edi(scope.row.ptActiveCountDetail, true);
"
type="text"
size="small">
{{ scope.row.ptActiveCount }}
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
@@ -181,45 +206,44 @@
/> -->
<!-- 详情 -->
<el-dialog v-model="detailsDialog" :title="detailsTitle" width="50%" center>
<el-dialog v-model="detailsDialog"
:title="detailsTitle"
width="50%"
center>
<!-- 内表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableDataIn"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="date" align="center" label="日期" />
<el-table-column prop="endDate" align="center" label="结束时间" />
<el-table-column prop="guildId" align="center" label="公会ID" />
<el-table-column prop="ownErbanNo" align="center" label="公会长ID" />
<el-table-column
prop="activeMemberCount"
style="width: 100%; margin-top: 25px">
<el-table-column prop="date"
align="center"
label="本周收礼主播数"
/>
<el-table-column
prop="guildGoldFlow"
label="日期" />
<el-table-column prop="endDate"
align="center"
label="本周公会钻石流水"
/>
<el-table-column
prop="guildDiamondFlow"
label="结束时间" />
<el-table-column prop="guildId"
align="center"
label="本周公会金币流水"
/>
<el-table-column
prop="lastGuildGoldFlow"
label="公会ID" />
<el-table-column prop="ownErbanNo"
align="center"
label="公会长ID" />
<el-table-column prop="activeMemberCount"
align="center"
label="本周收礼主播数" />
<el-table-column prop="guildGoldFlow"
align="center"
label="本周公会钻石流水" />
<el-table-column prop="guildDiamondFlow"
align="center"
label="本周公会金币流水" />
<el-table-column prop="lastGuildGoldFlow"
align="center"
label="上周公会钻石流水"
v-if="detailsIsShow"
/>
<el-table-column
prop="guildGoldFlowWow"
v-if="detailsIsShow" />
<el-table-column prop="guildGoldFlowWow"
align="center"
label="周环比"
v-if="detailsIsShow"
>
v-if="detailsIsShow">
<template v-slot="scope">
{{
scope.row.lastGuildGoldFlow === 0 ? '--'
@@ -231,9 +255,9 @@
<!-- 操作 -->
<template #footer>
<span class="dialog-footer">
<el-button type="primary" class="primary" @click="detailsDialog = false"
>关闭</el-button
>
<el-button type="primary"
class="primary"
@click="detailsDialog = false">关闭</el-button>
</span>
</template>
</el-dialog>
@@ -244,7 +268,7 @@ import { dateFormat } from "@/utils/system-helper";
import { ElMessage } from "element-plus";
export default {
name: "guildStatisticsData",
data() {
data () {
return {
loading: false,
// 查询条件
@@ -264,12 +288,12 @@ export default {
detailsIsShow: false,
};
},
created() {
created () {
this.getData();
},
methods: {
// 查询
getData() {
getData () {
this.loading = true;
let time = this.inquire.time;
let startTime = null;
@@ -300,19 +324,19 @@ export default {
});
},
// 详情
edi(res, type) {
edi (res, type) {
this.detailsIsShow = type;
this.tableDataIn = JSON.parse(res);
this.detailsDialog = true;
},
formatPercentage(value) {
formatPercentage (value) {
return parseFloat((value * 100).toFixed(2));
},
// 分页导航
handleSizeChange() {
handleSizeChange () {
this.getData();
},
handleCurrentChange() {
handleCurrentChange () {
this.getData();
},
},

View File

@@ -1,91 +1,110 @@
<template>
<!-- 表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="date" align="center" label="日期" />
<el-table-column prop="accountCount" align="center" label="新总注册" />
<el-table-column prop="userCount" align="center" label="新完善资料" />
<el-table-column prop="userRatio" align="center" label="完善率" />
style="width: 100%; margin-top: 25px">
<el-table-column prop="date"
align="center"
label="日期" />
<el-table-column prop="accountCount"
align="center"
label="新总注册" />
<el-table-column prop="userCount"
align="center"
label="新完善资料" />
<el-table-column prop="userRatio"
align="center"
label="完善率" />
<el-table-column align="center" label="阿拉伯区新注册(完善资料)" width="">
<el-table-column align="center"
label="阿拉伯区新注册(完善资料)"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '阿拉伯区注册明细' + scope.row.date;
edi(scope.row.arCountDetail, 2);
"
type="text"
size="small"
>
size="small">
{{ scope.row.arCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语区新注册(完善资料)" width="">
<el-table-column align="center"
label="英语区新注册(完善资料)"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语区注册明细' + scope.row.date;
edi(scope.row.enCountDetail, 1);
"
type="text"
size="small"
>
size="small">
{{ scope.row.enCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="华语区新注册(完善资料)" width="">
<el-table-column align="center"
label="华语区新注册(完善资料)"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '华语区注册明细' + scope.row.date;
edi(scope.row.zhCountDetail, 4);
"
type="text"
size="small"
>
size="small">
{{ scope.row.zhCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="土耳其区新注册(完善资料)" width="">
<el-table-column align="center"
label="土耳其区新注册(完善资料)"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '土耳其区注册明细' + scope.row.date;
edi(scope.row.trCountDetailt, 8);
"
type="text"
size="small"
>
size="small">
{{ scope.row.trCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语2区新注册完善资料" width="">
<el-table-column align="center"
label="英语2区新注册完善资料"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语2区注册明细' + scope.row.date;
edi(scope.row.en2CountDetail, 1);
"
type="text"
size="small"
>
size="small">
{{ scope.row.en2Count }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center"
label="葡萄牙语区新注册(完善资料)"
width="">
<template v-slot="scope">
<el-button @click="
detailsTitle = '葡萄牙语区注册明细' + scope.row.date;
edi(scope.row.ptCountDetailt, 32);
"
type="text"
size="small">
{{ scope.row.ptCount }}
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
<el-pagination style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
@@ -93,21 +112,27 @@
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
@current-change="handleCurrentChange" />
<!-- 详情 -->
<el-dialog v-model="detailsDialog" :title="detailsTitle" width="30%" center>
<el-dialog v-model="detailsDialog"
:title="detailsTitle"
width="30%"
center>
<!-- 内表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableDataIn"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="regionDesc" align="center" label="国家" />
<el-table-column prop="count" align="center" label="新注册(完善资料)" />
<el-table-column prop="ratio" align="center" label="占比">
style="width: 100%; margin-top: 25px">
<el-table-column prop="regionDesc"
align="center"
label="国家" />
<el-table-column prop="count"
align="center"
label="新注册(完善资料)" />
<el-table-column prop="ratio"
align="center"
label="占比">
<template v-slot="scope">
{{ formatPercentage(scope.row.ratio) }}%
</template>
@@ -116,20 +141,19 @@
<!-- 操作 -->
<template #footer>
<span class="dialog-footer">
<el-button type="primary" class="primary" @click="detailsDialog = false"
>关闭</el-button
>
<el-button type="primary"
class="primary"
@click="detailsDialog = false">关闭</el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import { dnuPage } from "@/api/statistics/statistics";
import { dateFormat } from "@/utils/system-helper";
import { ElMessage } from "element-plus";
export default {
name: "newOverview",
data() {
data () {
return {
loading: false,
// 查询条件
@@ -148,12 +172,12 @@ export default {
tableDataIn: [],
};
},
created() {
created () {
this.getData();
},
methods: {
// 查询
getData() {
getData () {
this.loading = true;
dnuPage({
page: this.currentPage,
@@ -173,7 +197,7 @@ export default {
});
},
// 详情
edi(res, type) {
edi (res, type) {
var jsonArr =
// type == 0
// ? res.totalDiamondDetail
@@ -189,14 +213,14 @@ export default {
(this.tableDataIn = JSON.parse(res));
this.detailsDialog = true;
},
formatPercentage(value) {
formatPercentage (value) {
return parseFloat((value * 100).toFixed(2));
},
// 分页导航
handleSizeChange() {
handleSizeChange () {
this.getData();
},
handleCurrentChange() {
handleCurrentChange () {
this.getData();
},
},

View File

@@ -1,102 +1,115 @@
<template>
<!-- 表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="date" align="center" label="日期" />
<el-table-column prop="totalCount" align="center" label="当天总活跃度">
style="width: 100%; margin-top: 25px">
<el-table-column prop="date"
align="center"
label="日期" />
<el-table-column prop="totalCount"
align="center"
label="当天总活跃度">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '当天总活跃度' + scope.row.date;
edi(scope.row.totalCountDetail, 2);
"
type="text"
size="small"
>
size="small">
{{ scope.row.totalCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="阿拉伯区总活跃度" width="">
<el-table-column align="center"
label="阿拉伯区总活跃度"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '阿拉伯区总活跃度' + scope.row.date;
edi(scope.row.arCountDetail, 2);
"
type="text"
size="small"
>
size="small">
{{ scope.row.arCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语区总活跃度" width="">
<el-table-column align="center"
label="英语区总活跃度"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语区总活跃度' + scope.row.date;
edi(scope.row.enCountDetail, 1);
"
type="text"
size="small"
>
size="small">
{{ scope.row.enCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="华语区总活跃度" width="">
<el-table-column align="center"
label="华语区总活跃度"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '华语区总活跃度' + scope.row.date;
edi(scope.row.zhCountDetail, 4);
"
type="text"
size="small"
>
size="small">
{{ scope.row.zhCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="土耳其区总活跃度" width="">
<el-table-column align="center"
label="土耳其区总活跃度"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '土耳其区总活跃度' + scope.row.date;
edi(scope.row.trCountDetail, 8);
"
type="text"
size="small"
>
size="small">
{{ scope.row.trCount }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center" label="英语2区总活跃度" width="">
<el-table-column align="center"
label="英语2区总活跃度"
width="">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
detailsTitle = '英语2区总活跃度' + scope.row.date;
edi(scope.row.en2CountDetail, 16);
"
type="text"
size="small"
>
size="small">
{{ scope.row.en2Count }}
</el-button>
</template>
</el-table-column>
<el-table-column align="center"
label="葡萄牙语区总活跃度"
width="">
<template v-slot="scope">
<el-button @click="
detailsTitle = '葡萄牙语区总活跃度' + scope.row.date;
edi(scope.row.ptCountDetail, 32);
"
type="text"
size="small">
{{ scope.row.ptCount }}
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
<el-pagination style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
@@ -104,21 +117,27 @@
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
@current-change="handleCurrentChange" />
<!-- 详情 -->
<el-dialog v-model="detailsDialog" :title="detailsTitle" width="30%" center>
<el-dialog v-model="detailsDialog"
:title="detailsTitle"
width="30%"
center>
<!-- 内表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableDataIn"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="regionDesc" align="center" label="国家" />
<el-table-column prop="count" align="center" label="活跃度" />
<el-table-column prop="ratio" align="center" label="占比">
style="width: 100%; margin-top: 25px">
<el-table-column prop="regionDesc"
align="center"
label="国家" />
<el-table-column prop="count"
align="center"
label="活跃度" />
<el-table-column prop="ratio"
align="center"
label="占比">
<template v-slot="scope">
{{ formatPercentage(scope.row.ratio) }}%
</template>
@@ -127,9 +146,9 @@
<!-- 操作 -->
<template #footer>
<span class="dialog-footer">
<el-button type="primary" class="primary" @click="detailsDialog = false"
>关闭</el-button
>
<el-button type="primary"
class="primary"
@click="detailsDialog = false">关闭</el-button>
</span>
</template>
</el-dialog>
@@ -140,7 +159,7 @@ import { dateFormat } from "@/utils/system-helper";
import { ElMessage } from "element-plus";
export default {
name: "overviewActiveStatistics",
data() {
data () {
return {
loading: false,
// 查询条件
@@ -159,12 +178,12 @@ export default {
tableDataIn: [],
};
},
created() {
created () {
this.getData();
},
methods: {
// 查询
getData() {
getData () {
this.loading = true;
dauPage({
page: this.currentPage,
@@ -184,7 +203,7 @@ export default {
});
},
// 详情
edi(res, type) {
edi (res, type) {
var jsonArr =
// type == 0
// ? res.totalDiamondDetail
@@ -200,14 +219,14 @@ export default {
(this.tableDataIn = JSON.parse(res));
this.detailsDialog = true;
},
formatPercentage(value) {
formatPercentage (value) {
return parseFloat((value * 100).toFixed(2));
},
// 分页导航
handleSizeChange() {
handleSizeChange () {
this.getData();
},
handleCurrentChange() {
handleCurrentChange () {
this.getData();
},
},

View File

@@ -8,10 +8,12 @@
</section>
<div id="toolbar">
<div class="col-sm-12">
<button id="btnSearch" class="btn btn-default">
<button id="btnSearch"
class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="btnAdd" class="btn btn-default">
<button id="btnAdd"
class="btn btn-default">
<i class="glyphicon glyphicon-plus"></i>增加
</button>
</div>
@@ -22,20 +24,32 @@
</div>
</section>
<div class="modal fade" id="roomTagModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="roomTagModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="modalLabel">资源位</h4>
<h4 class="modal-title"
id="modalLabel">资源位</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="addForm">
<input type="hidden" name="id" id="id" />
<form class="form-horizontal"
id="addForm">
<input type="hidden"
name="id"
id="id" />
<div class="form-group">
<label for="partitionId" class="col-sm-3 control-label">选择地区</label>
<label for="partitionId"
class="col-sm-3 control-label">选择地区</label>
<div class="col-sm-9">
<select name="partitionId"
id="partitionId"
@@ -45,9 +59,12 @@
</div>
<!--A策略-->
<div class="form-group">
<label for="resourceA" class="col-sm-3 control-label">A策略<font color="red">*</font></label>
<label for="resourceA"
class="col-sm-3 control-label">A策略<font color="red">*</font></label>
<div class="col-sm-9">
<select name="status" id="resourceA" class="form-control validate[required]">
<select name="status"
id="resourceA"
class="form-control validate[required]">
<option value=""></option>
<option value="1">牌照房</option>
<option value="2">相亲房</option>
@@ -62,26 +79,44 @@
<div class="form-group">
<label class="col-sm-3 control-label">A图标<font color="red">*</font></label>
<div class="col-sm-8">
<img src="" id="iconImgUrlA" style='width:108px;height:45px;' alt="">
<input type="file" id="iconFileA" name='uploadFile'
<img src=""
id="iconImgUrlA"
style='width:108px;height:45px;'
alt="">
<input type="file"
id="iconFileA"
name='uploadFile'
accept='image/gif,image/jpeg,image/jpg,image/png,image/svg'>
<button class="btn btn-success" type='button' id="iconBtnA">上传</button>
<input type="hidden" id="iconUrlA" name='alertWinPic'
<button class="btn btn-success"
type='button'
id="iconBtnA">上传</button>
<input type="hidden"
id="iconUrlA"
name='alertWinPic'
class="form-control validate[required]">
</div>
</div>
<div class="form-group" id="boxA">
<label for="contentA" class="col-sm-3 control-label" id="contentLabA"></label>
<div class="form-group"
id="boxA">
<label for="contentA"
class="col-sm-3 control-label"
id="contentLabA"></label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="contentA">
<input type="text"
class="form-control validate[required]"
name="name"
id="contentA">
</div>
</div>
<!--B策略-->
<div class="form-group">
<label for="resourceB" class="col-sm-3 control-label">B策略<font color="red">*</font></label>
<label for="resourceB"
class="col-sm-3 control-label">B策略<font color="red">*</font></label>
<div class="col-sm-9">
<select name="status" id="resourceB" class="form-control validate[required]">
<select name="status"
id="resourceB"
class="form-control validate[required]">
<option value=""></option>
<option value="1">牌照房</option>
<option value="2">相亲房</option>
@@ -96,26 +131,45 @@
<div class="form-group">
<label class="col-sm-3 control-label">B图标<font color="red">*</font></label>
<div class="col-sm-8">
<img src="" id="iconImgUrlB" style='width:108px;height:45px;' alt="">
<input type="file" id="iconFileB" name='uploadFile'
<img src=""
id="iconImgUrlB"
style='width:108px;height:45px;'
alt="">
<input type="file"
id="iconFileB"
name='uploadFile'
accept='image/gif,image/jpeg,image/jpg,image/png,image/svg'>
<button class="btn btn-success" type='button' id="iconBtnB">上传</button>
<input type="hidden" id="iconUrlB" name='alertWinPic'
<button class="btn btn-success"
type='button'
id="iconBtnB">上传</button>
<input type="hidden"
id="iconUrlB"
name='alertWinPic'
class="form-control validate[required]">
</div>
</div>
<div class="form-group" id="boxB">
<label for="contentB" class="col-sm-3 control-label" id="contentLabB"></label>
<div class="form-group"
id="boxB">
<label for="contentB"
class="col-sm-3 control-label"
id="contentLabB"></label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="contentB">
<input type="text"
class="form-control validate[required]"
name="name"
id="contentB">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">生效时段<font color="red">*</font>:</label>
<div class="col-sm-8">
<input type="text" class="input-sm datetime validate[required]" name="beginTime"
<input type="text"
class="input-sm datetime validate[required]"
name="beginTime"
id="beginTime">
-<input type="text" class="input-sm datetime validate[required]" name="endTime"
-<input type="text"
class="input-sm datetime validate[required]"
name="endTime"
id="endTime">
</div>
</div>
@@ -123,8 +177,12 @@
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="add">确定</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="add">确定</button>
</div>
</div>
@@ -138,16 +196,16 @@ import { serverError, formatTime } from '@/utils/maintainer';
export default {
name: "RecommendResourceAdminView",
setup() {
setup () {
return {};
},
created() {
created () {
this.$nextTick(function () {
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
$.ajax({
type: 'get',
@@ -222,6 +280,9 @@ export default {
if ((val & 16) != 0) {
value += '英语2区<br>';
}
if ((val & 32) != 0) {
value += '葡萄牙语区<br>';
}
return value;
}
},
@@ -289,7 +350,7 @@ export default {
search: false,
sidePagination: "server", //表示服务端请求
queryParamsType: "undefined",
queryParams: function queryParams(params) { //设置查询参数
queryParams: function queryParams (params) { //设置查询参数
var param = {
pageNum: params.pageNumber,
pageSize: params.pageSize
@@ -491,7 +552,7 @@ export default {
}
});
function apiResult(json) {
function apiResult (json) {
if (json.code == 200 && json.message == 'success') {
return true;
}
@@ -599,7 +660,7 @@ export default {
});
function pardeResourceType(val) {
function pardeResourceType (val) {
if (val == 1) {
return '牌照房';
} else if (val == 2) {
@@ -620,7 +681,7 @@ export default {
}
function clearModal() {
function clearModal () {
$("#id").val('');
$('#iconUrlA').val('');

View File

@@ -2,64 +2,92 @@
<div class="box">
<div class="inquire">
<span>用户ID:</span>
<el-input v-model="formData.erbanNo" placeholder="" class="input" />
<el-input v-model="formData.erbanNo"
placeholder=""
class="input" />
</div>
<el-button style="" type="primary" @click="getData()">查询</el-button>
<el-table
v-loading="tableData.loading"
<el-button style=""
type="primary"
@click="getData()">查询</el-button>
<el-table v-loading="tableData.loading"
:data="tableData.data"
ref="multipleTable"
@selection-change="handleSelectionChange"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="packId" align="center" label="礼包ID" />
<el-table-column prop="packName" align="center" label="礼包名称-华语区">
style="width: 100%; margin-top: 25px">
<el-table-column prop="packId"
align="center"
label="礼包ID" />
<el-table-column prop="packName"
align="center"
label="礼包名称-华语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "zh")
}}</template>
</el-table-column>
<el-table-column prop="packName" align="center" label="礼包名称-英语区">
<el-table-column prop="packName"
align="center"
label="礼包名称-英语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "en")
}}</template>
</el-table-column>
<el-table-column prop="packName" align="center" label="礼包名称-阿语区">
<el-table-column prop="packName"
align="center"
label="礼包名称-阿语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "ar")
}}</template>
</el-table-column>
<el-table-column prop="packName" align="center" label="礼包名称-土耳其区">
<el-table-column prop="packName"
align="center"
label="礼包名称-土耳其区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "tr")
}}</template>
</el-table-column>
<el-table-column prop="erbanNo" align="center" label="用户ID" />
<el-table-column prop="packNum" align="center" label="数量" />
<el-table-column prop="remark" align="center" label="理由" />
<el-table-column prop="createTime" align="center" label="发放时间">
<el-table-column prop="packName"
align="center"
label="礼包名称-葡萄牙语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "pt")
}}</template>
</el-table-column>
<el-table-column prop="erbanNo"
align="center"
label="用户ID" />
<el-table-column prop="packNum"
align="center"
label="数量" />
<el-table-column prop="remark"
align="center"
label="理由" />
<el-table-column prop="createTime"
align="center"
label="发放时间">
<template v-slot="scope">{{
convertTimestamp(scope.row.createTime)
}}</template>
</el-table-column>
<el-table-column prop="adminUser" align="center" label="操作人" />
<el-table-column align="center" label="操作" width="220">
<el-table-column prop="adminUser"
align="center"
label="操作人" />
<el-table-column align="center"
label="操作"
width="220">
<template v-slot="scope">
<el-button
@click="packRecall(scope.row.id)"
<el-button @click="packRecall(scope.row.id)"
class="primary"
type="primary"
size="default"
v-if="scope.row.status == 1"
>
v-if="scope.row.status == 1">
撤回
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
<el-pagination style="margin-top: 10px"
class="paginationClass"
:current-page="formData.pageNo"
:page-size="formData.pageSize"
@@ -67,8 +95,7 @@
layout="sizes, prev, pager, next"
:total="tableData.total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
@current-change="handleCurrentChange" />
</div>
</template>
@@ -81,7 +108,7 @@ import {
} from "@/api/giftPackCenter/giftPackCenter";
export default {
name: "distributionRecord",
setup() {
setup () {
const formData = reactive({
pageNo: 1,
pageSize: 10,

View File

@@ -1,117 +1,132 @@
<template>
<div class="box">
<el-button style="" type="primary" @click="getData()">查询</el-button>
<el-button
style=""
<el-button style=""
type="primary"
@click="getData()">查询</el-button>
<el-button style=""
type="primary"
@click="
addDialog = true;
resetaddFormData();
"
>新增</el-button
>
<el-table
v-loading="tableData.loading"
">新增</el-button>
<el-table v-loading="tableData.loading"
:data="tableData.data"
ref="multipleTable"
@selection-change="handleSelectionChange"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="packId" align="center" label="礼包ID" />
<el-table-column prop="partitionDesc" align="center" label="分区" />
<el-table-column prop="packName" align="center" label="礼包名称-华语区">
style="width: 100%; margin-top: 25px">
<el-table-column prop="packId"
align="center"
label="礼包ID" />
<el-table-column prop="partitionDesc"
align="center"
label="分区" />
<el-table-column prop="packName"
align="center"
label="礼包名称-华语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "zh")
}}</template>
</el-table-column>
<el-table-column prop="packName" align="center" label="礼包名称-英语区">
<el-table-column prop="packName"
align="center"
label="礼包名称-英语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "en")
}}</template>
</el-table-column>
<el-table-column prop="packName" align="center" label="礼包名称-阿语区">
<el-table-column prop="packName"
align="center"
label="礼包名称-阿语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "ar")
}}</template>
</el-table-column>
<el-table-column prop="packName" align="center" label="礼包名称-土耳其区">
<el-table-column prop="packName"
align="center"
label="礼包名称-土耳其区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "tr")
}}</template>
</el-table-column>
<el-table-column prop="status" align="center" label="礼包状态">
<el-table-column prop="packName"
align="center"
label="礼包名称-葡萄牙语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "pt")
}}</template>
</el-table-column>
<el-table-column prop="status"
align="center"
label="礼包状态">
<template v-slot="scope">
{{ scope.row.status == 1 ? "有效" : "无效" }}
</template>
</el-table-column>
<el-table-column prop="imgUrl" align="center" label="礼包样式">
<el-table-column prop="imgUrl"
align="center"
label="礼包样式">
<template v-slot="scope">
<el-image
style="width: 100px; height: 100px"
<el-image style="width: 100px; height: 100px"
:src="scope.row.imgUrl"
:zoom-rate="1.1"
:preview-src-list="[scope.row.imgUrl ?? '']"
fit="scale-down"
preview-teleported="true"
hide-on-click-modal="true"
/>
hide-on-click-modal="true" />
</template>
</el-table-column>
<el-table-column prop="createTime" align="center" label="创建时间">
<el-table-column prop="createTime"
align="center"
label="创建时间">
<template v-slot="scope">
{{ scope.row.createTime }}
</template>
</el-table-column>
<el-table-column prop="expireDay" align="center" label="礼包过期时间" />
<el-table-column align="center" label="操作" width="220">
<el-table-column prop="expireDay"
align="center"
label="礼包过期时间" />
<el-table-column align="center"
label="操作"
width="220">
<template v-slot="scope">
<el-button
@click="detailPageFun(scope.row)"
<el-button @click="detailPageFun(scope.row)"
class="primary"
type="primary"
size="default"
>
size="default">
编辑礼包
</el-button>
<el-button
@click="getRewardList(scope.row.packId)"
<el-button @click="getRewardList(scope.row.packId)"
class="primary"
type="primary"
size="default"
>
size="default">
奖品列表
</el-button>
<el-button
@click="
<el-button @click="
getAwardsFun(scope.row.partitionId);
addFormData.packId = scope.row.packId;
"
class="primary"
type="primary"
size="default"
style="margin-left: 0; margin-top: 10px"
>
style="margin-left: 0; margin-top: 10px">
添加奖品
</el-button>
<el-button
@click="
<el-button @click="
addFormData.packId = scope.row.packId;
sendPackCenterDialog = true;
"
class="primary"
type="primary"
size="default"
style="margin-top: 10px"
>
style="margin-top: 10px">
赠送礼包
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
<el-pagination style="margin-top: 10px"
class="paginationClass"
:current-page="formData.pageNo"
:page-size="formData.pageSize"
@@ -119,240 +134,202 @@
layout="sizes, prev, pager, next"
:total="tableData.total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<el-dialog
v-model="addDialog"
@current-change="handleCurrentChange" />
<el-dialog v-model="addDialog"
:title="addFormData.packId == '' ? '新增' : '编辑'"
width="28%"
center
>
center>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>礼包名称-华语</span
>
<el-input
v-model="addFormData.packNameZh"
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">礼包名称-华语</span>
<el-input v-model="addFormData.packNameZh"
style="width: 50%"
class="input"
></el-input>
class="input"></el-input>
</div>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>礼包名称-英语</span
>
<el-input
v-model="addFormData.packNameEn"
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">礼包名称-英语</span>
<el-input v-model="addFormData.packNameEn"
style="width: 50%"
class="input"
></el-input>
class="input"></el-input>
</div>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>礼包名称-阿语</span
>
<el-input
v-model="addFormData.packNameAr"
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">礼包名称-阿语</span>
<el-input v-model="addFormData.packNameAr"
style="width: 50%"
class="input"
></el-input>
class="input"></el-input>
</div>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>礼包名称-土耳其</span
>
<el-input
v-model="addFormData.packNameTr"
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">礼包名称-土耳其</span>
<el-input v-model="addFormData.packNameTr"
style="width: 50%"
class="input"
></el-input>
class="input"></el-input>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">礼包名称-葡萄牙语</span>
<el-input v-model="addFormData.packNamePt"
style="width: 50%"
class="input"></el-input>
</div>
<div class="selectBox selectBoxImg">
<span
class="left"
style="display: inline-block; margin-right: 20px; width: 100px"
>礼包样式</span
>
<span class="left"
style="display: inline-block; margin-right: 20px; width: 100px">礼包样式</span>
<!-- action="/admin/tencent/cos/upload/file" -->
<el-upload
class="avatar-uploader"
<el-upload class="avatar-uploader"
action="/admin/tencent/cos/upload/file"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:on-error="handleAvatarError"
>
<img
v-if="addFormData.imgUrl"
:on-error="handleAvatarError">
<img v-if="addFormData.imgUrl"
:src="addFormData.imgUrl"
class="avatar"
/>
<el-icon v-else class="avatar-uploader-icon">
class="avatar" />
<el-icon v-else
class="avatar-uploader-icon">
<Plus />
</el-icon>
</el-upload>
</div>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>状态</span
>
<el-select v-model="addFormData.status" placeholder="请选择">
<el-option label="效" :value="1"></el-option>
<el-option label="无效" :value="0"></el-option>
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">状态</span>
<el-select v-model="addFormData.status"
placeholder="请选择">
<el-option label="有效"
:value="1"></el-option>
<el-option label="效"
:value="0"></el-option>
</el-select>
</div>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>分区</span
>
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">分区</span>
<partition-select v-model:partition-id="addFormData.partitionId" />
</div>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>礼包过期时间</span
>
<el-input
v-model="addFormData.expireDay"
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">礼包过期时间</span>
<el-input v-model="addFormData.expireDay"
style="width: 50%"
class="input"
></el-input>
class="input"></el-input>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="addDialog = false">取消</el-button>
<el-button type="primary" @click="addFun()"> 确认 </el-button>
<el-button type="primary"
@click="addFun()"> 确认 </el-button>
</span>
</template>
</el-dialog>
<!-- 详情表格 -->
<el-dialog v-model="detailsDialog" title="奖品列表" width="50%" center>
<el-dialog v-model="detailsDialog"
title="奖品列表"
width="50%"
center>
<!-- 内表格 -->
<el-table
v-loading="tableDetailData.loading"
<el-table v-loading="tableDetailData.loading"
:data="tableDetailData.data"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="awardTypeName" align="center" label="类型">
style="width: 100%; margin-top: 25px">
<el-table-column prop="awardTypeName"
align="center"
label="类型">
<template v-slot="scope">
{{ scope.row.awardTypeName + "-" + scope.row.awardName }}
</template>
</el-table-column>
<el-table-column prop="awardId" align="center" label="ID" />
<el-table-column prop="awardNum" align="center" label="天数/数量" />
<el-table-column prop="awardPic" align="center" label="样式">
<el-table-column prop="awardId"
align="center"
label="ID" />
<el-table-column prop="awardNum"
align="center"
label="天数/数量" />
<el-table-column prop="awardPic"
align="center"
label="样式">
<template v-slot="scope">
<el-image
style="width: 100px; height: 100px"
<el-image style="width: 100px; height: 100px"
:src="scope.row.awardPic"
:zoom-rate="1.1"
:preview-src-list="[scope.row.awardPic ?? '']"
fit="scale-down"
preview-teleported="true"
hide-on-click-modal="true"
/>
hide-on-click-modal="true" />
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="220">
<el-table-column align="center"
label="操作"
width="220">
<template v-slot="scope">
<el-button
@click="delPageFun(scope.row.itemId)"
<el-button @click="delPageFun(scope.row.itemId)"
class="primary"
type="primary"
size="default"
>
size="default">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
<el-dialog v-model="addRewardDialog" title="添加奖品" width="28%" center>
<el-dialog v-model="addRewardDialog"
title="添加奖品"
width="28%"
center>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>添加奖品</span
>
<el-select v-model="addFormData.awardId" placeholder="请选择">
<el-option
v-for="item in awardsList"
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">添加奖品</span>
<el-select v-model="addFormData.awardId"
placeholder="请选择">
<el-option v-for="item in awardsList"
:key="item.awardId"
:label="item.awardTypeName + '-' + item.awardName"
:value="item.awardId"
>
:value="item.awardId">
</el-option>
</el-select>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="addRewardDialog = false">取消</el-button>
<el-button type="primary" @click="addRewardFun()"> 确认 </el-button>
<el-button type="primary"
@click="addRewardFun()"> 确认 </el-button>
</span>
</template>
</el-dialog>
<el-dialog
v-model="sendPackCenterDialog"
<el-dialog v-model="sendPackCenterDialog"
title="赠送礼包"
width="28%"
center
>
center>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>平台ID</span
>
<el-input
v-model="addFormData.erbanNo"
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">平台ID</span>
<el-input v-model="addFormData.erbanNo"
style="width: 50%"
class="input"
></el-input>
class="input"></el-input>
</div>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>礼包数量</span
>
<el-input
v-model="addFormData.packNum"
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">礼包数量</span>
<el-input v-model="addFormData.packNum"
style="width: 50%"
class="input"
></el-input>
class="input"></el-input>
</div>
<div style="margin-bottom: 25px">
<span
style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label"
>赠送理由</span
>
<el-input
v-model="addFormData.remark"
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">赠送理由</span>
<el-input v-model="addFormData.remark"
style="width: 50%"
class="input"
:rows="5"
type="textarea"
></el-input>
type="textarea"></el-input>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="sendPackCenterDialog = false">取消</el-button>
<el-button type="primary" @click="sendPackCenterFun()">
<el-button type="primary"
@click="sendPackCenterFun()">
确认
</el-button>
</span>
@@ -379,7 +356,7 @@ export default {
components: {
PartitionSelect,
},
setup() {
setup () {
const formData = reactive({
pageNo: 1,
pageSize: 10,
@@ -394,6 +371,7 @@ export default {
packNameEn: "",
packNameAr: "",
packNameTr: "",
packNamePt: "",
awardId: "",
erbanNo: "",
packNum: "",
@@ -439,6 +417,7 @@ export default {
en: addFormData.packNameEn,
ar: addFormData.packNameAr,
tr: addFormData.packNameTr,
pt: addFormData.packNamePt,
}),
partitionId: addFormData.partitionId,
};
@@ -473,6 +452,7 @@ export default {
packNameEn: "",
packNameAr: "",
packNameTr: "",
packNamePt: "",
awardId: "",
erbanNo: "",
packNum: "",
@@ -487,6 +467,7 @@ export default {
addFormData.packNameEn = JSON.parse(row.packName).en;
addFormData.packNameAr = JSON.parse(row.packName).ar;
addFormData.packNameTr = JSON.parse(row.packName).tr;
addFormData.packNamePt = JSON.parse(row.packName).pt;
}
addDialog.value = true;
};

View File

@@ -2,63 +2,96 @@
<div class="box">
<div class="inquire">
<span>用户ID:</span>
<el-input v-model="formData.erbanNo" placeholder="" class="input" />
<el-input v-model="formData.erbanNo"
placeholder=""
class="input" />
</div>
<el-button style="" type="primary" @click="getData()">查询</el-button>
<el-table
v-loading="tableData.loading"
<el-button style=""
type="primary"
@click="getData()">查询</el-button>
<el-table v-loading="tableData.loading"
:data="tableData.data"
ref="multipleTable"
@selection-change="handleSelectionChange"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="packId" align="center" label="礼包ID" />
<el-table-column prop="partitionDesc" align="center" label="分区" />
<el-table-column prop="packName" align="center" label="礼包名称-华语区">
style="width: 100%; margin-top: 25px">
<el-table-column prop="packId"
align="center"
label="礼包ID" />
<el-table-column prop="partitionDesc"
align="center"
label="分区" />
<el-table-column prop="packName"
align="center"
label="礼包名称-华语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "zh")
}}</template>
</el-table-column>
<el-table-column prop="packName" align="center" label="礼包名称-英语区">
<el-table-column prop="packName"
align="center"
label="礼包名称-英语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "en")
}}</template>
</el-table-column>
<el-table-column prop="packName" align="center" label="礼包名称-阿语区">
<el-table-column prop="packName"
align="center"
label="礼包名称-阿语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "ar")
}}</template>
</el-table-column>
<el-table-column prop="packName" align="center" label="礼包名称-土耳其区">
<el-table-column prop="packName"
align="center"
label="礼包名称-土耳其区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "tr")
}}</template>
</el-table-column>
<el-table-column prop="erbanNo" align="center" label="用户ID" />
<el-table-column prop="nick" align="center" label="用户昵称" />
<el-table-column prop="targeErbanNo" align="center" label="赠送用户ID" />
<el-table-column prop="targeNick" align="center" label="赠送用户昵称" />
<el-table-column prop="packNum" align="center" label="赠送/使用数量" />
<el-table-column prop="packNum" align="center" label="赠送/使用数量" />
<el-table-column prop="createTime" align="center" label="使用时间">
<el-table-column prop="packName"
align="center"
label="礼包名称-葡萄牙语区">
<template v-slot="scope">{{
getJsonField(scope.row.packName, "pt")
}}</template>
</el-table-column>
<el-table-column prop="erbanNo"
align="center"
label="用户ID" />
<el-table-column prop="nick"
align="center"
label="用户昵称" />
<el-table-column prop="targeErbanNo"
align="center"
label="赠送用户ID" />
<el-table-column prop="targeNick"
align="center"
label="赠送用户昵称" />
<el-table-column prop="packNum"
align="center"
label="赠送/使用数量" />
<el-table-column prop="packNum"
align="center"
label="赠送/使用数量" />
<el-table-column prop="createTime"
align="center"
label="使用时间">
<template v-slot="scope">{{
convertTimestamp(scope.row.createTime)
}}</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
<el-pagination style="margin-top: 10px"
class="paginationClass"
:current-page="formData.pageNo"
:page-size="formData.pageSize"
:page-sizes="[10, 20, 50, 100, 200]"
:page-sizes="[20, 50, 100, 200]"
layout="sizes, prev, pager, next"
:total="tableData.total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
@current-change="handleCurrentChange" />
</div>
</template>
@@ -68,7 +101,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
import { getUseRecordList } from "@/api/giftPackCenter/giftPackCenter";
export default {
name: "usageRecord",
setup() {
setup () {
const formData = reactive({
pageNo: 1,
pageSize: 10,

View File

@@ -10,18 +10,30 @@
<div id="table"></div>
<div id="toolbar">
<div class="col-sm-12">
<label for="sheadwearId" class="col-sm-1 control-label">头饰ID:</label>
<div class="col-sm-2"><input type="text" class="form-control" name="headwearId" id="sheadwearId">
<label for="sheadwearId"
class="col-sm-1 control-label">头饰ID:</label>
<div class="col-sm-2"><input type="text"
class="form-control"
name="headwearId"
id="sheadwearId">
</div>
<label for="sheadwearName" class="col-sm-1 control-label">头饰名称:</label>
<div class="col-sm-2"><input type="text" class="form-control" name="headwearName"
<label for="sheadwearName"
class="col-sm-1 control-label">头饰名称:</label>
<div class="col-sm-2"><input type="text"
class="form-control"
name="headwearName"
id="sheadwearName"></div>
<label for="slimitType" class="col-sm-1 control-label">限定类型:</label>
<label for="slimitType"
class="col-sm-1 control-label">限定类型:</label>
<div class="col-sm-2">
<select name="limitType" id="slimitType" data-btn-class="btn-warning" class="form-control">
<option value="" selected="selected">全部</option>
<select name="limitType"
id="slimitType"
data-btn-class="btn-warning"
class="form-control">
<option value=""
selected="selected">全部</option>
<option value="1">贵族限定</option>
<option value="2">怪兽限定</option>
<option value="3">活动限定</option>
@@ -29,25 +41,35 @@
</select>
</div>
<label for="senable" class="col-sm-1 control-label">头饰状态:</label>
<label for="senable"
class="col-sm-1 control-label">头饰状态:</label>
<div class="col-sm-2">
<select name="enable" id="senable" data-btn-class="btn-warning" class="form-control">
<option value="" selected="selected">全部</option>
<select name="enable"
id="senable"
data-btn-class="btn-warning"
class="form-control">
<option value=""
selected="selected">全部</option>
<option value="1">上架</option>
<option value="0">下架</option>
</select>
</div>
</div>
<div class="col-sm-12">
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
<label for="partitionId"
class="col-sm-1 control-label">地区:</label>
<div class="col-sm-2">
<select name="partitionId" id="partitionId" class="form-control"></select>
<select name="partitionId"
id="partitionId"
class="form-control"></select>
</div>
</div>
<button id="btnSearch" class="btn btn-default">
<button id="btnSearch"
class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="btnAdd" class="btn btn-default opt-apply">
<button id="btnAdd"
class="btn btn-default opt-apply">
<i class="glyphicon glyphicon-adjust"></i>新增
</button>
</div>
@@ -55,81 +77,149 @@
</div>
</section>
<div class="modal fade" id="headwearModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="headwearModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="modalLabel">增加头饰</h4>
<h4 class="modal-title"
id="modalLabel">增加头饰</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="addForm">
<input type="hidden" name="headwearId" id="headwearId" />
<form class="form-horizontal"
id="addForm">
<input type="hidden"
name="headwearId"
id="headwearId" />
<div class="form-group">
<label for="partitionFlag" class="col-sm-4 control-label">选择分区</label>
<label for="partitionFlag"
class="col-sm-4 control-label">选择分区</label>
<div class="col-sm-6">
<input type="checkbox" name="partitionFlag" value="1"/>英语区<br>
<input type="checkbox" name="partitionFlag" value="2"/>阿拉伯语区<br>
<input type="checkbox" name="partitionFlag" value="4"/>语区<br>
<input type="checkbox" name="partitionFlag" value="8"/>土耳其区<br>
<input type="checkbox" name="partitionFlag" value="16"/>英语2区<br>
<input type="checkbox"
name="partitionFlag"
value="1" />语区<br>
<input type="checkbox"
name="partitionFlag"
value="2" />阿拉伯语区<br>
<input type="checkbox"
name="partitionFlag"
value="4" />华语区<br>
<input type="checkbox"
name="partitionFlag"
value="8" />土耳其区<br>
<input type="checkbox"
name="partitionFlag"
value="16" />英语2区<br>
<input type="checkbox"
name="partitionFlag"
value="32" />葡萄牙语区<br>
</div>
</div>
<div class="form-group">
<label for="headwearName" class="col-sm-3 control-label">头饰名称:</label>
<label for="headwearName"
class="col-sm-3 control-label">头饰名称:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="headwearName" id="headwearName">
<input type="text"
class="form-control"
name="headwearName"
id="headwearName">
</div>
</div>
<div class="form-group">
<label for="headwearArName" class="col-sm-3 control-label">阿语头饰名称:</label>
<label for="headwearArName"
class="col-sm-3 control-label">阿语头饰名称:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="headwearName" id="headwearArName">
<input type="text"
class="form-control"
name="headwearName"
id="headwearArName">
</div>
</div>
<div class="form-group">
<label for="headwearEnName" class="col-sm-3 control-label">英语头饰名称:</label>
<label for="headwearEnName"
class="col-sm-3 control-label">英语头饰名称:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="headwearName" id="headwearEnName">
<input type="text"
class="form-control"
name="headwearName"
id="headwearEnName">
</div>
</div>
<div class="form-group">
<label for="headwearTrName" class="col-sm-3 control-label">土耳其头饰名称:</label>
<label for="headwearTrName"
class="col-sm-3 control-label">土耳其头饰名称:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="headwearName" id="headwearTrName">
<input type="text"
class="form-control"
name="headwearName"
id="headwearTrName">
</div>
</div>
<div class="form-group">
<label for="headwearPtName"
class="col-sm-3 control-label">葡萄牙头饰名称:</label>
<div class="col-sm-9">
<input type="text"
class="form-control"
name="headwearName"
id="headwearPtName">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">使用萝卜购买</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio" name="radishSale" value="0"
<label class="radio-inline"><input type="radio"
name="radishSale"
value="0"
checked></label>
<label class="radio-inline"><input type="radio" name="radishSale" value="1"></label>
<label class="radio-inline"><input type="radio"
name="radishSale"
value="1"></label>
</div>
</div>
<div class="form-group">
<label for="radishPrice" class="col-sm-3 control-label">首次价格:</label>
<label for="radishPrice"
class="col-sm-3 control-label">首次价格:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="radishPrice" id="radishPrice">
<input type="text"
class="form-control"
name="radishPrice"
id="radishPrice">
</div>
<span class="col-sm-3">萝卜</span>
</div>
<div class="form-group">
<label for="radishRenewPrice" class="col-sm-3 control-label">续费价格:</label>
<label for="radishRenewPrice"
class="col-sm-3 control-label">续费价格:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="radishRenewPrice" id="radishRenewPrice">
<input type="text"
class="form-control"
name="radishRenewPrice"
id="radishRenewPrice">
</div>
<span class="col-sm-3">萝卜</span>
</div>
<div class="form-group">
<label for="radishOriginalPrice" class="col-sm-3 control-label">原价:</label>
<label for="radishOriginalPrice"
class="col-sm-3 control-label">原价:</label>
<div class="col-sm-6">
<input type="number" class="form-control" placeholder="没有填0" value="0"
name="radishOriginalPrice" id="radishOriginalPrice">
<input type="number"
class="form-control"
placeholder="没有填0"
value="0"
name="radishOriginalPrice"
id="radishOriginalPrice">
</div>
<span class="col-sm-3">萝卜</span>
</div>
@@ -137,108 +227,180 @@
<div class="form-group">
<label class="col-sm-3 control-label">使用钻石购买</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio" name="goldSale" value="0"></label>
<label class="radio-inline"><input type="radio" name="goldSale" value="1" checked></label>
<label class="radio-inline"><input type="radio"
name="goldSale"
value="0"></label>
<label class="radio-inline"><input type="radio"
name="goldSale"
value="1"
checked></label>
</div>
</div>
<div class="form-group">
<label for="price" class="col-sm-3 control-label">首次价格:</label>
<label for="price"
class="col-sm-3 control-label">首次价格:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="price" id="price">
<input type="text"
class="form-control"
name="price"
id="price">
</div>
<span class="col-sm-3">钻石</span>
</div>
<div class="form-group">
<label for="renewPrice" class="col-sm-3 control-label">续费价格:</label>
<label for="renewPrice"
class="col-sm-3 control-label">续费价格:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="renewPrice" id="renewPrice">
<input type="text"
class="form-control"
name="renewPrice"
id="renewPrice">
</div>
<span class="col-sm-3">钻石</span>
</div>
<div class="form-group">
<label for="originalPrice" class="col-sm-3 control-label">原价:</label>
<label for="originalPrice"
class="col-sm-3 control-label">原价:</label>
<div class="col-sm-6">
<input type="number" class="form-control" placeholder="没有填0" value="0" name="originalPrice"
<input type="number"
class="form-control"
placeholder="没有填0"
value="0"
name="originalPrice"
id="originalPrice">
</div>
<span class="col-sm-3">钻石</span>
</div>
<div class="form-group">
<label for="days" class="col-sm-3 control-label">购买天数:</label>
<label for="days"
class="col-sm-3 control-label">购买天数:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="days" id="days">
<input type="text"
class="form-control"
name="days"
id="days">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否可售卖</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio" name="isSale" value="1" checked></label>
<label class="radio-inline"><input type="radio" name="isSale" value="0"></label>
<label class="radio-inline"><input type="radio"
name="isSale"
value="1"
checked></label>
<label class="radio-inline"><input type="radio"
name="isSale"
value="0"></label>
</div>
</div>
<div class="form-group">
<label for="nobleLimit" class="col-sm-3 control-label">限定类型:</label>
<label for="nobleLimit"
class="col-sm-3 control-label">限定类型:</label>
<div class="col-sm-9">
<!--<input type="text" class="form-control" name="limitType" id="limitType">-->
<label><input type="checkbox" id="nobleLimit" name="nobleLimit"
<label><input type="checkbox"
id="nobleLimit"
name="nobleLimit"
value="true">贵族限定&nbsp;&nbsp;</label>
<label><input type="checkbox" id="monsterLimit" name="monsterLimit"
<label><input type="checkbox"
id="monsterLimit"
name="monsterLimit"
value="true">怪兽限定&nbsp;&nbsp;</label>
<label><input type="checkbox" id="activityLimit" name="activityLimit"
<label><input type="checkbox"
id="activityLimit"
name="activityLimit"
value="true">活动限定&nbsp;&nbsp;</label>
<label><input type="checkbox" id="weekStarLimit" name="weekStarLimit"
<label><input type="checkbox"
id="weekStarLimit"
name="weekStarLimit"
value="true">周星榜限定&nbsp;&nbsp;</label>
</div>
</div>
<div class="form-group">
<label for="limitDesc" class="col-sm-3 control-label">限定描述:</label>
<label for="limitDesc"
class="col-sm-3 control-label">限定描述:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="limitDesc" id="limitDesc">
<input type="text"
class="form-control"
name="limitDesc"
id="limitDesc">
</div>
</div>
<div class="form-group">
<label for="enable" class="col-sm-3 control-label">头饰状态:</label>
<label for="enable"
class="col-sm-3 control-label">头饰状态:</label>
<div class="col-sm-9">
<!--<input type="text" class="form-control" name="status" id="status">-->
<input type="radio" name="enable" id="enable" value="true">上架
<input type="radio" name="enable" id="disable" value="false">下架
<input type="radio"
name="enable"
id="enable"
value="true">上架
<input type="radio"
name="enable"
id="disable"
value="false">下架
</div>
</div>
<div class="form-group">
<label for="pic" class="col-sm-3 control-label">头饰图片</label>
<label for="pic"
class="col-sm-3 control-label">头饰图片</label>
<div class="col-sm-9">
<img src="" id="picImage" style="width:250px;height:90px;" alt="">
<input type="file" id="picFile" name="uploadFile">
<button class="btn btn-success" type="button"
<img src=""
id="picImage"
style="width:250px;height:90px;"
alt="">
<input type="file"
id="picFile"
name="uploadFile">
<button class="btn btn-success"
type="button"
onclick="uploadfile('picFile','picImage','pic','picInfo')">上传</button>
<input type="hidden" id="pic" name="pic" class="form-control" />
<span id="picInfo" style="color:red;"></span>
<input type="hidden"
id="pic"
name="pic"
class="form-control" />
<span id="picInfo"
style="color:red;"></span>
</div>
</div>
<div class="form-group">
<label for="effect" class="col-sm-3 control-label">动效图片</label>
<label for="effect"
class="col-sm-3 control-label">动效图片</label>
<div class="col-sm-9">
<img src="" id="effectImage" style="width:250px;height:90px;" alt="">
<input type="file" id="effectFile" name="uploadFile">
<button class="btn btn-success" type="button"
<img src=""
id="effectImage"
style="width:250px;height:90px;"
alt="">
<input type="file"
id="effectFile"
name="uploadFile">
<button class="btn btn-success"
type="button"
onclick="uploadfile('effectFile','effectImage','effect','effectInfo')">上传</button>
<input type="hidden" id="effect" name="effect" class="form-control" />
<span id="effectInfo" style="color:red;"></span>
<input type="hidden"
id="effect"
name="effect"
class="form-control" />
<span id="effectInfo"
style="color:red;"></span>
</div>
</div>
<div class="form-group">
<label for="type" class="col-sm-3 control-label">动效类型:</label>
<label for="type"
class="col-sm-3 control-label">动效类型:</label>
<div class="col-sm-9">
<select name="type" id="type" class="form-control">
<select name="type"
id="type"
class="form-control">
<option value="0">图片</option>
<option value="1">SVGA</option>
</select>
@@ -246,84 +408,131 @@
</div>
<div class="form-group">
<label for="seq" class="col-sm-3 control-label">排序:</label>
<label for="seq"
class="col-sm-3 control-label">排序:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="seq" id="seq">
<input type="text"
class="form-control"
name="seq"
id="seq">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">标签:</label>
<div class="col-sm-9">
<label class="radio-inline"><input type="radio" name="labelType" id="noOne" value="0"
<label class="radio-inline"><input type="radio"
name="labelType"
id="noOne"
value="0"
checked></label>
<label class="radio-inline"><input type="radio" name="labelType" id="newOne"
<label class="radio-inline"><input type="radio"
name="labelType"
id="newOne"
value="1">新品</label>
<label class="radio-inline"><input type="radio" name="labelType" id="discountOne"
<label class="radio-inline"><input type="radio"
name="labelType"
id="discountOne"
value="2">折扣</label>
<label class="radio-inline"><input type="radio" name="labelType" id="limitOne"
<label class="radio-inline"><input type="radio"
name="labelType"
id="limitOne"
value="3">限定</label>
<label class="radio-inline"><input type="radio" name="labelType" id="exclusiveOne"
<label class="radio-inline"><input type="radio"
name="labelType"
id="exclusiveOne"
value="4">专属</label>
</div>
</div>
<div class="form-group">
<label for="redirectLink" class="col-sm-3 control-label">跳转链接:</label>
<label for="redirectLink"
class="col-sm-3 control-label">跳转链接:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="redirectLink"
placeholder="非必填,若填写,前端展示去看看按钮,反之则无按钮" id="redirectLink">
<input type="text"
class="form-control"
name="redirectLink"
placeholder="非必填,若填写,前端展示去看看按钮,反之则无按钮"
id="redirectLink">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="add">提交</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="add">提交</button>
</div>
</div>
</div>
</div>
<!-- 为用户赠送头饰弹窗 -->
<div class="modal fade" id="sendHeadwearModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="sendHeadwearModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">x</span></button>
<h4 class="modal-title" id="modalSendLabel">赠送头饰</h4>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title"
id="modalSendLabel">赠送头饰</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="headwearSendForm">
<input type="hidden" name="sendHeadwearId" id="sendHeadwearId" />
<form class="form-horizontal"
id="headwearSendForm">
<input type="hidden"
name="sendHeadwearId"
id="sendHeadwearId" />
<div class="form-group">
<label for="sendErbanNo" class="col-sm-3 control-label">平台号</label>
<label for="sendErbanNo"
class="col-sm-3 control-label">平台号</label>
<div class="col-sm-9">
<textarea name="sendErbanNo" id="sendErbanNo" class="form-control validate[required]"
<textarea name="sendErbanNo"
id="sendErbanNo"
class="form-control validate[required]"
placeholder="多个平台号使用换行符分隔"></textarea>
</div>
</div>
<div class="form-group">
<label for="sendDays" class="col-sm-3 control-label">赠送天数</label>
<label for="sendDays"
class="col-sm-3 control-label">赠送天数</label>
<div class="col-sm-9">
<input type="text" name="days" id="sendDays" class="form-control validate[required]" />
<input type="text"
name="days"
id="sendDays"
class="form-control validate[required]" />
</div>
</div>
<div class="form-group">
<label for="sendDesc" class="col-sm-3 control-label">备注</label>
<label for="sendDesc"
class="col-sm-3 control-label">备注</label>
<div class="col-sm-9">
<input type="text" name="desc" id="sendDesc" class="form-control validate[required]" />
<input type="text"
name="desc"
id="sendDesc"
class="form-control validate[required]" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="send">提交</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="send">提交</button>
</div>
</div>
</div>
@@ -337,8 +546,8 @@ import { buildSelectOption } from '@/utils/system-helper';
export default {
name: "HeadwearAdminView",
setup() {
function uploadfile(file, image, path, info) {
setup () {
function uploadfile (file, image, path, info) {
$(this).attr('disabled', "true");
$.ajaxFileUpload({
fileElementId: file, //需要上传的文件域的ID即<input type="file">的ID。
@@ -374,14 +583,14 @@ export default {
uploadfile
};
},
created() {
created () {
this.$nextTick(function () {
this.initPartition();
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
$('#table').bootstrapTable('destroy');
@@ -390,10 +599,11 @@ export default {
//{field: 'id', title: 'id', align: 'center', width: '5%'},
// { field: 'tmp', title: 'headwearId', align: 'center', checkbox: true, width: '5%' },
{ field: 'headwearId', title: '头饰ID', align: 'center', width: '5%' },
{field: 'name.zh', title: '头饰名称', align: 'center', width: '5%'},
{field: 'name.ar', title: '阿语头饰名称', align: 'center', width: '5%'},
{field: 'name.en', title: '英语头饰名称', align: 'center', width: '5%'},
{field: 'name.tr', title: '土耳其头饰名称', align: 'center', width: '5%'},
{ field: 'name.zh', title: '头饰名称', align: 'center', width: '5%' },
{ field: 'name.ar', title: '阿语头饰名称', align: 'center', width: '5%' },
{ field: 'name.en', title: '英语头饰名称', align: 'center', width: '5%' },
{ field: 'name.tr', title: '土耳其头饰名称', align: 'center', width: '5%' },
{ field: 'name.pt', title: '葡萄牙头饰名称', align: 'center', width: '5%' },
{
field: 'partitionFlag',
title: '地区',
@@ -416,6 +626,9 @@ export default {
if ((val & 16) != 0) {
value += '英语2区<br>';
}
if ((val & 32) != 0) {
value += '葡萄牙语<br>';
}
return value;
}
},
@@ -594,7 +807,7 @@ export default {
//设置为undefined可以获取pageNumberpageSizesearchTextsortNamesortOrder
//设置为limit可以获取limit, offset, search, sort, order
queryParamsType: "undefined",
queryParams: function queryParams(params) { //设置查询参数
queryParams: function queryParams (params) { //设置查询参数
var param = {
page: params.pageNumber,
pageSize: params.pageSize,
@@ -606,17 +819,17 @@ export default {
};
return param;
},
ajax:function(request){ //使用ajax请求
ajax: function (request) { //使用ajax请求
$.ajax({
type:"GET",
url:'/admin/headwear/list',
contentType:'application/json;charset=utf-8',
dataType:'json',
type: "GET",
url: '/admin/headwear/list',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: request.data,
success:function (res) {
success: function (res) {
console.log(res);
request.success({
"rows": res.rows.map(i=>{
"rows": res.rows.map(i => {
let value = i.name;
if (value.startsWith('{') && value.endsWith('}')) {
i.name = JSON.parse(value);
@@ -632,7 +845,7 @@ export default {
"total": res.total
});
},
error:function(error){
error: function (error) {
console.log(error);
}
})
@@ -659,6 +872,7 @@ export default {
$("#headwearArName").val("");
$("#headwearEnName").val("");
$("#headwearTrName").val("");
$("#headwearPtName").val("");
$("#price").val("");
$("#renewPrice").val("");
$("#originalPrice").val("");
@@ -692,7 +906,7 @@ export default {
$("input:radio[name='radishSale']")[0].checked = true;
$("input:radio[name='labelType']")[0].checked = true;
$('input[name="partitionFlag"]').each(function() {
$('input[name="partitionFlag"]').each(function () {
$(this).checked = false;
});
$('#type').val(0);
@@ -705,8 +919,9 @@ export default {
var headwearArName = $("#headwearArName").val();
var headwearEnName = $("#headwearEnName").val();
var headwearTrName = $("#headwearTrName").val();
var headwearPtName = $("#headwearPtName").val();
// 国际化字段
var jsonName = {"zh":headwearName,"ar":headwearArName,"en":headwearEnName,"tr":headwearTrName}
var jsonName = { "zh": headwearName, "ar": headwearArName, "en": headwearEnName, "tr": headwearTrName, "pt": headwearPtName }
const nameValue = JSON.stringify(jsonName);
var price = $("#price").val();
var renewPrice = $("#renewPrice").val();
@@ -807,7 +1022,7 @@ export default {
if (json.success == 'true') {
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
setTimeout(function() {
setTimeout(function () {
TableHelper.doRefresh("#table");
$("#headwearModal").modal('hide');
}, 1000);
@@ -843,11 +1058,13 @@ export default {
$("#headwearArName").val(jsonName.ar);
$("#headwearEnName").val(jsonName.en);
$("#headwearTrName").val(jsonName.tr);
$("#headwearPtName").val(jsonName.pt);
} else {
$("#headwearName").val(name);
$("#headwearArName").val(name);
$("#headwearEnName").val(name);
$("#headwearTrName").val(name);
$("#headwearPtName").val(name);
}
$("#price").val(json.price);
@@ -986,6 +1203,11 @@ export default {
} else {
$("input:checkbox[name='partitionFlag']")[4].checked = false;
}
if ((partitionFlag & 32) != 0) {
$("input:checkbox[name='partitionFlag']")[5].checked = true;
} else {
$("input:checkbox[name='partitionFlag']")[5].checked = false;
}
// 打开编辑弹窗
$("#headwearModal").modal('show');
@@ -1055,7 +1277,7 @@ export default {
});
});
},
initPartition() {
initPartition () {
getPartitionInfoList().then(res => {
let data = res.data;
buildSelectOption(

View File

@@ -6,60 +6,62 @@
<section class="content-header">
<h1 id="itemTitle"></h1>
</section>
<div id="toolbar" style="height: auto">
<form
id="searchForm"
<div id="toolbar"
style="height: auto">
<form id="searchForm"
class=""
action=""
method="post"
target="_blank"
>
target="_blank">
<div class="col-sm-12">
<label for="type" class="col-sm-1 control-label"
>资料卡类型:</label
>
<label for="type"
class="col-sm-1 control-label">资料卡类型:</label>
<div class="col-sm-2">
<select
name="type"
<select name="type"
id="type"
data-btn-class="btn-warning"
class="form-control"
>
<option value="" selected="selected">全部</option>
class="form-control">
<option value=""
selected="selected">全部</option>
<option value="1">普通</option>
<option value="2">贵族</option>
</select>
</div>
<label for="id" class="col-sm-1 control-label">资料卡id:</label>
<label for="id"
class="col-sm-1 control-label">资料卡id:</label>
<div class="col-sm-2">
<input type="text" class="form-control" name="id" id="id" />
</div>
<label for="name" class="col-sm-1 control-label"
>资料卡名称:</label
>
<div class="col-sm-2">
<input type="text" class="form-control" name="name" id="name" />
</div>
<label for="partitionId" class="col-sm-1 control-label"
>地区:</label
>
<div class="col-sm-2">
<select
name="partitionId"
id="partitionId"
<input type="text"
class="form-control"
></select>
name="id"
id="id" />
</div>
<label for="name"
class="col-sm-1 control-label">资料卡名称:</label>
<div class="col-sm-2">
<input type="text"
class="form-control"
name="name"
id="name" />
</div>
<label for="partitionId"
class="col-sm-1 control-label">地区:</label>
<div class="col-sm-2">
<select name="partitionId"
id="partitionId"
class="form-control"></select>
</div>
</div>
</form>
<div class="col-sm-12">
<button id="btnSearch" class="btn btn-default">
<button id="btnSearch"
class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="btnAdd" class="btn btn-default">
<button id="btnAdd"
class="btn btn-default">
<i class="glyphicon glyphicon-plus"></i>新增
</button>
</div>
@@ -70,208 +72,198 @@
</div>
</section>
<div
class="modal fade"
<div class="modal fade"
id="addModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel"
>
<div class="modal-dialog" role="document">
<div class="modal-content" style="width: 500px">
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content"
style="width: 500px">
<div class="modal-header">
<button
type="button"
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"
>
aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="modalLabel">新增资料卡</h4>
<h4 class="modal-title"
id="modalLabel">新增资料卡</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="addForm">
<input type="hidden" name="id" id="modal_id" />
<form class="form-horizontal"
id="addForm">
<input type="hidden"
name="id"
id="modal_id" />
<div class="form-group">
<label for="partitionFlag" class="col-sm-4 control-label"
>选择分区</label
>
<label for="partitionFlag"
class="col-sm-4 control-label">选择分区</label>
<div class="col-sm-6">
<input
type="checkbox"
<input type="checkbox"
name="partitionFlag"
value="1"
/>英语区<br />
<input
type="checkbox"
value="1" />英语区<br />
<input type="checkbox"
name="partitionFlag"
value="2"
/>阿拉伯语区<br />
<input
type="checkbox"
value="2" />阿拉伯语区<br />
<input type="checkbox"
name="partitionFlag"
value="4"
/>华语区<br />
<input
type="checkbox"
value="4" />华语区<br />
<input type="checkbox"
name="partitionFlag"
value="8"
/>土耳其<br />
<input
type="checkbox"
value="8" />土耳其<br />
<input type="checkbox"
name="partitionFlag"
value="16"
/>英语2区<br />
value="16" />英语2区<br />
<input type="checkbox"
name="partitionFlag"
value="32" />葡萄牙语区<br />
</div>
</div>
<div class="form-group">
<label for="modal_type" class="col-sm-4 control-label"
>装扮类型:</label
>
<label for="modal_type"
class="col-sm-4 control-label">装扮类型:</label>
<div class="col-sm-6">
<select
name="type"
<select name="type"
id="modal_type"
data-btn-class="btn-warning"
class="form-control"
>
class="form-control">
<option value="1">普通装扮</option>
<option value="2">贵族装扮</option>
</select>
</div>
</div>
<div class="form-group">
<label for="modal_name" class="col-sm-4 control-label"
>装扮名称:</label
>
<label for="modal_name"
class="col-sm-4 control-label">装扮名称:</label>
<div class="col-sm-6">
<input
type="text"
<input type="text"
class="form-control validate[required]"
name="name"
id="modal_name"
placeholder="请输入资料卡名称"
/>
placeholder="请输入资料卡名称" />
</div>
</div>
<div class="form-group">
<label for="ar_modal_name" class="col-sm-4 control-label"
>语装扮名称:</label
>
<label for="en_modal_name"
class="col-sm-4 control-label">语装扮名称:</label>
<div class="col-sm-6">
<input
type="text"
class="form-control validate[required]"
name="name"
id="ar_modal_name"
placeholder="请输入资料卡名称"
/>
</div>
</div>
<div class="form-group">
<label for="en_modal_name" class="col-sm-4 control-label"
>英语装扮名称:</label
>
<div class="col-sm-6">
<input
type="text"
<input type="text"
class="form-control validate[required]"
name="name"
id="en_modal_name"
placeholder="请输入资料卡名称"
/>
placeholder="请输入资料卡名称" />
</div>
</div>
<div class="form-group">
<label for="tr_modal_name" class="col-sm-4 control-label"
>土耳其装扮名称:</label
>
<label for="ar_modal_name"
class="col-sm-4 control-label">阿语装扮名称:</label>
<div class="col-sm-6">
<input
type="text"
<input type="text"
class="form-control validate[required]"
name="name"
id="ar_modal_name"
placeholder="请输入资料卡名称" />
</div>
</div>
<div class="form-group">
<label for="tr_modal_name"
class="col-sm-4 control-label">土耳其装扮名称:</label>
<div class="col-sm-6">
<input type="text"
class="form-control validate[required]"
name="name"
id="tr_modal_name"
placeholder="请输入资料卡名称"
/>
placeholder="请输入资料卡名称" />
</div>
</div>
<form class="form-horizontal" id="addForm1">
<div class="form-group">
<label for="pt_modal_name"
class="col-sm-4 control-label">葡萄牙语装扮名称:</label>
<div class="col-sm-6">
<input type="text"
class="form-control validate[required]"
name="name"
id="pt_modal_name"
placeholder="请输入资料卡名称" />
</div>
</div>
<form class="form-horizontal"
id="addForm1">
<div class="form-group">
<label class="col-sm-4 control-label">图片:</label>
<div class="col-sm-6">
<img src="" id="addIconPicUrl" style="height: 44px" alt="" />
<input
type="file"
<img src=""
id="addIconPicUrl"
style="height: 44px"
alt="" />
<input type="file"
id="addUploadIconPic"
name="uploadFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg,.mp4"
/>
<button class="btn btn-success" type="button" id="uploadBtn">
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg,.mp4" />
<button class="btn btn-success"
type="button"
id="uploadBtn">
上传
</button>
<input
type="hidden"
<input type="hidden"
id="pic"
name="pic"
class="form-control"
/>
<a href="javascript:void(0)" id="removeIconPic">清除</a>
class="form-control" />
<a href="javascript:void(0)"
id="removeIconPic">清除</a>
</div>
</div>
</form>
<div class="form-group">
<label for="effectType" class="col-sm-4 control-label"
>装扮动效图片类型:</label
>
<label for="effectType"
class="col-sm-4 control-label">装扮动效图片类型:</label>
<div class="col-sm-6">
<select
name="effectType"
<select name="effectType"
id="effectType"
data-btn-class="btn-warning"
class="form-control"
>
class="form-control">
<option value="0">图片</option>
<option value="1">MP4</option>
</select>
</div>
</div>
<form class="form-horizontal" id="addForm2">
<form class="form-horizontal"
id="addForm2">
<div class="form-group">
<label class="col-sm-4 control-label">装扮动效图片:</label>
<div class="col-sm-6">
<img src="" id="addIconPicUrl2" style="height: 44px" alt="" />
<input
type="file"
<img src=""
id="addIconPicUrl2"
style="height: 44px"
alt="" />
<input type="file"
id="addEffect"
name="uploadFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg,.mp4"
/>
<button class="btn btn-success" type="button" id="uploadBtn2">
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg,.mp4" />
<button class="btn btn-success"
type="button"
id="uploadBtn2">
上传
</button>
<input
type="hidden"
<input type="hidden"
id="effect"
name="effect"
class="form-control"
/>
<a href="javascript:void(0)" id="removeIconPic2">清除</a>
class="form-control" />
<a href="javascript:void(0)"
id="removeIconPic2">清除</a>
</div>
</div>
</form>
<div class="form-group">
<label for="status" class="col-sm-4 control-label"
>装扮状态:</label
>
<label for="status"
class="col-sm-4 control-label">装扮状态:</label>
<div class="col-sm-6">
<select
name="status"
<select name="status"
id="status"
data-btn-class="btn-warning"
class="form-control"
>
class="form-control">
<option value="1">有效</option>
<option value="2">无效</option>
</select>
@@ -281,10 +273,14 @@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
关闭
</button>
<button type="button" class="btn btn-primary" id="button-save">
<button type="button"
class="btn btn-primary"
id="button-save">
保存
</button>
</div>
@@ -293,71 +289,71 @@
</div>
<!-- 为用户赠送铭牌弹窗 -->
<div
class="modal fade"
<div class="modal fade"
id="sendModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel"
>
<div class="modal-dialog" role="document">
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button
type="button"
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"
>
aria-label="Close">
<span aria-hidden="true">x</span>
</button>
<h4 class="modal-title" id="modalSendLabel">赠送装扮</h4>
<h4 class="modal-title"
id="modalSendLabel">赠送装扮</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="sendForm">
<input type="hidden" name="id" id="sendId" />
<form class="form-horizontal"
id="sendForm">
<input type="hidden"
name="id"
id="sendId" />
<div class="form-group">
<label for="sendErbanNo" class="col-sm-3 control-label">ID</label>
<label for="sendErbanNo"
class="col-sm-3 control-label">ID</label>
<div class="col-sm-9">
<textarea
name="erbanNos"
<textarea name="erbanNos"
id="sendErbanNo"
class="form-control validate[required]"
placeholder="多个ID使用,分隔一次性不得超过100个"
></textarea>
placeholder="多个ID使用,分隔一次性不得超过100个"></textarea>
</div>
</div>
<div class="form-group">
<label for="sendDays" class="col-sm-3 control-label"
>赠送天数</label
>
<label for="sendDays"
class="col-sm-3 control-label">赠送天数</label>
<div class="col-sm-9">
<input
type="text"
<input type="text"
name="days"
id="sendDays"
class="form-control validate[required]"
/>
class="form-control validate[required]" />
</div>
</div>
<div class="form-group">
<label for="sendDesc" class="col-sm-3 control-label">备注</label>
<label for="sendDesc"
class="col-sm-3 control-label">备注</label>
<div class="col-sm-9">
<input
type="text"
<input type="text"
name="remake"
id="sendDesc"
class="form-control validate[required]"
/>
class="form-control validate[required]" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
关闭
</button>
<button type="button" class="btn btn-primary" id="send">提交</button>
<button type="button"
class="btn btn-primary"
id="send">提交</button>
</div>
</div>
</div>
@@ -371,17 +367,17 @@ import { buildSelectOption } from "@/utils/system-helper";
export default {
name: "InfocardManageView",
setup() {
setup () {
return {};
},
created() {
created () {
this.$nextTick(function () {
this.initPartition();
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
$("#table").bootstrapTable("destroy");
$("#table").bootstrapTable({
@@ -409,6 +405,9 @@ export default {
if ((val & 16) != 0) {
value += "英语2区<br>";
}
if ((val & 32) != 0) {
value += "葡萄牙语<br>";
}
return value;
},
},
@@ -436,6 +435,12 @@ export default {
align: "middle",
width: "5%",
},
{
field: "name.pt",
title: "葡萄牙语装扮名称",
align: "middle",
width: "5%",
},
{
field: "pic",
title: "装扮图片",
@@ -560,14 +565,14 @@ export default {
cache: false,
striped: true,
showRefresh: false,
pageSize: 10,
pageSize: 20,
pagination: true,
pageList: [10, 20, 30, 50],
pageList: [20, 50],
search: false,
sidePagination: "server", //表示服务端请求
queryParamsType: "-",
uniqueId: "id",
queryParams: function queryParams(params) {
queryParams: function queryParams (params) {
//设置查询参数
var param = {
page: params.pageNumber,
@@ -599,6 +604,8 @@ export default {
zh: value,
ar: value,
en: value,
tr: value,
pt: value,
};
}
return i;
@@ -640,7 +647,9 @@ export default {
name &&
Object.prototype.hasOwnProperty.call(name, "zh") &&
Object.prototype.hasOwnProperty.call(name, "ar") &&
Object.prototype.hasOwnProperty.call(name, "en")
Object.prototype.hasOwnProperty.call(name, "en") &&
Object.prototype.hasOwnProperty.call(name, "tr") &&
Object.prototype.hasOwnProperty.call(name, "pt")
) {
$("#addForm #modal_name").val(row.name.zh);
// 阿语
@@ -649,6 +658,7 @@ export default {
$("#addForm #en_modal_name").val(row.name.en);
// 土耳其
$("#addForm #tr_modal_name").val(row.name.tr);
$("#addForm #pt_modal_name").val(row.name.pt);
} else {
$("#addForm #modal_name").val(name);
// 阿语
@@ -657,6 +667,7 @@ export default {
$("#addForm #en_modal_name").val(name);
// 土耳其
$("#addForm #tr_modal_name").val(name);
$("#addForm #pt_modal_name").val(name);
}
$("#addIconPicUrl").attr("src", row.pic);
$("#addIconPicUrl2").attr("src", row.effect);
@@ -691,6 +702,11 @@ export default {
} else {
$("input:checkbox[name='partitionFlag']")[4].checked = false;
}
if ((partitionFlag & 32) != 0) {
$("input:checkbox[name='partitionFlag']")[5].checked = true;
} else {
$("input:checkbox[name='partitionFlag']")[5].checked = false;
}
$("#addModal").modal("show");
});
@@ -755,6 +771,7 @@ export default {
var arName = $("#ar_modal_name").val();
var enName = $("#en_modal_name").val();
var trName = $("#tr_modal_name").val();
var ptName = $("#pt_modal_name").val();
//做下数据校验
if (isEmpty(name)) {
$("#tipMsg").text("装扮名字不能为空");
@@ -776,6 +793,11 @@ export default {
$("#tipModal").modal("show");
return;
}
if (isEmpty(ptName)) {
$("#tipMsg").text("葡萄牙装扮名字不能为空");
$("#tipModal").modal("show");
return;
}
if (isEmpty(pic)) {
$("#tipMsg").text("图片不能为空");
$("#tipModal").modal("show");
@@ -792,7 +814,7 @@ export default {
}, {});
// 国际化字段
var jsonName = { zh: name, ar: arName, en: enName, tr: trName };
var jsonName = { zh: name, ar: arName, en: enName, tr: trName, pt: ptName };
const nameValue = JSON.stringify(jsonName);
// 修改属性值
formData.name = nameValue; // 将giftName修改为"newGiftName"
@@ -809,7 +831,7 @@ export default {
// 将修改后的对象转换回序列化字符串
formData.pic = $('#addIconPicUrl').attr('src');
formData.effect = $('#addIconPicUrl2').attr('src');
console.log(formData,2222222222222);
console.log(formData, 2222222222222);
let newSerializeStr = $.param(formData);
$.ajax({
type: "post",
@@ -915,7 +937,7 @@ export default {
});
});
},
initPartition() {
initPartition () {
getPartitionInfoList().then((res) => {
let data = res.data;
buildSelectOption(
@@ -940,7 +962,7 @@ export default {
},
};
function cleanModal() {
function cleanModal () {
$("#id").val("");
$("#addIconPicUrl").attr("src", "");
$("#addIconPicUrl2").attr("src", "");
@@ -958,7 +980,7 @@ function cleanModal() {
});
}
//判断空值
function isEmpty(data) {
function isEmpty (data) {
if (data == null || data == undefined || data == "") {
return true;
}

View File

@@ -3,74 +3,135 @@
<!-- 查询 -->
<div class="inquire">
<span>勋章ID</span>
<el-input v-model="inquire.id" placeholder="" class="input"></el-input>
<el-input v-model="inquire.id"
placeholder=""
class="input"></el-input>
</div>
<div class="inquire">
<span>勋章昵称</span>
<el-input v-model="inquire.nick" placeholder="" class="input"></el-input>
<el-input v-model="inquire.nick"
placeholder=""
class="input"></el-input>
</div>
<div class="inquire">
<span class="demonstration">分区</span>
<partition-select v-model:partition-id="inquire.partitionId" v-model:partition-infos="inquire.options"
<partition-select v-model:partition-id="inquire.partitionId"
v-model:partition-infos="inquire.options"
v-model:after-init="afterPartitionInit" />
</div>
<!-- 查询按钮 -->
<el-button class="primary" type="primary" @click="getData()">
<el-button class="primary"
type="primary"
@click="getData()">
查询
</el-button>
<el-button class="primary" type="primary" @click="add()"> 新增 </el-button>
<el-button class="primary"
type="primary"
@click="add()"> 新增 </el-button>
<!-- 表格 -->
<el-table v-loading="loading" :data="tableData" border style="width: 100%; margin-top: 25px">
<el-table-column prop="id" align="center" label="勋章ID" />
<el-table-column prop="partitionFlag" align="center" label="地区">
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px">
<el-table-column prop="id"
align="center"
label="勋章ID" />
<el-table-column prop="partitionFlag"
align="center"
label="地区">
<template v-slot="scope">{{
partitionFlagFun(scope.row.partitionFlag, 1)
}}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="勋章名称-华语区">
<el-table-column prop="name"
align="center"
label="勋章名称-华语区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'zh') }}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="勋章名称-英语区">
<el-table-column prop="name"
align="center"
label="勋章名称-英语区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'en') }}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="勋章名称-阿语区">
<el-table-column prop="name"
align="center"
label="勋章名称-阿语区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'ar') }}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="勋章名称-土耳其区">
<el-table-column prop="name"
align="center"
label="勋章名称-土耳其区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'tr') }}</template>
</el-table-column>
<el-table-column prop="medalDesc" align="center" label="勋章获得方式-华语区">
<el-table-column prop="name"
align="center"
label="勋章名称-葡萄牙语区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'pt') }}</template>
</el-table-column>
<el-table-column prop="medalDesc"
align="center"
label="勋章获得方式-华语区">
<template v-slot="scope">{{ getJsonField(scope.row.medalDesc, 'zh')}}</template>
</el-table-column>
<el-table-column prop="medalDesc" align="center" label="勋章获得方式-英语区">
<el-table-column prop="medalDesc"
align="center"
label="勋章获得方式-英语区">
<template v-slot="scope">{{ getJsonField(scope.row.medalDesc, 'en')}}</template>
</el-table-column>
<el-table-column prop="medalDesc" align="center" label="勋章获得方式-阿语区">
<el-table-column prop="medalDesc"
align="center"
label="勋章获得方式-阿语区">
<template v-slot="scope">{{ getJsonField(scope.row.medalDesc, 'ar')}}</template>
</el-table-column>
<el-table-column prop="medalDesc" align="center" label="勋章获得方式-土耳其区">
<el-table-column prop="medalDesc"
align="center"
label="勋章获得方式-土耳其区">
<template v-slot="scope">{{ getJsonField(scope.row.medalDesc, 'tr')}}</template>
</el-table-column>
<el-table-column align="center" prop="picUrl" label="勋章图片" width="120">
<el-table-column prop="medalDesc"
align="center"
label="勋章获得方式-葡萄牙语区">
<template v-slot="scope">{{ getJsonField(scope.row.medalDesc, 'pt')}}</template>
</el-table-column>
<el-table-column align="center"
prop="picUrl"
label="勋章图片"
width="120">
<template v-slot="scope">
<el-image style="width: 100px; height: 100px" :src="scope.row.picUrl" :zoom-rate="1.1"
:preview-src-list="[scope.row.picUrl ?? '']" fit="scale-down" preview-teleported="true"
<el-image style="width: 100px; height: 100px"
:src="scope.row.picUrl"
:zoom-rate="1.1"
:preview-src-list="[scope.row.picUrl ?? '']"
fit="scale-down"
preview-teleported="true"
hide-on-click-modal="true" />
</template>
</el-table-column>
<el-table-column prop="enable" align="center" label="状态">
<el-table-column prop="enable"
align="center"
label="状态">
<template v-slot="scope">{{
scope.row.enable ? "生效" : "不生效"
}}</template>
</el-table-column>
<el-table-column prop="createTime" align="center" label="添加时间" />
<el-table-column align="center" label="操作" width="220">
<el-table-column prop="createTime"
align="center"
label="添加时间" />
<el-table-column align="center"
label="操作"
width="220">
<template v-slot="scope">
<el-button @click="eidFun(scope.row)" class="primary" type="primary" size="default">
<el-button @click="eidFun(scope.row)"
class="primary"
type="primary"
size="default">
编辑
</el-button>
<el-button @click="grantFun(scope.row)" class="primary" type="primary" size="default"
<el-button @click="grantFun(scope.row)"
class="primary"
type="primary"
size="default"
:disabled="!scope.row.enable">
发放
</el-button>
@@ -79,94 +140,171 @@
</el-table>
<!-- 分页 -->
<el-pagination style="margin-top: 10px" class="paginationClass" v-model:current-page="currentPage"
v-model:page-size="pageSize" :page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
layout="sizes, prev, pager, next" :total="total" @size-change="handleSizeChange"
<el-pagination style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[20, 30, 50, 100, 200, 500]"
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange" />
<!-- 新增&编辑弹窗 -->
<el-dialog destroy-on-close class="pub" v-model="controlsDialog" :title="controlsTitle" width="32%" center>
<el-dialog destroy-on-close
class="pub"
v-model="controlsDialog"
:title="controlsTitle"
width="32%"
center>
<!-- 地区 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">地区</span>
<el-select multiple filterable v-model="controlsObj.value" placeholder="请选择" style="width: 100%">
<el-option v-for="item in controlsObj.options" :key="item.id" :label="item.desc" :value="item.id">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">地区</span>
<el-select multiple
filterable
v-model="controlsObj.value"
placeholder="请选择"
style="width: 100%">
<el-option v-for="item in controlsObj.options"
:key="item.id"
:label="item.desc"
:value="item.id">
</el-option>
</el-select>
</div>
<!-- 勋章名称-华语 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章名称-华语</span>
<el-input v-model="controlsObj.nickZh" placeholder="" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章名称-华语</span>
<el-input v-model="controlsObj.nickZh"
placeholder=""
class="input"></el-input>
</div>
<!-- 勋章名称-英语 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章名称-英语</span>
<el-input v-model="controlsObj.nickEn" placeholder="" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章名称-英语</span>
<el-input v-model="controlsObj.nickEn"
placeholder=""
class="input"></el-input>
</div>
<!-- 勋章名称-阿语 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章名称-阿语</span>
<el-input v-model="controlsObj.nickAr" placeholder="" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章名称-阿语</span>
<el-input v-model="controlsObj.nickAr"
placeholder=""
class="input"></el-input>
</div>
<!-- 勋章名称-土耳其 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章名称-土耳其</span>
<el-input v-model="controlsObj.nickTr" placeholder="" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章名称-土耳其</span>
<el-input v-model="controlsObj.nickTr"
placeholder=""
class="input"></el-input>
</div>
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章名称-葡萄牙语</span>
<el-input v-model="controlsObj.nickPt"
placeholder=""
class="input"></el-input>
</div>
<!-- 勋章获得方式-华语 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章获得方式-华语</span>
<el-input v-model="controlsObj.medalDescZh" placeholder="" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章获得方式-华语</span>
<el-input v-model="controlsObj.medalDescZh"
placeholder=""
class="input"></el-input>
</div>
<!-- 勋章获得方式-英语 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章获得方式-英语</span>
<el-input v-model="controlsObj.medalDescEn" placeholder="" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章获得方式-英语</span>
<el-input v-model="controlsObj.medalDescEn"
placeholder=""
class="input"></el-input>
</div>
<!-- 勋章获得方式-阿语 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章获得方式-阿语</span>
<el-input v-model="controlsObj.medalDescAr" placeholder="" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章获得方式-阿语</span>
<el-input v-model="controlsObj.medalDescAr"
placeholder=""
class="input"></el-input>
</div>
<!-- 勋章获得方式-土耳其 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章获得方式-土耳其</span>
<el-input v-model="controlsObj.medalDescTr" placeholder="" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章获得方式-土耳其</span>
<el-input v-model="controlsObj.medalDescTr"
placeholder=""
class="input"></el-input>
</div>
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章获得方式-葡萄牙语</span>
<el-input v-model="controlsObj.medalDescPt"
placeholder=""
class="input"></el-input>
</div>
<!-- 勋章图片 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章图片</span>
<el-upload class="avatar-uploader" action="/admin/tencent/cos/upload/file" :show-file-list="false"
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload" :on-error="handleAvatarError">
<img :src="controlsObj.imageUrl1" class="avatar" />
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章图片</span>
<el-upload class="avatar-uploader"
action="/admin/tencent/cos/upload/file"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:on-error="handleAvatarError">
<img :src="controlsObj.imageUrl1"
class="avatar" />
</el-upload>
</div>
<!-- 动态图 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章动态图</span>
<el-upload class="avatar-uploader input" action="/admin/tencent/cos/upload/file" :show-file-list="false"
:on-success="handleAvatarSuccess2" :before-upload="beforeAvatarUploadMp4" :on-error="handleAvatarError">
<video v-if="controlsObj.imageUrl2" :key="controlsObj.imageUrl2" autoplay width="320" height="240"
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章动态图</span>
<el-upload class="avatar-uploader input"
action="/admin/tencent/cos/upload/file"
:show-file-list="false"
:on-success="handleAvatarSuccess2"
:before-upload="beforeAvatarUploadMp4"
:on-error="handleAvatarError">
<video v-if="controlsObj.imageUrl2"
:key="controlsObj.imageUrl2"
autoplay
width="320"
height="240"
controls="controls">
<source :src="controlsObj.imageUrl2" type="video/mp4" />
<source :src="controlsObj.imageUrl2"
type="video/mp4" />
</video>
</el-upload>
</div>
<!-- 状态 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">状态</span>
<el-select filterable v-model="controlsObj.value2" placeholder="请选择">
<el-option v-for="item in controlsObj.options2" :key="item.id" :label="item.desc"
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">状态</span>
<el-select filterable
v-model="controlsObj.value2"
placeholder="请选择">
<el-option v-for="item in controlsObj.options2"
:key="item.id"
:label="item.desc"
:value="item.id"></el-option>
</el-select>
</div>
@@ -175,7 +313,8 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="controlsDialog = false">取消</el-button>
<el-button type="primary" @click="controlsDialogOut()">
<el-button type="primary"
@click="controlsDialogOut()">
确认
</el-button>
</span>
@@ -183,37 +322,57 @@
</el-dialog>
<!-- 发放勋章弹窗 -->
<el-dialog destroy-on-close class="pub" v-model="grantDialog" title="发放勋章" width="32%" center>
<el-dialog destroy-on-close
class="pub"
v-model="grantDialog"
title="发放勋章"
width="32%"
center>
<!-- 勋章名称 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">勋章名称</span>
<el-input v-model="grantObj.nick" placeholder="默认展示的是中文勋章名称" class="input" disabled></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">勋章名称</span>
<el-input v-model="grantObj.nick"
placeholder="默认展示的是中文勋章名称"
class="input"
disabled></el-input>
</div>
<!-- 发放对象平台号 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">发放对象平台号</span>
<el-input type="textarea" :rows="2" v-model="grantObj.userId" placeholder="多个平台号用英文“,”号分开分隔"
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">发放对象平台号</span>
<el-input type="textarea"
:rows="2"
v-model="grantObj.userId"
placeholder="多个平台号用英文“,”号分开分隔"
class="input"></el-input>
</div>
<!-- 发放天数 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">发放天数</span>
<el-input v-model="grantObj.days" placeholder="输入天数,不输入则视为无限制" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">发放天数</span>
<el-input v-model="grantObj.days"
placeholder="输入天数,不输入则视为无限制"
class="input"></el-input>
</div>
<!-- 备注 -->
<div style="margin-bottom: 25px; margin-top: 10px; display: flex">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">备注</span>
<el-input v-model="grantObj.desc" placeholder="" class="input"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">备注</span>
<el-input v-model="grantObj.desc"
placeholder=""
class="input"></el-input>
</div>
<!-- 弹窗按钮 -->
<template #footer>
<span class="dialog-footer">
<el-button @click="grantDialog = false">取消</el-button>
<el-button type="primary" @click="grantOut()"> 确认 </el-button>
<el-button type="primary"
@click="grantOut()"> 确认 </el-button>
</span>
</template>
</el-dialog>
@@ -230,7 +389,7 @@ import PartitionSelect from "@/views/common/partitionSelect.vue";
export default {
name: "MedalInfo",
components: { PartitionSelect },
data() {
data () {
return {
loading: false,
//查询所需条件对象
@@ -238,7 +397,7 @@ export default {
id: "",
nick: "",
partitionId: undefined,
options:[]
options: []
},
// 表格
tableData: [],
@@ -257,6 +416,7 @@ export default {
nickEn: "",
nickAr: "",
nickTr: "",
nickPt: "",
imageUrl1: "",
imageUrl2: '',
value2: "",
@@ -264,6 +424,7 @@ export default {
medalDescEn: '',
medalDescAr: '',
medalDescTr: '',
medalDescPt: '',
options2: [
{
desc: "生效",
@@ -288,12 +449,12 @@ export default {
};
},
methods: {
afterPartitionInit() {
afterPartitionInit () {
this.controlsObj.options = this.inquire.options;
this.getData();
},
// 查询接口
getData() {
getData () {
this.loading = true;
medalPage({
id: this.inquire.id,
@@ -316,7 +477,7 @@ export default {
});
},
// 添加
add() {
add () {
this.controlsTitle = "新增";
this.controlsType = 1;
this.controlsObj.value = [];
@@ -324,17 +485,19 @@ export default {
this.controlsObj.nickEn = "";
this.controlsObj.nickAr = "";
this.controlsObj.nickTr = "";
this.controlsObj.nickPt = "";
this.controlsObj.imageUrl1 = "";
this.controlsObj.imageUrl2 = "";
this.controlsObj.medalDescZh = "";
this.controlsObj.medalDescEn = "";
this.controlsObj.medalDescAr = "";
this.controlsObj.medalDescTr = "";
this.controlsObj.medalDescPt = "";
this.controlsObj.value2 = "";
this.controlsDialog = true;
},
// 编辑
eidFun(val) {
eidFun (val) {
this.controlsTitle = "编辑";
this.controlsType = 2;
this.controlsObj.value = this.partitionFlagFun(val.partitionFlag, 2);
@@ -342,11 +505,13 @@ 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;
this.controlsObj.nickPt = JSON.parse(val.name).pt;
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.medalDescPt = JSON.parse(val.medalDesc).pt;
}
this.controlsObj.imageUrl1 = val.picUrl;
this.controlsObj.imageUrl2 = val.mp4Url;
@@ -355,7 +520,7 @@ export default {
this.controlsDialog = true;
},
// 确认保存按钮
controlsDialogOut() {
controlsDialogOut () {
if (this.controlsType == 1) {
// 新增
var obj = {};
@@ -371,6 +536,7 @@ export default {
en: this.controlsObj.nickEn,
ar: this.controlsObj.nickAr,
tr: this.controlsObj.nickTr,
pt: this.controlsObj.nickPt,
});
obj.medalDesc = JSON.stringify({
@@ -378,6 +544,7 @@ export default {
en: this.controlsObj.medalDescEn,
ar: this.controlsObj.medalDescAr,
tr: this.controlsObj.medalDescTr,
pt: this.controlsObj.medalDescPt,
});
obj.picUrl = this.controlsObj.imageUrl1;
obj.mp4Url = this.controlsObj.imageUrl2;
@@ -408,20 +575,20 @@ export default {
en: this.controlsObj.nickEn,
ar: this.controlsObj.nickAr,
tr: this.controlsObj.nickTr,
pt: this.controlsObj.nickPt,
});
obj1.medalDesc = JSON.stringify({
zh: this.controlsObj.medalDescZh,
en: this.controlsObj.medalDescEn,
ar: this.controlsObj.medalDescAr,
tr: this.controlsObj.medalDescTr,
pt: this.controlsObj.medalDescPt,
});
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);
console.log(this.controlsObj.options);
console.log(obj1);
medalSave(obj1).then((res) => {
if (res.code == 200) {
this.getData();
@@ -437,13 +604,13 @@ export default {
}
},
//发放按钮
grantFun(val) {
grantFun (val) {
this.grantObjNew = val;
this.grantObj.nick = JSON.parse(val.name).zh;
this.grantDialog = true;
},
// 确认发放
grantOut() {
grantOut () {
medalSend({
days: this.grantObj.days,
erbanNoStr: this.grantObj.userId,
@@ -466,7 +633,7 @@ export default {
}
});
},
partitionFlagFun(num, type) {
partitionFlagFun (num, type) {
//1 2 4
var val = '';
let valArr = [];
@@ -486,6 +653,9 @@ export default {
if ((num & 16) != 0) {
valArr.push(16);
}
if ((num & 32) != 0) {
valArr.push(32);
}
return valArr;
} else {
if ((num & 1) != 0) {
@@ -503,25 +673,28 @@ export default {
if ((num & 16) != 0) {
val += '英语2区 ';
}
if ((num & 32) != 0) {
val += '葡萄牙语区';
}
return val;
}
},
beforeAvatarUpload() {
beforeAvatarUpload () {
ElMessage({
showClose: true,
message: "上传中~",
type: "warning",
});
},
handleAvatarError() {
handleAvatarError () {
ElMessage({
showClose: true,
message: "上传失败!",
type: "error",
});
},
handleAvatarSuccess(res, file) {
handleAvatarSuccess (res, file) {
console.log(file);
this.controlsObj.imageUrl1 = file.response.data;
ElMessage({
@@ -530,8 +703,7 @@ export default {
type: "success",
});
},
handleAvatarSuccess2(res, file) {
console.log(file);
handleAvatarSuccess2 (res, file) {
this.controlsObj.imageUrl2 = file.response.data;
ElMessage({
showClose: true,
@@ -539,7 +711,7 @@ export default {
type: "success",
});
},
beforeAvatarUploadMp4(file) {
beforeAvatarUploadMp4 (file) {
const dotIndex = (file.name).indexOf('.'); // 找到 '.' 的位置
if (dotIndex !== -1) {
const result = (file.name).substring(dotIndex + 1); // 从 '.' 之后开始截取
@@ -561,7 +733,7 @@ export default {
}
},
// 解析json字段
getJsonField(jsonStr, field) {
getJsonField (jsonStr, field) {
try {
if (!jsonStr) return '';
const obj = JSON.parse(jsonStr);
@@ -572,10 +744,10 @@ export default {
}
},
// 分页导航
handleSizeChange() {
handleSizeChange () {
this.getData();
},
handleCurrentChange() {
handleCurrentChange () {
this.getData();
},
},

View File

@@ -2,83 +2,143 @@
<div class="box">
<div class="inquire">
<span>分区</span>
<partition-select v-model:partition-id="formData.partitionId" :needAll="true" :needAllPartition="true"
<partition-select v-model:partition-id="formData.partitionId"
:needAll="true"
:needAllPartition="true"
@update:partitionInfos="getpartitionInfosList" />
</div>
<div class="inquire">
<span>勋章类型</span>
<el-select v-model="formData.type" placeholder="请选择勋章类型">
<el-option v-for="item in TypeList" :key="item.value" :label="item.label"
<el-select v-model="formData.type"
placeholder="请选择勋章类型">
<el-option v-for="item in TypeList"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
</el-select>
</div>
<div class="inquire">
<span>勋章等级</span>
<el-select v-model="formData.level" placeholder="请选择勋章等级">
<el-option v-for="item in LevelList" :key="item.value" :label="item.label"
<el-select v-model="formData.level"
placeholder="请选择勋章等级">
<el-option v-for="item in LevelList"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
</el-select>
</div>
<el-button style="" type="primary" @click="getData()">查询</el-button>
<el-button style="" type="primary"
<el-button style=""
type="primary"
@click="getData()">查询</el-button>
<el-button style=""
type="primary"
@click="addDialog = true; Dialogtitle = '新增'; resetAddFormData()">新增</el-button>
<!-- 表格数据 -->
<el-table v-loading="tableData.loading" :data="tableData.data" ref="multipleTable"
@selection-change="handleSelectionChange" border style="width: 100%; margin-top: 25px">
<el-table-column prop="seriesId" align="center" label="ID" />
<el-table-column prop="name" align="center" label="勋章等级名称-华语区">
<el-table v-loading="tableData.loading"
:data="tableData.data"
ref="multipleTable"
@selection-change="handleSelectionChange"
border
style="width: 100%; margin-top: 25px">
<el-table-column prop="seriesId"
align="center"
label="ID" />
<el-table-column prop="name"
align="center"
label="勋章等级名称-华语区">
<template v-slot="scope">{{ getJsonField(scope.row.seriesName, 'zh') }}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="勋章等级名称-英语区">
<el-table-column prop="name"
align="center"
label="勋章等级名称-英语区">
<template v-slot="scope">{{ getJsonField(scope.row.seriesName, 'en') }}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="勋章等级名称-阿语区">
<el-table-column prop="name"
align="center"
label="勋章等级名称-阿语区">
<template v-slot="scope">{{ getJsonField(scope.row.seriesName, 'ar') }}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="勋章等级名称-土耳其区">
<el-table-column prop="name"
align="center"
label="勋章等级名称-土耳其区">
<template v-slot="scope">{{ getJsonField(scope.row.seriesName, 'tr') }}</template>
</el-table-column>
<el-table-column prop="partitionDesc" align="center" label="分区">
<el-table-column prop="name"
align="center"
label="勋章等级名称-葡萄牙语区">
<template v-slot="scope">{{ getJsonField(scope.row.seriesName, 'pt') }}</template>
</el-table-column>
<el-table-column prop="partitionDesc"
align="center"
label="分区">
<template v-slot="scope">{{
partitionFlagFun(scope.row.partitionFlag, 1)
}}</template>
</el-table-column>
<el-table-column prop="type" align="center" label="勋章类型">
<el-table-column prop="type"
align="center"
label="勋章类型">
<template v-slot="scope">{{
scope.row.type == 1 ? '任务勋章' : scope.row.type == 2 ? '活动勋章' : '荣耀勋章'
}}</template>
</el-table-column>
<el-table-column prop="medalLevel" align="center" label="勋章等级" />
<el-table-column prop="squareShow" align="center" label="是否展示">
<el-table-column prop="medalLevel"
align="center"
label="勋章等级" />
<el-table-column prop="squareShow"
align="center"
label="是否展示">
<template v-slot="scope">
{{ scope.row.squareShow == 1 ? '展示' : '不展示' }}
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="状态">
<el-table-column prop="status"
align="center"
label="状态">
<template v-slot="scope">
{{ scope.row.status == 1 ? '上架' : '下架'}}
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="300">
<el-table-column align="center"
label="操作"
width="300">
<template v-slot="scope">
<el-button class="primary" type="primary" @click="
<el-button class="primary"
type="primary"
@click="
detailPageFun(scope.row);
" size="default">编辑</el-button>
"
size="default">编辑</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination style="margin-top: 10px" class="paginationClass" :current-page="formData.pageNo"
:page-size="formData.pageSize" :page-sizes="[10, 20, 50, 100, 200]" layout="sizes, prev, pager, next"
:total="tableData.total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
<el-pagination style="margin-top: 10px"
class="paginationClass"
:current-page="formData.pageNo"
:page-size="formData.pageSize"
:page-sizes="[10, 20, 50, 100, 200]"
layout="sizes, prev, pager, next"
:total="tableData.total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange" />
<el-dialog v-model="addDialog" :title="Dialogtitle" width="28%" center>
<el-dialog v-model="addDialog"
:title="Dialogtitle"
width="28%"
center>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">分区</span>
<el-select multiple filterable v-model="addFormData.partitionFlag" placeholder="请选择" style="width: 70%">
<el-option v-for="item in addFormData.partitionInfosList" :key="item.id" :label="item.desc"
<el-select multiple
filterable
v-model="addFormData.partitionFlag"
placeholder="请选择"
style="width: 70%">
<el-option v-for="item in addFormData.partitionInfosList"
:key="item.id"
:label="item.desc"
:value="item.id">
</el-option>
</el-select>
@@ -87,49 +147,80 @@
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">勋章等级名称-华语</span>
<el-input v-model="addFormData.seriesNameZh" placeholder="" class="input" style="width: 50%"></el-input>
<el-input v-model="addFormData.seriesNameZh"
placeholder=""
class="input"
style="width: 50%"></el-input>
</div>
<!-- 勋章等级名称-英语 -->
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">勋章等级名称-英语</span>
<el-input v-model="addFormData.seriesNameEn" placeholder="" class="input" style="width: 50%"></el-input>
<el-input v-model="addFormData.seriesNameEn"
placeholder=""
class="input"
style="width: 50%"></el-input>
</div>
<!-- 勋章等级名称-阿语 -->
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">勋章等级名称-阿语</span>
<el-input v-model="addFormData.seriesNameAr" placeholder="" class="input" style="width: 50%"></el-input>
<el-input v-model="addFormData.seriesNameAr"
placeholder=""
class="input"
style="width: 50%"></el-input>
</div>
<!-- 勋章等级名称-土耳其 -->
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">勋章等级名称-土耳其</span>
<el-input v-model="addFormData.seriesNameTr" placeholder="" class="input" style="width: 50%"></el-input>
<el-input v-model="addFormData.seriesNameTr"
placeholder=""
class="input"
style="width: 50%"></el-input>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">勋章等级名称-葡萄牙语</span>
<el-input v-model="addFormData.seriesNamePt"
placeholder=""
class="input"
style="width: 50%"></el-input>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">勋章类型</span>
<el-select v-model="addFormData.type" placeholder="请选择勋章类型">
<el-option label="任务勋章" value="1"></el-option>
<el-option label="活动勋章" value="2"></el-option>
<el-option label="荣耀勋章" value="3"></el-option>
<el-select v-model="addFormData.type"
placeholder="请选择勋章类型">
<el-option label="任务勋章"
value="1"></el-option>
<el-option label="活动勋章"
value="2"></el-option>
<el-option label="荣耀勋章"
value="3"></el-option>
</el-select>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">勋章等级</span>
<el-select v-model="addFormData.medalLevel" placeholder="请选择勋章等级" @change="medalLevelFun">
<el-option v-for="item in addLevelList" :key="item.value" :label="item.label"
<el-select v-model="addFormData.medalLevel"
placeholder="请选择勋章等级"
@change="medalLevelFun">
<el-option v-for="item in addLevelList"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
</el-select>
</div>
<template v-if="selectedCount > 0">
<div style="margin-bottom: 25px" v-for="(item, index) in selectedCount" :key="index">
<div style="margin-bottom: 25px"
v-for="(item, index) in selectedCount"
:key="index">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">勋章ID LV{{ index + 1 }}</span>
<el-input v-model="addFormData.medalSeriesRefs[index].medalId" style="width: 50%"
<el-input v-model="addFormData.medalSeriesRefs[index].medalId"
style="width: 50%"
class="input"></el-input>
</div>
</template>
@@ -137,27 +228,34 @@
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">是否展示在勋章广场</span>
<el-select v-model="addFormData.squareShow">
<el-option label="展示" value="1"></el-option>
<el-option label="不展示" value="0"></el-option>
<el-option label="展示"
value="1"></el-option>
<el-option label="不展示"
value="0"></el-option>
</el-select>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">状态</span>
<el-select v-model="addFormData.status">
<el-option label="上架" value="1"></el-option>
<el-option label="下架" value="0"></el-option>
<el-option label="上架"
value="1"></el-option>
<el-option label="下架"
value="0"></el-option>
</el-select>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px; width: 100px"
class="col-sm-2 control-label">排序</span>
<el-input v-model="addFormData.seq" style="width: 50%" class="input"></el-input>
<el-input v-model="addFormData.seq"
style="width: 50%"
class="input"></el-input>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="addDialog = false;resetAddFormData();selectedCount=0">取消</el-button>
<el-button type="primary" @click="addFun()"> 确认 </el-button>
<el-button type="primary"
@click="addFun()"> 确认 </el-button>
</span>
</template>
</el-dialog>
@@ -177,7 +275,7 @@ export default {
components: {
PartitionSelect
},
setup() {
setup () {
const formData = reactive({
partitionId: undefined,
pageNo: 1,
@@ -226,6 +324,7 @@ export default {
seriesNameEn: '',
seriesNameAr: '',
seriesNameTr: '',
seriesNamePt: '',
seq: '',
seriesId: '',
})
@@ -269,6 +368,7 @@ export default {
en: addFormData.seriesNameEn,
ar: addFormData.seriesNameAr,
tr: addFormData.seriesNameTr,
pt: addFormData.seriesNamePt,
});
obj.status = addFormData.status;
obj.squareShow = addFormData.squareShow;
@@ -314,6 +414,7 @@ export default {
addFormData.seriesNameEn = JSON.parse(val.seriesName).en;
addFormData.seriesNameAr = JSON.parse(val.seriesName).ar;
addFormData.seriesNameTr = JSON.parse(val.seriesName).tr;
addFormData.seriesNamePt = JSON.parse(val.seriesName).pt;
}
selectedCount.value = val.medalLevel;
addDialog.value = true;
@@ -344,6 +445,9 @@ export default {
if ((num & 16) != 0) {
valArr.push(16);
}
if ((num & 32) != 0) {
valArr.push(32);
}
return valArr;
} else {
if ((num & 1) != 0) {
@@ -361,6 +465,9 @@ export default {
if ((num & 16) != 0) {
val += '英语2区 ';
}
if ((num & 32) != 0) {
val += '葡萄牙语区 ';
}
return val;
}
@@ -386,6 +493,7 @@ export default {
seriesNameEn: '',
seriesNameAr: '',
seriesNameTr: '',
seriesNamePt: '',
seq: '',
seriesId: '',
});
@@ -396,7 +504,7 @@ export default {
addFormData.partitionInfosList.shift();
};
// 解析json字段
const getJsonField =(jsonStr, field) =>{
const getJsonField = (jsonStr, field) => {
try {
if (!jsonStr) return '';
const obj = JSON.parse(jsonStr);

View File

@@ -6,52 +6,84 @@
<section class="content-header">
<h1 id="itemTitle"></h1>
</section>
<div id="toolbar" style="height: auto;">
<form id="searchForm" class="" action="" method="post" target="_blank">
<div id="toolbar"
style="height: auto;">
<form id="searchForm"
class=""
action=""
method="post"
target="_blank">
<div class="col-sm-12">
<label for="nameplateId" class="col-sm-1 control-label">铭牌ID:</label>
<label for="nameplateId"
class="col-sm-1 control-label">铭牌ID:</label>
<div class="col-sm-2">
<input type="text" class="form-control" name="id" id="id">
<input type="text"
class="form-control"
name="id"
id="id">
</div>
<label for="name" class="col-sm-1 control-label">铭牌名称:</label>
<div class="col-sm-2"><input type="text" class="form-control" name="name" id="name"></div>
<label for="name"
class="col-sm-1 control-label">铭牌名称:</label>
<div class="col-sm-2"><input type="text"
class="form-control"
name="name"
id="name"></div>
<label for="status" class="col-sm-1 control-label">状态:</label>
<label for="status"
class="col-sm-1 control-label">状态:</label>
<div class="col-sm-2">
<select name="status" id="status" data-btn-class="btn-warning" class="form-control">
<option value="" selected="selected">全部</option>
</select>
</div>
</div>
<div class="col-sm-12">
<label for="nameplateType" class="col-sm-1 control-label">铭牌类型:</label>
<div class="col-sm-2">
<select name="nameplateType" id="nameplateType" data-btn-class="btn-warning"
<select name="status"
id="status"
data-btn-class="btn-warning"
class="form-control">
<option value="" selected="selected">全部</option>
<option value=""
selected="selected">全部</option>
</select>
</div>
</div>
<div class="col-sm-12">
<label for="nameplateType"
class="col-sm-1 control-label">铭牌类型:</label>
<div class="col-sm-2">
<select name="nameplateType"
id="nameplateType"
data-btn-class="btn-warning"
class="form-control">
<option value=""
selected="selected">全部</option>
</select>
</div>
<label for="type" class="col-sm-1 control-label">铭牌款式:</label>
<label for="type"
class="col-sm-1 control-label">铭牌款式:</label>
<div class="col-sm-2">
<select name="type" id="type" data-btn-class="btn-warning" class="form-control">
<option value="" selected="selected">全部</option>
<select name="type"
id="type"
data-btn-class="btn-warning"
class="form-control">
<option value=""
selected="selected">全部</option>
</select>
</div>
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
<label for="partitionId"
class="col-sm-1 control-label">地区:</label>
<div class="col-sm-2">
<select name="partitionId" id="partitionId" class="form-control"></select>
<select name="partitionId"
id="partitionId"
class="form-control"></select>
</div>
</div>
</form>
<div class="col-sm-12">
<button id="btnSearch" class="btn btn-default">
<button id="btnSearch"
class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="btnAdd" class="btn btn-default">
<button id="btnAdd"
class="btn btn-default">
<i class="glyphicon glyphicon-plus"></i>新增
</button>
</div>
@@ -62,122 +94,235 @@
</div>
</section>
<div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content" style="width: 500px;">
<div class="modal fade"
id="addModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content"
style="width: 500px;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="modalLabel">新增铭牌</h4>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"
id="modalLabel">新增铭牌</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="addForm">
<input type="hidden" name="id" id="id" />
<form class="form-horizontal"
id="addForm">
<input type="hidden"
name="id"
id="id" />
<div class="form-group">
<label for="partitionFlag" class="col-sm-4 control-label">选择地区:</label>
<label for="partitionFlag"
class="col-sm-4 control-label">选择地区:</label>
<div class="col-sm-6">
<input type="checkbox" name="partitionFlag" value="1"/>英语区<br>
<input type="checkbox" name="partitionFlag" value="2"/>阿拉伯语区<br>
<input type="checkbox" name="partitionFlag" value="4"/>语区<br>
<input type="checkbox" name="partitionFlag" value="8"/>土耳其区<br>
<input type="checkbox" name="partitionFlag" value="16"/>英语2区<br>
<input type="checkbox"
name="partitionFlag"
value="1" />语区<br>
<input type="checkbox"
name="partitionFlag"
value="2" />阿拉伯语区<br>
<input type="checkbox"
name="partitionFlag"
value="4" />华语区<br>
<input type="checkbox"
name="partitionFlag"
value="8" />土耳其区<br>
<input type="checkbox"
name="partitionFlag"
value="16" />英语2区<br>
<input type="checkbox"
name="partitionFlag"
value="32" />葡萄牙语区<br>
</div>
</div>
<div class="form-group">
<label for="nameplateType" class="col-sm-4 control-label">铭牌类型:</label>
<label for="nameplateType"
class="col-sm-4 control-label">铭牌类型:</label>
<div class="col-sm-6">
<select name="nameplateType" id="nameplateType1" data-btn-class="btn-warning"
<select name="nameplateType"
id="nameplateType1"
data-btn-class="btn-warning"
class="form-control">
<option value="">请选择</option>
</select>
</div>
</div>
<div class="form-group">
<label for="name1" class="col-sm-4 control-label">铭牌名称:</label>
<label for="name1"
class="col-sm-4 control-label">铭牌名称:</label>
<div class="col-sm-6">
<input type="text" class="form-control validate[required]" name="name1" id="name1" placeholder="请输入,5个字符内">
<input type="text"
class="form-control validate[required]"
name="name1"
id="name1"
placeholder="请输入,5个字符内">
</div>
</div>
<div class="form-group">
<label for="ar_name1" class="col-sm-4 control-label">阿语铭牌名称:</label>
<label for="ar_name1"
class="col-sm-4 control-label">阿语铭牌名称:</label>
<div class="col-sm-6">
<input type="text" class="form-control validate[required]" name="name1" id="ar_name1" placeholder="请输入,5个字符内">
<input type="text"
class="form-control validate[required]"
name="name1"
id="ar_name1"
placeholder="请输入,5个字符内">
</div>
</div>
<div class="form-group">
<label for="en_name1" class="col-sm-4 control-label">英语铭牌名称:</label>
<label for="en_name1"
class="col-sm-4 control-label">英语铭牌名称:</label>
<div class="col-sm-6">
<input type="text" class="form-control validate[required]" name="name1" id="en_name1" placeholder="请输入,5个字符内">
<input type="text"
class="form-control validate[required]"
name="name1"
id="en_name1"
placeholder="请输入,5个字符内">
</div>
</div>
<div class="form-group">
<label for="tr_name1" class="col-sm-4 control-label">土耳其铭牌名称:</label>
<label for="tr_name1"
class="col-sm-4 control-label">土耳其铭牌名称:</label>
<div class="col-sm-6">
<input type="text" class="form-control validate[required]" name="name1" id="tr_name1" placeholder="请输入,5个字符内">
<input type="text"
class="form-control validate[required]"
name="name1"
id="tr_name1"
placeholder="请输入,5个字符内">
</div>
</div>
<div class="form-group">
<label for="pt_name1"
class="col-sm-4 control-label">葡萄牙语铭牌名称:</label>
<div class="col-sm-6">
<input type="text"
class="form-control validate[required]"
name="name1"
id="pt_name1"
placeholder="请输入,5个字符内">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">用户自定义文案:</label>
<div class="col-sm-6">
<label class="radio-inline"><input type="radio" name="isCustomWord" value="0"></label>
<label class="radio-inline"><input type="radio" name="isCustomWord" value="1"></label>
<label class="radio-inline"><input type="radio"
name="isCustomWord"
value="0"></label>
<label class="radio-inline"><input type="radio"
name="isCustomWord"
value="1"></label>
</div>
</div>
<div id="fixedWord-div">
<div class="form-group">
<label for="zhFixedWord" class="col-sm-4 control-label">华语固定文案:</label>
<label for="zhFixedWord"
class="col-sm-4 control-label">华语固定文案:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="zhFixedWord" id="zhFixedWord">
<input type="text"
class="form-control"
name="zhFixedWord"
id="zhFixedWord">
</div>
</div>
<div class="form-group">
<label for="arFixedWord" class="col-sm-4 control-label">阿语固定文案:</label>
<label for="arFixedWord"
class="col-sm-4 control-label">阿语固定文案:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="arFixedWord" id="arFixedWord">
<input type="text"
class="form-control"
name="arFixedWord"
id="arFixedWord">
</div>
</div>
<div class="form-group">
<label for="enFixedWord" class="col-sm-4 control-label">英语固定文案:</label>
<label for="enFixedWord"
class="col-sm-4 control-label">英语固定文案:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="enFixedWord" id="enFixedWord">
<input type="text"
class="form-control"
name="enFixedWord"
id="enFixedWord">
</div>
</div>
<div class="form-group">
<label for="trFixedWord" class="col-sm-4 control-label">土耳其固定文案:</label>
<label for="trFixedWord"
class="col-sm-4 control-label">土耳其固定文案:</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="trFixedWord" id="trFixedWord">
<input type="text"
class="form-control"
name="trFixedWord"
id="trFixedWord">
</div>
</div>
<div class="form-group">
<label for="ptFixedWord"
class="col-sm-4 control-label">葡萄牙语固定文案:</label>
<div class="col-sm-6">
<input type="text"
class="form-control"
name="ptFixedWord"
id="ptFixedWord">
</div>
</div>
</div>
<div class="form-group">
<label for="days" class="col-sm-4 control-label">有效期:</label>
<label for="days"
class="col-sm-4 control-label">有效期:</label>
<div class="col-sm-6">
<input type="number" class="form-control validate[required]" name="days" id="days">
<input type="number"
class="form-control validate[required]"
name="days"
id="days">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">图片:</label>
<div class="col-sm-6">
<img src="" id="addIconPicUrl" style="height:44px;" alt="">
<input type="file" id="addUploadIconPic" name="uploadFile"
<img src=""
id="addIconPicUrl"
style="height:44px;"
alt="">
<input type="file"
id="addUploadIconPic"
name="uploadFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg">
<button class="btn btn-success" type="button" id="uploadBtn">上传</button>
<input type="hidden" id="iconPic" name="iconPic" class="form-control" />
<a href="javascript:void(0)" id="removeIconPic">清除</a>
<button class="btn btn-success"
type="button"
id="uploadBtn">上传</button>
<input type="hidden"
id="iconPic"
name="iconPic"
class="form-control" />
<a href="javascript:void(0)"
id="removeIconPic">清除</a>
</div>
</div>
<div class="form-group">
<label for="status1" class="col-sm-4 control-label">状态:</label>
<label for="status1"
class="col-sm-4 control-label">状态:</label>
<div class="col-sm-6">
<select name="status1" id="status1" data-btn-class="btn-warning" class="form-control">
<select name="status1"
id="status1"
data-btn-class="btn-warning"
class="form-control">
<option value="">请选择</option>
</select>
</div>
</div>
<div class="form-group">
<label for="type1" class="col-sm-4 control-label">铭牌款式:</label>
<label for="type1"
class="col-sm-4 control-label">铭牌款式:</label>
<div class="col-sm-6">
<select name="type1" id="type1" data-btn-class="btn-warning" class="form-control">
<select name="type1"
id="type1"
data-btn-class="btn-warning"
class="form-control">
<option value="">请选择</option>
</select>
</div>
@@ -186,49 +331,79 @@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="button-save">保存</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="button-save">保存</button>
</div>
</div>
</div>
</div>
<!-- 为用户赠送铭牌弹窗 -->
<div class="modal fade" id="sendNameplateModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="sendNameplateModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">x</span></button>
<h4 class="modal-title" id="modalSendLabel">赠送铭牌</h4>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title"
id="modalSendLabel">赠送铭牌</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="nameplateSendForm">
<input type="hidden" name="sendNameplateId" id="sendNameplateId" />
<form class="form-horizontal"
id="nameplateSendForm">
<input type="hidden"
name="sendNameplateId"
id="sendNameplateId" />
<div class="form-group">
<label for="sendErbanNo" class="col-sm-3 control-label">平台号</label>
<label for="sendErbanNo"
class="col-sm-3 control-label">平台号</label>
<div class="col-sm-9">
<textarea name="sendErbanNo" id="sendErbanNo" class="form-control validate[required]"
<textarea name="sendErbanNo"
id="sendErbanNo"
class="form-control validate[required]"
placeholder="多个平台号使用换行符分隔"></textarea>
</div>
</div>
<div class="form-group">
<label for="sendDays" class="col-sm-3 control-label">赠送天数</label>
<label for="sendDays"
class="col-sm-3 control-label">赠送天数</label>
<div class="col-sm-9">
<input type="text" name="days" id="sendDays" class="form-control validate[required]" />
<input type="text"
name="days"
id="sendDays"
class="form-control validate[required]" />
</div>
</div>
<div class="form-group">
<label for="sendDesc" class="col-sm-3 control-label">备注</label>
<label for="sendDesc"
class="col-sm-3 control-label">备注</label>
<div class="col-sm-9">
<input type="text" name="desc" id="sendDesc" class="form-control validate[required]" />
<input type="text"
name="desc"
id="sendDesc"
class="form-control validate[required]" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="send">提交</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="send">提交</button>
</div>
</div>
</div>
@@ -243,17 +418,17 @@ import { buildSelectOption } from '@/utils/system-helper';
export default {
name: "NameplateInfoView",
setup() {
setup () {
return {};
},
created() {
created () {
this.$nextTick(function () {
this.initPartition();
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
setStatusSelectOption();
setTypeSelectOption();
@@ -263,10 +438,11 @@ export default {
columns: [
{ field: 'id', title: '铭牌id', align: 'middle', width: '5%' },
{ field: 'nameplateTypeStr', title: '铭牌类型', align: 'middle', width: '5%' },
{field: 'name.zh', title: '铭牌名称', align: 'middle', width: '5%'},
{field: 'name.ar', title: '阿语铭牌名称', align: 'middle', width: '5%'},
{field: 'name.en', title: '英语铭牌名称', align: 'middle', width: '5%'},
{field: 'name.tr', title: '土耳其名称', align: 'middle', width: '5%'},
{ field: 'name.zh', title: '铭牌名称', align: 'middle', width: '5%' },
{ field: 'name.ar', title: '阿语铭牌名称', align: 'middle', width: '5%' },
{ field: 'name.en', title: '英语铭牌名称', align: 'middle', width: '5%' },
{ field: 'name.tr', title: '土耳其名称', align: 'middle', width: '5%' },
{ field: 'name.pt', title: '葡萄牙语名称', align: 'middle', width: '5%' },
{
field: 'partitionFlag',
title: '地区',
@@ -289,6 +465,9 @@ export default {
if ((val & 16) != 0) {
value += '英语2区<br>';
}
if ((val & 32) != 0) {
value += '葡萄牙语<br>';
}
return value;
}
},
@@ -359,6 +538,19 @@ export default {
}
}
},
{
field: 'fixedWord.pt',
title: '葡萄牙语固定文案',
align: 'middle',
width: '5%',
formatter: function (val, row, index) {
if (isEmpty(val)) {
return '/';
} else {
return val;
}
}
},
{ field: 'days', title: '有效期(天)', align: 'middle', width: '5%' },
{ field: 'statusStr', title: '状态', align: 'middle', width: '5%' },
{ field: 'typeStr', title: '铭牌款式', align: 'middle', width: '5%' },
@@ -406,7 +598,7 @@ export default {
search: false,
sidePagination: "server", //表示服务端请求
queryParamsType: "-",
queryParams: function queryParams(params) { //设置查询参数
queryParams: function queryParams (params) { //设置查询参数
var param = {
pageNumber: params.pageNumber,
pageSize: params.pageSize,
@@ -419,17 +611,17 @@ export default {
};
return param;
},
ajax:function(request){ //使用ajax请求
ajax: function (request) { //使用ajax请求
$.ajax({
type:"GET",
url:'/admin/nameplate/list',
contentType:'application/json;charset=utf-8',
dataType:'json',
type: "GET",
url: '/admin/nameplate/list',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: request.data,
success:function (res) {
success: function (res) {
console.log(res);
request.success({
"rows": res.rows.map(i=>{
"rows": res.rows.map(i => {
let nameValue = i.name;
if (nameValue && nameValue.startsWith('{') && nameValue.endsWith('}')) {
i.name = JSON.parse(i.name);
@@ -438,6 +630,8 @@ export default {
zh: nameValue,
ar: nameValue,
en: nameValue,
tr: nameValue,
pt: nameValue,
};
}
let fixedWordValue = i.fixedWord;
@@ -448,6 +642,8 @@ export default {
zh: fixedWordValue,
ar: fixedWordValue,
en: fixedWordValue,
tr: fixedWordValue,
pt: fixedWordValue,
};
}
return i;
@@ -455,7 +651,7 @@ export default {
"total": res.total
});
},
error:function(error){
error: function (error) {
console.log(error);
}
})
@@ -495,11 +691,13 @@ export default {
$("#ar_name1").val(jsonName.ar);
$("#en_name1").val(jsonName.en);
$("#tr_name1").val(jsonName.tr);
$("#pt_name1").val(jsonName.pt);
} else {
$("#name1").val(name);
$("#ar_name1").val(name);
$("#en_name1").val(name);
$("#tr_name1").val(name);
$("#pt_name1").val(name);
}
let fixedWord = json.fixedWord;
if (fixedWord && fixedWord.startsWith('{') && fixedWord.endsWith('}')) {
@@ -508,11 +706,13 @@ export default {
$('#arFixedWord').val(jsonValue.ar);
$('#enFixedWord').val(jsonValue.en);
$('#trFixedWord').val(jsonValue.tr);
$('#ptFixedWord').val(jsonValue.pt);
} else {
$('#zhFixedWord').val(fixedWord);
$('#arFixedWord').val(fixedWord);
$('#enFixedWord').val(fixedWord);
$('#trFixedWord').val(fixedWord);
$('#ptFixedWord').val(fixedWord);
}
$('#nameplateType1').attr("disabled", "true");
if (!json.isCustomWord) {
@@ -522,6 +722,7 @@ export default {
$('#arFixedWord').val('');
$('#enFixedWord').val('');
$('#trFixedWord').val('');
$('#ptFixedWord').val('');
} else {
$('input[name="isCustomWord"]').get(1).checked = true;
$('#fixedWord-div').removeClass("hidden");
@@ -560,6 +761,11 @@ export default {
} else {
$("input:checkbox[name='partitionFlag']")[4].checked = false;
}
if ((partitionFlag & 32) != 0) {
$("input:checkbox[name='partitionFlag']")[5].checked = true;
} else {
$("input:checkbox[name='partitionFlag']")[5].checked = false;
}
// 打开编辑弹窗
$("#addModal").modal('show');
$("#modalLabel").text("编辑铭牌");
@@ -609,9 +815,10 @@ export default {
var arFixedWord = $('#arFixedWord').val();
var enFixedWord = $('#enFixedWord').val();
var trFixedWord = $('#trFixedWord').val();
var ptFixedWord = $('#ptFixedWord').val();
let fixedWordValue = '';
if (!(zhFixedWord == '' && arFixedWord == '' && enFixedWord == '' && trFixedWord=="")) {
let jsonFixedWord = {'zh': zhFixedWord, 'ar': arFixedWord, 'en': enFixedWord,'tr':trFixedWord};
if (!(zhFixedWord == '' && arFixedWord == '' && enFixedWord == '' && trFixedWord == "")) {
let jsonFixedWord = { 'zh': zhFixedWord, 'ar': arFixedWord, 'en': enFixedWord, 'tr': trFixedWord };
fixedWordValue = JSON.stringify(jsonFixedWord);
}
var isCustomWord = $('input[name="isCustomWord"]:checked').val();
@@ -619,8 +826,9 @@ export default {
var ar_name = $('#ar_name1').val();
var en_name = $('#en_name1').val();
var tr_name = $('#tr_name1').val();
var pt_name = $('#pt_name1').val();
var jsonName = {"zh":name,"ar":ar_name,"en":en_name,"tr":tr_name}
var jsonName = { "zh": name, "ar": ar_name, "en": en_name, "tr": tr_name }
const nameValue = JSON.stringify(jsonName);
var nameplateType = $('#nameplateType1').val();
var id = $('#id').val();
@@ -652,6 +860,16 @@ export default {
$("#tipModal").modal('show');
return;
}
if (isEmpty(tr_name)) {
$("#tipMsg").text("土耳其语铭牌名字不能为空");
$("#tipModal").modal('show');
return;
}
if (isEmpty(pt_name)) {
$("#tipMsg").text("葡萄牙语铭牌名字不能为空");
$("#tipModal").modal('show');
return;
}
if (isEmpty(days)) {
$("#tipMsg").text("有效期不能为空");
$("#tipModal").modal('show');
@@ -796,7 +1014,7 @@ export default {
});
});
},
initPartition() {
initPartition () {
getPartitionInfoList().then(res => {
let data = res.data;
buildSelectOption(
@@ -817,7 +1035,7 @@ export default {
},
};
function cleanNamePlateModal() {
function cleanNamePlateModal () {
$('#id').val('');
$('#addIconPicUrl').attr('src', '');
$('#addUploadIconPic').val('');
@@ -829,6 +1047,7 @@ function cleanNamePlateModal() {
$('#arFixedWord').val('');
$('#enFixedWord').val('');
$('#trFixedWord').val('');
$('#ptFixedWord').val('');
$('input[name="isCustomWord"]').each(function () {
$(this).removeAttr("checked");
});
@@ -836,23 +1055,24 @@ function cleanNamePlateModal() {
$('#ar_name1').val('');
$('#en_name1').val('');
$('#tr_name1').val('');
$('#pt_name1').val('');
$('#nameplateType1').val('');
$('#name1').removeAttr("readonly");
$('#nameplateType1').removeAttr("disabled");
$('#fixedWord-div').removeClass("hidden");
$('input[name="partitionFlag"]').each(function() {
$('input[name="partitionFlag"]').each(function () {
$(this).checked = false;
});
}
//判断空值
function isEmpty(data) {
function isEmpty (data) {
if (data == null || data == undefined || data == "") {
return true;
}
return false;
}
function setStatusSelectOption() {
function setStatusSelectOption () {
var rows = {
"0": '待上架',
"1": '上架',
@@ -866,7 +1086,7 @@ function setStatusSelectOption() {
}
}
function setStyleTypeSelectOption() {
function setStyleTypeSelectOption () {
getConfigValueByKey({
'configId': 'heartbeat_nameplate',
}).then(res => {
@@ -897,7 +1117,7 @@ function setStyleTypeSelectOption() {
});
}
function setTypeSelectOption() {
function setTypeSelectOption () {
var rows = {
"0": '官方主播',
"1": '普通',
@@ -920,4 +1140,5 @@ function setTypeSelectOption() {
.pull-left {
width: 100% !important;
}</style>
}
</style>

View File

@@ -5,32 +5,31 @@
<span>地区</span>
<partition-select v-model:partition-id="inquire.partitionId"
v-model:partition-infos="inquire.partitionArr"
v-model:after-init="getData"
/>
v-model:after-init="getData" />
</div>
<div class="inquire">
<span>名称</span>
<el-input v-model="inquire.name" placeholder="" class="input"></el-input>
<el-input v-model="inquire.name"
placeholder=""
class="input"></el-input>
</div>
<div class="inquire">
<span>状态</span>
<el-select v-model="inquire.status" placeholder="请选择">
<el-option
v-for="item in inquire.options"
<el-select v-model="inquire.status"
placeholder="请选择">
<el-option v-for="item in inquire.options"
:key="item.value"
:label="item.label"
:value="item.value"
>
:value="item.value">
</el-option>
</el-select>
</div>
<!-- 查询按钮 -->
<el-button class="primary" type="primary" @click="getData()"
>查询</el-button
>
<el-button class="primary"
type="primary"
@click="getData()">查询</el-button>
<!-- 新增按钮 -->
<el-button
class="primary"
<el-button class="primary"
type="primary"
@click="
operationValue.partitionVal = [];
@@ -38,66 +37,81 @@
operationValue.nameEn = '';
operationValue.nameAr = '';
operationValue.nameTr = '';
operationValue.namePt = '';
operationValue.price = '';
operationValue.day = '';
operationValue.imageUrl = '';
operationValue.status = '';
operationType = 1;
filePreview: null; // 文件预览 URL
filePreview = undefined; // 文件预览 URL
isImage = false;
isVideo = false;
isSVGA = false;
operationDialogTitle = '新增';
operationDialog = true;
"
>新增</el-button
>
">新增</el-button>
<!-- 表格 -->
<el-table
v-loading="loading"
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="id" align="center" label="id" />
<el-table-column prop="partitionFlag" align="center" label="地区">
style="width: 100%; margin-top: 25px">
<el-table-column prop="id"
align="center"
label="id" />
<el-table-column prop="partitionFlag"
align="center"
label="地区">
<template v-slot="scope">
{{ partitionDesc(scope.row.partitionFlag) }}
</template>
</el-table-column>
<el-table-column prop="" align="center" label="中文名称">
<el-table-column prop=""
align="center"
label="中文名称">
<template v-slot="scope">
{{ jsonFun(scope.row.name).zh }}
</template>
</el-table-column>
<el-table-column prop="" align="center" label="阿语名称">
<el-table-column prop=""
align="center"
label="阿语名称">
<template v-slot="scope">
{{ jsonFun(scope.row.name).ar }}
</template>
</el-table-column>
<el-table-column prop="" align="center" label="英语名称"
><template v-slot="scope">
<el-table-column prop=""
align="center"
label="英语名称"><template v-slot="scope">
{{ jsonFun(scope.row.name).en }}
</template>
</el-table-column>
<el-table-column prop="" align="center" label="土耳其名称"
><template v-slot="scope">
<el-table-column prop=""
align="center"
label="土耳其名称"><template v-slot="scope">
{{ jsonFun(scope.row.name).tr }}
</template>
</el-table-column>
<el-table-column prop="" align="center" label="图片">
<el-table-column prop=""
align="center"
label="葡萄牙语名称"><template v-slot="scope">
{{ jsonFun(scope.row.name).pt }}
</template>
</el-table-column>
<el-table-column prop=""
align="center"
label="图片">
<template v-slot="scope">
<el-image
:src="scope.row.pic"
<el-image :src="scope.row.pic"
:zoom-rate="1.1"
:preview-src-list="[scope.row.pic]"
fit="contain"
preview-teleported="true"
hide-on-click-modal="true"
/>
hide-on-click-modal="true" />
</template>
</el-table-column>
<el-table-column prop="" align="center" label="装扮动效图片类型">
<el-table-column prop=""
align="center"
label="装扮动效图片类型">
<template v-slot="scope">
{{
scope.row.effectType == 0
@@ -109,28 +123,22 @@
</template>
</el-table-column>
<el-table-column
prop=""
<el-table-column prop=""
width="300"
max-height="100"
align="center"
label="装扮动效图片"
>
label="装扮动效图片">
<template v-slot="scope">
<div v-if="scope.row.effectType == 0"></div>
<!-- 视频预览 -->
<video
v-if="scope.row.effectType == 1"
<video v-if="scope.row.effectType == 1"
:src="scope.row.effect"
controls
style="width: 300px; max-height: 300px; display: block"
></video>
style="width: 300px; max-height: 300px; display: block"></video>
<!-- SVGA 预览 -->
<div
v-if="scope.row.effectType == 2"
<div v-if="scope.row.effectType == 2"
:id="`svga-player${scope.row.id}`"
style="width: 300px; max-height: 300px; display: block"
>
style="width: 300px; max-height: 300px; display: block">
{{
scope.row.effect && scope.row.id
? initSVGAList(scope.row.effect, scope.row.id)
@@ -142,21 +150,28 @@
</template>
</el-table-column>
<el-table-column prop="" align="center" label="状态">
<el-table-column prop=""
align="center"
label="状态">
<template v-slot="scope">
{{ scope.row.status == 1 ? "有效" : "无效" }}
</template>
</el-table-column>
<el-table-column prop="" align="center" label="贵族限定">
<el-table-column prop=""
align="center"
label="贵族限定">
<template v-slot="scope">
{{ scope.row.type == 1 ? "普通" : "贵族" }}
</template>
</el-table-column>
<el-table-column prop="updateTime" align="center" label="操作时间" />
<el-table-column align="center" label="操作" width="300">
<el-table-column prop="updateTime"
align="center"
label="操作时间" />
<el-table-column align="center"
label="操作"
width="300">
<template v-slot="scope">
<el-button
@click="
<el-button @click="
operationValue.partitionVal = partitionIdArr(
scope.row.partitionFlag
);
@@ -164,12 +179,13 @@
operationValue.nameEn = jsonFun(scope.row.name).en;
operationValue.nameAr = jsonFun(scope.row.name).ar;
operationValue.nameTr = jsonFun(scope.row.name).tr;
operationValue.namePt = jsonFun(scope.row.name).pt;
operationValue.imageUrl = scope.row.pic;
operationValue.status = scope.row.status;
operationType = 2;
operationValueId = scope.row.id;
operationDialogTitle = '编辑';
filePreview: scope.row.effect; // 文件预览 URL
filePreview = scope.row.effect; // 文件预览 URL
scope.row.effectType == 1
? (isVideo = true)
: scope.row.effectType == 2
@@ -181,30 +197,23 @@
"
class="primary"
type="primary"
size="default"
>编辑</el-button
>
<el-button
@click="
size="default">编辑</el-button>
<el-button @click="
sendDialog = true;
sendObj.erbanNos = send.days = send.remark = null;
sendObj.personalBackgroundId = scope.row.id;
"
class="primary"
type="primary"
size="default"
>赠送</el-button
>
size="default">赠送</el-button>
</template>
</el-table-column>
</el-table>
<!-- 新增&编辑弹窗 -->
<el-dialog
v-model="operationDialog"
<el-dialog v-model="operationDialog"
:title="operationDialogTitle"
width="28%"
center
>
center>
<!-- <div class="operation">
<span style="margin-right: 20px">地区</span>
<el-select v-model="operationValue.partitionId" placeholder="请选择">
@@ -219,47 +228,44 @@
</div> -->
<div class="operation">
<span style="margin-right: 20px">地区</span>
<el-checkbox-group
v-model="operationValue.partitionVal"
<el-checkbox-group v-model="operationValue.partitionVal"
v-for="(val, i) in inquire.partitionArr"
:key="i"
>
<el-checkbox style="margin-right: 10px" :label="val.id">{{
:key="i">
<el-checkbox style="margin-right: 10px"
:label="val.id">{{
val.desc
}}</el-checkbox>
</el-checkbox-group>
</div>
<div class="operation">
<span style="margin-right: 20px">华语名称</span>
<el-input
v-model="operationValue.nameZh"
<el-input v-model="operationValue.nameZh"
style="width: 200px"
class="input"
></el-input>
class="input"></el-input>
</div>
<div class="operation">
<span style="margin-right: 20px">英语名称</span>
<el-input
v-model="operationValue.nameEn"
<el-input v-model="operationValue.nameEn"
style="width: 200px"
class="input"
></el-input>
class="input"></el-input>
</div>
<div class="operation">
<span style="margin-right: 20px">阿拉伯名称</span>
<el-input
v-model="operationValue.nameAr"
<el-input v-model="operationValue.nameAr"
style="width: 200px"
class="input"
></el-input>
class="input"></el-input>
</div>
<div class="operation">
<span style="margin-right: 20px">土耳其名称</span>
<el-input
v-model="operationValue.nameTr"
<el-input v-model="operationValue.nameTr"
style="width: 200px"
class="input"
></el-input>
class="input"></el-input>
</div>
<div class="operation">
<span style="margin-right: 20px">葡萄牙语名称</span>
<el-input v-model="operationValue.namePt"
style="width: 200px"
class="input"></el-input>
</div>
<!-- <div class="operation">
<span style="margin-right: 20px">价格</span>
@@ -278,151 +284,133 @@
></el-input>
</div> -->
<div class="operation">
<span class="left" style="margin-right: 20px">图片</span>
<el-upload
class="avatar-uploader"
<span class="left"
style="margin-right: 20px">图片</span>
<el-upload class="avatar-uploader"
action="/admin/tencent/cos/upload/file"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:on-error="handleAvatarError"
>
<img
v-if="operationValue.imageUrl"
:on-error="handleAvatarError">
<img v-if="operationValue.imageUrl"
:src="operationValue.imageUrl"
class="avatar"
/>
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
class="avatar" />
<el-icon v-else
class="avatar-uploader-icon">
<Plus />
</el-icon>
</el-upload>
</div>
<div class="operation">
<span style="margin-right: 20px">装扮动效图片类型</span>
<el-select v-model="operationValue.effectType" placeholder="请选择">
<el-option
v-for="item in operationValue.effectTypeArr"
<el-select v-model="operationValue.effectType"
placeholder="请选择">
<el-option v-for="item in operationValue.effectTypeArr"
:key="item.value"
:label="item.label"
:value="item.value"
>
:value="item.value">
</el-option>
</el-select>
</div>
<div class="operation">
<span class="left" style="margin-right: 20px">装扮动效图片</span>
<el-upload
class="avatar-uploader"
<span class="left"
style="margin-right: 20px">装扮动效图片</span>
<el-upload class="avatar-uploader"
action="/admin/tencent/cos/upload/file"
accept="image/*,.mp4,.svga"
:show-file-list="false"
:on-success="handleAvatarSuccess1"
:before-upload="beforeAvatarUpload"
:on-error="handleAvatarError"
>
:on-error="handleAvatarError">
<!-- 文件预览 -->
<div style="margin-top: 20px">
<!-- 图片预览 -->
<img
v-if="isImage"
<img v-if="isImage"
:src="filePreview"
alt="Uploaded Image"
style="max-width: 300px"
/>
style="max-width: 300px" />
<!-- 视频预览 -->
<video
v-else-if="isVideo"
<video v-else-if="isVideo"
:src="filePreview"
controls
style="max-width: 300px"
></video>
style="max-width: 300px"></video>
<!-- SVGA 预览 -->
<div
v-else-if="isSVGA"
<div v-else-if="isSVGA"
:id="`svga-player`"
style="width: 200px; height: 200px"
></div>
style="width: 200px; height: 200px"></div>
</div>
</el-upload>
</div>
<div class="operation">
<span style="margin-right: 20px">状态</span>
<el-select v-model="operationValue.status" placeholder="请选择">
<el-option
v-for="item in operationValue.options"
<el-select v-model="operationValue.status"
placeholder="请选择">
<el-option v-for="item in operationValue.options"
:key="item.value"
:label="item.label"
:value="item.value"
>
:value="item.value">
</el-option>
</el-select>
</div>
<template #footer>
<span class="dialog-footer">
<el-button
@click="
<el-button @click="
operationDialog = false;
isImage = false;
isVideo = false;
isSVGA = false;
"
>取消</el-button
>
<el-button
type="primary"
@click="operation(type == 1 ? null : operationValueId)"
>
">取消</el-button>
<el-button type="primary"
@click="operation(type == 1 ? null : operationValueId)">
确认
</el-button>
</span>
</template>
</el-dialog>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
<el-pagination style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
:page-sizes="[10, 20, 50, 100, 200, 500]"
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
@current-change="handleCurrentChange" />
<!-- 赠送 -->
<el-dialog v-model="sendDialog" title="赠送" width="28%" center>
<el-dialog v-model="sendDialog"
title="赠送"
width="28%"
center>
<div class="operation">
<span style="margin-right: 20px">用户平台ID</span>
<el-input
v-model="sendObj.erbanNos"
<el-input v-model="sendObj.erbanNos"
style="width: 200px"
class="input"
placeholder="多个请用英文“,”隔开"
></el-input>
placeholder="多个请用英文“,”隔开"></el-input>
</div>
<div class="operation">
<span style="margin-right: 20px">天数</span>
<el-input
v-model="sendObj.days"
<el-input v-model="sendObj.days"
style="width: 200px"
class="input"
placeholder=""
></el-input>
placeholder=""></el-input>
</div>
<div class="operation">
<span style="margin-right: 20px">备注</span>
<el-input
v-model="sendObj.remark"
<el-input v-model="sendObj.remark"
style="width: 200px"
class="input"
placeholder=""
></el-input>
placeholder=""></el-input>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="sendDialog = false">取消</el-button>
<el-button type="primary" @click="send()"> 确认 </el-button>
<el-button type="primary"
@click="send()"> 确认 </el-button>
</span>
</template>
</el-dialog>
@@ -441,8 +429,8 @@ import SVGA from "svgaplayerweb";
import PartitionSelect from "@/views/common/partitionSelect.vue";
export default {
name: "personalHomepageResourceManagement",
components: {PartitionSelect},
setup() {
components: { PartitionSelect },
setup () {
// 响应式数据
const file = ref(null);
const filePreview = ref(null);
@@ -474,6 +462,7 @@ export default {
nameEn: "",
nameAr: "",
nameTr: "",
namePt: "",
price: "",
day: "",
imageUrl: "",
@@ -538,6 +527,7 @@ export default {
zh: operationValue.nameZh,
en: operationValue.nameEn,
tr: operationValue.nameTr,
pt: operationValue.namePt,
}),
pic: operationValue.imageUrl,
effectType: operationValue.effectType,
@@ -675,7 +665,6 @@ export default {
const initializedIds = new Set();
const initSVGAList = (url, id) => {
if (initializedIds.has(id)) return; // 避免重复初始化
console.log('SVGASVGASVGASVGASVGASVGA',url,id);
nextTick(() => {
const container = document.getElementById("svga-player" + id);
if (!container) {

View File

@@ -2,54 +2,87 @@
<template>
<div class="outer">
<!-- 查询 -->
<div class="inquire" style="display: inline-block; margin-right: 20px">
<div class="inquire"
style="display: inline-block; margin-right: 20px">
<span class="demonstration">地区:</span>
<el-select v-model="searchValues.partitionId" placeholder="请选择">
<el-option
v-for="(item, i) in partitionInfos"
<el-select v-model="searchValues.partitionId"
placeholder="请选择">
<el-option v-for="(item, i) in partitionInfos"
:key="i"
:label="item.desc"
:value="item.id"
>
:value="item.id">
</el-option>
</el-select>
</div>
<!-- 按钮 -->
<div class="buttonBox">
<el-button @click="addClick()" class="primary" type="primary" size="default"
<el-button @click="addClick()"
class="primary"
type="primary"
size="default"
style="margin-right: 10px">新增</el-button>
<el-button @click="getData()" class="primary" type="primary" size="default"
<el-button @click="getData()"
class="primary"
type="primary"
size="default"
style="margin-right: 10px">查询</el-button>
</div>
<!-- 表格 -->
<el-table :data="tableData" border style="width: 100%; margin-top: 25px">
<el-table-column align="center" prop="id" label="资源位ID" />
<el-table :data="tableData"
border
style="width: 100%; margin-top: 25px">
<el-table-column align="center"
prop="id"
label="资源位ID" />
<!-- <el-table-column align="center" prop="name" label="入口名称" /> -->
<el-table-column prop="name" align="center" label="入口名称-华语区">
<el-table-column prop="name"
align="center"
label="入口名称-华语区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'zh') }}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="入口名称-英语区">
<el-table-column prop="name"
align="center"
label="入口名称-英语区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'en') }}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="入口名称-阿语区">
<el-table-column prop="name"
align="center"
label="入口名称-阿语区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'ar') }}</template>
</el-table-column>
<el-table-column prop="name" align="center" label="入口名称-土耳其区">
<el-table-column prop="name"
align="center"
label="入口名称-土耳其区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'tr') }}</template>
</el-table-column>
<el-table-column align="center" prop="partitionId" label="地区">
<el-table-column prop="name"
align="center"
label="入口名称-葡萄牙语区">
<template v-slot="scope">{{ getJsonField(scope.row.name, 'pt') }}</template>
</el-table-column>
<el-table-column align="center"
prop="partitionId"
label="地区">
<template v-slot="scope">
<span>{{ getPartitionInfo(scope.row.partitionId) }}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="icon" label="入口icon">
<el-table-column align="center"
prop="icon"
label="入口icon">
<template v-slot="scope">
<el-image style="width: 100px; height: 100px" :src="scope.row.icon" :zoom-rate="1.1"
:preview-src-list="[scope.row.icon]" fit="scale-down" preview-teleported="true"
<el-image style="width: 100px; height: 100px"
:src="scope.row.icon"
:zoom-rate="1.1"
:preview-src-list="[scope.row.icon]"
fit="scale-down"
preview-teleported="true"
hide-on-click-modal="true" />
</template>
</el-table-column>
<el-table-column align="center" prop="skipType" label="跳转">
<el-table-column align="center"
prop="skipType"
label="跳转">
<template v-slot="scope">
<span>{{ scope.row.skipType == 1 ? "native" : (scope.row.skipType == 2 ? "房间" : scope.row.skipType == 3
? "H5" : "") }}</span>
@@ -57,149 +90,291 @@
<span>{{ scope.row.skipContent }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="生效时间">
<el-table-column align="center"
label="生效时间">
<template v-slot="scope">
<span>{{ scope.row.startTime == null && scope.row.endTime ? "不限" : (scope.row.startTime + "~" +
(scope.row.endTime == null ? "不限" : scope.row.endTime)) }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="生效开关">
<el-table-column align="center"
label="生效开关">
<template v-slot="scope">
<el-switch v-model="scope.row.enabled" @click="switchClick(scope.row.id)" />
<el-switch v-model="scope.row.enabled"
@click="switchClick(scope.row.id)" />
</template>
</el-table-column>
<el-table-column align="center" prop="seqNo" label="排序" />
<el-table-column align="center" prop="USER_LEVEL" label="可见等级" :formatter="ruleJsonFormatter" />
<el-table-column align="center" prop="PLATFORM" label="生效平台" :formatter="ruleJsonFormatter" />
<el-table-column align="center" prop="IOS" label="iOS版本号" :formatter="ruleJsonFormatter" />
<el-table-column align="center" prop="ANDROID" label="安卓版本号" :formatter="ruleJsonFormatter" />
<el-table-column align="center" prop="NOT_UIDS" label="不展示用户uid" :formatter="ruleJsonFormatter" />
<el-table-column align="center" prop="NOT_CHANNELS" label="不展示渠道" :formatter="ruleJsonFormatter" />
<el-table-column align="center" prop="HIGH_RECHARGE_USER" label="可见用户" :formatter="ruleJsonFormatter" />
<el-table-column align="center" label="操作" width="200">
<el-table-column align="center"
prop="seqNo"
label="排序" />
<el-table-column align="center"
prop="USER_LEVEL"
label="可见等级"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
prop="PLATFORM"
label="生效平台"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
prop="IOS"
label="iOS版本号"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
prop="ANDROID"
label="安卓版本号"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
prop="NOT_UIDS"
label="不展示用户uid"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
prop="NOT_CHANNELS"
label="不展示渠道"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
prop="HIGH_RECHARGE_USER"
label="可见用户"
:formatter="ruleJsonFormatter" />
<el-table-column align="center"
label="操作"
width="200">
<template v-slot="scope">
<el-button @click="editClick(scope.row)" class="primary" type="primary" size="default">编辑</el-button>
<el-button @click="delClick(scope.row)" class="danger" type="danger" size="default"
<el-button @click="editClick(scope.row)"
class="primary"
type="primary"
size="default">编辑</el-button>
<el-button @click="delClick(scope.row)"
class="danger"
type="danger"
size="default"
v-if="scope.row.skipType != 1">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination style="margin-top: 10px" class="paginationClass" v-model:current-page="currentPage"
v-model:page-size="pageSize" :page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500]" :small="small"
:disabled="disabled" :background="background" layout="sizes, prev, pager, next" :total="totals"
@size-change="handleSizeChange" @current-change="handleCurrentChange" />
<el-pagination style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500]"
:small="small"
:disabled="disabled"
:background="background"
layout="sizes, prev, pager, next"
:total="totals"
@size-change="handleSizeChange"
@current-change="handleCurrentChange" />
<!-- 编辑弹窗 -->
<el-dialog v-model="editDialog" title="房间内角标入口配置" width="50%" center>
<el-dialog v-model="editDialog"
title="房间内角标入口配置"
width="50%"
center>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">入口名称-华语</span>
<el-input v-model="resource.seriesNameZh" style="width: 75%" class="input" placeholder="请输入入口名称"
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">入口名称-华语</span>
<el-input v-model="resource.seriesNameZh"
style="width: 75%"
class="input"
placeholder="请输入入口名称"
:disabled="resource.skipType == 1"></el-input>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">入口名称-英语</span>
<el-input v-model="resource.seriesNameEn" style="width: 75%" class="input" placeholder="请输入入口名称"
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">入口名称-英语</span>
<el-input v-model="resource.seriesNameEn"
style="width: 75%"
class="input"
placeholder="请输入入口名称"
:disabled="resource.skipType == 1"></el-input>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">入口名称-阿语</span>
<el-input v-model="resource.seriesNameAr" style="width: 75%" class="input" placeholder="请输入入口名称"
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">入口名称-阿语</span>
<el-input v-model="resource.seriesNameAr"
style="width: 75%"
class="input"
placeholder="请输入入口名称"
:disabled="resource.skipType == 1"></el-input>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">入口名称-土耳其</span>
<el-input v-model="resource.seriesNameTr" style="width: 75%" class="input" placeholder="请输入入口名称"
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">入口名称-土耳其</span>
<el-input v-model="resource.seriesNameTr"
style="width: 75%"
class="input"
placeholder="请输入入口名称"
:disabled="resource.skipType == 1"></el-input>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">入口名称-葡萄牙语</span>
<el-input v-model="resource.seriesNamePt"
style="width: 75%"
class="input"
placeholder="请输入入口名称"
:disabled="resource.skipType == 1"></el-input>
</div>
<div style="margin-bottom: 25px;margin-top: 70px;">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">选择地区</span>
<el-select v-model="resource.partitionId" style="width: 75%" placeholder="请选择">
<el-option v-for="item in partitionInfos" :key="item.id" :label="item.desc"
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">选择地区</span>
<el-select v-model="resource.partitionId"
style="width: 75%"
placeholder="请选择">
<el-option v-for="item in partitionInfos"
:key="item.id"
:label="item.desc"
:value="item.id"></el-option>
</el-select>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">icon</span>
<input type="hidden" class="form-control" name="icon" v-model="resource.icon" />
<img :src="resource.icon" style="width:120px;" />
<input type="file" style="width: 26%; display: inline-block;" id="iconFile" name="uploadFile" />
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">icon</span>
<input type="hidden"
class="form-control"
name="icon"
v-model="resource.icon" />
<img :src="resource.icon"
style="width:120px;" />
<input type="file"
style="width: 26%; display: inline-block;"
id="iconFile"
name="uploadFile" />
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label"></span>
<button class="btn btn-success col-sm-4" type="button" id="iconUploadBtn" @click="uploadIcon()">上传</button>
<span class="btn col-sm-4" id="iconUploadInfo" style="color:red;"></span>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label"></span>
<button class="btn btn-success col-sm-4"
type="button"
id="iconUploadBtn"
@click="uploadIcon()">上传</button>
<span class="btn col-sm-4"
id="iconUploadInfo"
style="color:red;"></span>
</div>
<div style="margin-bottom: 25px;margin-top: 70px;">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">跳转位置</span>
<el-select v-model="resource.skipType" style="width: 75%" placeholder="请选择" :disabled="resource.id != null && resource.skipType == 1">
<el-option v-for="item in options" :key="item.value" :label="item.label"
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">跳转位置</span>
<el-select v-model="resource.skipType"
style="width: 75%"
placeholder="请选择"
:disabled="resource.id != null && resource.skipType == 1">
<el-option v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
</el-select>
</div>
<div style="margin-bottom: 25px" v-if="resource.skipType == 1 || resource.skipType == 3">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">资源编码</span>
<el-input v-model="resource.code" style="width: 75%" class="input" :placeholder="请输入资源编码"></el-input>
<div style="margin-bottom: 25px"
v-if="resource.skipType == 1 || resource.skipType == 3">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">资源编码</span>
<el-input v-model="resource.code"
style="width: 75%"
class="input"
:placeholder="请输入资源编码"></el-input>
</div>
<div style="margin-bottom: 25px" v-if="resource.skipType == 3">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">展示方式</span>
<el-select v-model="resource.showType" style="width: 75%" placeholder="请选择">
<el-option v-for="item in showTypeOptions" :key="item.value" :label="item.label"
<div style="margin-bottom: 25px"
v-if="resource.skipType == 3">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">展示方式</span>
<el-select v-model="resource.showType"
style="width: 75%"
placeholder="请选择">
<el-option v-for="item in showTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
</el-select>
</div>
<div style="margin-bottom: 25px" v-if="resource.skipType == 2 || resource.skipType == 3">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">{{ resource.skipType
<div style="margin-bottom: 25px"
v-if="resource.skipType == 2 || resource.skipType == 3">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">{{ resource.skipType
== 3 ? "跳转链接" :
(resource.skipType == 2 ? "跳转房间" : "") }}</span>
<el-input v-model="resource.skipContent" style="width: 75%" class="input"
<el-input v-model="resource.skipContent"
style="width: 75%"
class="input"
:placeholder="[resource.skipType == 3 ? '请输入跳转链接' : (resource.skipType == 2 ? '请输入房间ID' : '')]"></el-input>
</div>
<div style="margin-bottom: 25px;margin-top: 70px;">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">生效时间</span>
<el-date-picker v-model="resource.startTime" type="datetime" placeholder="选择日期时间">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">生效时间</span>
<el-date-picker v-model="resource.startTime"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">失效时间</span>
<el-date-picker v-model="resource.endTime" type="datetime" placeholder="选择日期时间">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">失效时间</span>
<el-date-picker v-model="resource.endTime"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</div>
<div style="margin-bottom: 25px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">排序</span>
<el-input v-model="resource.seqNo" style="width: 75%" class="input" placeholder="请输入排序"></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">排序</span>
<el-input v-model="resource.seqNo"
style="width: 75%"
class="input"
placeholder="请输入排序"></el-input>
</div>
<div style="margin-bottom: 25px" v-for="(rule, index) in rules" :key="rule" :index="index">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label" v-if="(rule.ruleCode == 'NOT_CHANNELS' || rule.ruleCode == 'PLATFORM' || rule.ruleCode == 'USER_LEVEL') || (!resource.ruleValue['PLATFORM'] || resource.ruleValue['PLATFORM'] == '' || resource.ruleValue['PLATFORM'] == 'null') || ((rule.ruleCode == 'IOS_LOW_VERSION' && resource.ruleValue['PLATFORM'] == 'ios') || (rule.ruleCode == 'IOS_HIGH_VERSION' && resource.ruleValue['PLATFORM'] == 'ios') || (rule.ruleCode == 'ANDROID_LOW_VERSION' && resource.ruleValue['PLATFORM'] == 'android') || (rule.ruleCode == 'ANDROID_HIGH_VERSION' && resource.ruleValue['PLATFORM'] == 'android'))">{{ rule.ruleName
<div style="margin-bottom: 25px"
v-for="(rule, index) in rules"
:key="rule"
:index="index">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label"
v-if="(rule.ruleCode == 'NOT_CHANNELS' || rule.ruleCode == 'PLATFORM' || rule.ruleCode == 'USER_LEVEL') || (!resource.ruleValue['PLATFORM'] || resource.ruleValue['PLATFORM'] == '' || resource.ruleValue['PLATFORM'] == 'null') || ((rule.ruleCode == 'IOS_LOW_VERSION' && resource.ruleValue['PLATFORM'] == 'ios') || (rule.ruleCode == 'IOS_HIGH_VERSION' && resource.ruleValue['PLATFORM'] == 'ios') || (rule.ruleCode == 'ANDROID_LOW_VERSION' && resource.ruleValue['PLATFORM'] == 'android') || (rule.ruleCode == 'ANDROID_HIGH_VERSION' && resource.ruleValue['PLATFORM'] == 'android'))">{{ rule.ruleName
}}</span>
<el-input v-model="resource.ruleValue[rule.ruleCode]" style="width: 75%" class="input"
:placeholder="rule.description" v-if="rule.ruleKind != 'IN' && rule.ruleKind != 'LEFT_LIKE' && ((rule.ruleCode == 'NOT_CHANNELS' || rule.ruleCode == 'PLATFORM' || rule.ruleCode == 'USER_LEVEL') || (!resource.ruleValue['PLATFORM'] || resource.ruleValue['PLATFORM'] == '' || resource.ruleValue['PLATFORM'] == 'null' || (rule.ruleCode == 'IOS_LOW_VERSION' && resource.ruleValue['PLATFORM'] == 'ios') || (rule.ruleCode == 'IOS_HIGH_VERSION' && resource.ruleValue['PLATFORM'] == 'ios') || (rule.ruleCode == 'ANDROID_LOW_VERSION' && resource.ruleValue['PLATFORM'] == 'android') || (rule.ruleCode == 'ANDROID_HIGH_VERSION' && resource.ruleValue['PLATFORM'] == 'android')))"></el-input>
<el-select v-model="resource.ruleValue[rule.ruleCode]" style="width: 75%" placeholder="请选择"
<el-input v-model="resource.ruleValue[rule.ruleCode]"
style="width: 75%"
class="input"
:placeholder="rule.description"
v-if="rule.ruleKind != 'IN' && rule.ruleKind != 'LEFT_LIKE' && ((rule.ruleCode == 'NOT_CHANNELS' || rule.ruleCode == 'PLATFORM' || rule.ruleCode == 'USER_LEVEL') || (!resource.ruleValue['PLATFORM'] || resource.ruleValue['PLATFORM'] == '' || resource.ruleValue['PLATFORM'] == 'null' || (rule.ruleCode == 'IOS_LOW_VERSION' && resource.ruleValue['PLATFORM'] == 'ios') || (rule.ruleCode == 'IOS_HIGH_VERSION' && resource.ruleValue['PLATFORM'] == 'ios') || (rule.ruleCode == 'ANDROID_LOW_VERSION' && resource.ruleValue['PLATFORM'] == 'android') || (rule.ruleCode == 'ANDROID_HIGH_VERSION' && resource.ruleValue['PLATFORM'] == 'android')))"></el-input>
<el-select v-model="resource.ruleValue[rule.ruleCode]"
style="width: 75%"
placeholder="请选择"
v-if="rule.ruleKind == 'IN'">
<el-option label="全部" :value="''"></el-option>
<el-option v-for="value in rule.ruleValue.split(',')" :key="value" :label="value"
<el-option label="全部"
:value="''"></el-option>
<el-option v-for="value in rule.ruleValue.split(',')"
:key="value"
:label="value"
:value="value"></el-option>
</el-select>
<el-select v-model="resource.ruleValue[rule.ruleCode]" style="width: 75%" placeholder="请选择"
<el-select v-model="resource.ruleValue[rule.ruleCode]"
style="width: 75%"
placeholder="请选择"
v-if="rule.ruleKind == 'LEFT_LIKE'">
<el-option v-for="value in rule.ruleValue.split(',')" :key="value" :label="value"
<el-option v-for="value in rule.ruleValue.split(',')"
:key="value"
:label="value"
:value="value"></el-option>
</el-select>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="editDialog = false">取消</el-button>
<el-button type="primary" @click="editDialogClick()"> 确认 </el-button>
<el-button type="primary"
@click="editDialogClick()"> 确认 </el-button>
</span>
</template>
</el-dialog>
<!-- 公共二次确认删除弹窗 -->
<el-dialog v-model="delDialog" title="提示" width="30%" center>
<el-dialog v-model="delDialog"
title="提示"
width="30%"
center>
<span> {{ delDialogText }}</span>
<template #footer>
<span class="dialog-footer">
<el-button @click="delDialog = false">取消</el-button>
<el-button type="primary" @click="delClick()"> 确认 </el-button>
<el-button type="primary"
@click="delClick()"> 确认 </el-button>
</span>
</template>
</el-dialog>
@@ -217,7 +392,7 @@ import { ElMessage } from "element-plus";
export default {
name: "GamePlayView",
data() {
data () {
return {
totals: 100, //总页数
currentPage: 1, //页码
@@ -265,10 +440,11 @@ export default {
seqNo: 0,
ruleValue: {},
partitionId: null,
seriesNameZh:'',
seriesNameEn:'',
seriesNameAr:'',
seriesNameTr:'',
seriesNameZh: '',
seriesNameEn: '',
seriesNameAr: '',
seriesNameTr: '',
seriesNamePt: '',
},
imageUrl: '',
partitionInfos: [],
@@ -277,16 +453,16 @@ export default {
},
};
},
setup() {
setup () {
return {};
},
created() {
created () {
this.initPartition();
this.getRule();
this.getData();
},
methods: {
uploadIcon() {
uploadIcon () {
let $this = this;
let file = $('#iconFile').val();
if (file && file.length > 0) {
@@ -301,7 +477,7 @@ export default {
});
}
},
uploadUrl() {
uploadUrl () {
let $this = this;
let file = $('#urlFile').val();
if (file && file.length > 0) {
@@ -316,14 +492,14 @@ export default {
});
}
},
getRule() {
getRule () {
getResourceRuleList({
ruleType: 3
}).then(res => {
this.rules = res.data;
});
},
ruleJsonFormatter(row, col, cell, index) {
ruleJsonFormatter (row, col, cell, index) {
let value = '';
let key = col.property;
let ruleValue = row.ruleValue;
@@ -346,7 +522,7 @@ export default {
}
return value;
},
getData() {
getData () {
getResourcePage({
type: 3,
partitionId: this.searchValues.partitionId,
@@ -370,14 +546,14 @@ export default {
console.log(this.tableData);
});
},
switchClick(id) {
switchClick (id) {
effective({
id: id
}).then(res => {
this.getData();
});
},
addClick() {
addClick () {
this.resource.id = null;
this.resource.code = '';
this.resource.name = '';
@@ -394,6 +570,7 @@ export default {
this.resource.seriesNameEn = '';
this.resource.seriesNameAr = '';
this.resource.seriesNameTr = '';
this.resource.seriesNamePt = '';
for (let i = 0, len = this.rules.length; i < len; i++) {
let rule = this.rules[i];
this.resource.ruleValue[rule.ruleCode] = '';
@@ -401,7 +578,7 @@ export default {
this.partitionId = null;
this.editDialog = true;
},
editClick(row) {
editClick (row) {
this.resource.id = row.id;
this.resource.code = row.code;
this.resource.name = row.name;
@@ -418,6 +595,7 @@ export default {
this.resource.seriesNameEn = JSON.parse(row.name).en;
this.resource.seriesNameAr = JSON.parse(row.name).ar;
this.resource.seriesNameTr = JSON.parse(row.name).tr;
this.resource.seriesNamePt = JSON.parse(row.name).pt;
}
let ruleValue = row.ruleValue;
for (let i = 0, len = this.rules.length; i < len; i++) {
@@ -432,7 +610,7 @@ export default {
this.resource.partitionId = row.partitionId;
this.editDialog = true;
},
editDialogClick() {
editDialogClick () {
let startTime = this.resource.startTime;
if (startTime) {
this.resource.startTime = new Date(startTime).format("yyyy-MM-dd hh:mm:ss");
@@ -456,6 +634,7 @@ export default {
en: this.resource.seriesNameEn,
ar: this.resource.seriesNameAr,
tr: this.resource.seriesNameTr,
pt: this.resource.seriesNamePt,
});
saveResource({
id: this.resource.id,
@@ -477,7 +656,7 @@ export default {
this.editDialog = false;
});
},
delClick(row) {
delClick (row) {
delResource({
id: row.id,
}).then((res) => {
@@ -486,18 +665,18 @@ export default {
});
},
// 分页导航
handleSizeChange(val) {
handleSizeChange (val) {
this.getData();
},
handleCurrentChange(val) {
handleCurrentChange (val) {
this.getData();
},
initPartition() {
initPartition () {
getPartitionInfoList().then(res => {
this.partitionInfos = res.data;
});
},
getPartitionInfo(partitionId) {
getPartitionInfo (partitionId) {
let partitions = this.partitionInfos.filter(v => v.id == partitionId);
if (!partitions || partitions.length <= 0) {
return '';
@@ -528,4 +707,5 @@ export default {
display: flex;
justify-content: space-between;
}
}</style>
}
</style>

View File

@@ -1,30 +1,48 @@
<template>
<div class="box">
<!-- 查询 -->
<div class="inquire" style="display: inline-block; margin-right: 20px">
<div class="inquire"
style="display: inline-block; margin-right: 20px">
<span class="demonstration">地区:</span>
<el-select v-model="inquire.partitionFlag" placeholder="请选择">
<el-option v-for="item in options" :key="item.partitionFlag" :label="item.label" :value="item.partitionFlag">
<el-select v-model="inquire.partitionFlag"
placeholder="请选择">
<el-option v-for="item in options"
:key="item.partitionFlag"
:label="item.label"
:value="item.partitionFlag">
</el-option>
</el-select>
</div>
<!-- 查询按钮 -->
<el-button class="primary" type="primary" @click="getData()">查询</el-button>
<el-button class="primary"
type="primary"
@click="getData()">查询</el-button>
<!-- 表格 -->
<el-table v-loading="loading" :data="tableData" border style="width: 100%; margin-top: 25px">
<el-table-column prop="mgId" align="center" label="游戏ID" />
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px">
<el-table-column prop="mgId"
align="center"
label="游戏ID" />
<el-table-column prop="name" align="center" label="游戏名称" />
<el-table-column prop="name"
align="center"
label="游戏名称" />
<el-table-column prop="partitionFlag" align="center" label="所属地区">
<el-table-column prop="partitionFlag"
align="center"
label="所属地区">
<template v-slot="scope">{{
partitionFlagFun(scope.row.partitionFlag)
}}</template>
</el-table-column>
<el-table-column prop="isShow" align="center" label="是否展示">
<el-table-column prop="isShow"
align="center"
label="是否展示">
<template v-slot="scope">{{
scope.row.isShow == 0 ? "" : scope.row.isShow == 1 ? "" : "/"
}}</template>
@@ -42,7 +60,9 @@
}}</template>
</el-table-column> -->
<el-table-column prop="isAuthority" align="center" label="是否限制">
<el-table-column prop="isAuthority"
align="center"
label="是否限制">
<template v-slot="scope">{{
scope.row.isAuthority == 0
? ""
@@ -52,7 +72,9 @@
}}</template>
</el-table-column>
<el-table-column prop="roleFlag" align="center" label="可开启角色">
<el-table-column prop="roleFlag"
align="center"
label="可开启角色">
<template v-slot="scope">{{
scope.row.roleFlag == 1
? "房主"
@@ -64,55 +86,86 @@
}}</template>
</el-table-column>
<el-table-column align="center" label="操作" width="300">
<el-table-column align="center"
label="操作"
width="300">
<template v-slot="scope">
<el-button @click="ediClick(scope)" class="primary" type="primary" size="default">编辑</el-button>
<el-button @click="ediClick(scope)"
class="primary"
type="primary"
size="default">编辑</el-button>
</template>
</el-table-column>
</el-table>
<!-- 编辑弹窗 -->
<el-dialog v-model="editDialog" title="编辑" width="28%" center>
<el-dialog v-model="editDialog"
title="编辑"
width="28%"
center>
<!-- 游戏ID -->
<div style="margin-bottom: 25px; margin-top: 10px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">游戏ID</span>
<el-input v-model="ediObj.gameId" style="width: 75%" class="input" disabled></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">游戏ID</span>
<el-input v-model="ediObj.gameId"
style="width: 75%"
class="input"
disabled></el-input>
</div>
<!-- 游戏昵称 -->
<div style="margin-bottom: 25px; margin-top: 10px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">游戏昵称(中文)</span>
<el-input v-model="ediObj.gameNick" style="width: 75%" class="input" disabled></el-input>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">游戏昵称(中文)</span>
<el-input v-model="ediObj.gameNick"
style="width: 75%"
class="input"
disabled></el-input>
</div>
<!-- 所属地区 -->
<div style="margin-bottom: 25px; margin-top: 10px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">所属地区</span>
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">所属地区</span>
<el-checkbox-group v-model="ediObj.checkList">
<el-checkbox label="华语区"></el-checkbox>
<el-checkbox label="英语区"></el-checkbox>
<el-checkbox label="阿拉伯语区"></el-checkbox>
<el-checkbox label="土耳其区"></el-checkbox>
<el-checkbox label="英语2区"></el-checkbox>
<el-checkbox label="华语区">4</el-checkbox>
<el-checkbox label="英语区">1</el-checkbox>
<el-checkbox label="阿拉伯语区">2</el-checkbox>
<el-checkbox label="土耳其区">8</el-checkbox>
<el-checkbox label="英语2区">16</el-checkbox>
<el-checkbox label="葡萄牙语区">32</el-checkbox>
</el-checkbox-group>
</div>
<!-- 是否展示 -->
<div style="margin-bottom: 25px; margin-top: 10px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">是否展示</span>
<el-select v-model="ediObj.value1" placeholder="请选择">
<el-option v-for="item in ediObj.options" :key="item.value" :label="item.label" :value="item.value">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">是否展示</span>
<el-select v-model="ediObj.value1"
placeholder="请选择">
<el-option v-for="item in ediObj.options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<!-- 是否限制 -->
<div v-show="ediObj.value1" style="margin-bottom: 25px; margin-top: 10px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">是否限制</span>
<el-select v-model="ediObj.value2" placeholder="请选择">
<el-option v-for="item in ediObj.options2" :key="item.value" :label="item.label" :value="item.value">
<div v-show="ediObj.value1"
style="margin-bottom: 25px; margin-top: 10px">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">是否限制</span>
<el-select v-model="ediObj.value2"
placeholder="请选择">
<el-option v-for="item in ediObj.options2"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<!-- 可开启角色 -->
<div v-show="ediObj.value1" style="margin-bottom: 25px; margin-top: 10px">
<span style="display: inline-block; margin-right: 20px" class="col-sm-2 control-label">可开启角色</span>
<div v-show="ediObj.value1"
style="margin-bottom: 25px; margin-top: 10px">
<span style="display: inline-block; margin-right: 20px"
class="col-sm-2 control-label">可开启角色</span>
<el-checkbox-group v-model="ediObj.checkList2">
<el-checkbox label="房主"></el-checkbox>
<el-checkbox label="管理员"></el-checkbox>
@@ -121,7 +174,8 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="editDialog = false">取消</el-button>
<el-button type="primary" @click="editDialogClick()">
<el-button type="primary"
@click="editDialogClick()">
确认
</el-button>
</span>
@@ -129,9 +183,14 @@
</el-dialog>
<!-- 分页 -->
<el-pagination style="margin-top: 10px; display: none" class="paginationClass" v-model:current-page="currentPage"
v-model:page-size="pageSize" :page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
layout="sizes, prev, pager, next" :total="total" @size-change="handleSizeChange"
<el-pagination style="margin-top: 10px; display: none"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange" />
</div>
</template>
@@ -143,7 +202,7 @@ import { dateFormat } from "@/utils/system-helper";
import { ElMessage } from "element-plus";
export default {
name: "GameAdmin",
data() {
data () {
return {
loading: false,
//查询所需条件对象
@@ -173,6 +232,10 @@ export default {
partitionFlag: 16,
label: "英语2区",
},
{
partitionFlag: 32,
label: "葡萄牙语区",
},
{
partitionFlag: "",
label: "全部",
@@ -218,12 +281,12 @@ export default {
pageSize: 10, //条数
};
},
created() {
created () {
this.getData();
},
methods: {
// 查询接口
getData() {
getData () {
this.loading = true;
let time = this.inquire.time;
let startTime = "";
@@ -253,7 +316,7 @@ export default {
});
},
// 编辑按钮
ediClick(scope) {
ediClick (scope) {
this.editDialog = true;
this.editDiaData = scope.row;
var obj = this.editDiaData;
@@ -292,7 +355,7 @@ export default {
console.log(obj);
},
// 确认编辑按钮
editDialogClick() {
editDialogClick () {
var obj = {
mgIdStr: this.ediObj.gameId,
name: this.ediObj.gameNick,
@@ -321,7 +384,7 @@ export default {
});
},
// 计算数值
districtFun(type) {
districtFun (type) {
console.log("ssss", this.ediObj);
var num = 0;
var district;
@@ -331,7 +394,8 @@ export default {
英语区: 1,
阿拉伯语区: 2,
土耳其区: 8,
英语2区: 16
英语2区: 16,
葡萄牙语区: 32
};
this.ediObj.checkList.forEach((res, i) => {
num += district[res];
@@ -348,7 +412,7 @@ export default {
return num;
},
// 展示所属地区
partitionFlagFun(val) {
partitionFlagFun (val) {
let value = '';
if ((val & 1) != 0) {
value += '英语区 ';
@@ -365,10 +429,13 @@ export default {
if ((val & 16) != 0) {
value += '英语2区 ';
}
if ((val & 32) != 0) {
value += '葡萄牙语区 ';
}
return value;
},
// 编辑回显分区
partitionFlagCheckFun(val){
partitionFlagCheckFun (val) {
let arr = [];
if ((val & 1) != 0) {
arr.push('英语区');
@@ -385,13 +452,16 @@ export default {
if ((val & 16) != 0) {
arr.push('英语2区');
}
if ((val & 32) != 0) {
arr.push('葡萄牙语区');
}
return arr;
},
// 分页导航
handleSizeChange() {
handleSizeChange () {
this.getData();
},
handleCurrentChange() {
handleCurrentChange () {
this.getData();
},
},

View File

@@ -7,24 +7,31 @@
<h1 id="itemTitle"></h1>
</section>
<div class="col-sm-12">
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
<label for="partitionId"
class="col-sm-1 control-label">地区:</label>
<div class="col-sm-2">
<select name="partitionId" id="partitionId" class="form-control">
<option value="4" selected>华语区</option>
<select name="partitionId"
id="partitionId"
class="form-control">
<option value="4"
selected>华语区</option>
</select>
</div>
</div>
<div id="toolbar">
<div class="col-sm-12">
<button id="btnSearch" class="btn btn-default">
<button id="btnSearch"
class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="btnAdd" class="btn btn-default">
<button id="btnAdd"
class="btn btn-default">
<i class="glyphicon glyphicon-plus"></i>增加
</button>
</div>
<input type="hidden" id="currentPageNum" />
<input type="hidden"
id="currentPageNum" />
</div>
</div>
@@ -33,105 +40,98 @@
</div>
</section>
<div
class="modal fade"
<div class="modal fade"
id="roomTabModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel"
>
<div class="modal-dialog" role="document">
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button
type="button"
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"
>
aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="modalLabel">编辑房间标签</h4>
<h4 class="modal-title"
id="modalLabel">编辑房间标签</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="addForm">
<input type="hidden" name="id" id="id" />
<form class="form-horizontal"
id="addForm">
<input type="hidden"
name="id"
id="id" />
<div class="form-group">
<label for="modal_seq" class="col-sm-3 control-label"
>排序<font color="red">*</font>:</label
>
<label for="modal_seq"
class="col-sm-3 control-label">排序<font color="red">*</font>:</label>
<div class="col-sm-9">
<input
type="text"
<input type="text"
class="form-control validate[custom[integer]]"
name="seq"
id="modal_seq"
placeholder="数字小的排前面,必填"
/>
placeholder="数字小的排前面,必填" />
</div>
</div>
<div class="form-group">
<label for="modal_name" class="col-sm-3 control-label"
>名称<font color="red">*</font>:</label
>
<label for="modal_name"
class="col-sm-3 control-label">名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<input
type="text"
<input type="text"
class="form-control validate[required]"
name="name"
id="modal_name"
/>
id="modal_name" />
</div>
</div>
<div class="form-group">
<label for="ar_modal_name" class="col-sm-3 control-label"
>阿语名称<font color="red">*</font>:</label
>
<label for="ar_modal_name"
class="col-sm-3 control-label">阿语名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<input
type="text"
<input type="text"
class="form-control validate[required]"
name="name"
id="ar_modal_name"
/>
id="ar_modal_name" />
</div>
</div>
<div class="form-group">
<label for="en_modal_name" class="col-sm-3 control-label"
>英语名称<font color="red">*</font>:</label
>
<label for="en_modal_name"
class="col-sm-3 control-label">英语名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<input
type="text"
<input type="text"
class="form-control validate[required]"
name="name"
id="en_modal_name"
/>
id="en_modal_name" />
</div>
</div>
<div class="form-group">
<label for="tr_modal_name" class="col-sm-3 control-label"
>土耳其名称<font color="red">*</font>:</label
>
<label for="tr_modal_name"
class="col-sm-3 control-label">土耳其名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<input
type="text"
<input type="text"
class="form-control validate[required]"
name="name"
id="tr_modal_name"
/>
id="tr_modal_name" />
</div>
</div>
<div class="form-group">
<label for="status" class="col-sm-3 control-label"
>显示状态<font color="red">*</font></label
>
<label for="pt_modal_name"
class="col-sm-3 control-label">葡萄牙语名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<select
name="status"
<input type="text"
class="form-control validate[required]"
name="name"
id="pt_modal_name" />
</div>
</div>
<div class="form-group">
<label for="status"
class="col-sm-3 control-label">显示状态<font color="red">*</font></label>
<div class="col-sm-9">
<select name="status"
id="modal_status"
class="form-control validate[required]"
>
class="form-control validate[required]">
<option value=""></option>
<option value="1">显示</option>
<option value="0">不显示</option>
@@ -139,54 +139,52 @@
</div>
</div>
<div class="form-group">
<label for="room_tab_show" class="col-sm-3 control-label"
>房间管理列表展示状态<font color="red">*</font> </label
>
<label for="room_tab_show"
class="col-sm-3 control-label">房间管理列表展示状态<font color="red">*</font> </label>
<div class="col-sm-9">
<select
name="room_tab_show"
<select name="room_tab_show"
id="modal_room_tab_show"
class="form-control validate[required]"
>
class="form-control validate[required]">
<option value=""></option>
<option value="true">展示</option>
<option value="false">不展示</option>
</select>
</div>
</div>
<div class="form-group" id="imgBox">
<div class="form-group"
id="imgBox">
<label class="col-sm-3 control-label">icon</label>
<div class="col-sm-8">
<img
src=""
<img src=""
id="iconImgUrl"
style="width: 108px; height: 45px"
alt=""
/>
<input
type="file"
alt="" />
<input type="file"
id="iconFile"
name="uploadFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg"
/>
<button class="btn btn-success" type="button" id="iconBtn">
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" />
<button class="btn btn-success"
type="button"
id="iconBtn">
上传
</button>
<input
type="hidden"
<input type="hidden"
id="iconUrl"
name="alertWinPic"
class="form-control validate[required]"
/>
class="form-control validate[required]" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
关闭
</button>
<button type="button" class="btn btn-primary" id="add">确定</button>
<button type="button"
class="btn btn-primary"
id="add">确定</button>
</div>
</div>
</div>
@@ -199,17 +197,17 @@ import { getPartitionInfoList } from "@/api/partition/partitionInfo";
import { buildSelectOption } from "@/utils/system-helper";
export default {
name: "RoomTabView",
setup() {
setup () {
return {};
},
created() {
created () {
this.$nextTick(function () {
this.initPartition();
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
$("#table").bootstrapTable("destroy");
$("#table").bootstrapTable({
@@ -239,6 +237,12 @@ export default {
align: "center",
width: "10%",
},
{
field: "name.pt",
title: "葡萄牙语Tab名称",
align: "center",
width: "10%",
},
{
field: "status",
title: "显示状态",
@@ -308,11 +312,11 @@ export default {
showRefresh: false,
pageSize: 20,
pagination: true,
pageList: [20, 50, 100, 200, 300, 500],
pageList: [20, 50, 100, 200, 500],
search: false,
sidePagination: "server", //表示服务端请求
queryParamsType: "undefined",
queryParams: function queryParams(params) {
queryParams: function queryParams (params) {
//设置查询参数
$("#currentPageNum").val(params.pageNumber);
var param = {
@@ -342,6 +346,8 @@ export default {
zh: i.name,
ar: i.name,
en: i.name,
tr: i.name,
pt: i.name,
};
}
return i;
@@ -376,6 +382,7 @@ export default {
$("#ar_modal_name").val("");
$("#en_modal_name").val("");
$("#tr_modal_name").val("");
$("#pt_modal_name").val("");
$("#modal_seq").val("");
$("#modal_status").val("");
$("#modal_room_tab_show").val("");
@@ -396,8 +403,9 @@ export default {
// 英语名称
var en_name = $("#en_modal_name").val();
var tr_name = $("#tr_modal_name").val();
var pt_name = $("#pt_modal_name").val();
// 国际化字段
var jsonName = { zh: name, ar: ar_name, en: en_name, tr: tr_name };
var jsonName = { zh: name, ar: ar_name, en: en_name, tr: tr_name, pt: pt_name };
const nameValue = JSON.stringify(jsonName);
var seq = $("#modal_seq").val();
var status = $("#modal_status").val();
@@ -450,7 +458,7 @@ export default {
var json = ret.data.roomTab;
$("#id").val(id);
let name = json.name;
$('#iconImgUrl').attr('src',json.icon);
$('#iconImgUrl').attr('src', json.icon);
if (name.startsWith("{") && name.endsWith("}")) {
var jsonName = JSON.parse(json.name);
$("#modal_name").val(jsonName.zh);
@@ -460,6 +468,7 @@ export default {
$("#en_modal_name").val(jsonName.en);
// 土耳其名称
$("#tr_modal_name").val(jsonName.tr);
$("#pt_modal_name").val(jsonName.pt);
} else {
$("#modal_name").val(name);
// 阿语名称
@@ -468,6 +477,7 @@ export default {
$("#en_modal_name").val(name);
// 土耳其名称
$("#tr_modal_name").val(name);
$("#pt_modal_name").val(name);
}
$("#modal_seq").val(json.seq);
if (json.status == 1) {
@@ -550,7 +560,7 @@ export default {
});
});
function clearModal() {
function clearModal () {
$("#iconImgUrl").attr("src", "");
$("#addForm")
@@ -563,12 +573,12 @@ export default {
}
});
},
initPartition() {
initPartition () {
getPartitionInfoList().then((res) => {
let data = res.data;
buildSelectOption(
"#partitionId",
4,
1,
data.map((v) => {
return {
value: v.id,

View File

@@ -8,23 +8,36 @@
</section>
<div id="toolbar">
<div class="col-sm-12">
<label for="name" class="col-sm-1 control-label">名称:</label>
<label for="name"
class="col-sm-1 control-label">名称:</label>
<div class="col-sm-2">
<input type="text" class="form-control" name="name" id="name" placeholder="请输入列表名称">
<input type="text"
class="form-control"
name="name"
id="name"
placeholder="请输入列表名称">
</div>
<label for="status" class="col-sm-1 control-label">状态:</label>
<label for="status"
class="col-sm-1 control-label">状态:</label>
<div class="col-sm-2">
<select name="status" id="status" class="form-control" data-btn-class="btn-warning">
<option value="" selected="selected">全部</option>
<select name="status"
id="status"
class="form-control"
data-btn-class="btn-warning">
<option value=""
selected="selected">全部</option>
<option value="1">有效</option>
<option value="0">无效</option>
</select>
</div>
<label for="type" class="col-sm-1 control-label">类型:</label>
<label for="type"
class="col-sm-1 control-label">类型:</label>
<div class="col-sm-2">
<select name="type" id="type" class="form-control validate[required]">
<select name="type"
id="type"
class="form-control validate[required]">
<option value="">全部</option>
<option value="1">普通</option>
<option value="2">萌新</option>
@@ -39,31 +52,43 @@
</div>
</div>
<div class="col-sm-12">
<label for="startTime" class="col-sm-1 control-label">开始日期:</label>
<label for="startTime"
class="col-sm-1 control-label">开始日期:</label>
<div class="col-sm-2">
<input type="text" class="input-sm form-control" name="startTime" id="startTime">
<input type="text"
class="input-sm form-control"
name="startTime"
id="startTime">
</div>
<label for="endTime" class="col-sm-1 control-label">结束日期:</label>
<label for="endTime"
class="col-sm-1 control-label">结束日期:</label>
<div class="col-sm-2">
<input type="text" class="input-sm form-control" name="endTime" id="endTime">
<input type="text"
class="input-sm form-control"
name="endTime"
id="endTime">
</div>
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
<label for="partitionId"
class="col-sm-1 control-label">地区:</label>
<div class="col-sm-2">
<select name="partitionId" id="partitionId" class="form-control"></select>
<select name="partitionId"
id="partitionId"
class="form-control"></select>
</div>
</div>
<div class="col-sm-12">
<button id="btnSearch" class="btn btn-default">
<button id="btnSearch"
class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="btnAdd" class="btn btn-default">
<button id="btnAdd"
class="btn btn-default">
<i class="glyphicon glyphicon-plus"></i>增加
</button>
</div>
</div>
</div>
@@ -73,72 +98,128 @@
</div>
</section>
<div class="modal fade" id="roomTagModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="roomTagModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="modalLabel">编辑房间标签</h4>
<h4 class="modal-title"
id="modalLabel">编辑房间标签</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="addForm">
<input type="hidden" name="id" id="id" />
<form class="form-horizontal"
id="addForm">
<input type="hidden"
name="id"
id="id" />
<div class="form-group">
<label for="modal_name" class="col-sm-3 control-label">名称<font color="red">*</font>:</label>
<label for="modal_name"
class="col-sm-3 control-label">名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="modal_name">
<input type="text"
class="form-control validate[required]"
name="name"
id="modal_name">
</div>
</div>
<div class="form-group">
<label for="ar_modal_name" class="col-sm-3 control-label">阿语名称<font color="red">*</font>:</label>
<label for="ar_modal_name"
class="col-sm-3 control-label">阿语名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="ar_modal_name">
<input type="text"
class="form-control validate[required]"
name="name"
id="ar_modal_name">
</div>
</div>
<div class="form-group">
<label for="en_modal_name" class="col-sm-3 control-label">英语名称<font color="red">*</font>:</label>
<label for="en_modal_name"
class="col-sm-3 control-label">英语名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="en_modal_name">
<input type="text"
class="form-control validate[required]"
name="name"
id="en_modal_name">
</div>
</div>
<div class="form-group">
<label for="tr_modal_name" class="col-sm-3 control-label">土耳其名称<font color="red">*</font>:</label>
<label for="tr_modal_name"
class="col-sm-3 control-label">土耳其名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[required]" name="name" id="tr_modal_name">
<input type="text"
class="form-control validate[required]"
name="name"
id="tr_modal_name">
</div>
</div>
<div class="form-group">
<label for="pt_modal_name"
class="col-sm-3 control-label">葡萄牙语名称<font color="red">*</font>:</label>
<div class="col-sm-9">
<input type="text"
class="form-control validate[required]"
name="name"
id="pt_modal_name">
</div>
</div>
<!-- 上传act图片 -->
<div class="form-group">
<label class="col-sm-3 control-label">图片:</label>
<div class="col-sm-8">
<img src="" id="addImgUrl" style='width:108px;height:45px;' alt="">
<input type="file" id="addUploadFile" name='uploadFile'
<img src=""
id="addImgUrl"
style='width:108px;height:45px;'
alt="">
<input type="file"
id="addUploadFile"
name='uploadFile'
accept='image/gif,image/jpeg,image/jpg,image/png,image/svg'>
<button class="btn btn-success" type='button' id="addUploadBtn">上传</button>
<input type="hidden" id="addActPic" name='alertWinPic'
<button class="btn btn-success"
type='button'
id="addUploadBtn">上传</button>
<input type="hidden"
id="addActPic"
name='alertWinPic'
class="form-control validate[required]">
</div>
</div>
<div class="form-group">
<label for="modal_seq" class="col-sm-3 control-label">排序序号<font color="red">*</font>:</label>
<label for="modal_seq"
class="col-sm-3 control-label">排序序号<font color="red">*</font>:</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[custom[integer]]" name="seq" id="modal_seq"
<input type="text"
class="form-control validate[custom[integer]]"
name="seq"
id="modal_seq"
placeholder="数字小的排前面,必填">
</div>
</div>
<div class="form-group">
<label for="partitionId" class="col-sm-3 control-label">选择地区<font color="red">*</font></label>
<label for="partitionId"
class="col-sm-3 control-label">选择地区<font color="red">*</font></label>
<div class="col-sm-9">
<select name="partitionId" id="modal_partitionId" class="form-control validate[required]">
<select name="partitionId"
id="modal_partitionId"
class="form-control validate[required]">
</select>
</div>
</div>
<div class="form-group">
<label for="status" class="col-sm-3 control-label">状态<font color="red">*</font></label>
<label for="status"
class="col-sm-3 control-label">状态<font color="red">*</font></label>
<div class="col-sm-9">
<select name="status" id="modal_status" class="form-control validate[required]">
<select name="status"
id="modal_status"
class="form-control validate[required]">
<option value=""></option>
<option value="1">有效</option>
<option value="0">无效</option>
@@ -146,9 +227,12 @@
</div>
</div>
<div class="form-group">
<label for="modal_type" class="col-sm-3 control-label">类型<font color="red">*</font></label>
<label for="modal_type"
class="col-sm-3 control-label">类型<font color="red">*</font></label>
<div class="col-sm-9">
<select name="type" id="modal_type" class="form-control validate[required]">
<select name="type"
id="modal_type"
class="form-control validate[required]">
<option value=""></option>
<option value="1">普通</option>
<option value="2">萌新</option>
@@ -163,10 +247,13 @@
</div>
</div>
<div class="form-group">
<label for="modal_istop" class="col-sm-3 control-label">首页顶部展示<font color="red">*</font>
<label for="modal_istop"
class="col-sm-3 control-label">首页顶部展示<font color="red">*</font>
</label>
<div class="col-sm-9">
<select name="istop" id="modal_istop" class="form-control validate[required]">
<select name="istop"
id="modal_istop"
class="form-control validate[required]">
<option value=""></option>
<option value="1"></option>
<option value="0"></option>
@@ -174,18 +261,26 @@
</div>
</div>
<div class="form-group">
<label for="modal_description" class="col-sm-3 control-label">描述:</label>
<label for="modal_description"
class="col-sm-3 control-label">描述:</label>
<div class="col-sm-9">
<input type="text" class="form-control validate[maxSize[255]]" name="description"
id="modal_description" placeholder="255个字符以内">
<input type="text"
class="form-control validate[maxSize[255]]"
name="description"
id="modal_description"
placeholder="255个字符以内">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="add">确定</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="add">确定</button>
</div>
</div>
@@ -200,34 +295,36 @@ import { buildSelectOption } from '@/utils/system-helper';
export default {
name: "RoomtagAdminView",
setup() {
setup () {
return {};
},
created() {
created () {
this.$nextTick(function () {
this.initPartition();
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
$('#table').bootstrapTable('destroy');
$('#table').bootstrapTable({
columns: [
{ field: 'id', title: '编号', align: 'center', width: '5%' },
{ field:'partitionDesc',title:'地区',align:'center',valign:'middle' },
{field: 'name.zh', title: '名称', align: 'center', width: '10%'},
{field: 'name.ar', title: '阿语名称', align: 'center', width: '10%'},
{field: 'name.en', title: '英语名称', align: 'center', width: '10%'},
{field: 'name.tr', title: '土耳其名称', align: 'center', width: '10%'},
{field: 'pict', title: '图片', align:'center', width: '10%',valign:'center',
formatter: function (val,row,index) {
if(null == val || val == '') {
{ field: 'partitionDesc', title: '地区', align: 'center', valign: 'middle' },
{ field: 'name.zh', title: '名称', align: 'center', width: '10%' },
{ field: 'name.ar', title: '阿语名称', align: 'center', width: '10%' },
{ field: 'name.en', title: '英语名称', align: 'center', width: '10%' },
{ field: 'name.tr', title: '土耳其名称', align: 'center', width: '10%' },
{ field: 'name.pt', title: '葡萄牙语名称', align: 'center', width: '10%' },
{
field: 'pict', title: '图片', align: 'center', width: '10%', valign: 'center',
formatter: function (val, row, index) {
if (null == val || val == '') {
return '-';
} else if (val.indexOf("https") == 0 || val.indexOf("http") == 0) {
return "<img src='" + val + "' width='108' height='45'>";
}else{
} else {
return val;
}
}
@@ -294,11 +391,11 @@ export default {
showRefresh: false,
pageSize: 20,
pagination: true,
pageList: [20, 50, 100, 200, 300, 500],
pageList: [20, 50, 100, 200, 500],
search: false,
sidePagination: "server", //表示服务端请求
queryParamsType: "undefined",
queryParams: function queryParams(params) { //设置查询参数
queryParams: function queryParams (params) { //设置查询参数
var param = {
pageNum: params.pageNumber,
pageSize: params.pageSize,
@@ -311,17 +408,17 @@ export default {
};
return param;
},
ajax:function(request){ //使用ajax请求
ajax: function (request) { //使用ajax请求
$.ajax({
type:"GET",
url:'/admin/roomtag/list',
contentType:'application/json;charset=utf-8',
dataType:'json',
type: "GET",
url: '/admin/roomtag/list',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: request.data,
success:function (res) {
success: function (res) {
console.log(res);
request.success({
"rows": res.rows.map(i=>{
"rows": res.rows.map(i => {
let value = i.name;
if (value.startsWith('{') && value.endsWith('}')) {
i.name = JSON.parse(i.name);
@@ -330,6 +427,8 @@ export default {
zh: i.name,
ar: i.name,
en: i.name,
tr: i.name,
pt: i.name
};
}
return i;
@@ -337,7 +436,7 @@ export default {
"total": res.total
});
},
error:function(error){
error: function (error) {
console.log(error);
}
})
@@ -398,6 +497,7 @@ export default {
$("#ar_modal_name").val("");
$("#en_modal_name").val("");
$("#tr_modal_name").val("");
$("#pt_modal_name").val("");
$("#modal_seq").val("");
$("#modal_status").val("");
$("#modal_type").val("");
@@ -419,8 +519,9 @@ export default {
var en_name = $("#en_modal_name").val();
// 土耳其名称
var tr_name = $("#tr_modal_name").val();
var pt_name = $("#pt_modal_name").val();
// 国际化字段
var jsonName = {"zh":name,"ar":ar_name,"en":en_name,"tr":tr_name}
var jsonName = { "zh": name, "ar": ar_name, "en": en_name, "tr": tr_name }
const nameValue = JSON.stringify(jsonName);
var seq = $("#modal_seq").val();
var status = $("#modal_status").val();
@@ -456,7 +557,7 @@ export default {
if (json.success == 'true') {
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
setTimeout(function() {
setTimeout(function () {
TableHelper.doRefresh("#table");
$("#roomTagModal").modal('hide');
}, 1000);
@@ -495,6 +596,7 @@ export default {
$("#en_modal_name").val(jsonName.en);
// 土耳其名称
$("#tr_modal_name").val(jsonName.tr);
$("#pt_modal_name").val(jsonName.pt);
} else {
$("#modal_name").val(name);
// 阿语名称
@@ -503,6 +605,7 @@ export default {
$("#en_modal_name").val(name);
// 土耳其名称
$("#tr_modal_name").val(name);
$("#pt_modal_name").val(name);
}
$("#modal_seq").val(json.seq);
@@ -562,7 +665,7 @@ export default {
});
},
initPartition() {
initPartition () {
getPartitionInfoList().then(res => {
let data = res.data;
buildSelectOption(
@@ -596,7 +699,7 @@ export default {
},
};
function formatType(val) {
function formatType (val) {
if (val == 1) {
return "普通";
} else if (val == 2) {

View File

@@ -12,43 +12,68 @@
</div>
</section>
<!-- 为用户赠送头饰弹窗 -->
<div class="modal fade" id="sendHeadwearModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="sendHeadwearModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">x</span></button>
<h4 class="modal-title" id="modalSendLabel">赠送头饰</h4>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title"
id="modalSendLabel">赠送头饰</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="headwearSendForm">
<input type="hidden" name="sendHeadwearId" id="sendHeadwearId" />
<form class="form-horizontal"
id="headwearSendForm">
<input type="hidden"
name="sendHeadwearId"
id="sendHeadwearId" />
<div class="form-group">
<label for="sendErbanNo" class="col-sm-3 control-label">平台号</label>
<label for="sendErbanNo"
class="col-sm-3 control-label">平台号</label>
<div class="col-sm-9">
<textarea name="sendErbanNo" id="sendErbanNo" class="form-control validate[required]"
<textarea name="sendErbanNo"
id="sendErbanNo"
class="form-control validate[required]"
placeholder="多个平台号使用换行符分隔"></textarea>
</div>
</div>
<div class="form-group">
<label for="sendDays" class="col-sm-3 control-label">赠送天数</label>
<label for="sendDays"
class="col-sm-3 control-label">赠送天数</label>
<div class="col-sm-9">
<input type="text" name="days" id="sendDays" class="form-control validate[required]" />
<input type="text"
name="days"
id="sendDays"
class="form-control validate[required]" />
</div>
</div>
<div class="form-group">
<label for="sendDesc" class="col-sm-3 control-label">备注</label>
<label for="sendDesc"
class="col-sm-3 control-label">备注</label>
<div class="col-sm-9">
<input type="text" name="desc" id="sendDesc" class="form-control validate[required]" />
<input type="text"
name="desc"
id="sendDesc"
class="form-control validate[required]" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="send">提交</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="send">提交</button>
</div>
</div>
</div>
@@ -62,8 +87,8 @@ import { buildSelectOption } from '@/utils/system-helper';
export default {
name: "HeadwearAdminViewSuper",
setup() {
function uploadfile(file, image, path, info) {
setup () {
function uploadfile (file, image, path, info) {
$(this).attr('disabled', "true");
$.ajaxFileUpload({
fileElementId: file, //需要上传的文件域的ID即<input type="file">的ID。
@@ -99,14 +124,14 @@ export default {
uploadfile
};
},
created() {
created () {
this.$nextTick(function () {
// this.initPartition();
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
$('#table').bootstrapTable('destroy');
@@ -115,10 +140,11 @@ export default {
//{field: 'id', title: 'id', align: 'center', width: '5%'},
// { field: 'tmp', title: 'headwearId', align: 'center', checkbox: true, width: '5%' },
{ field: 'headwearId', title: '头饰ID', align: 'center', width: '5%' },
{field: 'name.zh', title: '头饰名称', align: 'center', width: '5%'},
{field: 'name.ar', title: '阿语头饰名称', align: 'center', width: '5%'},
{field: 'name.en', title: '英语头饰名称', align: 'center', width: '5%'},
{field: 'name.tr', title: '土耳其头饰名称', align: 'center', width: '5%'},
{ field: 'name.zh', title: '头饰名称', align: 'center', width: '5%' },
{ field: 'name.ar', title: '阿语头饰名称', align: 'center', width: '5%' },
{ field: 'name.en', title: '英语头饰名称', align: 'center', width: '5%' },
{ field: 'name.tr', title: '土耳其头饰名称', align: 'center', width: '5%' },
{ field: 'name.pt', title: '葡萄牙语头饰名称', align: 'center', width: '5%' },
{
field: 'pic',
title: '头饰图片',
@@ -156,24 +182,24 @@ export default {
//设置为undefined可以获取pageNumberpageSizesearchTextsortNamesortOrder
//设置为limit可以获取limit, offset, search, sort, order
queryParamsType: "undefined",
queryParams: function queryParams(params) { //设置查询参数
queryParams: function queryParams (params) { //设置查询参数
var param = {
page: params.pageNumber,
pageSize: params.pageSize,
};
return param;
},
ajax:function(request){ //使用ajax请求
ajax: function (request) { //使用ajax请求
$.ajax({
type:"GET",
url:'/admin/superCenter/headwearList',
contentType:'application/json;charset=utf-8',
dataType:'json',
type: "GET",
url: '/admin/superCenter/headwearList',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: request.data,
success:function (res) {
success: function (res) {
console.log(res);
request.success({
"rows": res.rows.map(i=>{
"rows": res.rows.map(i => {
let value = i.name;
if (value.startsWith('{') && value.endsWith('}')) {
i.name = JSON.parse(value);
@@ -182,6 +208,8 @@ export default {
zh: value,
ar: value,
en: value,
tr: value,
pt: value,
};
}
return i;
@@ -189,7 +217,7 @@ export default {
"total": res.total
});
},
error:function(error){
error: function (error) {
console.log(error);
}
})

View File

@@ -12,43 +12,68 @@
</div>
</section>
<!-- 为用户赠送铭牌弹窗 -->
<div class="modal fade" id="sendNameplateModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal fade"
id="sendNameplateModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">x</span></button>
<h4 class="modal-title" id="modalSendLabel">赠送铭牌</h4>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"><span aria-hidden="true">x</span></button>
<h4 class="modal-title"
id="modalSendLabel">赠送铭牌</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="nameplateSendForm">
<input type="hidden" name="sendNameplateId" id="sendNameplateId" />
<form class="form-horizontal"
id="nameplateSendForm">
<input type="hidden"
name="sendNameplateId"
id="sendNameplateId" />
<div class="form-group">
<label for="sendErbanNo" class="col-sm-3 control-label">平台号</label>
<label for="sendErbanNo"
class="col-sm-3 control-label">平台号</label>
<div class="col-sm-9">
<textarea name="sendErbanNo" id="sendErbanNo" class="form-control validate[required]"
<textarea name="sendErbanNo"
id="sendErbanNo"
class="form-control validate[required]"
placeholder="多个平台号使用换行符分隔"></textarea>
</div>
</div>
<div class="form-group">
<label for="sendDays" class="col-sm-3 control-label">赠送天数</label>
<label for="sendDays"
class="col-sm-3 control-label">赠送天数</label>
<div class="col-sm-9">
<input type="text" name="days" id="sendDays" class="form-control validate[required]" />
<input type="text"
name="days"
id="sendDays"
class="form-control validate[required]" />
</div>
</div>
<div class="form-group">
<label for="sendDesc" class="col-sm-3 control-label">备注</label>
<label for="sendDesc"
class="col-sm-3 control-label">备注</label>
<div class="col-sm-9">
<input type="text" name="desc" id="sendDesc" class="form-control validate[required]" />
<input type="text"
name="desc"
id="sendDesc"
class="form-control validate[required]" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="send">提交</button>
<button type="button"
class="btn btn-default"
data-dismiss="modal">关闭</button>
<button type="button"
class="btn btn-primary"
id="send">提交</button>
</div>
</div>
</div>
@@ -63,17 +88,17 @@ import { getConfigValueByKey } from '@/api/system/sysconf';
export default {
name: "NameplateInfoViewSuper",
setup() {
setup () {
return {};
},
created() {
created () {
this.$nextTick(function () {
// this.initPartition();
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
setStatusSelectOption();
setTypeSelectOption();
@@ -83,10 +108,11 @@ export default {
columns: [
{ field: 'id', title: '铭牌id', align: 'center', width: '5%' },
{ field: 'nameplateTypeStr', title: '铭牌类型', align: 'center', width: '5%' },
{field: 'name.zh', title: '铭牌名称', align: 'center', width: '5%'},
{field: 'name.ar', title: '阿语铭牌名称', align: 'center', width: '5%'},
{field: 'name.en', title: '英语铭牌名称', align: 'center', width: '5%'},
{field: 'name.tr', title: '土耳其名称', align: 'center', width: '5%'},
{ field: 'name.zh', title: '铭牌名称', align: 'center', width: '5%' },
{ field: 'name.ar', title: '阿语铭牌名称', align: 'center', width: '5%' },
{ field: 'name.en', title: '英语铭牌名称', align: 'center', width: '5%' },
{ field: 'name.tr', title: '土耳其名称', align: 'center', width: '5%' },
{ field: 'name.pt', title: '葡萄牙语名称', align: 'center', width: '5%' },
{
field: 'iconPic',
title: '铭牌图片',
@@ -125,24 +151,24 @@ export default {
search: false,
sidePagination: "server", //表示服务端请求
queryParamsType: "-",
queryParams: function queryParams(params) { //设置查询参数
queryParams: function queryParams (params) { //设置查询参数
var param = {
pageNumber: params.pageNumber,
pageSize: params.pageSize,
};
return param;
},
ajax:function(request){ //使用ajax请求
ajax: function (request) { //使用ajax请求
$.ajax({
type:"GET",
url:'/admin/superCenter/nameplateList',
contentType:'application/json;charset=utf-8',
dataType:'json',
type: "GET",
url: '/admin/superCenter/nameplateList',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: request.data,
success:function (res) {
success: function (res) {
console.log(res);
request.success({
"rows": res.rows.map(i=>{
"rows": res.rows.map(i => {
let nameValue = i.name;
if (nameValue && nameValue.startsWith('{') && nameValue.endsWith('}')) {
i.name = JSON.parse(i.name);
@@ -151,6 +177,8 @@ export default {
zh: nameValue,
ar: nameValue,
en: nameValue,
tr: nameValue,
pt: nameValue,
};
}
let fixedWordValue = i.fixedWord;
@@ -161,6 +189,8 @@ export default {
zh: fixedWordValue,
ar: fixedWordValue,
en: fixedWordValue,
tr: fixedWordValue,
pt: fixedWordValue,
};
}
return i;
@@ -168,7 +198,7 @@ export default {
"total": res.total
});
},
error:function(error){
error: function (error) {
console.log(error);
}
})
@@ -259,7 +289,7 @@ export default {
},
};
function cleanNamePlateModal() {
function cleanNamePlateModal () {
$('#id').val('');
$('#addIconPicUrl').attr('src', '');
$('#addUploadIconPic').val('');
@@ -271,6 +301,7 @@ function cleanNamePlateModal() {
$('#arFixedWord').val('');
$('#enFixedWord').val('');
$('#trFixedWord').val('');
$('#ptFixedWord').val('');
$('input[name="isCustomWord"]').each(function () {
$(this).removeAttr("checked");
});
@@ -278,23 +309,24 @@ function cleanNamePlateModal() {
$('#ar_name1').val('');
$('#en_name1').val('');
$('#tr_name1').val('');
$('#pt_name1').val('');
$('#nameplateType1').val('');
$('#name1').removeAttr("readonly");
$('#nameplateType1').removeAttr("disabled");
$('#fixedWord-div').removeClass("hidden");
$('input[name="partitionFlag"]').each(function() {
$('input[name="partitionFlag"]').each(function () {
$(this).checked = false;
});
}
//判断空值
function isEmpty(data) {
function isEmpty (data) {
if (data == null || data == undefined || data == "") {
return true;
}
return false;
}
function setStatusSelectOption() {
function setStatusSelectOption () {
var rows = {
"0": '待上架',
"1": '上架',
@@ -308,7 +340,7 @@ function setStatusSelectOption() {
}
}
function setStyleTypeSelectOption() {
function setStyleTypeSelectOption () {
getConfigValueByKey({
'configId': 'heartbeat_nameplate',
}).then(res => {
@@ -339,7 +371,7 @@ function setStyleTypeSelectOption() {
});
}
function setTypeSelectOption() {
function setTypeSelectOption () {
var rows = {
"0": '官方主播',
"1": '普通',
@@ -362,4 +394,5 @@ function setTypeSelectOption() {
.pull-left {
width: 100% !important;
}</style>
}
</style>

View File

@@ -90,7 +90,7 @@
</div>
</div>
<div class="form-group">
<label for="ar"
<label for="tr"
class="col-sm-2 control-label">土耳其</label>
<div class="col-sm-9">
<textarea class="form-control validate[required]"
@@ -100,6 +100,17 @@
v-model="i18nMessage.tr" />
</div>
</div>
<div class="form-group">
<label for="pt"
class="col-sm-2 control-label">葡萄牙语</label>
<div class="col-sm-9">
<textarea class="form-control validate[required]"
name="pt"
id="pt"
rows="3"
v-model="i18nMessage.pt" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
@@ -129,6 +140,7 @@ export default {
{ field: 'en', title: '英语', align: 'center', width: '17%' },
{ field: 'ar', title: '阿语', align: 'center', width: '17%' },
{ field: 'tr', title: '土耳其', align: 'center', width: '17%' },
{ field: 'pt', title: '葡萄牙语', align: 'center', width: '17%' },
{
field: 'key',
title: '操作',
@@ -145,6 +157,7 @@ export default {
zh: '',
en: '',
ar: '',
pt: '',
},
};
},
@@ -177,9 +190,9 @@ export default {
striped: true,
showRefresh: true,
search: true,
pageSize: 10,
pageSize: 20,
pagination: true,
pageList: [10, 20, 30, 50],
pageList: [20, 50, 100],
sidePagination: "client",
queryParamsType: "undefined",
toolbar: '#toolbar',
@@ -197,6 +210,7 @@ export default {
this.i18nMessage.en = '';
this.i18nMessage.ar = '';
this.i18nMessage.tr = '';
this.i18nMessage.pt = '';
$('#editModal').modal('show');
},
edit (obj) {
@@ -207,6 +221,7 @@ export default {
this.i18nMessage.en = record.en;
this.i18nMessage.ar = record.ar;
this.i18nMessage.tr = record.tr;
this.i18nMessage.pt = record.pt;
$('#editModal').modal('show');
},
save () {
@@ -217,7 +232,8 @@ export default {
zh: $this.trimTextArea(form.zh),
en: $this.trimTextArea(form.en),
ar: $this.trimTextArea(form.ar),
tr: $this.trimTextArea(form.tr)
tr: $this.trimTextArea(form.tr),
pt: $this.trimTextArea(form.pt),
};
saveI18nMessage(params).then(res => {

View File

@@ -160,6 +160,7 @@
<input type="checkbox" name="partitionFlag" value="4"/>华语区<br>
<input type="checkbox" name="partitionFlag" value="8"/>土耳其区<br>
<input type="checkbox" name="partitionFlag" value="16"/>英语2区<br>
<input type="checkbox" name="partitionFlag" value="32"/>葡萄牙语区<br>
</div>
</div>
<div class="form-group">
@@ -198,6 +199,12 @@
<input type="text" class="form-control validate[required]" name="giftName" id="giftTrName">
</div>
</div>
<div class="form-group">
<label for="giftPtName" class="col-sm-2 control-label">葡萄牙语礼物名称</label>
<div class="col-sm-10">
<input type="text" class="form-control validate[required]" name="giftName" id="giftPtName">
</div>
</div>
<div class="form-group">
<label for="goldPrice" class="col-sm-2 control-label">礼物价格</label>
<div class="col-sm-10">
@@ -682,7 +689,8 @@ export default {
{field: 'giftName.zh', title: '礼物名称', align: 'center', width: '15%'},
{field: 'giftName.ar', title: '阿语礼物名称', align: 'center', width: '10%'},
{field: 'giftName.en', title: '英语礼物名称', align: 'center', width: '10%'},
{field: 'giftName.tr', title: '土耳其礼物名称', align: 'center', width: '10%'},
{field: 'giftName.tr', title: '土耳其礼物名称', align: 'center', width: '10%'},
{field: 'giftName.pt', title: '葡萄牙语礼物名称', align: 'center', width: '10%'},
{
field: 'partitionFlag',
title: '地区',
@@ -705,6 +713,9 @@ export default {
if ((val & 16) != 0) {
value += '英语2区<br>';
}
if ((val & 32) != 0) {
value += '葡萄牙语区<br>';
}
return value;
}
},
@@ -721,7 +732,7 @@ export default {
}
}
},
{ field: 'goldPrice', title: '礼物价格', align: 'center', width: '10%' },
{ field: 'goldPtice', title: '礼物价格', align: 'center', width: '10%' },
{
field: 'consumeType',
title: '消费类型',
@@ -892,7 +903,7 @@ export default {
showRefresh: false,
pageSize: 10,
pagination: true,
pageList: [1, 10, 20, 30, 50],
pageList: [10, 20, 50],
search: false,
sidePagination: "server", //表示服务端请求
//设置为undefined可以获取pageNumberpageSizesearchTextsortNamesortOrder
@@ -932,6 +943,8 @@ export default {
zh: value,
ar: value,
en: value,
tr: value,
pt: value
};
}
return i;
@@ -1293,7 +1306,8 @@ export default {
$("input:checkbox[name='partitionFlag']")[2].checked = false;
$("input:checkbox[name='partitionFlag']")[3].checked = false;
$("input:checkbox[name='partitionFlag']")[4].checked = false;
console.log("btnEdit");
$("input:checkbox[name='partitionFlag']")[5].checked = false;
var id = $(this).attr("data-id");
$this.files = {};
$.ajax({
@@ -1321,6 +1335,7 @@ export default {
$("#giftEnName").val(jsonName.en);
// 土耳其
$("#giftTrName").val(jsonName.tr);
$("#giftPtName").val(jsonName.pt);
} else {
$("#giftName").val(giftName);
// 阿语名称
@@ -1329,6 +1344,7 @@ export default {
$("#giftEnName").val(giftName);
// 土耳其名称
$("#giftTrName").val(giftName);
$("#giftPtName").val(giftName);
}
$("#goldPrice").val(json.entity.goldPrice);
@@ -1434,8 +1450,6 @@ export default {
}
//分区
console.log(partitionFlag & 2);
console.log(partitionFlag & 4);
if ((partitionFlag & 1) != 0) {
$("input:checkbox[name='partitionFlag']")[0].checked = true;
} else {
@@ -1461,6 +1475,11 @@ export default {
} else {
$("input:checkbox[name='partitionFlag']")[4].checked = false;
}
if ((partitionFlag & 32) != 0) {
$("input:checkbox[name='partitionFlag']")[5].checked = true;
} else {
$("input:checkbox[name='partitionFlag']")[5].checked = false;
}
// 打开编辑弹窗
$("#giftModal").modal('show');
} else {
@@ -1487,8 +1506,9 @@ export default {
var en_name = $("#giftEnName").val();
// 土耳其名称
var tr_name = $("#giftTrName").val();
var pt_name = $("#giftPtName").val();
// 国际化字段
var jsonName = {"zh":name,"ar":ar_name,"en":en_name,'tr':tr_name}
var jsonName = {"zh":name,"ar":ar_name,"en":en_name,'tr':tr_name, 'pt':pt_name}
const nameValue = JSON.stringify(jsonName);
// 修改属性值
formData.giftName = nameValue; // 将giftName修改为"newGiftName"

View File

@@ -8,34 +8,36 @@
<section class="content">
<div id="table"></div>
<div id="toolbar">
<label for="erbanNum" class="col-sm-2 control-label"
>消息类型:</label
>
<label for="erbanNum"
class="col-sm-2 control-label">消息类型:</label>
<div class="col-sm-3">
<span>
<select name="msgType" id="type" class="form-control input-m">
<select name="msgType"
id="type"
class="form-control input-m">
<option value="0">文本</option>
<option value="1">图片</option>
<option value="100">图文</option>
</select>
</span>
</div>
<label for="erbanNum" class="col-sm-2 control-label">平台号:</label>
<label for="erbanNum"
class="col-sm-2 control-label">平台号:</label>
<div class="col-sm-3">
<span>
<input
type="text"
<input type="text"
class="form-control validate[required]"
name="erbanNo"
id="erbanNum"
/>
id="erbanNum" />
</span>
</div>
<div class="col-sm-12">
<button id="btnSearch" class="btn btn-sm btn-primary">
<button id="btnSearch"
class="btn btn-sm btn-primary">
查询
</button>
<button id="add" class="btn btn-sm btn-default">
<button id="add"
class="btn btn-sm btn-default">
<i class="glyphicon glyphicon-plus"></i>增加
</button>
</div>
@@ -45,62 +47,59 @@
</div>
</section>
<div
class="modal fade"
<div class="modal fade"
id="addSendMessage"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel2"
>
<div class="modal-dialog" role="document">
aria-labelledby="modalLabel2">
<div class="modal-dialog"
role="document">
<div class="modal-content">
<div class="modal-header">
<button
type="button"
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close"
>
aria-label="Close">
<span aria-hidden="true">x</span>
</button>
<h4 class="modal-title" id="addModalLabel">新增消息</h4>
<h4 class="modal-title"
id="addModalLabel">新增消息</h4>
</div>
<div class="modal-body">
<form id="addMsgForm" class="form-horizontal">
<form id="addMsgForm"
class="form-horizontal">
<div class="form-group">
<label for="receiver" class="col-sm-3 control-label"
>选择分区</label
>
<label for="receiver"
class="col-sm-3 control-label">选择分区</label>
<div class="col-sm-8">
<select
name="partitionId"
<select name="partitionId"
id="partitionId"
data-btn-class="btn-warning"
class="form-control"
></select>
class="form-control"></select>
</div>
</div>
<div class="form-group">
<label for="receiver" class="col-sm-3 control-label"
>接收者</label
>
<label for="receiver"
class="col-sm-3 control-label">接收者</label>
<div class="col-sm-8">
<select
name="receivers"
<select name="receivers"
id="receiver"
class="col-sm-3 form-control"
>
class="col-sm-3 form-control">
<option value="1">所有用户</option>
<option value="0">指定用户</option>
</select>
</div>
</div>
<div class="form-group" id="appIdDiv">
<label for="appId" class="col-sm-3 control-label">渠道</label>
<div class="form-group"
id="appIdDiv">
<label for="appId"
class="col-sm-3 control-label">渠道</label>
<div class="col-sm-8">
<select name="appId" id="appId" class="col-sm-3 form-control">
<select name="appId"
id="appId"
class="col-sm-3 form-control">
<option value="">全部</option>
<option value="official">安卓官方包</option>
<option value="google">安卓谷歌包</option>
@@ -111,15 +110,12 @@
</div>
<div class="form-group">
<label for="msgType" class="col-sm-3 control-label"
>消息类型</label
>
<label for="msgType"
class="col-sm-3 control-label">消息类型</label>
<div class="col-sm-8">
<select
name="msgTypeList"
<select name="msgTypeList"
id="msgType"
class="col-sm-3 form-control"
>
class="col-sm-3 form-control">
<option value="0">文本</option>
<option value="1">图片</option>
<option value="100">图文</option>
@@ -127,173 +123,152 @@
</div>
</div>
<div class="form-group" id="skipUrlDiv">
<label for="skip" class="col-sm-3 control-label"
>跳转来源</label
>
<div class="form-group"
id="skipUrlDiv">
<label for="skip"
class="col-sm-3 control-label">跳转来源</label>
<div class="col-sm-8">
<select name="skip" id="skip" class="col-sm-3 form-control">
<select name="skip"
id="skip"
class="col-sm-3 form-control">
<option value=""></option>
<option value="2">跳H5页面</option>
<option value="1" id="skipRoomType">跳转房间</option>
<option value="1"
id="skipRoomType">跳转房间</option>
</select>
</div>
<label
for="skipUrlContent"
class="col-sm-3 control-label"
></label>
<label for="skipUrlContent"
class="col-sm-3 control-label"></label>
<div class="col-sm-8">
<input
type="text"
<input type="text"
class="form-control"
name="skipUri"
id="skipUrlContent"
/>
id="skipUrlContent" />
</div>
</div>
<div class="form-group" id="mmm">
<label for="aimErbanNo" class="col-sm-3 control-label"
>请输入指定平台号多个平台号用逗号隔开</label
>
<div class="form-group"
id="mmm">
<label for="aimErbanNo"
class="col-sm-3 control-label">请输入指定平台号多个平台号用逗号隔开</label>
<div class="col-sm-8">
<input
class="form-control validate[required]"
<input class="form-control validate[required]"
name="aimErbanNo"
id="aimErbanNo"
/>
id="aimErbanNo" />
</div>
</div>
<div class="form-group" id="nnn">
<label for="words" class="col-sm-3 control-label">文本</label>
<div class="col-sm-8" style="padding: 0px 7px 0 22px">
<textarea
class="form-control validate[required]"
<div class="form-group"
id="nnn">
<label for="words"
class="col-sm-3 control-label">文本</label>
<div class="col-sm-8"
style="padding: 0px 7px 0 22px">
<textarea class="form-control validate[required]"
name="words"
id="words"
rows="16"
></textarea>
rows="16"></textarea>
</div>
</div>
<div class="form-group" id="ppp">
<label for="pic" class="col-sm-3 control-label">图片</label>
<div class="form-group"
id="ppp">
<label for="pic"
class="col-sm-3 control-label">图片</label>
<div class="col-sm-8">
<img
src=""
<img src=""
id="imgUrl"
style="width: 250px; height: 90px"
alt=""
/>
<input
type="file"
alt="" />
<input type="file"
id="uploadFile"
name="uploadFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg"
/>
<button class="btn btn-success" type="button" id="uploadBtn">
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" />
<button class="btn btn-success"
type="button"
id="uploadBtn">
上传
</button>
<span class="attention"
>注意:图片尺寸请注意在750*250,选择图片后请点击上传按钮</span
>
<input
type="hidden"
<span class="attention">注意:图片尺寸请注意在750*250,选择图片后请点击上传按钮</span>
<input type="hidden"
id="pic"
name="pic"
class="form-control validate[required]"
/>
class="form-control validate[required]" />
</div>
</div>
<div class="form-group" id="ooo">
<label for="wordsAndPic1" class="col-sm-3 control-label"
>图文</label
>
<div class="form-group"
id="ooo">
<label for="wordsAndPic1"
class="col-sm-3 control-label">图文</label>
<div class="col-sm-8">
标题:<input
class="form-control validate[required]"
标题:<input class="form-control validate[required]"
name="title"
id="title"
/>
内容:<input
class="form-control validate[required]"
id="title" />
内容:<input class="form-control validate[required]"
name="desc"
id="desc"
/>
id="desc" />
<!--封面图-->
<img
src=""
<img src=""
id="imgUrl1"
style="width: 250px; height: 90px"
alt=""
/>
<input
type="file"
alt="" />
<input type="file"
id="uploadFile1"
name="uploadFile"
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg"
/>
<button class="btn btn-success" type="button" id="uploadBtn1">
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" />
<button class="btn btn-success"
type="button"
id="uploadBtn1">
上传
</button>
封面图:<span class="attention"
>尺寸小于750*250,选择图片后请点击上传按钮</span
>
<input
type="hidden"
封面图:<span class="attention">尺寸小于750*250,选择图片后请点击上传按钮</span>
<input type="hidden"
id="wordsAndPic1"
name="wordsAndPic1"
class="form-control validate[required]"
/>
class="form-control validate[required]" />
</div>
</div>
<div class="form-group">
<label for="pushTime" class="col-sm-3 control-label"
>推送时间(非必填)</label
>
<label for="pushTime"
class="col-sm-3 control-label">推送时间(非必填)</label>
<div class="col-sm-8">
<input
type="text"
<input type="text"
class="input-sm form-control datetime"
name="pushTime"
id="pushTime"
/>
id="pushTime" />
</div>
</div>
<div class="form-group">
<label for="ignoreVersion" class="col-sm-3 control-label"
>不接收用户版本(非必填)</label
>
<label for="ignoreVersion"
class="col-sm-3 control-label">不接收用户版本(非必填)</label>
<div class="col-sm-8">
<input
type="text"
<input type="text"
class="input-sm form-control"
name="ignoreVersion"
id="ignoreVersion"
/>
id="ignoreVersion" />
</div>
</div>
<div class="form-group">
<label for="ignoreChannel" class="col-sm-3 control-label"
>不接收用户渠道(非必填)</label
>
<label for="ignoreChannel"
class="col-sm-3 control-label">不接收用户渠道(非必填)</label>
<div class="col-sm-8">
<input
type="text"
<input type="text"
class="input-sm form-control"
name="ignoreChannel"
id="ignoreChannel"
/>
id="ignoreChannel" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
取消
</button>
<button type="button" class="btn btn-primary" id="addSave">
<button type="button"
class="btn btn-primary"
id="addSave">
保存
</button>
</div>
@@ -307,16 +282,16 @@ import TableHelper from "@/utils/bootstrap-table-helper";
var partitionArray;
export default {
name: "MessageAdminView",
setup() {
setup () {
return {};
},
created() {
created () {
this.$nextTick(function () {
this.initData();
});
},
methods: {
initData() {
initData () {
$(function () {
//分区
partitionArray = listPartitionInfo();
@@ -366,6 +341,9 @@ export default {
if ((val & 16) != 0) {
value += '英语2区<br>';
}
if ((val & 32) != 0) {
value += '葡萄牙语<br>';
}
return value;
},
},
@@ -540,10 +518,7 @@ export default {
var date = new Date(pushTime);
let format = date.format("yyyy-MM-dd hh:mm");
let now = new Date().format("yyyy-MM-dd hh:mm");
console.log("format: " + format);
console.log("now: " + now);
let condition = format > now;
console.log("condition: " + condition);
if (condition && row.pushStatus == 0) {
var str =
"<button class='btn btn-sm btn-danger opt-del' data-id=" +
@@ -565,7 +540,7 @@ export default {
sidePagination: "server", //表示服务端请求
queryParamsType: "undefined",
queryParams: function queryParams(params) {
queryParams: function queryParams (params) {
var param = {
pageSize: params.pageSize,
pageNumber: params.pageNumber,
@@ -588,7 +563,7 @@ export default {
});
//分区
function listPartitionInfo() {
function listPartitionInfo () {
var array;
$.ajax({
type: "get",
@@ -810,7 +785,7 @@ export default {
},
};
function clear() {
function clear () {
$("#imgUrl").attr("src", "");
$("#imgUrl1").attr("src", "");
$("#imgUrl2").attr("src", "");