Browse Source

页面配置详情页

master
aBin 3 years ago
parent
commit
5fdfd470fe
  1. 2
      src/router/menus/others.js
  2. 95
      src/views/lists/index.vue
  3. 48
      src/views/otherPage/form.vue
  4. 306
      src/views/otherPage/index.vue

2
src/router/menus/others.js

@ -8,7 +8,7 @@ const others = {
{
path: '/others0',
code: '9904',
component: () => import('@/views/lists/index'),
component: () => import('@/views/otherPage/index'),
name: '页面配置',
meta: {title: '页面配置', noCache: false, affix: false},
},

95
src/views/lists/index.vue

@ -12,38 +12,63 @@
</el-table-column>
<el-table-column prop="startTime" label="开始时间">
<template slot-scope="lists">
<span v-if="lists.row.startTime-0">
{{ $moment(lists.row.startTime-0).format("YYYY-MM-DD HH:mm") }}
</span>
<span v-else>
暂无
</span>
<div @click="changeStatus(lists.$index,'startTime')">
<!-- <el-input v-if="statusCode === 'startTime' && statusIndex === lists.$index" :value="lists.row.startTime" /> -->
<el-date-picker
v-if="statusCode === 'startTime' && statusIndex === lists.$index"
v-model="lists.row.startTime"
type="datetime"
placeholder="选择开始时间"
@change="changeTime(lists.row,'startTime',$event)"
>
</el-date-picker>
<div v-else>
<span v-if="lists.row.startTime-0">
{{ $moment(lists.row.startTime-0).format("YYYY-MM-DD HH:mm") }}
</span>
<span v-else>
暂无
</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="endTime" label="结束时间">
<template slot-scope="lists">
<span v-if="lists.row.endTime-0">
{{ $moment(lists.row.endTime-0).format("YYYY-MM-DD HH:mm") }}
</span>
<span v-else>
暂无
</span>
<div @click="changeStatus(lists.$index,'endTime')">
<el-date-picker
v-if="statusCode === 'endTime' && statusIndex === lists.$index"
v-model="lists.row.endTime"
type="datetime"
placeholder="选择开始时间"
@change="changeTime(lists.row,'endTime',$event)"
>
</el-date-picker>
<div v-else>
<span v-if="lists.row.endTime-0">
{{ $moment(lists.row.endTime-0).format("YYYY-MM-DD HH:mm") }}
</span>
<span v-else>
暂无
</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="description" label="常量值">
<el-table-column prop="value" label="常量值">
<template slot-scope="lists">
<div v-for="(item,index) in getValue(lists.row.value)" :key="index">
<div v-for="(item,index) in getValue(lists.row.value)" :key="index" @click="changeStatus(lists.$index,'value')">
<div>{{ item.title }}</div>
<template v-if="Array.isArray(item.value)">
<div v-for="(itemA,indexA) in item.value" :key="indexA">
<span>{{ itemA }}</span>
<el-input :value="itemA" @blur="changeValue($event,item.title,lists.row,indexA)" />
<el-input v-if="statusCode === 'value' && statusIndex === lists.$index" :value="itemA" @blur="changeValue($event,item.title,lists.row,indexA)" />
<span v-else>{{ itemA }}</span>
</div>
</template>
<template v-else>
<div>
<span>{{ item.value }}</span>
<el-input :value="item.value" @blur="changeValue($event,item.title,lists.row)" />
<el-input v-if="statusCode === 'value' && statusIndex === lists.$index" :value="item.value" @blur="changeValue($event,item.title,lists.row)" />
<span v-else>{{ item.value }}</span>
</div>
</template>
</div>
@ -51,7 +76,10 @@
</el-table-column>
<el-table-column prop="description" label="描述">
<template slot-scope="lists">
<span> {{ lists.row.description }} </span>
<div @click="changeStatus(lists.$index,'description')">
<el-input v-if="statusCode === 'description' && statusIndex === lists.$index" :value="lists.row.description" @blur="changeTime(lists.row,'description',$event)" />
<span v-else> {{ lists.row.description }} </span>
</div>
</template>
</el-table-column>
<el-table-column prop="modifyName" label="最后修改人登录名">
@ -108,7 +136,10 @@
description: '',
pageNum: 1,
pageSize: 10,
}
},
statusIndex: -1,
statusCode: '',
}
},
mounted() {
@ -119,6 +150,26 @@
DetailsOfDistribution
},
methods: {
//
changeStatus(index,code) {
this.statusIndex= index;
this.statusCode= code;
},
// /
changeTime(item,type,e) {
const params = {
code: item.code,
constantId: item.constantId,
}
if(type === 'startTime') {
params.startTime = this.$moment(e).valueOf()
} else if (type === 'emdTime') {
params.endTime = this.$moment(e).valueOf()
} else if (type === 'description') {
params.description = e.target.value
}
this.updateData(params)
},
//
submitForm(res) {
this.params = {
@ -174,7 +225,6 @@
itemList.push(obj)
}
}
console.log('itemList',itemList)
return itemList
},
// ,JSON
@ -212,10 +262,11 @@
async updateData(params) {
await UPDATE_DATA(params).then(res => {
const { code } = res
console.log('code: ', code);
if(code === 200) {
Alert.success('修改成功')
this.getList()
this.statusIndex= -1;
this.statusCode= '';
}
});
},

48
src/views/otherPage/form.vue

@ -0,0 +1,48 @@
<template>
<div class="form-container">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="类别">
<el-select v-model="formInline.locationId" value="" placeholder="场地">
<el-option label="全部" value=""></el-option>
<el-option label="其他链接" value="otherLink"></el-option>
<el-option label="漂浮窗" value="piaochuang"></el-option>
</el-select>
</el-form-item>
<el-form-item label="描述">
<el-input v-model="formInline.description" placeholder="描述" />
</el-form-item>
<el-form-item style="padding-left:30px">
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
name: 'form-container',
props: ['label'],
data() {
return {
formInline: {
locationId: '',
description: '',
},
locationId: '',
description: '',
}
},
methods: {
onSubmit() {
this.$emit('submit', this.formInline)
},
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.form-container {
padding: 20px;
background: #fff;
}
</style>

306
src/views/otherPage/index.vue

@ -0,0 +1,306 @@
<template>
<div>
<form-container @submit="submitForm"></form-container>
<div class="table">
<el-table :data="lists" style="width: 100%">
<el-table-column prop="code" label="类型">
<template slot-scope="lists">
<span v-if="lists.row.code === 'piaochuang'">漂浮窗</span>
<span v-else-if="lists.row.code === 'otherLink'">其他链接</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="startTime" label="开始时间">
<template slot-scope="lists">
<div @click="changeStatus(lists.$index,'startTime')">
<!-- <el-input v-if="statusCode === 'startTime' && statusIndex === lists.$index" :value="lists.row.startTime" /> -->
<el-date-picker
v-if="statusCode === 'startTime' && statusIndex === lists.$index"
v-model="lists.row.startTime"
type="datetime"
placeholder="选择开始时间"
@change="changeTime(lists.row,'startTime',$event)"
>
</el-date-picker>
<div v-else>
<span v-if="lists.row.startTime-0">
{{ $moment(lists.row.startTime-0).format("YYYY-MM-DD HH:mm") }}
</span>
<span v-else>
暂无
</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="endTime" label="结束时间">
<template slot-scope="lists">
<div @click="changeStatus(lists.$index,'endTime')">
<el-date-picker
v-if="statusCode === 'endTime' && statusIndex === lists.$index"
v-model="lists.row.endTime"
type="datetime"
placeholder="选择开始时间"
@change="changeTime(lists.row,'endTime',$event)"
>
</el-date-picker>
<div v-else>
<span v-if="lists.row.endTime-0">
{{ $moment(lists.row.endTime-0).format("YYYY-MM-DD HH:mm") }}
</span>
<span v-else>
暂无
</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="value" label="常量值">
<template slot-scope="lists">
<div v-for="(item,index) in getValue(lists.row.value)" :key="index" @click="changeStatus(lists.$index,'value')">
<div>{{ item.title }}</div>
<template v-if="Array.isArray(item.value)">
<div v-for="(itemA,indexA) in item.value" :key="indexA">
<el-input v-if="statusCode === 'value' && statusIndex === lists.$index" :value="itemA" @blur="changeValue($event,item.title,lists.row,indexA)" />
<span v-else>{{ itemA }}</span>
</div>
</template>
<template v-else>
<div>
<el-input v-if="statusCode === 'value' && statusIndex === lists.$index" :value="item.value" @blur="changeValue($event,item.title,lists.row)" />
<span v-else>{{ item.value }}</span>
</div>
</template>
</div>
</template>
</el-table-column>
<el-table-column prop="description" label="描述">
<template slot-scope="lists">
<div @click="changeStatus(lists.$index,'description')">
<el-input v-if="statusCode === 'description' && statusIndex === lists.$index" :value="lists.row.description" @blur="changeTime(lists.row,'description',$event)" />
<span v-else> {{ lists.row.description }} </span>
</div>
</template>
</el-table-column>
<el-table-column prop="modifyName" label="最后修改人登录名">
<template slot-scope="lists">
<span> {{ lists.row.modifyName }} </span>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination
background
:page-size="params.pageSize"
layout="prev, pager, next"
:total="dataList.total - 0"
@current-change="currentChange"
>
</el-pagination>
</div>
</div>
<!-- <el-dialog
width="400px"
:show-close="false"
:visible.sync="isEdit"
>
<details-of-distribution ref="distribution" :currId="id" v-if="isEdit"></details-of-distribution>
<div slot="footer" class="dialog-footer">
<el-button @click="isEdit = false">取消</el-button>
<el-button type="primary" @click="determine('ruleForm')">确定</el-button>
</div>
</el-dialog> -->
</div>
</template>
<script>
const FormContainer = () => import('./form.vue');
import { GET_LIST,UPDATE_DATA } from '@/api/otherPage';
import Alert from "@/utils/alert";
import {pageSize} from '../../config';
export default {
name: "index",
data() {
return {
count: 0,
id: '',
isEdit: false,
lists: [],
dataList: {},
params: {
locationId: '',
description: '',
pageNum: 1,
pageSize: 10,
},
statusIndex: -1,
statusCode: '',
}
},
mounted() {
this.getList()
},
components: { FormContainer },
methods: {
//
changeStatus(index,code) {
this.statusIndex= index;
this.statusCode= code;
},
// /
changeTime(item,type,e) {
const params = {
code: item.code,
constantId: item.constantId,
}
if(type === 'startTime') {
params.startTime = this.$moment(e).valueOf()
} else if (type === 'emdTime') {
params.endTime = this.$moment(e).valueOf()
} else if (type === 'description') {
params.description = e.target.value
}
this.updateData(params)
},
//
submitForm(res) {
this.params = {
...this.params,
pageNum: 1,
description: res.description,
locationId: res.locationId,
};
this.getList()
},
//
async getList() {
await GET_LIST(this.params).then(res => {
const { code,msg,data } = res
if(code === 200) {
this.lists = data.list
this.dataList = data
} else {
Alert(msg)
}
});
},
// JSON
getValue(value) {
const arr = JSON.parse(value)
let itemList = []
if(Array.isArray(arr)) {
for(let i = 0; i < arr.length; i++) {
const item = arr[i]
for(let key in item) {
if(Array.isArray(item[key])) {
const obj = {
title: key,
value: item[key]
}
itemList.push(obj)
} else {
const obj = {
title: item.content,
value: item.url
}
itemList.push(obj)
break
}
}
}
} else {
for(let key in arr) {
const obj = {
title: key,
value: arr[key]
}
itemList.push(obj)
}
}
return itemList
},
// ,JSON
changeValue(e,title,defaultValue,index) {
let dValue = JSON.parse(defaultValue.value);
if(Array.isArray(dValue)) {
for(let i = 0; i < dValue.length; i++) {
const item = dValue[i]
for(let key in item) {
if(Array.isArray(item[key]) && key === title) {
item[key][index] = e.target.value
} else {
if(item.content === title) {
item.url = e.target.value
break;
}
}
}
}
} else {
for(let key in dValue) {
if(key === title) {
dValue[key] = e.target.value
}
}
}
const params = {
code: defaultValue.code,
constantId: defaultValue.constantId,
value: JSON.stringify(dValue)
}
this.updateData(params)
},
//
async updateData(params) {
await UPDATE_DATA(params).then(res => {
const { code } = res
if(code === 200) {
Alert.success('修改成功')
this.getList()
this.statusIndex= -1;
this.statusCode= '';
}
});
},
/**
* 分页
*/
currentChange(res) {
this.params = {
...this.params,
from: parseInt(res - 1) * this.params.size,
size: pageSize,
};
this.getList()
},
editModal(id) {
this.isEdit = true;
this.id = id;
},
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.table {
margin-top: 20px;
padding: 30px;
background: #fff;
.option-span {
color: #a90500;
cursor: pointer;
}
}
.pagination {
margin-top: 20px;
}
</style>
Loading…
Cancel
Save