feature_0521
郑皇 6 years ago
parent 1757e67184
commit fdfd6fc320

@ -1,182 +1,132 @@
<template>
<div class="">
<div class>
<Row>
<i-col :span="12">
<Form ref="welcomeForm"
:model="welcome"
:rules="welcomeRules">
<FormItem label="欢迎语内容"
prop="content">
<i-input v-model="welcome.content"
type="textarea"
style="height: 220px"
:autosize="{ minRows: 10, maxRows: 10 }"
placeholder="请输入欢迎语内容,最多100个字"></i-input>
<Form ref="welcomeForm" :model="welcome" :rules="welcomeRules">
<FormItem label="欢迎语内容" prop="content">
<i-input
v-model="welcome.content"
type="textarea"
style="height: 220px"
:autosize="{ minRows: 10, maxRows: 10 }"
placeholder="请输入欢迎语内容,最多100个字"
></i-input>
</FormItem>
<Row style="margin-bottom: 10px"
:gutter="10"
class="inputItem"
v-for="(item, index) in welcome.params"
:key="index">
<Row
style="margin-bottom: 10px"
:gutter="10"
class="inputItem"
v-for="(item, index) in welcome.params"
:key="index"
>
<div v-if="item.type == 3">
<i-col style="line-height: 32px"
:span="4">
APPID {{ index + 1 }}
</i-col>
<i-col style="line-height: 32px" :span="4">APPID {{ index + 1 }}</i-col>
<i-col :span="6">
<i-input class="inputClass"
type="text"
disabled
v-model="item.defaultVal"></i-input>
</i-col>
<i-col style="line-height: 32px"
:span="4">
URI {{ index + 1 }}
<i-input class="inputClass" type="text" disabled v-model="item.defaultVal"></i-input>
</i-col>
<i-col style="line-height: 32px" :span="4">URI {{ index + 1 }}</i-col>
<i-col :span="6">
<i-input class="inputClass"
type="text"
disabled
v-model="item.description"></i-input>
<i-input class="inputClass" type="text" disabled v-model="item.description"></i-input>
</i-col>
</div>
<div v-else>
<i-col style="line-height: 32px"
:span="4">
{{ item.name }}{{ index + 1 }}
</i-col>
<i-col style="line-height: 32px" :span="4">{{ item.name }}{{ index + 1 }}</i-col>
<i-col :span="16">
<i-input class="inputClass"
type="text"
disabled
v-model="item.defaultVal"></i-input>
<i-input class="inputClass" type="text" disabled v-model="item.defaultVal"></i-input>
</i-col>
</div>
<i-col :span="4">
<Button type="error"
@click="delActivityInput(index)">删除</Button>
<Button type="error" @click="delActivityInput(index)"></Button>
</i-col>
</Row>
<FormItem>
<Button type="text"
@click="() => (showMessageTypes = true)"
icon="md-add">添加图片/网页/小程序消息</Button>
<Button type="text" @click="() => (showMessageTypes = true)" icon="md-add">添加图片/网页/小程序消息</Button>
</FormItem>
<FormItem label="配置范围: ">
<span v-if="welcome.stores.length > 0">
{{ welcome.stores[0].name }}{{ welcome.stores.length }}家店铺
</span>
<Button type="text"
@click="showStores"
icon="md-add">全部店铺</Button>
<span
v-if="welcome.stores.length > 0"
>{{ welcome.stores[0].name }}{{ welcome.stores.length }}家店铺</span>
<Button type="text" @click="showStores" icon="md-add">全部店铺</Button>
</FormItem>
<FormItem>
<Button type="primary"
long
@click="submit">确定</Button>
<Button type="primary" long @click="submit"></Button>
</FormItem>
</Form>
</i-col>
</Row>
<Modal v-model="showMessageTypes"
title="添加图片/网页/小程序消息"
:footer-hide="true">
<Modal v-model="showMessageTypes" title="添加图片/网页/小程序消息" :footer-hide="true">
<Row :gutter="24">
<i-col :span="8">
<Upload ref="upload"
:show-upload-list="false"
:on-success="uploadImgSuccess"
:format="['jpg', 'jpeg', 'png']"
:max-size="2048"
:before-upload="handleBeforeUpload"
multiple
type="drag"
action=""
style="width: 100%;">
<Upload
ref="upload"
:show-upload-list="false"
:on-success="uploadImgSuccess"
:format="['jpg', 'jpeg', 'png']"
:max-size="2048"
:before-upload="handleBeforeUpload"
multiple
type="drag"
action
style="width: 100%;"
>
<div style="width: 100%;">
<Button long
type="primary">图片</Button>
<Button long type="primary">图片</Button>
</div>
</Upload>
</i-col>
<i-col :span="8">
<Button long
@click="doShowWeb"
type="primary">网页</Button></i-col>
<Button long @click="doShowWeb" type="primary">网页</Button>
</i-col>
<i-col :span="8">
<Button long
@click="doShowMini"
type="primary">小程序</Button></i-col>
<Button long @click="doShowMini" type="primary">小程序</Button>
</i-col>
</Row>
</Modal>
<Modal v-model="showWeb"
title="添加网页消息"
:loading="true">
<Form ref="webForm"
:model="webForm"
:rules="webFormRules">
<FormItem label="添加网页消息"
prop="url">
<i-input v-model="webForm.url"
type="text"
placeholder="以http或https开头"></i-input>
<Modal v-model="showWeb" title="添加网页消息" :loading="true">
<Form ref="webForm" :model="webForm" :rules="webFormRules">
<FormItem label="添加网页消息" prop="url">
<i-input v-model="webForm.url" type="text" placeholder="以http或https开头"></i-input>
</FormItem>
</Form>
<div slot="footer">
<Button type="primary"
@click="cancelWeb">取消</Button>
<Button type="primary"
@click="okWeb">确定</Button>
<Button type="primary" @click="cancelWeb"></Button>
<Button type="primary" @click="okWeb"></Button>
</div>
</Modal>
<Modal v-model="showMini"
title="添加小程序消息"
:loading="true">
<Form ref="miniForm"
:model="miniForm"
:rules="miniFormRules">
<FormItem label="APPID"
prop="appid">
<i-input v-model="miniForm.appid"
type="text"
placeholder="请输入appid"></i-input>
<Modal v-model="showMini" title="添加小程序消息" :loading="true">
<Form ref="miniForm" :model="miniForm" :rules="miniFormRules">
<FormItem label="APPID" prop="appid">
<i-input v-model="miniForm.appid" type="text" placeholder="请输入appid"></i-input>
</FormItem>
<FormItem label="APPID"
prop="uri">
<i-input v-model="miniForm.uri"
type="text"
placeholder="请输入URl"></i-input>
<FormItem label="URI" prop="uri">
<i-input v-model="miniForm.uri" type="text" placeholder="请输入URl"></i-input>
</FormItem>
</Form>
<div slot="footer">
<Button type="primary"
@click="cancelMini">取消</Button>
<Button type="primary"
@click="okMini">确定</Button>
<Button type="primary" @click="cancelMini"></Button>
<Button type="primary" @click="okMini"></Button>
</div>
</Modal>
<selectStoreStep @doShow="doShow"
:schedule="welcome"
:show="showStoreCheck"></selectStoreStep>
<selectStoreStep @doShow="doShow" :schedule="welcome" :show="showStoreCheck"></selectStoreStep>
</div>
</template>
<script type="text/javascript">
import axios from 'axios'
import { isURL } from '../../utils/Common'
import store from '../../store'
import selectStoreStep from '../activity/selectStoreStep'
import axios from "axios";
import { isURL } from "../../utils/Common";
import store from "../../store";
import selectStoreStep from "../activity/selectStoreStep";
import ActivityManager from "../../services/ActivityManager/ActivityManager";
const validateUrl = (rule, value, callback) => {
const is = isURL(value)
const is = isURL(value);
if (is) {
callback()
callback();
} else {
callback(new Error('URL非法,请以http或https开头'))
callback(new Error("URL非法,请以http或https开头"));
}
}
};
export default {
data () {
data() {
return {
showStoreCheck: false,
showWeb: false,
@ -184,54 +134,54 @@ export default {
id: 0,
showMessageTypes: false,
welcome: {
content: '',
content: "",
params: [],
company: [],
stores: [],
stores: []
},
welcomeRules: {
content: [
{ required: true, message: '请输入欢迎语内容', trigger: 'blur' },
{ required: true, message: "请输入欢迎语内容", trigger: "blur" },
{
type: 'string',
type: "string",
max: 100,
message: '欢迎语最长100个字符',
trigger: 'blur',
},
],
message: "欢迎语最长100个字符",
trigger: "blur"
}
]
},
webFormRules: {
url: [
{ required: true, message: '请输入url', trigger: 'blur' },
{ validator: validateUrl, trigger: 'blur' },
],
{ required: true, message: "请输入url", trigger: "blur" },
{ validator: validateUrl, trigger: "blur" }
]
},
webForm: { url: '' },
webForm: { url: "" },
miniFormRules: {
appid: [{ required: true, message: '请输入url', trigger: 'blur' }],
uri: [{ required: true, message: '请输入url', trigger: 'blur' }],
appid: [{ required: true, message: "请输入url", trigger: "blur" }],
uri: [{ required: true, message: "请输入url", trigger: "blur" }]
},
miniForm: { appid: '', uri: '' },
}
miniForm: { appid: "", uri: "" }
};
},
created () {
this.id = this.$route.query.id
store.commit('SET_useData', { ...store.getters.useData, ...this.welcome })
console.log(this.$route)
created() {
this.id = this.$route.query.id;
store.commit("SET_useData", { ...store.getters.useData, ...this.welcome });
console.log(this.$route);
if (this.id) {
this.getDetail(this.id)
this.getDetail(this.id);
}
},
components: {
selectStoreStep,
selectStoreStep
},
methods: {
doShow () {
this.showStoreCheck = false
this.welcome = store.getters.useData
console.log(this.welcome)
doShow() {
this.showStoreCheck = false;
this.welcome = store.getters.useData;
console.log(this.welcome);
},
getDetail (instanceId) {
getDetail(instanceId) {
let _this = this;
ActivityManager.instanceDetail(
{
@ -242,85 +192,88 @@ export default {
}
);
},
showStores () {
console.log({ ...store.getters.useData, ...this.welcome })
store.commit('SET_useData', { ...store.getters.useData, ...this.welcome })
this.showStoreCheck = true
showStores() {
console.log({ ...store.getters.useData, ...this.welcome });
store.commit("SET_useData", {
...store.getters.useData,
...this.welcome
});
this.showStoreCheck = true;
},
uploadImgSuccess (res, file) { },
cancelWeb () {
this.showWeb = false
uploadImgSuccess(res, file) {},
cancelWeb() {
this.showWeb = false;
},
doShowWeb () {
this.showWeb = true
this.webForm = { url: '' }
doShowWeb() {
this.showWeb = true;
this.webForm = { url: "" };
},
doShowMini () {
this.showMini = true
doShowMini() {
this.showMini = true;
this.miniForm = {
appid: '',
uri: '',
}
appid: "",
uri: ""
};
},
cancelMini () {
this.showMini = false
cancelMini() {
this.showMini = false;
},
okWeb () {
let _this = this
this.$refs['webForm'].validate((valid) => {
okWeb() {
let _this = this;
this.$refs["webForm"].validate(valid => {
if (valid) {
_this.welcome.params.push({
attr: 2,
defaultVal: this.webForm.url,
description: this.webForm.url,
isRequired: 1,
key: 'url',
key: "url",
limitLower: null,
limitUpper: null,
name: '网页',
type: 2,
})
this.showWeb = false
this.showMessageTypes = false
name: "网页",
type: 2
});
this.showWeb = false;
this.showMessageTypes = false;
}
})
});
},
okMini () {
let _this = this
this.$refs['miniForm'].validate((valid) => {
okMini() {
let _this = this;
this.$refs["miniForm"].validate(valid => {
if (valid) {
_this.welcome.params.push({
attr: 2,
defaultVal: this.miniForm.appid,
description: this.miniForm.uri,
isRequired: 1,
key: 'mini',
key: "mini",
limitLower: null,
limitUpper: null,
name: '小程序消息',
type: 3,
})
this.showMini = false
this.showMessageTypes = false
name: "小程序消息",
type: 3
});
this.showMini = false;
this.showMessageTypes = false;
}
})
});
},
delActivityInput (index) {
this.welcome.params.splice(index, 1)
this.$forceUpdate()
delActivityInput(index) {
this.welcome.params.splice(index, 1);
this.$forceUpdate();
},
handleBeforeUpload (res) {
const me = this
let data = new FormData()
data.append('file', res)
handleBeforeUpload(res) {
const me = this;
let data = new FormData();
data.append("file", res);
axios({
method: 'post',
url: '/upload',
method: "post",
url: "/upload",
data: data,
headers: {
'Content-Type': 'multipart/form-data',
},
}).then(function (res) {
"Content-Type": "multipart/form-data"
}
}).then(function(res) {
if (res.data.success) {
// me.formValidate.logo = res.data.results;
me.welcome.params.push({
@ -328,44 +281,44 @@ export default {
defaultVal: res.data.results,
description: res.data.results,
isRequired: 1,
key: 'image',
key: "image",
limitLower: null,
limitUpper: null,
name: '图片',
type: 1,
})
me.showMessageTypes = false
name: "图片",
type: 1
});
me.showMessageTypes = false;
}
})
return false
});
return false;
},
submit () {
let _this = this
submit() {
let _this = this;
if (this.welcome.params.length <= 0) {
_this.$Message.error('请添加图片/网页/小程序消息')
_this.$Message.error("请添加图片/网页/小程序消息");
}
if (this.welcome.stores.length <= 0) {
_this.$Message.error('请至少选择一个店铺')
_this.$Message.error("请至少选择一个店铺");
}
this.$refs['welcomeForm'].validate((valid) => {
this.$refs["welcomeForm"].validate(valid => {
if (valid) {
let data = _this.welcome
data.isGetActivityInfo = true
let data = _this.welcome;
data.isGetActivityInfo = true;
axios({
method: 'post',
url: '/activity/instance/saveWelcome',
method: "post",
url: "/activity/instance/saveWelcome",
data: data,
headers: {
'Content-Type': 'applications/json',
},
}).then((res) => {
console.log(res)
})
"Content-Type": "applications/json"
}
}).then(res => {
_this.$router.push("/shop/increase/welcome/list");
});
}
})
},
},
}
});
}
}
};
</script>
<style scope>

@ -1,50 +1,42 @@
<template>
<div>
<Row class="search-row">
<i-col span="24"
class="search-col">
<i-col span="24" class="search-col">
<Row class="row-style">
<Button @click="handleEdit"
type="primary">配置欢迎语</Button>
<Button @click="handleEdit" type="primary">配置欢迎语</Button>
</Row>
</i-col>
</Row>
<Table :columns="columns1"
:data="data"
style="margin-top: 20px;"
size="small">
<template slot-scope="{ row, index }"
slot="action">
<Button type="primary"
size="small"
@click="handleEdit(row, index)">修改</Button>
<Button type="error"
size="small"
@click="handleDelete(row, index)">删除</Button>
<Table :columns="columns1" :data="data" style="margin-top: 20px;" size="small">
<template slot-scope="{ row, index }" slot="action">
<Button type="primary" size="small" @click="handleEdit(row, index)">修改</Button>
<Button type="error" size="small" @click="handleDelete(row, index)">删除</Button>
</template>
</Table>
<Page :total="total"
:current="pageNum"
:page-size="pageSize"
show-elevator
show-total
placement="top"
@on-change="handlePage"
class="ks-page"></Page>
<Page
:total="total"
:current="pageNum"
:page-size="pageSize"
show-elevator
show-total
placement="top"
@on-change="handlePage"
class="ks-page"
></Page>
</div>
</template>
<script>
import data from '../../utils/PhoneRegionData'
import http from '../../services/store/IncreaseStoreManager'
import data from "../../utils/PhoneRegionData";
import http from "../../services/store/IncreaseStoreManager";
import staff from '../../services/staff/staff'
import staff from "../../services/staff/staff";
export default {
name: 'IncreaseWelcomeList',
inject: ['setMenuName'],
data () {
let _this = this
name: "IncreaseWelcomeList",
inject: ["setMenuName"],
data() {
let _this = this;
return {
loading: true,
//
@ -55,92 +47,91 @@ export default {
columns1: [
{
width: 60,
align: 'center',
title: '序号',
render (h, params) {
console.log(params)
let num = parseInt(params.index) + 1
console.log(_this.pageSize)
align: "center",
title: "序号",
render(h, params) {
console.log(params);
let num = parseInt(params.index) + 1;
console.log(_this.pageSize);
if (_this.pageSize > 1) {
num += (_this.pageNum - 1) * _this.pageSize
num += (_this.pageNum - 1) * _this.pageSize;
}
return h('span', num)
},
return h("span", num);
}
},
{
title: '欢迎语',
key: 'scheduleVO.description',
render (h, params) {
return h('span', params.row.scheduleVO.description)
},
title: "欢迎语",
key: "scheduleVO.description",
render(h, params) {
return h("span", params.row.content);
}
},
{
title: '配置范围',
key: 'shop',
render (h, params) {
title: "配置范围",
key: "shop",
render(h, params) {
return h(
'span',
params.row.companyName +
'等' +
(params.row.companyCount || 0) +
'家公司'
)
},
"span",
params.row.storeName +
"等" +
(params.row.storeCount || 0) +
"家公司"
);
}
},
{ title: '配置时间', key: 'createTime' },
{ title: '修改时间', key: 'updateTime' },
{ title: '操作', slot: 'action' },
{ title: "配置时间", key: "createTime" },
{ title: "修改时间", key: "updateTime" },
{ title: "操作", slot: "action" }
],
formValidate: {},
}
formValidate: {}
};
},
mounted () {
this.setMenuName('门店推广', '欢迎语')
this.handlePaginate()
mounted() {
this.setMenuName("门店推广", "欢迎语");
this.handlePaginate();
},
methods: {
//
handlePaginate () {
this.loading = true
handlePaginate() {
this.loading = true;
let params = {
pageNum: this.pageNum,
pageSize: this.pageSize,
userId: JSON.parse(sessionStorage.getItem('loginInfo')).userId,
categoryCode: 'welcome',
}
http.getWelcomeList(params, (res) => {
const data = res.data.results.this || {}
this.data = data.list || []
this.totalSize = data.total || 0
this.loading = false
})
userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId,
categoryCode: "welcome"
};
http.getWelcomeList(params, res => {
const data = res.data.results.this || {};
this.data = data.list || [];
this.totalSize = data.total || 0;
this.loading = false;
});
},
//
handlePage: function (value) {
this.pageNum = value
handlePage: function(value) {
this.pageNum = value;
},
//
handleEdit (row) {
handleEdit(row) {
this.$router.push({
path: '/shop/increase/welcome/edit',
query: { id: row.id },
})
path: "/shop/increase/welcome/edit",
query: { id: row.id }
});
},
//
handleDelete (row) {
handleDelete(row) {
let _this = this;
this.$Modal.confirm({
title: '删除欢迎语',
content: '您确定要删除该欢迎语?',
title: "删除欢迎语",
content: "您确定要删除该欢迎语?",
onOk: () => {
http.deleteWelcome({ id: row.scheduleId }).then(_this.handlePaginate)
http.deleteWelcome({ id: row.scheduleId }).then(_this.handlePaginate);
},
onCancel: () => {
}
onCancel: () => {}
});
},
},
}
}
}
};
</script>
<style scoped></style>

Loading…
Cancel
Save