Commit 744c09cd by crushh

update: 规则列表

parent fd7f6e16
......@@ -111,7 +111,7 @@ const router = new Router({
},
},
{
path: '/editRule',
path: '/editRule/:id',
name: 'editRule',
component: ruleInfo,
meta: {
......@@ -127,6 +127,14 @@ const router = new Router({
},
},
{
path: '/copyRule/:id',
name: 'copyRule',
component: ruleInfo,
meta: {
type: 'copy',
},
},
{
path: '/giftExchange',
name: 'giftExchange',
component: giftExchange,
......
......@@ -2,7 +2,7 @@
import axios from 'axios';
import store from '../store/index';
import router from '../router';
import { Message } from 'element-ui';
// axios 配置
// axios.defaults.timeout = 5000;
// let adminUrl = 'http://gicdev.demogic.com'
......@@ -46,26 +46,65 @@ request.interceptors.request.use(
// http response 拦截器
request.interceptors.response.use(
response => {
if (response.status == 200 && response.data.errorCode === 401) {
window.location.href = window.location.origin + '/gic-web';
// window.location.href = 'http://gicdev.com/gic-web'
console.log('===>');
console.log(response);
const { data, config } = response;
let err;
const { errorCode } = data;
switch (errorCode) {
case 0:
return response;
case 401:
Message({
message: '登录失效',
type: 'error',
});
window.location.href = window.location.origin + '/gic-web';
break;
case undefined:
break;
default:
Message({
message: data.message,
type: 'error',
});
err = new Error(`${data.message}: ${config.url}`);
if (__DEVELOPMENT) {
console.log('>>>>>>>>>> response data error >>>>>>>>>>');
}
return Promise.reject(err);
}
return response;
},
error => {
if (error.response) {
switch (error.response.status) {
case 401:
// 401 清除token信息并跳转到登录页面
store.commit(types.LOGOUT);
router.replace({
name: 'login',
query: { redirect: router.currentRoute.fullPath }
});
}
console.log('===>');
console.log(error);
const status = err.response.status;
switch (status) {
case 400: err.message = '请求错误'; break;
case 401: err.message = '未授权,请登录';
store.commit(types.LOGOUT);
window.location.href = window.location.origin + '/gic-web';
break;
case 403: err.message = '拒绝访问'; break;
case 404: err.message = `请求地址出错: ${err.response.config.url}`; break;
case 408: err.message = '请求超时'; break;
case 500: err.message = '服务器内部错误'; break;
case 501: err.message = '服务未实现'; break;
case 502: err.message = '网关错误'; break;
case 503: err.message = '服务不可用'; break;
case 504: err.message = '网关超时'; break;
case 505: err.message = 'HTTP版本不受支持'; break;
default: break;
}
return Promise.reject(error.response.data);
if (__DEVELOPMENT) {
console.log('>>>>>>>>>> response error >>>>>>>>>>');
}
Message({
message: '系统异常',
type: 'error',
});
return Promise.reject(err);
}
);
......
......@@ -8,11 +8,13 @@
</el-breadcrumb-item>
<el-breadcrumb-item>积分商城</el-breadcrumb-item>
<el-breadcrumb-item>商品</el-breadcrumb-item>
<el-breadcrumb-item>上架规则</el-breadcrumb-item>
<el-breadcrumb-item>新建上架规则</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/ruleList' }">
上架规则
</el-breadcrumb-item>
<el-breadcrumb-item>{{ breadcrumbTitle }}</el-breadcrumb-item>
</el-breadcrumb>
<h3>
<span>新建上架规则</span>
<span>{{ breadcrumbTitle }}</span>
</h3>
</div>
<div class="section">
......@@ -29,6 +31,8 @@
show-word-limit
placeholder="请输入上架规则名称"
v-model="ruleForm.ruleTitle"
clearable
@clear="ruleForm.ruleTitle=''"
style="width:340px"
/>
</el-form-item>
......@@ -41,35 +45,18 @@
style="width:340px"
/>
</el-form-item>
<el-form-item label="适用人群" prop="activityTime">
<el-form-item label="适用人群" prop="memberType">
<el-radio v-model="ruleForm.memberType" :label="1">
全部会员
</el-radio>
<el-radio v-model="ruleForm.memberType" :label="2">
会员分组
</el-radio>
<el-radio v-model="ruleForm.memberType" :label="3">
会员筛选
</el-radio>
</el-form-item>
<el-form-item v-if="ruleForm.memberType === 2">
<vue-gic-member-group
style="padding-left:0"
:readonly="readonly"
:height="543"
:defaltSelected="defaltSelected"
:projectName="projectName"
:effectiveStatus="1"
@handleDataTransferred="handleDataTransferred"
@handleDataLeft="handleDataLeft"
/>
</el-form-item>
<el-form-item v-if="ruleForm.memberType === 3">
<el-form-item v-show="ruleForm.memberType === 3">
<vue-gic-people
v-bind="storeParams"
:projectName="projectName"
:searchBackTxt.sync="searchBackTxt"
:conditionList.sync="conditionList"
:triggerReset="true"
:useId="useId"
:hasSearchData="hasSearchData"
......@@ -90,11 +77,12 @@
</el-button>
</div>
</el-form-item>
<div class="confim-btn" :style="{ width: fixedWidth + 'px' }">
<el-button type="primary" size="small" @click="nextStep()">
确认新建
</el-button>
<div>
<el-form-item style="margin-top:50px">
<el-button type="primary" size="small" @click="submit()">
确认新建
</el-button>
</el-form-item>
</div>
</el-form>
</div>
......@@ -103,15 +91,17 @@
</template>
<script>
import request from '../../../service/request';
export default {
data () {
const activityTimeVal = (rule, value, callback) => {
callback(new Error('请填写'));
};
return {
breadcrumbTitle: '新建上架规则',
fixedWidth: document.documentElement.clientWidth - 200,
ruleForm: {
memberType: 1,
},
rules: {
ruleTitle: [
......@@ -122,58 +112,113 @@ export default {
],
},
projectName: 'integral-mall',
searchBackTxt: '', // 保存选中的筛选条件用来不走接口查缩略信息
conditionList: [],
useId: '',
hasSearchData: '',
sceneValue: 'member', // 场景值
responseParams: [], // 回显的数据
defaltSelected: [],
headerList: ['isRealTime', 'latestUpdateTime', 'updateType', 'effectiveStatus', 'effectiveDate'], // 表头配置,默认全部,分组名称默认显示不可配置
toggleTag: true,
isEdit: this.$route.meta.type === 'edit',
isAdd: this.$route.meta.type === 'add',
isCopy: this.$route.meta.type === 'copy',
};
},
computed: {
storeParams () {
return !this.isAdd ? { creatorId: this.ruleForm.creatorId } : {};
},
},
mounted () {
console.log(this.$route.params.id);
if (!this.isAdd) {
this.integralMallProRuleId = this.$route.params.id;
this.getDatail(this.$route.params.id);
}
const obj = {
edit: '编辑上架规则',
add: '新建上架规则',
copy: '复制上架规则',
};
this.breadcrumbTitle = obj[this.$route.meta.type];
},
methods: {
// 子组件触发父组件事件,返回过滤条件数据
findFilter (value) {
/** 人群筛选器 */
cancelFilter () { // 取消
this.$refs.peopleFilter.cancelSet();
},
getData () {
this.$refs.peopleFilter.confirmSet();
},
// 获取需要回显的数据, 供保存时候使用
getBackData () {
getBackData (val) {
console.log(val);
this.ruleForm.searchJson = val;
},
// 显示编辑,保存按钮隐藏,确认按钮显示 (子组件会调用)
editShow () {
console.log('hideBtn');
this.toggleTag = true;
},
// 显示保存按钮,隐藏确认按钮显示 (子组件会调用)
editHide () {
console.log('hideBtn');
console.log(this.useId);
this.toggleTag = false;
},
// 显示编辑,保存按钮隐藏,确认按钮显示 (子组件会调用)
editShow () {
// 子组件触发父组件事件,返回过滤条件数据
findFilter (value) {
console.log(value);
this.ruleForm.filterJson = value;
},
// 隐藏保存按钮和确认按钮 (子组件会调用)
// 传个参数给父组件 来查数据
hideBtn (refresh) {
hideBtn () {
console.log('hideBtn');
this.toggleTag = false;
},
handleDataTransferred (data) {
this.defaltSelected = data;
getDatail (integralMallProRuleId) {
request.get('/api-integral-mall/get-rule', { params: { integralMallProRuleId } }).then(res => {
if (res.data.result) {
this.ruleForm = res.data.result;
if (this.ruleForm.memberType == 3) {
this.hasSearchData = this.ruleForm.filterJson;
}
}
});
},
handleDataLeft (selectedData, selectionToRemove) {
this.defaltSelected = selectedData;
submit () {
if (this.ruleForm.memberType === 3) {
if (this.toggleTag && !this.ruleForm.filterJson) {
this.$message.error('请选中人群筛选器的数据');
return false;
}
}
this.$refs.ruleForm.validate(val => {
if (val) {
let params = {};
if (this.isCopy) {
const { ruleTitle, ruleExplanation, filterJson, memberType, searchJson } = this.ruleForm;
params = { ruleTitle, ruleExplanation, memberType, filterJson, searchJson };
} else {
params = this.ruleForm;
}
if (params.memberType == 1) {
delete params.filterJson;
delete params.searchJson;
}
request.get('/api-integral-mall/add-update-rule', { params }).then(res => {
this.$router.go(-1);
});
}
});
},
},
};
</script>
<style scoped>
.confim-btn {
height: 32px;
padding: 12px 0;
position: fixed;
bottom: 0px;
left: 200px;
background: #fff;
z-index: 2;
text-align: center;
border-top: 1px solid #dcdfe6;
}
.fix-btn {
margin-left: -100px;
.gic-people--button{
background: #f2f3f4;
padding: 0 0 20px 124px;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment