Merge branch '4.7.0' of https://gitee.com/sunxinone/MCMS.git into 4.7.0
commit
178009f409
35 changed files with 2549 additions and 362 deletions
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
@ -0,0 +1,100 @@ |
||||
<link rel="stylesheet" href="../../../static/mdiy/css/model-list.css"> |
||||
|
||||
<div id="model-list" class="ms-mdiy-model-list" v-if="href == '列表'"> |
||||
<el-container> |
||||
<el-header class="ms-header" height="50px"> |
||||
<el-row> |
||||
<el-button size="small" icon="el-icon-plus" type="primary">保存</el-button> |
||||
<el-button type="danger" size="small" icon="el-icon-delete">删除</el-button> |
||||
<el-button class="ms-fr" size="small" icon="el-icon-refresh">刷新</el-button> |
||||
</el-row> |
||||
</el-header> |
||||
<el-container> |
||||
<el-header class="ms-tr ms-header"> |
||||
<el-select v-model="value" placeholder="请选择" size="small"> |
||||
</el-select> |
||||
<el-button size="small" icon="el-icon-search" type="primary">查询</el-button> |
||||
</el-header> |
||||
<el-main> |
||||
<el-table :data="tableData" border style="width: 100%"> |
||||
<el-table-column label="规则名"> |
||||
<template slot-scope="scope"> |
||||
<el-button type="text" v-text="scope.row.data" @click="href='表单'"></el-button> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="name" label="发送对象"> |
||||
</el-table-column> |
||||
</el-table> |
||||
</el-main> |
||||
</el-container> |
||||
</el-container> |
||||
</div> |
||||
|
||||
<script> |
||||
var modelListVue = new Vue({ |
||||
el: "#model-list", |
||||
data: { |
||||
value: "", // |
||||
tableData: [{ |
||||
data: '项目玩法', |
||||
name: '王小虎', |
||||
}, { |
||||
data: '综合评估', |
||||
name: '王小虎', |
||||
}, { |
||||
data: '产权出售', |
||||
name: '王小虎', |
||||
}, { |
||||
data: '兵不匹配移动端', |
||||
name: '王小虎', |
||||
}], |
||||
href: '列表', //切换页面 |
||||
addInputType: {}, //添加中的表单项 |
||||
}, |
||||
watch: { |
||||
href: function(data) { |
||||
var that = this; |
||||
if(data == '表单') { |
||||
this.$nextTick(function() { |
||||
new Sortable(document.getElementById("ms-type-list"), { |
||||
group: { |
||||
name: 'shared', |
||||
pull: 'clone', |
||||
ghostClass: 'sortable-ghost', //设置拖动时候显示的样式 |
||||
}, |
||||
animation: 150, |
||||
sort: false, |
||||
onStart: function(event) { |
||||
//准备拖动时保存拖动选项的数据 |
||||
that.addInputType = { |
||||
type: event.item.dataset.type, |
||||
title: event.item.dataset.title, |
||||
downList: [], //下拉列表 |
||||
downActiveList: [], //多选列表 |
||||
set: [], //设置 |
||||
unit: '', //金额单位 |
||||
fieldType: '', //字段类型 |
||||
}; |
||||
}, |
||||
}); |
||||
new Sortable(document.getElementById("ms-input-list"), { |
||||
group: { |
||||
name: 'shared', |
||||
pull: false, |
||||
ghostClass: 'sortable-ghost', //设置拖动时候显示的样式 |
||||
}, |
||||
animation: 150, |
||||
onAdd: function(event) { |
||||
//拖动成功后删除拖动过来的元素 |
||||
event.item.parentNode.removeChild(event.item); |
||||
//想素组添加拖动过来的选项选项 |
||||
modelFormVue.formItemList.splice(event.newIndex, 0, that.addInputType); |
||||
}, |
||||
}); |
||||
}) |
||||
} |
||||
} |
||||
}, |
||||
methods: {}, |
||||
}) |
||||
</script> |
||||
@ -0,0 +1,12 @@ |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<title></title> |
||||
<!--#include virtual="../include/head-file.ftl" --> |
||||
</head> |
||||
<body> |
||||
<!--#include virtual="diy-model/index.ftl" --> |
||||
<!--#include virtual="diy-model/form.ftl" --> |
||||
</body> |
||||
</html> |
||||
@ -1,94 +1,320 @@ |
||||
<!-- 自定义菜单 --> |
||||
<link rel="stylesheet" href="../../../../static/mweixin/css/custom-menu.css"> |
||||
<link rel="stylesheet" href="../../../../static/mweixin/css/custom-menu.css" /> |
||||
<div id="custom-menu" class="ms-custom-menu ms-weixin-content" v-if="menuVue.menuActive == '自定义菜单'"> |
||||
<el-container class="ms-custom-container"> |
||||
<el-header class="ms-header" height="50px"> |
||||
<el-row> |
||||
<el-button type="danger" size="small" icon="el-icon-delet">删除</el-button> |
||||
<el-button class="ms-fr" size="small" icon="el-icon-refresh">重置</el-button> |
||||
<el-button type="success" class="ms-fr" size="small" icon="el-icon-tickets">保存</el-button> |
||||
</el-row> |
||||
</el-header> |
||||
<el-container class="ms-container"> |
||||
<el-aside> |
||||
<el-container> |
||||
<el-header>公众号</el-header> |
||||
<el-main></el-main> |
||||
<el-footer> |
||||
<el-button icon="el-icon-date"></el-button> |
||||
<div class="ms-create-menu"> |
||||
<div class="ms-create-sub-menu"> |
||||
<el-button type="primary" @click='addSubMenuShow = !addSubMenuShow'>新建菜单</el-button> |
||||
<el-button icon="el-icon-plus" v-show='addSubMenuShow'></el-button> |
||||
</div> |
||||
<el-button icon="el-icon-plus"></el-button> |
||||
</div> |
||||
</el-footer> |
||||
</el-container> |
||||
</el-aside> |
||||
<el-main> |
||||
<el-card class="custom-menu-card" shadow="never"> |
||||
<div slot="header" class="clearfix"> |
||||
<span>新建菜单</span> |
||||
</div> |
||||
<el-form ref="customMenuForm" :rule='customMenuFormRules' :model="customMenuForm" label-width="80px"> |
||||
<el-form-item label="菜单名称" prop='name' class="ms-custom-menu-name"> |
||||
<el-input v-model="customMenuForm.name" size='mini'></el-input> |
||||
<span>菜单名称字数不多于5个汉字或10个字母</span> |
||||
</el-form-item> |
||||
<el-form-item label="菜单内容" class="ms-custom-menu-content"> |
||||
<el-tabs v-model="activeName" @tab-click=""> |
||||
<el-tab-pane label="图片" name="picture"> |
||||
<span slot="label"> |
||||
<i class="el-icon-picture"></i>图片</span> |
||||
<div onclick="materialBankFormVue.open()"> |
||||
<i class="el-icon-picture-outline"></i> |
||||
<span>从素材库选择</span> |
||||
</div> |
||||
<div onclick="newPicFormVue.open()"> |
||||
<i class="el-icon-plus"></i> |
||||
<span>新建图片</span> |
||||
</div> |
||||
</el-tab-pane> |
||||
<el-tab-pane label="图文管理" name="article"> |
||||
<span slot="label"> |
||||
<i class="el-icon-picture"></i>图文管理</span> |
||||
</el-tab-pane> |
||||
</el-tabs> |
||||
</el-form-item> |
||||
</el-form> |
||||
</el-card> |
||||
</el-main> |
||||
</el-container> |
||||
</el-container> |
||||
<el-container class="ms-custom-container"> |
||||
<el-header class="ms-header" height="50px"> |
||||
<el-row> |
||||
<el-button type="danger" size="small" icon="el-icon-delet" @click='menuDel'>删除</el-button> |
||||
<el-button size="small" @click="menuSort">菜单排序</el-button> |
||||
<el-button class="ms-fr" size="small" icon="el-icon-refresh" @click='resetForm'>重置</el-button> |
||||
<el-button type="success" class="ms-fr" size="small" icon="el-icon-tickets" @click='menuSave'>保存</el-button> |
||||
<el-button type="success" class="ms-fr" size="small" icon="el-icon-tickets" @click='menuCreate'>发布菜单</el-button> |
||||
</el-row> |
||||
</el-header> |
||||
<el-container class="ms-container"> |
||||
<el-aside> |
||||
<el-container> |
||||
<el-header>公众号</el-header> |
||||
<el-main></el-main> |
||||
<el-footer> |
||||
<el-button icon="el-icon-date"></el-button> |
||||
<div class="ms-create-menu"> |
||||
<div class="ms-create-sub-menu" v-for="(menu,index) of mainMenuList" :key="index"> |
||||
<!-- 父菜单 --> |
||||
<el-button type="primary" @click="openSubMenu(index,menu);menu.addSubMenuShow = !menu.addSubMenuShow;$forceUpdate()">{{ |
||||
menu.menuTitle }}</el-button> |
||||
<div class="sub-menu-list" v-show="menu.addSubMenuShow"> |
||||
<!-- 子菜单 --> |
||||
<el-button v-for="(sub,index) of currentSubMenuList" :key="index" v-text="sub.menuTitle" class="sub-menu-item" |
||||
@click='customMenuForm = sub;$forceUpdate();'></el-button> |
||||
<!-- 添加子菜单的加号按钮 --> |
||||
<el-button icon="el-icon-plus" class="ms-create-btn" @click="addSubMenu"></el-button> |
||||
</div> |
||||
</div> |
||||
<!-- 添加父菜单的加号按钮 --> |
||||
<el-button icon="el-icon-plus" @click="addMenu" v-show="addMenuBtn && mainMenuList.length<3" class="add-menu"></el-button> |
||||
</div> |
||||
</el-footer> |
||||
</el-container> |
||||
</el-aside> |
||||
<el-main> |
||||
<el-card class="custom-menu-card" shadow="never"> |
||||
<div slot="header" class="clearfix"> |
||||
<span v-text="customMenuForm.menuId ? '修改菜单' : '新建菜单'"></span> |
||||
</div> |
||||
<el-form ref="customMenuForm" :rules="customMenuFormRules" :model="customMenuForm" label-width="81px"> |
||||
<el-form-item label="菜单名称" prop="menuTitle" class="ms-custom-menu-name"> |
||||
<el-input v-model="customMenuForm.menuTitle" size="medium"></el-input> |
||||
<span>菜单名称字数不多于5个汉字或10个字母</span> |
||||
</el-form-item> |
||||
<el-form-item label="菜单内容" class="ms-custom-menu-content" prop='menuUrl'> |
||||
<el-input v-model="customMenuForm.menuUrl" size="medium"></el-input> |
||||
<span>请输入菜单地址</span> |
||||
<!-- <el-tabs v-model="activeName" @tab-click=""> |
||||
<el-tab-pane label="图片" name="picture"> |
||||
<span slot="label"> |
||||
<i class="el-icon-picture"></i>图片</span> |
||||
<div onclick="materialBankFormVue.open()"> |
||||
<i class="el-icon-picture-outline"></i> |
||||
<span>从素材库选择</span> |
||||
</div> |
||||
<div onclick="newPicFormVue.open()"> |
||||
<i class="el-icon-plus"></i> |
||||
<span>新建图片</span> |
||||
</div> |
||||
</el-tab-pane> |
||||
<el-tab-pane label="图文管理" name="article"> |
||||
<span slot="label"> |
||||
<i class="el-icon-picture"></i>图文管理</span> |
||||
<div onclick="materialBankFormVue.open()"> |
||||
<i class="el-icon-picture-outline"></i> |
||||
<span>从素材库选择</span> |
||||
</div> |
||||
<div onclick="newPicFormVue.open()"> |
||||
<i class="el-icon-plus"></i> |
||||
<span>新建图文</span> |
||||
</div> |
||||
</el-tab-pane> |
||||
</el-tabs> --> |
||||
</el-form-item> |
||||
</el-form> |
||||
</el-card> |
||||
</el-main> |
||||
</el-container> |
||||
</el-container> |
||||
</div> |
||||
<script> |
||||
var customMenuVue = new Vue({ |
||||
el: "#custom-menu", |
||||
data: { |
||||
customMenuForm: { |
||||
name: '', |
||||
}, |
||||
customMenuFormRules: { |
||||
name: [{ |
||||
required: true, |
||||
message: '请输入菜单名称', |
||||
trigger: ['blur', 'change'] |
||||
}, |
||||
{ |
||||
min: 1, |
||||
max: 5, |
||||
message: '长度在 1 到 5 个字符', |
||||
trigger: ['blur', 'change'] |
||||
} |
||||
], |
||||
}, |
||||
addSubMenuShow: false, //子菜单添加弹窗 |
||||
activeName: 'picture' |
||||
}, |
||||
methods: { |
||||
|
||||
} |
||||
|
||||
}) |
||||
var customMenuVue = new Vue({ |
||||
el: "#custom-menu", |
||||
data: { |
||||
customMenuForm: { |
||||
menuTitle: "", |
||||
menuUrl: "", |
||||
menuId: "", |
||||
menuMenuId: "", //父菜单编号 |
||||
menuStatus: "", //菜单状态 0:不启用 1:启用 |
||||
menuStyle: "", //类型:1文本 2图文 4外链接 |
||||
menuType: "", //菜单属性 0:链接 1:回复 |
||||
}, |
||||
customMenuFormRules: { |
||||
menuTitle: [{ |
||||
required: true, |
||||
message: "请输入菜单名称", |
||||
trigger: ["blur", "change"] |
||||
}, |
||||
{ |
||||
min: 1, |
||||
max: 5, |
||||
message: "长度在 1 到 5 个字符", |
||||
trigger: ["blur", "change"] |
||||
} |
||||
], |
||||
menuUrl: [{ |
||||
required: true, |
||||
message: '请输入菜单地址', |
||||
trigger: 'change' |
||||
}, { |
||||
validator: function (rule, value, callback) { |
||||
/^(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?$/.test(value) ? |
||||
callback() : callback('链接不合法') |
||||
} |
||||
}] |
||||
}, |
||||
addMenuBtn: true, //添加菜单按钮 |
||||
activeName: "picture", //导航切换 当前激活面板 |
||||
mainMenuList: [], |
||||
subMenuList: [], //所有的子菜单 |
||||
currentSubMenuList: [], //打开当前父菜单的子菜单列表 |
||||
currentMenuMenuId: '', //打开当前父菜单的菜单ID |
||||
}, |
||||
methods: { |
||||
menuList: function () { |
||||
var that = this; |
||||
ms.http.get(ms.manager + "/mweixin/menu/list.do") |
||||
.then((res) => { |
||||
console.log('res菜单', res); |
||||
that.mainMenuList = [] |
||||
that.subMenuList = [] |
||||
res.rows && res.rows.forEach(function (item, index) { |
||||
item.menuMenuId == null && that.mainMenuList.push(item) |
||||
item.menuMenuId != null && that.subMenuList.push(item) |
||||
}) |
||||
// 初始化显示第一个菜单 |
||||
if(that.mainMenuList.length){ |
||||
that.customMenuForm = that.mainMenuList[0] |
||||
}else{ |
||||
that.mainMenuList.push(that.customMenuForm) |
||||
// 没有一个菜单的时候 |
||||
that.mainMenuList[0].menuTitle = '新建菜单' |
||||
} |
||||
}, (err) => { |
||||
console.log(err) |
||||
}) |
||||
}, |
||||
// 菜单排序 |
||||
menuSort: function () { |
||||
event.target.innerText = "完成"; |
||||
}, |
||||
// 添加菜单 |
||||
addMenu: function () { |
||||
this.mainMenuList.push({ |
||||
menuTitle: "新建菜单" |
||||
}); |
||||
this.$nextTick(function () { |
||||
var that = this; |
||||
Array.prototype.forEach.call( |
||||
document.querySelectorAll(".ms-create-sub-menu"), |
||||
function (item, index) { |
||||
item.style.width = '80px'; |
||||
} |
||||
); |
||||
document.querySelector(".add-menu").style.width = '80px'; |
||||
}); |
||||
if (this.mainMenuList.length == 3) { |
||||
return (this.addMenuBtn = false); |
||||
} |
||||
}, |
||||
// 添加子菜单 |
||||
addSubMenu: function () { |
||||
if(!this.currentMenuMenuId){ |
||||
return this.$message.error("创建子菜单前,必须先创建父菜单"); |
||||
} |
||||
if (this.currentSubMenuList.length > 4) { |
||||
return this.$message.error("子菜单最多5项"); |
||||
} |
||||
var that = this; |
||||
console.log('that.currentMenuMenuId', that.currentMenuMenuId); |
||||
this.currentSubMenuList.push({ |
||||
menuTitle: "新建子菜单", |
||||
menuMenuId: that.currentMenuMenuId, |
||||
}); |
||||
console.log('currentSubMenuList', this.currentSubMenuList); |
||||
}, |
||||
openSubMenu(index, menu) { |
||||
console.log('menu', menu); |
||||
var that = this; |
||||
that.customMenuForm = menu |
||||
that.closeAllSubMenu(index); |
||||
that.currentSubMenuList = []; |
||||
that.currentMenuMenuId = menu.menuId; |
||||
console.log('that.subMenuList', that.subMenuList); |
||||
that.subMenuList.forEach(function (item, index) { |
||||
item.menuMenuId == menu.menuId && that.currentSubMenuList.push(item) |
||||
}) |
||||
}, |
||||
// 关闭所有的子菜单弹出层 |
||||
closeAllSubMenu: function (num) { |
||||
// 确保当前的菜单不被重置成false |
||||
this.mainMenuList.forEach(function (item, index) { |
||||
num != index && (item.addSubMenuShow = false) |
||||
}) |
||||
}, |
||||
// 保存菜单 |
||||
menuSave: function () { |
||||
// 表单校验 |
||||
var that = this; |
||||
this.$refs.customMenuForm.validate(function (ispass, object) { |
||||
if (ispass) { |
||||
// 判断保存的菜单类型,这里先简单处理,写死 |
||||
that.customMenuForm.menuStatus = 1 |
||||
that.customMenuForm.menuStyle = 4 //类型:1文本 2图文 4外链接 |
||||
that.customMenuForm.menuType = 0 //菜单属性 0:链接 1:回复 |
||||
ms.http.post(ms.manager + "/mweixin/menu/save.do", that.customMenuForm) |
||||
.then(function (res) { |
||||
that.customMenuForm.menuStatus = that.customMenuForm.menuStyle = that.customMenuForm.menuType = '' |
||||
if(res.menuId){ |
||||
that.$message.success('菜单保存成功') |
||||
that.menuList(); |
||||
}else{ |
||||
that.$message.error(res.resultMsg) |
||||
} |
||||
}, function (err) { |
||||
console.log(err) |
||||
}) |
||||
} |
||||
}) |
||||
}, |
||||
// 删除菜单 |
||||
menuDel: function () { |
||||
var that = this; |
||||
// 当存在子菜单的时候,不得删除菜单 |
||||
if(that.customMenuForm.menuMenuId == null && that.currentSubMenuList.length){ |
||||
return that.$message.error('当前菜单存在子菜单,不得删除') |
||||
} |
||||
if(!that.customMenuForm.menuId){ |
||||
return that.$message.error('请新建菜单之后,再进行删除') |
||||
} |
||||
this.$confirm('此操作将永久删除该菜单, 是否继续?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
ms.http.post(ms.manager + "/mweixin/menu/delete.do", { |
||||
ids: that.customMenuForm.menuId |
||||
}) |
||||
.then(function (res) { |
||||
that.$message({ |
||||
type: 'success', |
||||
message: '删除成功!' |
||||
}); |
||||
// 清空表单值 |
||||
that.resetForm(); |
||||
// 刷新菜单列表 |
||||
that.menuList(); |
||||
}, function (err) { |
||||
console.log(err) |
||||
}) |
||||
}).catch(() => { |
||||
this.$message({ |
||||
type: 'info', |
||||
message: '已取消删除' |
||||
}); |
||||
}) |
||||
}, |
||||
// 发布菜单 |
||||
menuCreate: function () { |
||||
var that = this; |
||||
this.$confirm('此操作将发布公众号菜单, 是否继续?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
ms.http.get(ms.manager + "/mweixin/menu/create.do") |
||||
.then(function (res) { |
||||
if(res.result){ |
||||
that.$message({ |
||||
type: 'success', |
||||
message: '发布成功!,菜单将于2小时后生效' |
||||
}); |
||||
}else{ |
||||
that.$message({ |
||||
type: 'error', |
||||
message: '发布失败!' |
||||
}); |
||||
} |
||||
}, function (err) { |
||||
console.log(err) |
||||
}) |
||||
}).catch(() => { |
||||
this.$message({ |
||||
type: 'info', |
||||
message: '已取消删除' |
||||
}); |
||||
}) |
||||
}, |
||||
// 重置 |
||||
resetForm:function(){ |
||||
// this.$refs.customMenuForm.resetFields();未在表单中,清空不了 |
||||
this.customMenuForm.menuStatus = |
||||
this.customMenuForm.menuStyle = |
||||
this.customMenuForm.menuType = |
||||
this.customMenuForm.menuTitle = |
||||
this.customMenuForm.menuUrl = |
||||
'' |
||||
} |
||||
}, |
||||
mounted: function () { |
||||
this.menuList(); |
||||
}, |
||||
}); |
||||
</script> |
||||
@ -1,100 +1,100 @@ |
||||
<!--图文素材页--> |
||||
<!--图片素材页--> |
||||
<link rel="stylesheet" href="../../../static/mweixin/css/picture-list.css"> |
||||
<div id="picture-list-vue" v-if="menuVue.menuActive == '图片'" class="ms-weixin-content"> |
||||
<el-container class="ms-admin-picture"> |
||||
<!--右侧头部--> |
||||
<el-header class="ms-header" height="50px"> |
||||
<el-row> |
||||
<el-button type="primary" size="small" icon="el-icon-plus">添加</el-button> |
||||
<el-button class="ms-fr" size="small" icon="el-icon-refresh">刷新</el-button> |
||||
<el-button class="ms-fr" size="small">同步微信素材</el-button> |
||||
</el-row> |
||||
</el-header> |
||||
<el-container> |
||||
<!--内容头部--> |
||||
<el-header class="ms-tr ms-header"> |
||||
<el-select v-model="value1" placeholder="请选择" size="small"> |
||||
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value"> |
||||
</el-option> |
||||
</el-select> |
||||
<el-select v-model="value2" placeholder="请选择" size="small"> |
||||
<el-option v-for="item in options2" :key="item.value" :label="item.label" :value="item.value"> |
||||
</el-option> |
||||
</el-select> |
||||
<el-button type="primary" icon="el-icon-search" size="small">查询</el-button> |
||||
</el-header> |
||||
<!--素材列表--> |
||||
<el-main class="ms-admin-picture-list"> |
||||
<el-container> |
||||
<el-aside class="ms-admin-picture-item"> |
||||
<div v-for="picture in pictureList"> |
||||
<div class="body"> |
||||
<img :src="picture.img" /> |
||||
<div> |
||||
<input type="checkbox" /> |
||||
<span v-text="picture.title"></span> |
||||
</div> |
||||
</div> |
||||
<div class="footer"> |
||||
<i class="el-icon-edit"></i> |
||||
<em></em> |
||||
<i class="el-icon-download"></i> |
||||
<em></em> |
||||
<i class="el-icon-delete"></i> |
||||
</div> |
||||
</div> |
||||
</el-aside> |
||||
<el-main class="ms-admin-picture-show"> |
||||
<span>全部图片(6)</span> |
||||
<div> |
||||
<span>小米(1)</span> |
||||
<i class="el-icon-edit"></i> |
||||
<i class="el-icon-delete"></i> |
||||
</div> |
||||
<div> |
||||
<span>小米(1)</span> |
||||
<i class="el-icon-edit"></i> |
||||
<i class="el-icon-delete"></i> |
||||
</div> |
||||
<p> |
||||
<i class="el-icon-plus"></i>新建分组</p> |
||||
</el-main> |
||||
</el-container> |
||||
<el-container class="ms-admin-picture"> |
||||
<!--右侧头部--> |
||||
<el-header class="ms-header" height="50px"> |
||||
<el-row> |
||||
<el-button type="primary" size="small" icon="el-icon-plus">添加</el-button> |
||||
<el-button size="small" icon="el-icon-refresh" class="ms-fr">刷新</el-button> |
||||
<el-button size="small" class="ms-fr">同步微信素材</el-button> |
||||
</el-row> |
||||
</el-header> |
||||
<el-container> |
||||
<!--内容头部--> |
||||
<el-header class="ms-tr ms-header ms-header-select"> |
||||
<el-select v-model="value1" placeholder="请选择" size="small"> |
||||
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value"> |
||||
</el-option> |
||||
</el-select> |
||||
<el-select v-model="value2" placeholder="请选择" size="small"> |
||||
<el-option v-for="item in options2" :key="item.value" :label="item.label" :value="item.value"> |
||||
</el-option> |
||||
</el-select> |
||||
<el-button type="primary" icon="el-icon-search" size="small">查询</el-button> |
||||
</el-header> |
||||
<!--素材列表--> |
||||
<el-main class="ms-admin-picture-list"> |
||||
<el-container> |
||||
<el-aside class="ms-admin-picture-item"> |
||||
<div v-for="picture in pictureList"> |
||||
<div class="body"> |
||||
<img :src="picture.img" /> |
||||
<div> |
||||
<input type="checkbox" /> |
||||
<span v-text="picture.title"></span> |
||||
</div> |
||||
</div> |
||||
<div class="footer"> |
||||
<i class="el-icon-edit"></i> |
||||
<em></em> |
||||
<i class="el-icon-download"></i> |
||||
<em></em> |
||||
<i class="el-icon-delete"></i> |
||||
</div> |
||||
</div> |
||||
</el-aside> |
||||
<el-main class="ms-admin-picture-show"> |
||||
<span>全部图片(6)</span> |
||||
<div> |
||||
<span>小米(1)</span> |
||||
<i class="el-icon-edit"></i> |
||||
<i class="el-icon-delete"></i> |
||||
</div> |
||||
<div> |
||||
<span>小米(1)</span> |
||||
<i class="el-icon-edit"></i> |
||||
<i class="el-icon-delete"></i> |
||||
</div> |
||||
<p> |
||||
<i class="el-icon-plus"></i>新建分组</p> |
||||
</el-main> |
||||
</el-container> |
||||
|
||||
</el-main> |
||||
</el-container> |
||||
</el-container> |
||||
</el-main> |
||||
</el-container> |
||||
</el-container> |
||||
</div> |
||||
|
||||
<script> |
||||
new Vue({ |
||||
el: "#picture-list-vue", |
||||
data: { |
||||
options1: [{ |
||||
value: '全部图片', |
||||
label: '全部图片' |
||||
}], |
||||
options2: [{ |
||||
value: '全部图片', |
||||
label: '全部图片' |
||||
}], |
||||
value1: '全部图片', |
||||
value2: '', |
||||
pictureList: [{ |
||||
date: '12月27日', |
||||
title: 'HUAWEI Mate 20 6GB+64GB 全网最低价...', |
||||
img: '../images/data/ms-bg_1.jpg', |
||||
det: '传播名HUAWEI Mate 20 6GB+64GB 全网最低价,后置摄像头后置莱卡散射,12000万亿像素(光脚,1/1.6光圈)+1200万像素(超广角),......' |
||||
}, |
||||
{ |
||||
date: '12月27日', |
||||
title: 'HUAWEI Mate 20 6GB+64GB 全网最低价...', |
||||
img: '../images/data/ms-bg_1.jpg', |
||||
det: '传播名HUAWEI Mate 20 6GB+64GB 全网最低价,后置摄像头后置莱卡散射,12000万亿像素(光脚,1/1.6光圈)+1200万像素(超广角),......' |
||||
} |
||||
], |
||||
}, |
||||
methods: {}, |
||||
mounted: function() {} |
||||
}) |
||||
new Vue({ |
||||
el: "#picture-list-vue", |
||||
data: { |
||||
options1: [{ |
||||
value: '全部图片', |
||||
label: '全部图片' |
||||
}], |
||||
options2: [{ |
||||
value: '全部图片', |
||||
label: '全部图片' |
||||
}], |
||||
value1: '全部图片', |
||||
value2: '', |
||||
pictureList: [{ |
||||
date: '12月27日', |
||||
title: 'HUAWEI Mate 20 6GB+64GB 全网最低价...', |
||||
img: '../images/data/ms-bg_1.jpg', |
||||
det: '传播名HUAWEI Mate 20 6GB+64GB 全网最低价,后置摄像头后置莱卡散射,12000万亿像素(光脚,1/1.6光圈)+1200万像素(超广角),......' |
||||
}, |
||||
{ |
||||
date: '12月27日', |
||||
title: 'HUAWEI Mate 20 6GB+64GB 全网最低价...', |
||||
img: '../images/data/ms-bg_1.jpg', |
||||
det: '传播名HUAWEI Mate 20 6GB+64GB 全网最低价,后置摄像头后置莱卡散射,12000万亿像素(光脚,1/1.6光圈)+1200万像素(超广角),......' |
||||
} |
||||
], |
||||
}, |
||||
methods: {}, |
||||
mounted: function () {} |
||||
}) |
||||
</script> |
||||
@ -1,32 +1,24 @@ |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<title></title> |
||||
<!-- <#include "/include/head-file.ftl"/> --> |
||||
<!--#include virtual="../include/head-file.ftl" --> |
||||
</head> |
||||
<body> |
||||
<!--#include virtual="menu.ftl" --> |
||||
<!--#include virtual="metarial/index.ftl" --> |
||||
<!--#include virtual="metarial/form.ftl" --> |
||||
<!--#include virtual="picture/index.ftl" --> |
||||
<!--#include virtual="keyword/index.ftl" --> |
||||
<!--#include virtual="keyword/form.ftl" --> |
||||
<!--#include virtual="menu/index.ftl" --> |
||||
<!--#include virtual="menu/new-pic-form.ftl" --> |
||||
<!--#include virtual="menu/material-bank-form.ftl" --> |
||||
<!--#include virtual="message/index.ftl" --> |
||||
</body> |
||||
</html> |
||||
<script> |
||||
// 测试使用 ==> 微信其他接口走之前需要先走这几个接口 |
||||
(function(){ |
||||
ms.http.get(ms.manager + "/mweixin/11/function.do") |
||||
.then((res)=>{ |
||||
console.log('res',true); |
||||
}, (err) => { |
||||
console.log(err) |
||||
}) |
||||
})() |
||||
</script> |
||||
|
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<title></title> |
||||
<!-- <#include "/include/head-file.ftl"/> --> |
||||
<!--#include virtual="../include/head-file.ftl" --> |
||||
</head> |
||||
|
||||
<body> |
||||
<!--#include virtual="menu.ftl" --> |
||||
<!--#include virtual="metarial/index.ftl" --> |
||||
<!--#include virtual="metarial/form.ftl" --> |
||||
<!--#include virtual="picture/index.ftl" --> |
||||
<!--#include virtual="keyword/index.ftl" --> |
||||
<!--#include virtual="keyword/form.ftl" --> |
||||
<!--#include virtual="menu/index.ftl" --> |
||||
<!--#include virtual="menu/new-pic-form.ftl" --> |
||||
<!--#include virtual="menu/material-bank-form.ftl" --> |
||||
<!--#include virtual="message/index.ftl" --> |
||||
</body> |
||||
|
||||
</html> |
||||
@ -0,0 +1,305 @@ |
||||
/* |
||||
*这里的值严格按照UI设计图标注值来进行设置 |
||||
*/ |
||||
/* |
||||
*颜色 |
||||
*/ |
||||
/* |
||||
*页面的边距 |
||||
*/ |
||||
/* |
||||
*字体 |
||||
*/ |
||||
/* |
||||
*头像 |
||||
*/ |
||||
/* |
||||
* 按钮 |
||||
*/ |
||||
/* |
||||
*对常见的多行样式进行了方法封装,方便调用,加快开发效率 |
||||
*/ |
||||
html, |
||||
body { |
||||
min-height: 100vh; |
||||
width: 100vw; |
||||
background-color: #eee; |
||||
margin: 0; |
||||
display: flex; |
||||
font-weight: initial !important; |
||||
font-size: 14px !important; |
||||
color: #333 !important; |
||||
} |
||||
html *, |
||||
body * { |
||||
text-decoration: none !important; |
||||
font-family: Verdana, Arial, Helvetica, sans-serif; |
||||
box-sizing: border-box; |
||||
} |
||||
.ms-ellipsis { |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
white-space: nowrap; |
||||
display: block; |
||||
} |
||||
.ms-align-center { |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
input::-webkit-input-placeholder, |
||||
textarea::-webkit-input-placeholder { |
||||
font-weight: initial; |
||||
font-size: 12px; |
||||
color: #999; |
||||
resize: none; |
||||
} |
||||
*::-webkit-scrollbar { |
||||
width: 8px; |
||||
height: 8px; |
||||
} |
||||
/*定义滚动条轨道 内阴影+圆角*/ |
||||
*::-webkit-scrollbar-track { |
||||
border-radius: 10px; |
||||
/*滚动条的背景区域的圆角*/ |
||||
background-color: #eee; |
||||
/*滚动条的背景颜色*/ |
||||
} |
||||
/*定义滑块 内阴影+圆角*/ |
||||
*::-webkit-scrollbar-thumb { |
||||
border-radius: 10px; |
||||
/*滚动条的圆角*/ |
||||
background-color: #e6e6e6; |
||||
/*滚动条的背景颜色*/ |
||||
} |
||||
.ms-container { |
||||
margin: 12px; |
||||
height: calc(100% - 24px); |
||||
padding: 14px; |
||||
background: #fff; |
||||
} |
||||
.ms-header { |
||||
padding: 10px; |
||||
margin: 0; |
||||
border-bottom: 1px solid #ddd; |
||||
background: #fff; |
||||
height: 50px; |
||||
} |
||||
.ms-header button { |
||||
height: 30px; |
||||
} |
||||
.ms-pagination { |
||||
padding: 20px 0; |
||||
text-align: right; |
||||
} |
||||
.ms-fr { |
||||
float: right; |
||||
} |
||||
.ms-tr { |
||||
text-align: right; |
||||
} |
||||
.ms-weixin-content { |
||||
width: calc(100% - 140px); |
||||
} |
||||
.ms-weixin-dialog .el-dialog__header { |
||||
height: 55px; |
||||
box-sizing: border-box; |
||||
padding: 10px 10px 25px 10px; |
||||
border-bottom: 1px solid #e6e6e6; |
||||
} |
||||
.ms-weixin-dialog .el-dialog__header .el-dialog__title { |
||||
font-weight: bold; |
||||
font-size: 14px; |
||||
color: #333; |
||||
} |
||||
.ms-weixin-dialog .el-dialog__footer { |
||||
border-top: 1px solid #e6e6e6; |
||||
padding: 15px !important; |
||||
} |
||||
.ms-hover { |
||||
cursor: pointer; |
||||
} |
||||
.ms-hover:hover { |
||||
color: #0099ff; |
||||
background: #fff; |
||||
border-color: #0099ff; |
||||
} |
||||
.ms-header-select { |
||||
font-size: 0; |
||||
} |
||||
.ms-header-select > .el-select:nth-of-type(2) { |
||||
margin: 0 10px; |
||||
} |
||||
.el-submenu .el-menu-item.is-active { |
||||
border-radius: 4px; |
||||
} |
||||
.el-card, |
||||
.el-message { |
||||
border-radius: 0 !important; |
||||
} |
||||
.sortable-ghost { |
||||
opacity: 0.3; |
||||
background: #ccc !important; |
||||
border-color: transparent !important; |
||||
color: transparent !important; |
||||
} |
||||
.sortable-ghost * { |
||||
background: #ccc !important; |
||||
border-color: transparent !important; |
||||
color: transparent !important; |
||||
} |
||||
.ms-mdiy-model-form { |
||||
width: 100vw; |
||||
height: 100vh; |
||||
} |
||||
.ms-mdiy-model-form .el-container { |
||||
height: 100%; |
||||
} |
||||
.ms-mdiy-model-form .ms-row button { |
||||
margin-left: 10px; |
||||
} |
||||
.ms-mdiy-model-form .ms-header-title { |
||||
margin-bottom: 15px; |
||||
} |
||||
.ms-mdiy-model-form .el-checkbox-group { |
||||
font-size: inherit !important; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-type-layout { |
||||
background: #fff; |
||||
min-width: 15%; |
||||
padding: 20px; |
||||
border-right: 1px solid #e6e6e6; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-type-layout .ms-type-list { |
||||
margin: 0; |
||||
padding: 0; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
flex-wrap: wrap; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-type-layout .ms-type-list li { |
||||
width: calc(50% - 5px); |
||||
margin: 0 0 5px 0; |
||||
padding: 5px; |
||||
list-style: none; |
||||
background: #E6F7FF; |
||||
border: 1px solid #e6e6e6; |
||||
cursor: pointer; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-type-layout .ms-type-list li i { |
||||
font-weight: initial; |
||||
font-size: 1em; |
||||
color: #999; |
||||
margin: 0 5px; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-body-layout { |
||||
background: #fff; |
||||
margin: 8px; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-body-layout .ms-form-item { |
||||
padding: 6px 20px 6px 20px; |
||||
border: 1px solid transparent; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-body-layout .ms-form-item .unit-input { |
||||
width: calc(100% - 41px) !important; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-body-layout .ms-form-item .el-form-item__content { |
||||
display: flex; |
||||
align-items: flex-start; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-body-layout .ms-form-item .el-form-item__content .del-but { |
||||
visibility: hidden; |
||||
padding-left: 20px; |
||||
margin-left: auto; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-body-layout .ms-form-item .el-radio { |
||||
line-height: inherit; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-body-layout .active { |
||||
border-color: #0099ff; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-body-layout .active .del-but { |
||||
visibility: visible !important; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-body-layout .sortable-ghost { |
||||
margin-bottom: 18px; |
||||
min-height: 40px; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout { |
||||
background: #fff; |
||||
min-width: 20%; |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-header-title { |
||||
border-left: 1px solid #e6e6e6; |
||||
width: 100%; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr { |
||||
width: 100%; |
||||
display: flex; |
||||
flex-direction: column; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form { |
||||
padding: 15px; |
||||
height: calc(100vh - 200px); |
||||
overflow: auto; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .el-form-item__label { |
||||
line-height: 1.4em; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .el-form-item { |
||||
margin-bottom: 14px; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .el-form-item .input-with-select .el-input-group__append { |
||||
width: 90px; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .el-form-item .input-with-select .el-input-group__append .el-input input { |
||||
background-color: #fff; |
||||
border-top: 1px solid #dcdfe6; |
||||
border-bottom: 1px solid #dcdfe6; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list li { |
||||
display: flex; |
||||
align-items: center; |
||||
list-style: none; |
||||
margin-bottom: 12px; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list li i { |
||||
cursor: pointer; |
||||
font-size: 14px; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list li i:hover { |
||||
color: #0099ff; |
||||
background: #fff; |
||||
border-color: #0099ff; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list li .ms-input, |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list li .ms-radio, |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list li .icon-tuodong { |
||||
margin-right: 6px; |
||||
line-height: initial; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list .ms-plus { |
||||
cursor: pointer; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list .ms-plus:hover { |
||||
color: #0099ff; |
||||
background: #fff; |
||||
border-color: #0099ff; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .form .ms-down-list .ms-plus i { |
||||
margin-right: 6px; |
||||
} |
||||
.ms-mdiy-model-form .ms-editor-attr-layout .ms-editor-attr .footer { |
||||
margin-top: auto; |
||||
border-top: 1px solid #e6e6e6; |
||||
height: 60px; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: flex-end; |
||||
padding-right: 10px; |
||||
} |
||||
@ -0,0 +1,141 @@ |
||||
/* |
||||
*这里的值严格按照UI设计图标注值来进行设置 |
||||
*/ |
||||
/* |
||||
*颜色 |
||||
*/ |
||||
/* |
||||
*页面的边距 |
||||
*/ |
||||
/* |
||||
*字体 |
||||
*/ |
||||
/* |
||||
*头像 |
||||
*/ |
||||
/* |
||||
* 按钮 |
||||
*/ |
||||
/* |
||||
*对常见的多行样式进行了方法封装,方便调用,加快开发效率 |
||||
*/ |
||||
html, |
||||
body { |
||||
min-height: 100vh; |
||||
width: 100vw; |
||||
background-color: #eee; |
||||
margin: 0; |
||||
display: flex; |
||||
font-weight: initial !important; |
||||
font-size: 14px !important; |
||||
color: #333 !important; |
||||
} |
||||
html *, |
||||
body * { |
||||
text-decoration: none !important; |
||||
font-family: Verdana, Arial, Helvetica, sans-serif; |
||||
box-sizing: border-box; |
||||
} |
||||
.ms-ellipsis { |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
white-space: nowrap; |
||||
display: block; |
||||
} |
||||
.ms-align-center { |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
input::-webkit-input-placeholder, |
||||
textarea::-webkit-input-placeholder { |
||||
font-weight: initial; |
||||
font-size: 12px; |
||||
color: #999; |
||||
resize: none; |
||||
} |
||||
*::-webkit-scrollbar { |
||||
width: 8px; |
||||
height: 8px; |
||||
} |
||||
/*定义滚动条轨道 内阴影+圆角*/ |
||||
*::-webkit-scrollbar-track { |
||||
border-radius: 10px; |
||||
/*滚动条的背景区域的圆角*/ |
||||
background-color: #eee; |
||||
/*滚动条的背景颜色*/ |
||||
} |
||||
/*定义滑块 内阴影+圆角*/ |
||||
*::-webkit-scrollbar-thumb { |
||||
border-radius: 10px; |
||||
/*滚动条的圆角*/ |
||||
background-color: #e6e6e6; |
||||
/*滚动条的背景颜色*/ |
||||
} |
||||
.ms-container { |
||||
margin: 12px; |
||||
height: calc(100% - 24px); |
||||
padding: 14px; |
||||
background: #fff; |
||||
} |
||||
.ms-header { |
||||
padding: 10px; |
||||
margin: 0; |
||||
border-bottom: 1px solid #ddd; |
||||
background: #fff; |
||||
height: 50px; |
||||
} |
||||
.ms-header button { |
||||
height: 30px; |
||||
} |
||||
.ms-pagination { |
||||
padding: 20px 0; |
||||
text-align: right; |
||||
} |
||||
.ms-fr { |
||||
float: right; |
||||
} |
||||
.ms-tr { |
||||
text-align: right; |
||||
} |
||||
.ms-weixin-content { |
||||
width: calc(100% - 140px); |
||||
} |
||||
.ms-weixin-dialog .el-dialog__header { |
||||
height: 55px; |
||||
box-sizing: border-box; |
||||
padding: 10px 10px 25px 10px; |
||||
border-bottom: 1px solid #e6e6e6; |
||||
} |
||||
.ms-weixin-dialog .el-dialog__header .el-dialog__title { |
||||
font-weight: bold; |
||||
font-size: 14px; |
||||
color: #333; |
||||
} |
||||
.ms-weixin-dialog .el-dialog__footer { |
||||
border-top: 1px solid #e6e6e6; |
||||
padding: 15px !important; |
||||
} |
||||
.ms-hover { |
||||
cursor: pointer; |
||||
} |
||||
.ms-hover:hover { |
||||
color: #0099ff; |
||||
background: #fff; |
||||
border-color: #0099ff; |
||||
} |
||||
.ms-header-select { |
||||
font-size: 0; |
||||
} |
||||
.ms-header-select > .el-select:nth-of-type(2) { |
||||
margin: 0 10px; |
||||
} |
||||
.el-submenu .el-menu-item.is-active { |
||||
border-radius: 4px; |
||||
} |
||||
.el-card, |
||||
.el-message { |
||||
border-radius: 0 !important; |
||||
} |
||||
.ms-mdiy-model-list { |
||||
width: 100%; |
||||
} |
||||
@ -0,0 +1,153 @@ |
||||
@import "../../ms-admin/4.7.0/less/app.less"; |
||||
//表单页 |
||||
.ms-mdiy-model-form { |
||||
.ms-width-height(100vw, 100vh); |
||||
.el-container { |
||||
height: 100%; |
||||
} |
||||
.ms-row { |
||||
button { |
||||
margin-left: 10px; |
||||
} |
||||
} |
||||
.ms-header-title { |
||||
margin-bottom: 15px; |
||||
} |
||||
.el-checkbox-group { |
||||
font-size: inherit !important; |
||||
} |
||||
//左侧自定义表单项 |
||||
.ms-editor-type-layout { |
||||
background: #fff; |
||||
min-width: 15%; |
||||
padding: 20px; |
||||
border-right: 1px solid @borderColor; |
||||
.ms-type-list { |
||||
.ms-margin-padding(0); |
||||
.ms-flex(); |
||||
flex-wrap: wrap; |
||||
li { |
||||
width: ~'calc(50% - 5px)'; |
||||
.ms-margin-padding(0 0 5px 0, 5px); |
||||
list-style: none; |
||||
background: #E6F7FF; |
||||
border: 1px solid @borderColor; |
||||
cursor: pointer; |
||||
i { |
||||
.ms-font(1em, #999); |
||||
margin: 0 5px; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
//中间排序 |
||||
.ms-editor-body-layout { |
||||
background: #fff; |
||||
margin: 8px; |
||||
.ms-form-item { |
||||
padding: 6px 20px 6px 20px; |
||||
border: 1px solid transparent; |
||||
//单位输入框 |
||||
.unit-input { |
||||
width: ~'calc(100% - 41px)' !important; |
||||
} |
||||
.el-form-item__content { |
||||
display: flex; |
||||
align-items: flex-start; |
||||
.del-but { |
||||
visibility: hidden; |
||||
padding-left: 20px; |
||||
margin-left: auto; |
||||
} |
||||
} |
||||
.el-radio { |
||||
line-height: inherit; |
||||
} |
||||
} |
||||
//选中的表单元素 |
||||
.active { |
||||
border-color: @themeColor; |
||||
.del-but { |
||||
visibility: visible !important; |
||||
} |
||||
} |
||||
//表单颜色默认下边距 |
||||
.sortable-ghost { |
||||
margin-bottom: 18px; |
||||
min-height: 40px; |
||||
} |
||||
} |
||||
//右侧选项属性 |
||||
.ms-editor-attr-layout { |
||||
background: #fff; |
||||
min-width: 20%; |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
.ms-header-title { |
||||
border-left: 1px solid @borderColor; |
||||
width: 100%; |
||||
} |
||||
.ms-editor-attr { |
||||
width: 100%; |
||||
display: flex; |
||||
flex-direction: column; |
||||
.form { |
||||
padding: 15px; |
||||
height: ~'calc(100vh - 200px)'; |
||||
overflow: auto; |
||||
.el-form-item__label { |
||||
line-height: 1.4em; |
||||
} |
||||
.el-form-item { |
||||
margin-bottom: 14px; |
||||
.input-with-select { |
||||
.el-input-group__append { |
||||
width: 90px; |
||||
.el-input { |
||||
input { |
||||
background-color: #fff; |
||||
border-top: 1px solid #dcdfe6; |
||||
border-bottom: 1px solid #dcdfe6; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
//下拉排序添加选项 |
||||
.ms-down-list { |
||||
.ms-margin-padding(0); |
||||
li { |
||||
.ms-align-center; |
||||
list-style: none; |
||||
margin-bottom: 12px; |
||||
i { |
||||
cursor: pointer; |
||||
.ms-hover; |
||||
font-size: 14px; |
||||
} |
||||
.ms-input, |
||||
.ms-radio, |
||||
.icon-tuodong { |
||||
margin-right: 6px; |
||||
line-height: initial; |
||||
} |
||||
} |
||||
.ms-plus { |
||||
.ms-hover; |
||||
i { |
||||
margin-right: 6px; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
.footer { |
||||
margin-top: auto; |
||||
border-top: 1px solid @borderColor; |
||||
height: 60px; |
||||
.ms-align-center; |
||||
justify-content: flex-end; |
||||
padding-right: 10px; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,4 @@ |
||||
@import "../../ms-admin/4.7.0/less/app.less"; |
||||
.ms-mdiy-model-list { |
||||
width: 100%; |
||||
} |
||||
@ -0,0 +1,149 @@ |
||||
/* |
||||
*这里的值严格按照UI设计图标注值来进行设置 |
||||
*/ |
||||
/* |
||||
*颜色 |
||||
*/ |
||||
/* |
||||
*页面的边距 |
||||
*/ |
||||
/* |
||||
*字体 |
||||
*/ |
||||
/* |
||||
*头像 |
||||
*/ |
||||
/* |
||||
* 按钮 |
||||
*/ |
||||
/* |
||||
*对常见的多行样式进行了方法封装,方便调用,加快开发效率 |
||||
*/ |
||||
html, |
||||
body { |
||||
min-height: 100vh; |
||||
width: 100vw; |
||||
background-color: #eee; |
||||
margin: 0; |
||||
display: flex; |
||||
font-weight: initial !important; |
||||
font-size: 14px !important; |
||||
color: #333 !important; |
||||
} |
||||
html *, |
||||
body * { |
||||
text-decoration: none !important; |
||||
font-family: Verdana, Arial, Helvetica, sans-serif; |
||||
box-sizing: border-box; |
||||
} |
||||
.ms-ellipsis { |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
white-space: nowrap; |
||||
display: block; |
||||
} |
||||
.ms-align-center { |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
input::-webkit-input-placeholder, |
||||
textarea::-webkit-input-placeholder { |
||||
font-weight: initial; |
||||
font-size: 12px; |
||||
color: #999; |
||||
resize: none; |
||||
} |
||||
*::-webkit-scrollbar { |
||||
width: 8px; |
||||
height: 8px; |
||||
} |
||||
/*定义滚动条轨道 内阴影+圆角*/ |
||||
*::-webkit-scrollbar-track { |
||||
border-radius: 10px; |
||||
/*滚动条的背景区域的圆角*/ |
||||
background-color: #eee; |
||||
/*滚动条的背景颜色*/ |
||||
} |
||||
/*定义滑块 内阴影+圆角*/ |
||||
*::-webkit-scrollbar-thumb { |
||||
border-radius: 10px; |
||||
/*滚动条的圆角*/ |
||||
background-color: #e6e6e6; |
||||
/*滚动条的背景颜色*/ |
||||
} |
||||
.ms-container { |
||||
margin: 12px; |
||||
height: calc(100% - 24px); |
||||
padding: 14px; |
||||
background: #fff; |
||||
} |
||||
.ms-header { |
||||
padding: 10px; |
||||
margin: 0; |
||||
border-bottom: 1px solid #ddd; |
||||
background: #fff; |
||||
height: 50px; |
||||
} |
||||
.ms-header button { |
||||
height: 30px; |
||||
} |
||||
.ms-pagination { |
||||
padding: 20px 0; |
||||
text-align: right; |
||||
} |
||||
.ms-fr { |
||||
float: right; |
||||
} |
||||
.ms-tr { |
||||
text-align: right; |
||||
} |
||||
.ms-weixin-content { |
||||
width: calc(100% - 140px); |
||||
} |
||||
.ms-weixin-dialog .el-dialog__header { |
||||
height: 55px; |
||||
box-sizing: border-box; |
||||
padding: 10px 10px 25px 10px; |
||||
border-bottom: 1px solid #e6e6e6; |
||||
} |
||||
.ms-weixin-dialog .el-dialog__header .el-dialog__title { |
||||
font-weight: bold; |
||||
font-size: 14px; |
||||
color: #333; |
||||
} |
||||
.ms-weixin-dialog .el-dialog__footer { |
||||
border-top: 1px solid #e6e6e6; |
||||
padding: 15px !important; |
||||
} |
||||
.ms-hover { |
||||
cursor: pointer; |
||||
} |
||||
.ms-hover:hover { |
||||
color: #0099ff; |
||||
background: #fff; |
||||
border-color: #0099ff; |
||||
} |
||||
.ms-header-select { |
||||
font-size: 0; |
||||
} |
||||
.ms-header-select > .el-select:nth-of-type(2) { |
||||
margin: 0 10px; |
||||
} |
||||
.el-submenu .el-menu-item.is-active { |
||||
border-radius: 4px; |
||||
} |
||||
.el-card, |
||||
.el-message { |
||||
border-radius: 0 !important; |
||||
} |
||||
.sortable-ghost { |
||||
opacity: 0.3; |
||||
background: #ccc !important; |
||||
border-color: transparent !important; |
||||
color: transparent !important; |
||||
} |
||||
.sortable-ghost * { |
||||
background: #ccc !important; |
||||
border-color: transparent !important; |
||||
color: transparent !important; |
||||
} |
||||
@ -0,0 +1,138 @@ |
||||
/* |
||||
*这里的值严格按照UI设计图标注值来进行设置 |
||||
*/ |
||||
/* |
||||
*颜色 |
||||
*/ |
||||
/* |
||||
*页面的边距 |
||||
*/ |
||||
/* |
||||
*字体 |
||||
*/ |
||||
/* |
||||
*头像 |
||||
*/ |
||||
/* |
||||
* 按钮 |
||||
*/ |
||||
/* |
||||
*对常见的多行样式进行了方法封装,方便调用,加快开发效率 |
||||
*/ |
||||
html, |
||||
body { |
||||
min-height: 100vh; |
||||
width: 100vw; |
||||
background-color: #eee; |
||||
margin: 0; |
||||
display: flex; |
||||
font-weight: initial !important; |
||||
font-size: 14px !important; |
||||
color: #333 !important; |
||||
} |
||||
html *, |
||||
body * { |
||||
text-decoration: none !important; |
||||
font-family: Verdana, Arial, Helvetica, sans-serif; |
||||
box-sizing: border-box; |
||||
} |
||||
.ms-ellipsis { |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
white-space: nowrap; |
||||
display: block; |
||||
} |
||||
.ms-align-center { |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
input::-webkit-input-placeholder, |
||||
textarea::-webkit-input-placeholder { |
||||
font-weight: initial; |
||||
font-size: 12px; |
||||
color: #999; |
||||
resize: none; |
||||
} |
||||
*::-webkit-scrollbar { |
||||
width: 8px; |
||||
height: 8px; |
||||
} |
||||
/*定义滚动条轨道 内阴影+圆角*/ |
||||
*::-webkit-scrollbar-track { |
||||
border-radius: 10px; |
||||
/*滚动条的背景区域的圆角*/ |
||||
background-color: #eee; |
||||
/*滚动条的背景颜色*/ |
||||
} |
||||
/*定义滑块 内阴影+圆角*/ |
||||
*::-webkit-scrollbar-thumb { |
||||
border-radius: 10px; |
||||
/*滚动条的圆角*/ |
||||
background-color: #e6e6e6; |
||||
/*滚动条的背景颜色*/ |
||||
} |
||||
.ms-container { |
||||
margin: 12px; |
||||
height: calc(100% - 24px); |
||||
padding: 14px; |
||||
background: #fff; |
||||
} |
||||
.ms-header { |
||||
padding: 10px; |
||||
margin: 0; |
||||
border-bottom: 1px solid #ddd; |
||||
background: #fff; |
||||
height: 50px; |
||||
} |
||||
.ms-header button { |
||||
height: 30px; |
||||
} |
||||
.ms-pagination { |
||||
padding: 20px 0; |
||||
text-align: right; |
||||
} |
||||
.ms-fr { |
||||
float: right; |
||||
} |
||||
.ms-tr { |
||||
text-align: right; |
||||
} |
||||
.ms-weixin-content { |
||||
width: calc(100% - 140px); |
||||
} |
||||
.ms-weixin-dialog .el-dialog__header { |
||||
height: 55px; |
||||
box-sizing: border-box; |
||||
padding: 10px 10px 25px 10px; |
||||
border-bottom: 1px solid #e6e6e6; |
||||
} |
||||
.ms-weixin-dialog .el-dialog__header .el-dialog__title { |
||||
font-weight: bold; |
||||
font-size: 14px; |
||||
color: #333; |
||||
} |
||||
.ms-weixin-dialog .el-dialog__footer { |
||||
border-top: 1px solid #e6e6e6; |
||||
padding: 15px !important; |
||||
} |
||||
.ms-hover { |
||||
cursor: pointer; |
||||
} |
||||
.ms-hover:hover { |
||||
color: #0099ff; |
||||
background: #fff; |
||||
border-color: #0099ff; |
||||
} |
||||
.ms-header-select { |
||||
font-size: 0; |
||||
} |
||||
.ms-header-select > .el-select:nth-of-type(2) { |
||||
margin: 0 10px; |
||||
} |
||||
.el-submenu .el-menu-item.is-active { |
||||
border-radius: 4px; |
||||
} |
||||
.el-card, |
||||
.el-message { |
||||
border-radius: 0 !important; |
||||
} |
||||
Loading…
Reference in new issue