<!DOCTYPE HTML>
|
<html xmlns:th="http://www.thymeleaf.org">
|
<head>
|
<meta charset="utf-8">
|
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
<meta name="renderer" content="webkit|ie-comp|ie-stand">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
|
<meta http-equiv="Cache-Control" content="no-siteapp"/>
|
<LINK rel="Bookmark" th:href="@{/images/favicon.ico}">
|
<!-- 本框架基本脚本和样式 -->
|
<script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
|
<link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
|
<link rel="stylesheet" th:href="@{/plugin/bootstrap-3.3.5/css/bootstrap.min.css}">
|
<link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
|
<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
|
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
|
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/ueditor.config.js}"></script>
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/ueditor.all.js}"></script>
|
<script type="text/javascript" th:src="@{/plugin/bootstrap-3.3.5/js/bootstrap.min.js}"></script>
|
<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
|
<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
|
<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
|
</head>
|
|
<body>
|
<div id="app" class="ibox-content">
|
<el-form :model="ruleForm" :rules="rules" class="form-horizontal" id="dataform" ref="ruleForm" label-width="120px">
|
<div class="form-group">
|
<div class="col-sm-4 col-sm-offset-1">
|
<el-form-item label="活动名称" prop="actName">
|
<el-input v-model="ruleForm.actName" placeholder="请输入活动名称"></el-input>
|
</el-form-item>
|
</div>
|
|
<div class="col-sm-4 col-sm-offset-1">
|
<el-form-item label="参与门店" prop="shopIdsArr">
|
<el-select v-model="ruleForm.shopIdsArr" multiple filterable placeholder="请选择" style="width:100%">
|
<el-option v-for="item in shopList" :key="item.id" :label="item.shopName" :value="item.id" ></el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="form-group">
|
<div class="col-sm-4 col-sm-offset-1">
|
<el-form-item label="活动时间" prop="actTime">
|
<el-date-picker v-model="ruleForm.actTime" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="至"
|
start-placeholder="开始日期" end-placeholder="结束日期">
|
</el-date-picker>
|
</el-form-item>
|
|
<el-form-item label="最大参与人数" prop="actMax">
|
<el-input v-model="ruleForm.actMax" placeholder="请输入最大参与人数, 0或不输入为不限制"></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<div class="col-sm-4 col-sm-offset-1">
|
<el-form-item label="缩略图">
|
<input @change="selectFile" type="file" placeholder="请选择要上传的文件"></input>
|
<el-image v-show="ruleForm.actImg != ''" style="width: 100px; height: 100px" :src="ruleForm.actImg" fit="contain"></el-image>
|
</el-form-item>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<div class="col-sm-8 col-sm-offset-1">
|
<el-form-item label="">
|
<el-button type="primary" @click="addAttr">添加信息字段</el-button>
|
</el-form-item>
|
</div>
|
</div>
|
|
<div class="form-group" v-for="(item,index) in ruleForm.attrLists" :key="index">
|
<div class="col-sm-3 col-sm-offset-2">
|
<el-form-item label="字段名称" :prop="'attrLists.'+index+'.attrName'" :rules="rules.attrName">
|
<el-input v-model.number="item.attrName"></el-input>
|
</el-form-item>
|
</div>
|
<div class="col-sm-1" v-show="ruleForm.attrLists.length > 1" >
|
<el-button @click="removeAttr(item,index)">删除</el-button>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<div class="col-sm-10 col-sm-offset-1">
|
<script style="width: 100%; height: 500px" id="mobileDetails" name="mobileDetails" type="text/plain"></script>
|
</div>
|
</div>
|
|
<div class="form-group ">
|
<div class="col-sm-12 text-center">
|
<el-button type="primary" @click="dataSubmit('ruleForm')">保存</el-button>
|
<el-button type="danger" @click="closeForm">关闭</el-button>
|
</div>
|
</div>
|
</el-form>
|
</div>
|
<script>
|
const priceValidator = (rule, value, callback) =>{
|
const reg = /(?!^0*(\.0{1,2})?$)^\d{1,13}(\.\d{1,2})?$/;
|
const flag = reg.test(value);
|
if (flag) {
|
callback()
|
} else {
|
callback(new Error('请输入保留两位以内的小数'))
|
}
|
};
|
var mobileEditor = {};
|
|
var vm = new Vue({
|
el : "#app",
|
data : {
|
ruleForm : {
|
id : '',
|
actName : '',
|
actMax : '',
|
shopIds : '',
|
shopIdsArr : '',
|
actTime : '',
|
beginTime : '',
|
endTime : '',
|
actRemark : '',
|
actImg : "",
|
actContent : '',
|
attrLists : [{ attrName : "" }]
|
},
|
process : '',
|
rules : {
|
shopIdsArr : [
|
{ required: true, message: '请选择参与门店', trigger: 'change' }
|
],
|
actName : [
|
{ required: true, message: '请输入活动名称', trigger: 'blur' }
|
],
|
attrName : [
|
{ required: true, message: '请输入字段名称', trigger: 'blur' }
|
],
|
actTime : [
|
{ required: true, message: '请选择日期', trigger: 'blur' }
|
],
|
price : [
|
{ required: true, message: '请输入保留两位以内的小数', trigger: 'blur' },
|
{ validator : priceValidator, trigger: 'blur' }
|
],
|
count : [
|
{ required: true, message: '请输入信息', trigger: 'blur' },
|
{ type : 'number', message: '请输入数字', trigger: 'blur' }
|
],
|
},
|
shopList : [],
|
},
|
created : function() {
|
mobileEditor = UE.getEditor('mobileDetails');
|
this.initForm();
|
},
|
methods : {
|
initForm : function () {
|
var _this = this;
|
$.AjaxProxy().invoke(basePath + "/admin/shopInfo/findShops", function(loj){
|
_this.shopList = loj[0].result.rows;
|
var id = $.query.get("id");
|
console.log("----<>", id)
|
if (id != null && id!='') {
|
_this.ruleForm.id = id;
|
_this.initData(id);
|
}
|
});
|
},
|
initData : function (id) {
|
var _this = this;
|
var ruleForm = _this.ruleForm;
|
mobileEditor.ready(function(){
|
$.AjaxProxy().invoke(basePath + "/admin/shopActivities/findShopActivitiesSalonById/" + id, function(loj){
|
console.log(loj);
|
const result = loj[0].result;
|
const activityInfo = result.mapInfo.activities;
|
ruleForm.attrLists = result.mapInfo.list;
|
ruleForm.actName = activityInfo.actName;
|
ruleForm.actMax = activityInfo.actMax;
|
ruleForm.shopIdsArr = activityInfo.shopIds.split(",").map(Number);
|
ruleForm.actImg = activityInfo.actImg;
|
ruleForm.actMax = activityInfo.actMax;
|
var timeArr = new Array();
|
timeArr.push(activityInfo.actBeginTime);
|
timeArr.push(activityInfo.actEndTime);
|
ruleForm.actTime = timeArr;
|
ruleForm.actContent = activityInfo.actContent;
|
mobileEditor.setContent(activityInfo.actContent, false);
|
});
|
});
|
|
},
|
addAttr : function () {
|
var _this = this;
|
_this.ruleForm.attrLists.push({ attrName : ""});
|
},
|
removeAttr : function (item,index) {
|
this.ruleForm.attrLists.splice(index, 1);
|
},
|
selectFile(e) {
|
let _this = this;
|
|
let loading = _this.$loading({
|
lock: true,
|
text: '上传中' + _this.process,
|
spinner: 'el-icon-loading',
|
background: 'rgba(0, 0, 0, 0.7)'
|
});
|
uploadForImage(
|
basePath + "/admin/multipleUploadFile/doUpload",
|
e.target.files[0],
|
function (d, result) {
|
_this.process = d + "%";
|
if (d == 100) {
|
|
if (result) {
|
if (result.status == 200) {
|
loading.close();
|
_this.ruleForm.actImg = result.path;
|
} else {
|
_this.$message({
|
message: result.msg,
|
type: 'error'
|
});
|
}
|
}
|
}
|
},
|
"1"
|
);
|
},
|
dataSubmit : function (formName) {
|
const _this = this;
|
var result = _this.ruleForm;
|
var flag = false;
|
_this.$refs[formName].validate((valid) => {
|
if (!valid) {
|
console.log('error submit!!');
|
flag = true;
|
return;
|
}
|
});
|
if (flag) {
|
return;
|
}
|
|
result.actContent = mobileEditor.getContent();
|
if (!result.actContent) {
|
_this.$notify({
|
title: '提示',
|
message: '请输入活动内容',
|
type: 'warning'
|
});
|
return;
|
}
|
|
if (!result.actImg) {
|
_this.$notify({
|
title: '提示',
|
message: '请上传缩略图',
|
type: 'warning'
|
});
|
return;
|
}
|
result.shopIds = result.shopIdsArr.toString();
|
result.beginTime = result.actTime[0];
|
result.endTime = result.actTime[1];
|
AjaxProxy.requst({
|
app: _this,
|
data: result,
|
url: basePath + '/admin/shopActivities/addSalonActivity',
|
callback: function (data) {
|
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
parent.myGrid.serchData();
|
}
|
});
|
},
|
closeForm : function() {
|
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
}
|
|
}
|
});
|
</script>
|
</body>
|
</html>
|