2022-10-11 10:57:21 +08:00

256 lines
6.7 KiB
Vue

<template>
<div>
<div class="i-layout-page-header">
<div class="i-layout-page-header">
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
</div>
</div>
<Card :bordered="false" dis-hover class="ivu-mt">
<Row type="flex">
<Col v-bind="grid">
<Button v-auth="['admin-template']" type="primary" icon="md-add" @click="add">添加模板</Button>
</Col>
</Row>
<Table
:columns="columns1"
:data="list"
ref="table"
class="mt25"
:loading="loading"
highlight-row
no-userFrom-text="暂无数据"
no-filtered-userFrom-text="暂无筛选结果"
>
<template slot-scope="{ row, index }" slot="region">
<div class="font-blue">首页</div>
</template>
<template slot-scope="{ row, index }" slot="action">
<div style="display: inline-block" v-if="row.status != 1">
<a @click="setStatus(row, index)">设为首页</a>
</div>
<Divider type="vertical" v-if="row.status != 1" />
<div style="display: inline-block" v-if="row.status || row.type">
<a @click="edit(row)">编辑</a>
</div>
<Divider type="vertical" v-if="row.status || row.type" />
<template>
<Dropdown @on-click="changeMenu(row, index, $event)" :transfer="true">
<a href="javascript:void(0)"
>更多
<Icon type="ios-arrow-down"></Icon>
</a>
<DropdownMenu slot="list">
<DropdownItem name="1" v-show="!row.type">设置默认数据</DropdownItem>
<DropdownItem name="2" v-show="!row.type">恢复默认数据</DropdownItem>
<DropdownItem name="3" v-show="row.id != 1">删除模板</DropdownItem>
</DropdownMenu>
</Dropdown>
</template>
</template>
</Table>
</Card>
<Modal
v-model="isTemplate"
scrollable
footer-hide
closable
title="开发移动端链接"
:z-index="1"
width="500"
@on-cancel="cancel"
>
<div class="article-manager">
<Card :bordered="false" dis-hover class="ivu-mt">
<Form
ref="formItem"
:model="formItem"
:label-width="120"
label-position="right"
:rules="ruleValidate"
@submit.native.prevent
>
<Row type="flex" :gutter="24">
<Col span="24">
<Col v-bind="grid">
<FormItem label="开发移动端链接:" prop="link" label-for="link">
<Input v-model="formItem.link" placeholder="http://localhost:8080" />
</FormItem>
</Col>
</Col>
</Row>
<Row type="flex">
<Col v-bind="grid">
<Button type="primary" class="ml20" @click="handleSubmit('formItem')" style="width: 100%">提交</Button>
</Col>
</Row>
</Form>
</Card>
</div>
</Modal>
</div>
</template>
<script>
import { diyList, diyDel, setStatus, recovery, getDiyCreate, getRecovery } from '@/api/diy';
import { getCookies, setCookies } from '@/libs/util';
import { mapState } from 'vuex';
export default {
name: 'devise_list',
data() {
return {
grid: {
xl: 18,
lg: 18,
md: 18,
sm: 24,
xs: 24,
},
loading: false,
columns1: [
{
title: '页面ID',
key: 'id',
minWidth: 120,
},
{
title: '页面名称',
key: 'name',
minWidth: 170,
},
{
title: '页面类型',
key: 'template_name',
minWidth: 120,
},
{
title: '添加时间',
key: 'add_time',
minWidth: 170,
},
{
title: '更新时间',
key: 'update_time',
minWidth: 170,
},
{
title: '操作',
slot: 'action',
fixed: 'right',
minWidth: 300,
},
],
list: [],
isTemplate: false,
formItem: {
id: 0,
link: '',
},
ruleValidate: {
link: [{ required: true, message: '请输入移动端链接', trigger: 'blur' }],
},
};
},
created() {
this.formItem.link = getCookies('moveLink');
this.getList();
},
methods: {
cancel() {
this.$refs['formItem'].resetFields();
},
handleSubmit(name) {
this.$refs[name].validate((valid) => {
if (valid) {
setCookies('moveLink', this.formItem.link);
this.$router.push({ path: '/admin/setting/pages/diy', query: { id: this.formItem.id, type: 1 } });
} else {
return false;
}
});
},
changeMenu(row, index, name) {
switch (name) {
case '1':
this.setDefault(row);
break;
case '2':
this.recovery(row);
break;
case '3':
this.del(row, '删除此模板', index);
break;
default:
}
},
//设置默认数据
setDefault(row) {
getRecovery(row.id)
.then((res) => {
this.$Message.success(res.msg);
this.getList();
})
.catch((err) => {
this.$Message.error(err.msg);
});
},
// 添加
add() {
this.$modalForm(getDiyCreate()).then(() => this.getList());
},
// 获取列表
getList() {
this.loading = true;
diyList().then((res) => {
this.loading = false;
this.list = res.data.list;
});
},
// 编辑
edit(row) {
this.formItem.id = row.id;
if (row.type) {
this.isTemplate = true;
} else {
this.$router.push({ path: '/admin/setting/pages/diy', query: { id: row.id, type: 0 } });
}
},
// 删除
del(row, tit, num) {
let delfromData = {
title: tit,
num: num,
url: `diy/del/${row.id}`,
method: 'DELETE',
ids: '',
};
this.$modalSure(delfromData)
.then((res) => {
this.getList();
})
.catch((res) => {
this.$Message.error(res.msg);
});
},
// 使用模板
setStatus(row) {
setStatus(row.id)
.then((res) => {
this.$Message.success(res.msg);
this.getList();
})
.catch((error) => {
this.$Message.error(error.msg);
});
},
recovery(row) {
recovery(row.id).then((res) => {
this.$Message.success(res.msg);
this.getList();
});
},
},
};
</script>
<style scoped></style>