调整
This commit is contained in:
parent
ec294b5713
commit
5ab32ba017
@ -51,6 +51,55 @@ export function parseTime(time, cFormat) {
|
||||
return time_str
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the time to string
|
||||
* @param {(Object|string|number)} time
|
||||
* @param {string} cFormat
|
||||
* @returns {string | null}
|
||||
*/
|
||||
export function parseUTCTime(time, cFormat) {
|
||||
if (arguments.length === 0 || !time) {
|
||||
return null
|
||||
}
|
||||
const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
|
||||
let date
|
||||
if (typeof time === 'object') {
|
||||
date = time
|
||||
} else {
|
||||
if ((typeof time === 'string')) {
|
||||
if ((/^[0-9]+$/.test(time))) {
|
||||
// support "1548221490638"
|
||||
time = parseInt(time)
|
||||
} else {
|
||||
// support safari
|
||||
// https://stackoverflow.com/questions/4310953/invalid-date-in-safari
|
||||
time = time.replace(new RegExp(/-/gm), '/')
|
||||
}
|
||||
}
|
||||
|
||||
if ((typeof time === 'number')) {
|
||||
time = time * 1000
|
||||
}
|
||||
date = new Date(time)
|
||||
}
|
||||
const formatObj = {
|
||||
y: date.getUTCFullYear(),
|
||||
m: date.getUTCMonth() + 1,
|
||||
d: date.getUTCDate(),
|
||||
h: date.getUTCHours(),
|
||||
i: date.getUTCMinutes(),
|
||||
s: date.getUTCSeconds(),
|
||||
a: date.getUTCDay()
|
||||
}
|
||||
const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
|
||||
const value = formatObj[key]
|
||||
// Note: getDay() returns 0 on Sunday
|
||||
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
|
||||
return value.toString().padStart(2, '0')
|
||||
})
|
||||
return time_str
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {number} time
|
||||
* @param {string} option
|
||||
|
@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
<!--div class="filter-container">
|
||||
<el-button v-show="visibleAddannouncement" class="filter-item" style="margin-left: 10px;" type="primary" @click="handleCreate">
|
||||
新增公告
|
||||
</el-button>
|
||||
</div>
|
||||
</div-->
|
||||
<el-table
|
||||
:data="anncList"
|
||||
border
|
||||
@ -18,34 +18,46 @@
|
||||
<!-- label="日期"-->
|
||||
<!-- >-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column
|
||||
prop="annc_type"
|
||||
label="公告类型"
|
||||
width="150"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.annc_type === 1" effect="plain" type="">最低版本支持公告</el-tag>
|
||||
<el-tag v-if="scope.row.annc_type === 2" effect="plain" type="">白名单版本公告</el-tag>
|
||||
<el-tag v-if="scope.row.annc_type === 3" effect="plain" type="">当前版本公告</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="title"
|
||||
label="标题"
|
||||
width="180"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="version"
|
||||
label="版本"
|
||||
width="100"
|
||||
width="60"
|
||||
/>
|
||||
<el-table-column
|
||||
label="型号"
|
||||
label="平台"
|
||||
width="80"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<svg-icon v-if="scope.row.model === 1" style="font-size: 20px;color: #4A9FF9" icon-class="Android" />
|
||||
<svg-icon v-if="scope.row.model === 2" style="font-size: 20px;color: #333333" icon-class="IOS" />
|
||||
<svg-icon v-if="scope.row.platform === 1" style="font-size: 20px;color: #4A9FF9" icon-class="Android" />
|
||||
<svg-icon v-if="scope.row.platform === 2" style="font-size: 20px;color: #333333" icon-class="IOS" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="类型"
|
||||
width="80"
|
||||
width="120"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.type === 1" effect="plain" type="warning">停服</el-tag>
|
||||
<el-tag v-if="scope.row.type === 2" effect="plain" type="">普通</el-tag>
|
||||
<el-tag v-if="scope.row.click_type === 0" effect="plain" type="warning">不能进游戏</el-tag>
|
||||
<el-tag v-if="scope.row.click_type === 1" effect="plain" type="">可以进游戏</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
@ -54,10 +66,15 @@
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<svg-icon v-if="scope.row.is_effect === 1" icon-class="ok" style="font-size: 20px;" />
|
||||
<svg-icon v-if="scope.row.enable === 1" icon-class="ok" style="font-size: 20px;" />
|
||||
<svg-icon v-else icon-class="no" style="font-size: 20px;" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="desc"
|
||||
label="描述"
|
||||
width="195"
|
||||
/>
|
||||
<el-table-column
|
||||
label="公告内容"
|
||||
prop="content"
|
||||
@ -82,21 +99,21 @@
|
||||
<el-form-item label="Version" prop="version">
|
||||
<el-input v-model="form.version" />
|
||||
</el-form-item>
|
||||
<el-form-item label="型号" prop="model">
|
||||
<el-radio-group v-model="form.model">
|
||||
<el-form-item label="型号" prop="platform">
|
||||
<el-radio-group v-model="form.platform">
|
||||
<el-radio :label="1">Android</el-radio>
|
||||
<el-radio :label="2">IOS</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="公告类型" prop="type">
|
||||
<el-radio-group v-model="form.type">
|
||||
<el-radio :label="1">停服公告</el-radio>
|
||||
<el-radio :label="2">普通公告</el-radio>
|
||||
<el-form-item label="类型" prop="click_type">
|
||||
<el-radio-group v-model="form.click_type">
|
||||
<el-radio :label="0">不能进游戏</el-radio>
|
||||
<el-radio :label="1">可以进游戏</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否生效">
|
||||
<el-switch
|
||||
v-model="form.is_effect"
|
||||
v-model="form.enable"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
active-color="#13ce66"
|
||||
@ -143,12 +160,13 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
form: {
|
||||
annc_type: '',
|
||||
title: '',
|
||||
type: '',
|
||||
click_type: '',
|
||||
content: '',
|
||||
version: '',
|
||||
model: '',
|
||||
is_effect: 1
|
||||
platform: '',
|
||||
enable: 1
|
||||
},
|
||||
dialogFormVisible: false,
|
||||
dialogStatus: '',
|
||||
@ -160,8 +178,8 @@ export default {
|
||||
rules: {
|
||||
title: [{ required: true, message: 'title is required', trigger: 'blur' }],
|
||||
version: [{ required: true, message: 'version is required', trigger: 'blur' }],
|
||||
model: [{ required: true, message: '请选择型号', trigger: 'blur' }],
|
||||
type: [{ required: true, message: '请选择公告类型', trigger: 'blur' }],
|
||||
platform: [{ required: true, message: '请选择型号', trigger: 'blur' }],
|
||||
click_type: [{ required: true, message: '是否可进游戏', trigger: 'blur' }],
|
||||
content: [{ required: true, message: '请输入公告内容', trigger: 'blur' }]
|
||||
}
|
||||
}
|
||||
@ -183,12 +201,13 @@ export default {
|
||||
methods: {
|
||||
handleUpdate(row) {
|
||||
console.log(row)
|
||||
this.form.annc_type = row.annc_type
|
||||
this.form.title = row.title
|
||||
this.form.version = row.version
|
||||
this.form.model = row.model
|
||||
this.form.type = row.type
|
||||
this.form.platform = row.platform
|
||||
this.form.click_type = row.click_type
|
||||
this.form.content = row.content
|
||||
this.form.is_effect = row.is_effect
|
||||
this.form.enable = row.enable
|
||||
this.form.idx = row.idx
|
||||
|
||||
this.dialogStatus = 'update'
|
||||
@ -216,12 +235,13 @@ export default {
|
||||
},
|
||||
resetTemp() {
|
||||
this.form = {
|
||||
annc_type: '',
|
||||
title: '',
|
||||
type: '',
|
||||
click_type: '',
|
||||
content: '',
|
||||
version: '',
|
||||
model: '',
|
||||
is_effect: 1
|
||||
platform: '',
|
||||
enable: 1
|
||||
}
|
||||
},
|
||||
createData() {
|
||||
|
@ -20,22 +20,44 @@
|
||||
<el-table-column
|
||||
prop="begin_time"
|
||||
label="发送时间"
|
||||
width="160"
|
||||
width="80"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{ parseTime(scope.row.begin_time) }}
|
||||
{{ parseUTCTime(scope.row.begin_time, '{h}:{i}:{s}') }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="end_time"
|
||||
label="停止时间"
|
||||
width="160"
|
||||
width="80"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{ parseTime(scope.row.end_time) }}
|
||||
{{ parseUTCTime(scope.row.end_time, '{h}:{i}:{s}') }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="begin_date"
|
||||
label="开始日期"
|
||||
width="95"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{ parseUTCTime(scope.row.begin_date, '{y}-{m}-{d}') }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="end_date"
|
||||
label="结束日期"
|
||||
width="95"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{ parseUTCTime(scope.row.end_date, '{y}-{m}-{d}') }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -70,10 +92,16 @@
|
||||
<el-input v-model="form.title" />
|
||||
</el-form-item>
|
||||
<el-form-item label-width="120px" label="发送时间>=:" prop="begin_time">
|
||||
<el-date-picker v-model.number="form.begin_time" type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" placeholder="Select date and time" required />
|
||||
<el-date-picker v-model.number="form.begin_time" type="datetime" :format="formattedUTCBeginTime" value-format="timestamp" placeholder="Select time" required />
|
||||
</el-form-item>
|
||||
<el-form-item label-width="120px" label="发送时间<=:" class="postInfo-container-item" prop="end_time">
|
||||
<el-date-picker v-model.number="form.end_time" type="datetime" format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" placeholder="Select date and time" required />
|
||||
<el-form-item label-width="120px" label="发送时间<=:" prop="end_time">
|
||||
<el-date-picker v-model.number="form.end_time" type="datetime" :format="formattedUTCEndTime" value-format="timestamp" placeholder="Select time" required />
|
||||
</el-form-item>
|
||||
<el-form-item label-width="120px" label="开始日期>=:" prop="begin_date">
|
||||
<el-date-picker v-model.number="form.begin_date" type="datetime" :format="formattedUTCBeginDate" value-format="timestamp" placeholder="Select date" required />
|
||||
</el-form-item>
|
||||
<el-form-item label-width="120px" label="结束日期<=:" prop="end_date">
|
||||
<el-date-picker v-model.number="form.end_date" type="datetime" :format="formattedUTCEndDate" value-format="timestamp" placeholder="Select date" required />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否生效">
|
||||
<el-switch
|
||||
@ -106,7 +134,7 @@
|
||||
import { addIngameAnnc, getIngameAnncList, updateIngameAnnc } from '@/api/announcement'
|
||||
import { Message } from 'element-ui'
|
||||
import { checkuipermission } from '@/store/modules/permission'
|
||||
import { parseTime } from '@/utils'
|
||||
import { parseUTCTime } from '@/utils'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
@ -119,6 +147,8 @@ export default {
|
||||
title: '',
|
||||
begin_time: '',
|
||||
end_time: '',
|
||||
begin_date: '',
|
||||
end_date: '',
|
||||
content: '',
|
||||
is_open: 1
|
||||
},
|
||||
@ -133,11 +163,43 @@ export default {
|
||||
title: [{ required: true, message: 'required', trigger: 'blur' }],
|
||||
begin_time: [{ required: true, message: 'required', trigger: 'blur' }],
|
||||
end_time: [{ required: true, message: 'required', trigger: 'blur' }],
|
||||
begin_date: [{ required: true, message: 'required', trigger: 'blur' }],
|
||||
end_date: [{ required: true, message: 'required', trigger: 'blur' }],
|
||||
content: [{ required: true, message: 'required', trigger: 'blur' }]
|
||||
},
|
||||
data: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
formattedUTCBeginDate() {
|
||||
if (!this.form.begin_date) {
|
||||
return ''
|
||||
}
|
||||
|
||||
return 'UTC: ' + parseUTCTime(this.form.begin_date / 1000, '{y}-{m}-{d}')
|
||||
},
|
||||
formattedUTCEndDate() {
|
||||
if (!this.form.end_date) {
|
||||
return ''
|
||||
}
|
||||
|
||||
return 'UTC: ' + parseUTCTime(this.form.end_date / 1000, '{y}-{m}-{d}')
|
||||
},
|
||||
formattedUTCBeginTime() {
|
||||
if (!this.form.begin_time) {
|
||||
return ''
|
||||
}
|
||||
|
||||
return 'UTC: ' + parseUTCTime(this.form.begin_time / 1000, '{h}:{i}:{s}')
|
||||
},
|
||||
formattedUTCEndTime() {
|
||||
if (!this.form.end_time) {
|
||||
return ''
|
||||
}
|
||||
|
||||
return 'UTC: ' + parseUTCTime(this.form.end_time / 1000, '{h}:{i}:{s}')
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
if (checkuipermission('addannouncement')) {
|
||||
@ -153,12 +215,13 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
parseTime,
|
||||
parseUTCTime,
|
||||
handleUpdate(row) {
|
||||
console.log(row)
|
||||
this.form.title = row.title
|
||||
this.form.begin_time = row.begin_time * 1000
|
||||
this.form.end_time = row.end_time * 1000
|
||||
this.form.begin_date = row.begin_date * 1000
|
||||
this.form.end_date = row.end_date * 1000
|
||||
this.form.content = row.content
|
||||
this.form.is_open = row.is_open
|
||||
this.form.idx = row.idx
|
||||
@ -201,6 +264,8 @@ export default {
|
||||
this.data = JSON.parse(JSON.stringify(this.form))
|
||||
this.data.begin_time /= 1000
|
||||
this.data.end_time /= 1000
|
||||
this.data.begin_date /= 1000
|
||||
this.data.end_date /= 1000
|
||||
addIngameAnnc(this.data).then(response => {
|
||||
if (response.code === 0) {
|
||||
this.dialogFormVisible = false
|
||||
@ -221,6 +286,8 @@ export default {
|
||||
this.data = JSON.parse(JSON.stringify(this.form))
|
||||
this.data.begin_time /= 1000
|
||||
this.data.end_time /= 1000
|
||||
this.data.begin_date /= 1000
|
||||
this.data.end_date /= 1000
|
||||
updateIngameAnnc(this.data).then(response => {
|
||||
if (response.code === 0) {
|
||||
this.dialogFormVisible = false
|
||||
|
Loading…
x
Reference in New Issue
Block a user