城阳车管所项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

753 lines
22 KiB

<html xmlns="http://www.w3.org/1999/html">
<head>
<title>静态化</title>
<#include "../../include/head-file.ftl">
<style>
[v-cloak]{
display: none;
}
</style>
</head>
<body class="custom-body">
<div id="app" v-cloak>
<el-form ref="form" label-width="100px" size="mini">
<div class="class-2" >
<div class="class-3" >
<div class="class-4" >
<el-form-item label="主页模板" >
<el-select v-model="template"
:filterable="true"
:clearable="false"
placeholder="请选择主页模板">
<el-option v-for='item in templateOptions' :key="item" :value="item"
:label="item"></el-option>
</el-select>
<div class="ms-form-tip">
一般选择<i>index.htm</i>模版
</div>
</el-form-item>
</div>
<div class="class-7" >
<el-form-item label="主页位置">
<el-input v-model="position"
:disabled="false"
:style="{width: '100%'}"
:clearable="true"
placeholder="请输入主页位置">
</el-input>
<div class="ms-form-tip">
一般为index.html或default.html,
如果是<i>引导页面->首页</i>,可以手动调整主页模版与主页设置,先生成引导页,再生成首页。一般default.html为引导页面index.html为主页(需要服务器容器配置好对应默认页)。<br/>
点击“预览主页”可跳转到网站首页进行预览网站首页<br/>
不能选择有分页标签的页面生成,例如news-list.htm、search.htm<br/>
如果下拉没有出现模版,请检查应用设置是否绑定了模版<br/>
</div>
</el-form-item>
</div>
<div class="class-10" >
<el-form-item>
<@shiro.hasPermission name="cms:generate:index">
<el-button type="primary" @click="updataIndex" :loading="homeLoading">{{homeLoading?'更新中':'生成主页'}}</el-button>
</@shiro.hasPermission>
<el-button plain @click="viewIndex">预览主页</el-button>
</el-form-item>
</div>
</div>
<div class="class-13" >
<div class="class-14" >
<el-form-item label="文章栏目">
<tree-select v-model="contentSection"
:props="{value: 'id',label: 'categoryTitle',children: 'children'}"
:options="treeList" :style="{width:'100%'}"
placeholder="请选择文章栏目">
</tree-select>
<div class="ms-form-tip">
生成指定栏目下的文章内容
</div>
</el-form-item>
</div>
<div class="class-17" >
<el-form-item label="指定时间">
<el-date-picker
v-model="time"
placeholder="请选择指定时间"
start-placeholder=""
en.class-3d-placeholder=""
:readonly="false"
:disabled="false"
:editable="false"
:clearable="false"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{width:'100%'}"
type="date">
</el-date-picker>
<div class="ms-form-tip">
根据内容的发布时间来生成,例如:2021-01-01,则生成21年01月01号以后发布的文章,如果遇到内容没有生成可以调整时间
</div>
</el-form-item>
</div>
<div class="class-20" >
<@shiro.hasPermission name="cms:generate:article">
<el-form-item>
<el-button type="primary" @click="updateArticle" :loading="articleLoading">{{articleLoading?'更新中':'生成文章'}}</el-button>
</el-form-item>
</@shiro.hasPermission>
</div>
</div>
<div class="class-23" >
<div class="class-24" >
<el-form-item label="生成栏目">
<tree-select v-model="section"
:props="{value: 'id',label: 'categoryTitle',children: 'children'}"
:options="treeList" :style="{width:'100%'}"
placeholder="请选择文章栏目">
</tree-select>
<div class="ms-form-tip">
生成<b>栏目类型</b>为列表的数据,例如:新闻列表、产品列表
</div>
</el-form-item>
</div>
<div class="class-30" >
<@shiro.hasPermission name="cms:generate:column">
<el-form-item>
<el-button type="primary" @click="updateColumn" :loading="columnLoading">{{columnLoading?'更新中':'生成栏目'}}</el-button>
</el-form-item>
</@shiro.hasPermission>
</div>
</div>
</div>
</el-form>
</div>
</body>
</html>
<script>
"use strict";
var app = new Vue({
el: '#app',
watch: {},
data: {
homeLoading: false,
articleLoading: false,
columnLoading: false,
template: '',
//主题模板
templateOptions: [],
position: 'index',
//位置
contentSection: '0',
//文章栏目
section: '0',
//栏目
time: ms.util.date.fmt(new Date(), "yyyy-MM-dd"),
treeList: [{
id: '0',
categoryTitle: '顶级栏目',
children: []
}]
},
methods: {
//更新主页
updataIndex: function () {
var that = this;
if (!that.position || that.position == '') {
this.$notify({
title: '失败',
message: '请输入主页位置!',
type: 'warning'
});
return;
}
that.homeLoading = true;
ms.http.post(ms.manager + '/cms/generate//generateIndex.do', {
url: that.template,
position: that.position
}).then(function (data) {
if (data.result) {
that.$notify({
title: '成功',
message: '更新成功!',
type: 'success'
});
} else {
that.$notify({
title: '失败',
message: "更新失败!",
type: 'error'
});
}
}).finally(function () {
that.homeLoading = false;
});
},
//预览主页
viewIndex: function () {
if (!this.position || this.position == '') {
this.$notify({
title: '失败',
message: '请输入主页位置!',
type: 'warning'
});
return;
}
window.open(ms.manager + "/cms/generate/" + this.position + "/viewIndex.do");
},
//更新栏目
updateColumn: function () {
var that = this;
that.columnLoading = true;
ms.http.get(ms.manager + '/cms/generate/' + (that.section ? that.section : 0) + '/genernateColumn.do').then(function (data) {
if (data.result) {
that.$notify({
title: '成功',
message: '更新成功!',
type: 'success'
});
}else {
that.$notify({
title: '生成失败',
message:data.msg,
type: 'error'
});
}
}).finally(function () {
that.columnLoading = false;
});
},
//生成文章栏目
updateArticle: function () {
var that = this;
that.articleLoading = true;
ms.http.post(ms.manager + '/cms/generate/' + (that.contentSection ? that.contentSection : 0) + '/generateArticle.do', {
dateTime: that.time
}).then(function (data) {
if (data.result) {
that.$notify({
title: '成功',
message:'更新成功!',
type: 'success'
});
}else {
that.$notify({
title: '生成失败!',
message:data.msg,
type: 'error'
});
}
}).finally(function () {
that.articleLoading = false;
});
},
//获取主题模板数据源
templateOptionsGet: function () {
var that = this;
ms.http.get(ms.manager + '/template/queryTemplateFileForColumn.do', {
pageSize: 99999
}).then(function (data) {
that.templateOptions = data.data; //寻找主页
var template = that.templateOptions.find(function (x) {
return x.indexOf("index") != -1 || x.indexOf("default") != -1;
}); //没有就找其他的
that.template = template || (that.templateOptions.length > 0 ? that.templateOptions[0] : "");
});
},
getTree: function () {
var that = this;
ms.http.get(ms.manager + "/cms/category/list.do", {
pageSize: 9999
}).then(function (res) {
if (res.result) {
//res.data.rows.push({id:0,categoryId: null,categoryTitle:'顶级栏目管理'});
that.treeList[0].children = ms.util.treeData(res.data.rows, 'id', 'categoryId', 'children');
}
});
}
},
created: function () {
this.getTree();
this.templateOptionsGet();
}
});
</script>
<style>
input{
width: 100%!important;
}
.class-1
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
background-color:#FFFFFF;
flex-direction:row;
display:flex;
animation-duration:1s;
width:100%;
background-repeat:no-repeat;
padding: 14px;
}
.class-2
{
color:#333333;
outline:none;
outline-offset:-1px;
height:500px;
max-width:100%;
flex-direction:row;
display:flex;
animation-duration:1s;
width:100%;
background-repeat:no-repeat;
}
.class-3
{
color:#333333;
padding:20px;
outline:none;
outline-offset:-1px;
min-height:250px;
max-width:100%;
background-color:#FFFFFF;
flex-direction:column;
display:flex;
justify-content:end;
margin: 12px 6px 12px 12px;
animation-duration:1s;
width:100%;
padding-left:20px;
background-repeat:no-repeat;
}
.class-4
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-5
{
color:#333333;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:14px;
line-height:1.4;
}
.class-6
{
border-color:#EEEEEE;
color:#606266;
padding-right:15px;
box-sizing:boredr-box;
outline:none;
border-width:1px;
border-style:solid;
height:40px;
margin-left:20px;
animation-duration:1s;
background:none;
width:320px;
font-size:12px;
line-height:40px;
padding-left:15px;
}
.class-7
{
border-color:#EEEEEE;
color:#333333;
outline:none;
outline-offset:-1px;
border-width:1px;
border-style:none;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-8
{
color:#333333;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:14px;
line-height:1.4;
}
.class-9
{
border-color:#EEEEEE;
color:#606266;
padding-right:15px;
box-sizing:boredr-box;
outline:none;
border-width:1px;
border-style:solid;
height:40px;
margin-left:20px;
animation-duration:1s;
background:none;
width:320px;
font-size:12px;
line-height:40px;
padding-left:15px;
}
.class-10
{
border-color:#EEEEEE;
color:#333333;
outline:none;
outline-offset:-1px;
border-width:1px;
border-style:none;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-11
{
cursor:pointer;
color:#ffffff;
box-sizing:border-box;
height:34px;
background-color:#0099ff;
text-align:center;
display:inline-block;
animation-duration:1s;
border-radius:4px;
width:98px;
line-height:34px;
font-size:14px;
}
.class-12
{
cursor:pointer;
border-color:#0099FF;
color:#0099FF;
box-sizing:border-box;
border-width:1px;
border-style:solid;
height:34px;
background-color:#FFFFFF;
text-align:center;
display:inline-block;
margin-left:10px;
animation-duration:1s;
border-radius:4px;
width:98px;
line-height:34px;
font-size:14px;
}
.class-13
{
color:#333333;
padding:20px;
outline:none;
outline-offset:-1px;
min-height:250px;
max-width:100%;
background-color:#FFFFFF;
flex-direction:column;
display:flex;
justify-content:end;
margin: 12px 6px;
animation-duration:1s;
width:100%;
padding-left:20px;
background-repeat:no-repeat;
}
.class-14
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-15
{
color:#333333;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:14px;
line-height:1.4;
}
.class-16
{
border-color:#EEEEEE;
color:#606266;
padding-right:15px;
box-sizing:boredr-box;
outline:none;
border-width:1px;
border-style:solid;
height:40px;
margin-left:20px;
animation-duration:1s;
background:none;
width:320px;
font-size:12px;
line-height:40px;
padding-left:15px;
}
.class-17
{
border-color:#EEEEEE;
color:#333333;
outline:none;
outline-offset:-1px;
border-width:1px;
border-style:none;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-18
{
color:#333333;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:14px;
line-height:1.4;
}
.class-19
{
border-color:#EEEEEE;
color:#606266;
padding-right:15px;
box-sizing:boredr-box;
outline:none;
border-width:1px;
border-style:solid;
height:40px;
margin-left:20px;
animation-duration:1s;
background:none;
width:320px;
font-size:12px;
line-height:40px;
padding-left:15px;
}
.class-20
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-21
{
cursor:pointer;
color:#ffffff;
box-sizing:border-box;
height:34px;
background-color:#0099ff;
text-align:center;
display:inline-block;
animation-duration:1s;
border-radius:4px;
width:98px;
line-height:34px;
font-size:14px;
}
.class-22
{
cursor:pointer;
border-color:#0099FF;
color:#0099FF;
box-sizing:border-box;
border-width:1px;
border-style:solid;
height:34px;
background-color:#FFFFFF;
text-align:center;
display:inline-block;
margin-left:10px;
animation-duration:1s;
border-radius:4px;
width:98px;
line-height:34px;
font-size:14px;
}
.class-23
{
color:#333333;
padding:20px;
outline:none;
outline-offset:-1px;
min-height:250px;
max-width:100%;
background-color:#FFFFFF;
flex-direction:column;
display:flex;
justify-content:end;
margin: 12px 12px 12px 6px;
animation-duration:1s;
width:100%;
padding-left:20px;
background-repeat:no-repeat;
}
.class-24
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-25
{
color:#333333;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:14px;
line-height:1.4;
}
.class-26
{
border-color:#EEEEEE;
color:#606266;
padding-right:15px;
box-sizing:boredr-box;
outline:none;
border-width:1px;
border-style:solid;
height:40px;
margin-left:20px;
animation-duration:1s;
background:none;
width:320px;
font-size:12px;
line-height:40px;
padding-left:15px;
}
.class-27
{
border-color:#EEEEEE;
color:#333333;
outline:none;
outline-offset:-1px;
border-width:1px;
border-style:none;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-28
{
color:#333333;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:14px;
line-height:1.4;
}
.class-29
{
border-color:#EEEEEE;
color:#606266;
padding-right:15px;
box-sizing:boredr-box;
outline:none;
border-width:1px;
border-style:solid;
height:40px;
margin-left:20px;
animation-duration:1s;
background:none;
width:320px;
font-size:12px;
line-height:40px;
padding-left:15px;
}
.class-30
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-31
{
cursor:pointer;
color:#ffffff;
box-sizing:border-box;
height:34px;
background-color:#0099ff;
text-align:center;
display:inline-block;
animation-duration:1s;
border-radius:4px;
width:98px;
line-height:34px;
font-size:14px;
}
.class-32
{
cursor:pointer;
border-color:#0099FF;
color:#0099FF;
box-sizing:border-box;
border-width:1px;
border-style:solid;
height:34px;
background-color:#FFFFFF;
text-align:center;
display:inline-block;
margin-left:10px;
animation-duration:1s;
border-radius:4px;
width:98px;
line-height:34px;
font-size:14px;
}
.el-select,
.el-input,
.el-form-item,
.el-date-editor{
width: 100%;
}
</style>