feature_0521
zhenghuang 5 years ago
parent 91926b00d3
commit 883917bf5e

@ -1,96 +1,124 @@
<template> <template>
<Modal <Modal v-model="dispalyModal"
v-model="dispalyModal" width="1000"
width="1000" :loading="true"
:loading="true" :mask-closable="false"
:mask-closable="false" @on-visible-change="visibleChange"
@on-visible-change="visibleChange" @on-cancel="cancel">
@on-cancel="cancel" <p slot="header"
> style="color:#f60;text-align:left">
<p slot="header" style="color:#f60;text-align:left">
<span>配置活动</span> <span>配置活动</span>
</p> </p>
<div>基本配置</div> <div>基本配置</div>
<Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80"> <Form ref="formValidate"
:model="formValidate"
:rules="ruleValidate"
:label-width="80">
<Row> <Row>
<i-col style="text-align: left;" span="8"> <i-col style="text-align: left;"
<FormItem label prop="logo"> span="8">
<Upload <FormItem label
ref="upload" prop="logo">
:show-upload-list="false" <Upload ref="upload"
:on-success="uploadImgSuccess" :show-upload-list="false"
:format="['jpg', 'jpeg', 'png']" :on-success="uploadImgSuccess"
:max-size="2048" :format="['jpg', 'jpeg', 'png']"
:before-upload="handleBeforeUpload" :max-size="2048"
multiple :before-upload="handleBeforeUpload"
type="drag" multiple
action type="drag"
style="display: inline-block;" action
> style="display: inline-block;">
<div style="width: 200px;height:200px;line-height: 200px;"> <div style="width: 200px;height:200px;line-height: 200px;">
<span v-if="!formValidate.logo"></span> <span v-if="!formValidate.logo"></span>
<img <img v-if="formValidate.logo"
v-if="formValidate.logo" :src="`/kiisoo-ic` + formValidate.logo"
:src="`/kiisoo-ic` + formValidate.logo" alt
alt style="width: 100%; height: auto" />
style="width: 100%; height: auto"
/>
</div> </div>
</Upload> </Upload>
</FormItem> </FormItem>
</i-col> </i-col>
<i-col span="15" offset="1"> <i-col span="15"
<FormItem label="活动名称" prop="name"> offset="1">
<i-input type="text" v-model="formValidate.name" placeholder="请输入活动名称"></i-input> <FormItem label="活动名称"
prop="name">
<i-input type="text"
v-model="formValidate.name"
placeholder="请输入活动名称"></i-input>
</FormItem> </FormItem>
<Form-item label="活动描述" prop="description"> <Form-item label="活动描述"
<i-input prop="description">
v-model="formValidate.description" <i-input v-model="formValidate.description"
type="textarea" type="textarea"
:autosize="{ minRows: 3 }" :autosize="{ minRows: 3 }"
placeholder="请输入活动描述" placeholder="请输入活动描述"></i-input>
></i-input>
</Form-item> </Form-item>
<Form-item label="欢迎语" prop="description"> <Form-item label="欢迎语"
<i-input prop="description">
v-model="formValidate.welcome" <i-input v-model="formValidate.welcome"
type="textarea" type="textarea"
:autosize="{ minRows: 3 }" :autosize="{ minRows: 3 }"
placeholder="请输入欢迎语" placeholder="请输入欢迎语"></i-input>
></i-input>
</Form-item> </Form-item>
<FormItem label="APPID" prop="appId"> <FormItem label="标题"
<i-input type="text" v-model="formValidate.appId" placeholder="请输入appid"></i-input> prop="title">
<i-input type="text"
v-model="formValidate.title"
placeholder="请输入标题"></i-input>
</FormItem> </FormItem>
<FormItem label="URI" prop="uri"> <FormItem label="APPID"
<i-input type="text" v-model="formValidate.uri" placeholder="请输入URI"></i-input> prop="appId">
<i-input type="text"
v-model="formValidate.appId"
placeholder="请输入appid"></i-input>
</FormItem>
<FormItem label="URI"
prop="uri">
<i-input type="text"
v-model="formValidate.uri"
placeholder="请输入URI"></i-input>
</FormItem> </FormItem>
</i-col> </i-col>
</Row> </Row>
</Form> </Form>
<div class="topic">活动类型</div> <div class="topic">活动类型</div>
<Row :gutter="10" class="inputItem" v-for="(item, index) in formValidate.params" :key="index"> <Row :gutter="10"
class="inputItem"
v-for="(item, index) in formValidate.params"
:key="index">
<i-col :span="2">类型{{ index + 1 }}</i-col> <i-col :span="2">类型{{ index + 1 }}</i-col>
<i-col :span="9"> <i-col :span="9">
<i-input class="inputClass" type="text" v-model="item.name" placeholder="请输入活动类型名称"></i-input> <i-input class="inputClass"
type="text"
v-model="item.name"
placeholder="请输入活动类型名称"></i-input>
</i-col> </i-col>
<i-col :span="9"> <i-col :span="9">
<i-input <i-input class="inputClass"
class="inputClass" type="text"
type="text" style="margin-left: 20px"
style="margin-left: 20px" v-model="item.defaultVal"
v-model="item.defaultVal" placeholder="请输入参数"></i-input>
placeholder="请输入参数"
></i-input>
</i-col> </i-col>
<i-col :span="4"> <i-col :span="4">
<Button style="margin-left: 20px" type="error" @click="delActivityInput(index)"></Button> <Button style="margin-left: 20px"
type="error"
@click="delActivityInput(index)">删除</Button>
</i-col> </i-col>
</Row> </Row>
<Button style="margin-top: 10px" type="primary" @click="addActivityInput">+</Button> <Button style="margin-top: 10px"
type="primary"
@click="addActivityInput">+添加活动类型</Button>
<div slot="footer"> <div slot="footer">
<Button type="primary" shape="circle" :loading="modal_loading" @click="cancel"></Button> <Button type="primary"
<Button type="primary" shape="circle" :loading="modal_loading" @click="save"></Button> shape="circle"
:loading="modal_loading"
@click="cancel">取消</Button>
<Button type="primary"
shape="circle"
:loading="modal_loading"
@click="save">确定</Button>
</div> </div>
</Modal> </Modal>
</template> </template>
@ -99,7 +127,7 @@ import ActivityManager from "../../services/ActivityManager/ActivityManager";
import axios from "axios"; import axios from "axios";
export default { export default {
name: "addActivity", name: "addActivity",
data() { data () {
return { return {
dispalyModal: false, dispalyModal: false,
currentStep: 0, currentStep: 0,
@ -114,6 +142,7 @@ export default {
description: [ description: [
{ required: true, message: "活动描述不能为空", trigger: "blur" } { required: true, message: "活动描述不能为空", trigger: "blur" }
], ],
title: [{ required: true, message: "请输入标题", trigger: "blur" }],
appId: [{ required: true, message: "appId不能为空", trigger: "blur" }], appId: [{ required: true, message: "appId不能为空", trigger: "blur" }],
uri: [{ required: true, message: "URI不能为空", trigger: "blur" }], uri: [{ required: true, message: "URI不能为空", trigger: "blur" }],
welcome: [{ required: true, message: "请输入欢迎语", trigger: "blur" }] welcome: [{ required: true, message: "请输入欢迎语", trigger: "blur" }]
@ -128,7 +157,7 @@ export default {
id: String id: String
}, },
watch: { watch: {
addActivityModal(val) { addActivityModal (val) {
this.dispalyModal = val; this.dispalyModal = val;
if (val === true && this.id) { if (val === true && this.id) {
this.getActivityData(); this.getActivityData();
@ -157,9 +186,9 @@ export default {
this.$forceUpdate(); this.$forceUpdate();
} }
}, },
mounted() {}, mounted () { },
methods: { methods: {
addActivityInput() { addActivityInput () {
let params = [...this.formValidate.params]; let params = [...this.formValidate.params];
params.push({ params.push({
defaultVal: "", defaultVal: "",
@ -175,7 +204,7 @@ export default {
this.$set(this.formValidate, "params", params); this.$set(this.formValidate, "params", params);
this.$forceUpdate(); this.$forceUpdate();
}, },
delActivityInput(index) { delActivityInput (index) {
if (this.formValidate.params.length <= 1) { if (this.formValidate.params.length <= 1) {
this.$Message.error("至少需要填写一个活动类型!"); this.$Message.error("至少需要填写一个活动类型!");
return; return;
@ -183,30 +212,31 @@ export default {
this.formValidate.params.splice(index, 1); this.formValidate.params.splice(index, 1);
this.$forceUpdate(); this.$forceUpdate();
}, },
visibleChange(show) { visibleChange (show) {
if (!show) { if (!show) {
this.$emit("dispalyAddActivityModal", false, false); this.$emit("dispalyAddActivityModal", false, false);
} }
}, },
cancel() { cancel () {
this.$emit("dispalyAddActivityModal", false, false); this.$emit("dispalyAddActivityModal", false, false);
}, },
getActivityData() { getActivityData () {
let that = this; let that = this;
let data = { let data = {
id: that.id id: that.id
}; };
ActivityManager.getActivityInfo(data, function(data) { ActivityManager.getActivityInfo(data, function (data) {
that.formValidate = data.data.results; that.formValidate = data.data.results;
}); });
}, },
uploadImgSuccess(res, file) { uploadImgSuccess (res, file) {
this.imageName = file.name; this.imageName = file.name;
}, },
handleBeforeUpload(res) { handleBeforeUpload (res) {
const me = this; const me = this;
let data = new FormData(); let data = new FormData();
data.append("file", res); data.append("file", res);
data.append("needMediaId", true)
axios({ axios({
method: "post", method: "post",
url: "/upload", url: "/upload",
@ -214,16 +244,17 @@ export default {
headers: { headers: {
"Content-Type": "multipart/form-data" "Content-Type": "multipart/form-data"
} }
}).then(function(res) { }).then(function (res) {
if (res.data.success) { if (res.data.success) {
// me.formValidate.logo = res.data.results; // me.formValidate.logo = res.data.results;
me.$set(me.formValidate, "logo", res.data.results.localPath); me.$set(me.formValidate, "logo", res.data.results.localPath);
me.$set(me.formValidate, "mediaId", res.data.results.mediaId);
console.log(me.formValidate.logo); console.log(me.formValidate.logo);
} }
}); });
return false; return false;
}, },
save() { save () {
let that = this; let that = this;
that.modal_loading = true; that.modal_loading = true;
let i = 0; let i = 0;
@ -263,7 +294,7 @@ export default {
let data = { ...that.formValidate, isGetActivityInfo: true }; let data = { ...that.formValidate, isGetActivityInfo: true };
data.categoryId = 0; data.categoryId = 0;
data.categoryCode = "promotion"; data.categoryCode = "promotion";
ActivityManager.addOreditActivity(data, function(data) { ActivityManager.addOreditActivity(data, function (data) {
that.addActivityModal = false; that.addActivityModal = false;
that.formValidate = {}; that.formValidate = {};
that.modal_loading = false; that.modal_loading = false;

@ -5,32 +5,32 @@ module.exports = {
/* 用于默认#模式 */ /* 用于默认#模式 */
// publicPath: process.env.NODE_ENV === 'production' ? '/public/' : './', // publicPath: process.env.NODE_ENV === 'production' ? '/public/' : './',
/* history模式 */ /* history模式 */
publicPath: process.env.NODE_ENV === 'production' ? '/' : '/', publicPath: process.env.NODE_ENV === 'production' ? '/' : '/',
/* 输出文件目录在npm run build时生成文件的目录名称 */ /* 输出文件目录在npm run build时生成文件的目录名称 */
outputDir: 'dist', outputDir: 'dist',
/* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */ /* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */
assetsDir: "assets", assetsDir: 'assets',
/* 是否在构建生产包时生成 sourceMap 文件false将提高构建速度 */ /* 是否在构建生产包时生成 sourceMap 文件false将提高构建速度 */
productionSourceMap: false, productionSourceMap: false,
/* 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */ /* 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */
filenameHashing: false, filenameHashing: false,
/* 代码保存时进行eslint检测 */ /* 代码保存时进行eslint检测 */
lintOnSave: true, lintOnSave: true,
/* webpack-dev-server 相关配置 */ /* webpack-dev-server 相关配置 */
devServer: { devServer: {
/* 自动打开浏览器 */ /* 自动打开浏览器 */
open: true, open: true,
/* 设置为0.0.0.0则所有的地址均能访问 */ /* 设置为0.0.0.0则所有的地址均能访问 */
host: '0.0.0.0', host: '0.0.0.0',
port: 8311, port: 8311,
https: false, https: false,
hotOnly: false, hotOnly: false,
disableHostCheck: true, disableHostCheck: true,
/* 使用代理 后台接口路径 */ /* 使用代理 后台接口路径 */
// proxy: 'http://192.168.1.123:8312/' // proxy: 'http://192.168.1.123:8312/'
// proxy: 'http://192.168.31.177:8312/' // proxy: 'http://192.168.31.177:8312/'
proxy: 'http://localhost:8312/' proxy: 'http://localhost:8080/',
// proxy: 'http://jdxdev.vipgz4.idcfengye.com/' // proxy: 'http://jdxdev.vipgz4.idcfengye.com/'
} },
} }

Loading…
Cancel
Save