Commit c8f8f9db by member

集团加上特殊策略有效期配置

parent 69e1136b
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>GIC-集团后台</title><link href=./static/css/main.7f1f6331c85ed01eb9fe83220b198061.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.06.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/group-people.2.0.08.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-group.2.0.06.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.05.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/export.1.0.1.js></script><script type=text/javascript src=./static/js/manifest.f2477d52825738195ec4.js></script><script type=text/javascript src=./static/js/vendor.3d239df68868136539e8.js></script><script type=text/javascript src=./static/js/main.3de1110b2bf381e768c6.js></script></body></html> <!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>GIC-集团后台</title><link href=./static/css/main.2b90d53d5fb865a5c707ce61ce25f434.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.06.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/group-people.2.0.08.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-group.2.0.06.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.05.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/export.1.0.1.js></script><script type=text/javascript src=./static/js/manifest.8236585cda14d9080348.js></script><script type=text/javascript src=./static/js/vendor.3d239df68868136539e8.js></script><script type=text/javascript src=./static/js/main.bf0be5621b9e5504c177.js></script></body></html>
\ No newline at end of file \ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(a,n,r){for(var t,o,b,i=0,u=[];i<a.length;i++)o=a[i],d[o]&&u.push(d[o][0]),d[o]=0;for(t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t]);for(c&&c(a,n,r);u.length;)u.shift()();if(r)for(i=0;i<r.length;i++)b=f(f.s=r[i]);return b};var a={},d={44:0};function f(c){if(a[c])return a[c].exports;var d=a[c]={i:c,l:!1,exports:{}};return e[c].call(d.exports,d,d.exports,f),d.l=!0,d.exports}f.e=function(e){var c=d[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var a=new Promise(function(a,f){c=d[e]=[a,f]});c[2]=a;var n=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.timeout=12e4,f.nc&&r.setAttribute("nonce",f.nc),r.src=f.p+"static/js/"+e+"."+{0:"e0a6903c838847bcc761",1:"979bfc2c0cee45108e8c",2:"0891a3305d97906bb4ad",3:"fb6431c4370c4c65ddbd",4:"962099c1216e7bdbad9a",5:"00f4259c4e31ddfd7e77",6:"697a79a429526821b971",7:"edc364d60fbf48338de8",8:"86b527653b00591bde69",9:"fc3aeff6c7fcebdfb172",10:"2ec38a6bd686808d23b9",11:"f7d47a90c699b8e2cded",12:"02d7383a821cf2a839b6",13:"a44736049e3396185860",14:"d72c952ef937d2f26492",15:"dd7d5332cc6f905249f8",16:"6443d8a47858a68fd06d",17:"958ceb1ce494a70c79ab",18:"46ac18590e0f304a6fa0",19:"27abf5a49da2f7edafb0",20:"7d2a204d3ddfc2a44cc6",21:"a648e4df576e35470966",22:"99936c6df9880dbac72c",23:"b276aeeb9c0d09975116",24:"e1e7d62302a0438839a0",25:"6691d7af26ca36472fec",26:"e46273d502d3ee63e590",27:"ad531511670baf62d182",28:"4eb353d8d79bc2248c38",29:"de740cc4714b67539de8",30:"1ff12169e9f86383da64",31:"8e6a957ccbef627817f9",32:"b33d96ecf840df2d46b4",33:"cbba8164261487f2f8be",34:"8ad41cd5860c7f46b8c2",35:"895fc20406665a024b7b",36:"a3660a4b2a8fac9545f2",37:"f5312df516332019d159",38:"1ccb43c5a0f5a5087275",39:"408b643840a580ce7972",40:"2636a1e8fc122a30845a",41:"6a69495688f5dce9ce3b"}[e]+".js";var t=setTimeout(o,12e4);function o(){r.onerror=r.onload=null,clearTimeout(t);var c=d[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),d[e]=void 0)}return r.onerror=r.onload=o,n.appendChild(r),a},f.m=e,f.c=a,f.d=function(e,c,a){f.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:a})},f.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(c,"a",c),c},f.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},f.p="./",f.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.8236585cda14d9080348.js.map
\ No newline at end of file
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(a,r,t){for(var f,o,b,i=0,u=[];i<a.length;i++)o=a[i],d[o]&&u.push(d[o][0]),d[o]=0;for(f in r)Object.prototype.hasOwnProperty.call(r,f)&&(e[f]=r[f]);for(c&&c(a,r,t);u.length;)u.shift()();if(t)for(i=0;i<t.length;i++)b=n(n.s=t[i]);return b};var a={},d={44:0};function n(c){if(a[c])return a[c].exports;var d=a[c]={i:c,l:!1,exports:{}};return e[c].call(d.exports,d,d.exports,n),d.l=!0,d.exports}n.e=function(e){var c=d[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var a=new Promise(function(a,n){c=d[e]=[a,n]});c[2]=a;var r=document.getElementsByTagName("head")[0],t=document.createElement("script");t.type="text/javascript",t.charset="utf-8",t.async=!0,t.timeout=12e4,n.nc&&t.setAttribute("nonce",n.nc),t.src=n.p+"static/js/"+e+"."+{0:"e0a6903c838847bcc761",1:"979bfc2c0cee45108e8c",2:"0891a3305d97906bb4ad",3:"fb6431c4370c4c65ddbd",4:"962099c1216e7bdbad9a",5:"00f4259c4e31ddfd7e77",6:"5f029bbc8161842a541a",7:"46b01e2c738a42886008",8:"51693737c05a58662b5c",9:"47b0aecdd7b7a50b4bb5",10:"ea0e90c48d99e4b20cb3",11:"f7d47a90c699b8e2cded",12:"02d7383a821cf2a839b6",13:"a44736049e3396185860",14:"d72c952ef937d2f26492",15:"dd7d5332cc6f905249f8",16:"6443d8a47858a68fd06d",17:"958ceb1ce494a70c79ab",18:"46ac18590e0f304a6fa0",19:"27abf5a49da2f7edafb0",20:"7d2a204d3ddfc2a44cc6",21:"a648e4df576e35470966",22:"99936c6df9880dbac72c",23:"b276aeeb9c0d09975116",24:"e1e7d62302a0438839a0",25:"6691d7af26ca36472fec",26:"e46273d502d3ee63e590",27:"ad531511670baf62d182",28:"4eb353d8d79bc2248c38",29:"de740cc4714b67539de8",30:"1ff12169e9f86383da64",31:"8e6a957ccbef627817f9",32:"b33d96ecf840df2d46b4",33:"cbba8164261487f2f8be",34:"8ad41cd5860c7f46b8c2",35:"895fc20406665a024b7b",36:"a3660a4b2a8fac9545f2",37:"f5312df516332019d159",38:"1ccb43c5a0f5a5087275",39:"408b643840a580ce7972",40:"2636a1e8fc122a30845a",41:"6a69495688f5dce9ce3b"}[e]+".js";var f=setTimeout(o,12e4);function o(){t.onerror=t.onload=null,clearTimeout(f);var c=d[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),d[e]=void 0)}return t.onerror=t.onload=o,r.appendChild(t),a},n.m=e,n.c=a,n.d=function(e,c,a){n.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:a})},n.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(c,"a",c),c},n.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},n.p="./",n.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.f2477d52825738195ec4.js.map
\ No newline at end of file
export function dateformat(time, fmt) {
time = new Date(time);
let o = {
"M+": time.getMonth() + 1, // 月份
"d+": time.getDate(), // 日
"h+": time.getHours(), // 小时
"m+": time.getMinutes(), // 分
"s+": time.getSeconds(), // 秒
"q+": Math.floor((time.getMonth() + 3) / 3), // 季度
S: time.getMilliseconds() // 毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
(time.getFullYear() + "").substr(4 - RegExp.$1.length)
);
}
for (let k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
);
}
}
return fmt;
}
...@@ -142,6 +142,24 @@ ...@@ -142,6 +142,24 @@
</el-form-item> </el-form-item>
<el-form-item label="积分冻结期" v-if="ruleForm.integralGetStatus == 1"> <el-input v-model="ruleForm.integralGetFreezeDays" @keyup.native="formatInputNum($event)"></el-input><label></label> </el-form-item> <el-form-item label="积分冻结期" v-if="ruleForm.integralGetStatus == 1"> <el-input v-model="ruleForm.integralGetFreezeDays" @keyup.native="formatInputNum($event)"></el-input><label></label> </el-form-item>
<el-form-item label="积分有效期" v-if="ruleForm.integralGetStatus == 1"> <el-input v-model="ruleForm.integralGetEffectiveDays" @keyup.native="formatInputNum($event)"></el-input><label></label> </el-form-item> <el-form-item label="积分有效期" v-if="ruleForm.integralGetStatus == 1"> <el-input v-model="ruleForm.integralGetEffectiveDays" @keyup.native="formatInputNum($event)"></el-input><label></label> </el-form-item>
<!-- 新增策略有效期配置 -->
<el-form-item label="策略有效期" prop="">
<!-- 1 永久 0 非永久 -->
<el-radio v-model="ruleForm.perpetualFlag" :label="1">永久有效</el-radio>
<el-radio v-model="ruleForm.perpetualFlag" :label="0">
在该时段内有效
<el-date-picker
v-if="ruleForm.perpetualFlag === 0"
v-model="ruleForm.perpetualDate"
type="datetimerange"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']">
</el-date-picker>
</el-radio>
</el-form-item>
<el-form-item> <el-form-item>
<el-button :disabled="tpnEditBool" type="primary" @click="submitForm('ruleForm')">保 存</el-button> <el-button :disabled="tpnEditBool" type="primary" @click="submitForm('ruleForm')">保 存</el-button>
<el-button @click="goBack">返 回</el-button> <el-button @click="goBack">返 回</el-button>
...@@ -187,6 +205,12 @@ import { postRequest, postJson } from '@/api/api'; ...@@ -187,6 +205,12 @@ import { postRequest, postJson } from '@/api/api';
import strLength from '@/common/js/strlen'; import strLength from '@/common/js/strlen';
import { log } from '@/utils/index.js'; import { log } from '@/utils/index.js';
const timeStramp = {
year: new Date().getFullYear(),
month: new Date().getMonth(),
day: new Date().getDate()
};
export default { export default {
name: 'addPointSytem', name: 'addPointSytem',
data() { data() {
...@@ -427,6 +451,11 @@ export default { ...@@ -427,6 +451,11 @@ export default {
storeRelationIdArr: [], //门店 storeRelationIdArr: [], //门店
enterpriseRelationIdArr: [] //商户 enterpriseRelationIdArr: [] //商户
} }
],
perpetualFlag: 1,
perpetualDate: [
new Date(timeStramp.year, timeStramp.month, timeStramp.day, 0, 0),
new Date(timeStramp.year, timeStramp.month, timeStramp.day, 23, 59)
] ]
}, },
cateOptions: [ cateOptions: [
...@@ -599,6 +628,25 @@ export default { ...@@ -599,6 +628,25 @@ export default {
data.integralGet.fee = parseInt(data.integralGet.fee * 10); data.integralGet.fee = parseInt(data.integralGet.fee * 10);
data.integralGet.integral = parseInt(data.integralGet.integral * 10); data.integralGet.integral = parseInt(data.integralGet.integral * 10);
data.integralGet = JSON.stringify(data.integralGet); data.integralGet = JSON.stringify(data.integralGet);
// 3.0_特殊策略新增有效期配置
if (data.perpetualFlag === 1) {
// 永久
// perpetualFlag 是否永久 0 非永久 1永久'
// startValidTime 有效期时间开始(毫秒时间戳)
// endValidTime 有效时间结束(毫秒时间戳)
} else {
// 时间区间
if (data.perpetualDate[0].indexOf('Z') > -1) {
// 说明第一次没有动过
data.startValidTime = new Date(this.transUTCTime(data.perpetualDate[0]) + ' 00:00').getTime();
data.endValidTime = new Date(this.transUTCTime(data.perpetualDate[1]) + ' 23:59').getTime();
} else {
data.startValidTime = new Date(data.perpetualDate[0].slice(0, -3)).getTime();
data.endValidTime = new Date(data.perpetualDate[1].slice(0, -3)).getTime();
}
}
delete data.perpetualDate;
that.saveForm(data); that.saveForm(data);
} }
}); });
......
...@@ -68,6 +68,29 @@ ...@@ -68,6 +68,29 @@
<span v-if="scope.row.integralGetStatus != 0"> {{ scope.row.integralGet.fee / 10 }} : {{ scope.row.integralGet.integral / 10 }} </span> <span v-if="scope.row.integralGetStatus != 0"> {{ scope.row.integralGet.fee / 10 }} : {{ scope.row.integralGet.integral / 10 }} </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="有效期">
<template slot-scope="scope">
<div v-if="scope.row.perpetualFlag === 0">
<p>
{{ scope.row.startValidTime | normalizeDate }}
</p>
<p>
-
</p>
<p>
{{ scope.row.endValidTime | normalizeDate }}
</p>
</div>
<div v-else>
永久有效
</div>
</template>
</el-table-column>
<el-table-column prop="" label="状态">
<template slot-scope="scope">
{{ scope.row.perpetualFlag | normalizeStatus(scope.row.endValidTime) }}
</template>
</el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleEditClick(scope.row, 'edit')" type="text">编辑</el-button> <el-button @click="handleEditClick(scope.row, 'edit')" type="text">编辑</el-button>
...@@ -124,6 +147,29 @@ ...@@ -124,6 +147,29 @@
<span v-for="(item, index) in scope.row.channelList" :key="index"> {{ item.useProportionalRestriction }}% </span> <span v-for="(item, index) in scope.row.channelList" :key="index"> {{ item.useProportionalRestriction }}% </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="有效期">
<template slot-scope="scope">
<div v-if="scope.row.perpetualFlag === 0">
<p>
{{ scope.row.startValidTime | normalizeDate }}
</p>
<p>
-
</p>
<p>
{{ scope.row.endValidTime | normalizeDate }}
</p>
</div>
<div v-else>
永久有效
</div>
</template>
</el-table-column>
<el-table-column prop="" label="状态">
<template slot-scope="scope">
{{ scope.row.perpetualFlag | normalizeStatus(scope.row.endValidTime) }}
</template>
</el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleEditClick2(scope.row)" type="text">编辑</el-button> <el-button @click="handleEditClick2(scope.row)" type="text">编辑</el-button>
...@@ -145,6 +191,7 @@ ...@@ -145,6 +191,7 @@
import topNavNew from 'components/nav/navNew'; import topNavNew from 'components/nav/navNew';
import pointForm from 'components/memberShip/point-form'; import pointForm from 'components/memberShip/point-form';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
import { dateformat } from '@/utils/format';
import { postRequest } from '@/api/api'; import { postRequest } from '@/api/api';
import { log } from '@/utils/index.js'; import { log } from '@/utils/index.js';
...@@ -179,6 +226,24 @@ export default { ...@@ -179,6 +226,24 @@ export default {
tpnEnterpriseId: 'ff808081671d3ceb01672adebf4e6149' tpnEnterpriseId: 'ff808081671d3ceb01672adebf4e6149'
}; };
}, },
filters: {
// 格式化时间戳
normalizeDate(val) {
return dateformat(val, 'yyyy-MM-dd hh:mm:ss').slice(0, -3);
},
normalizeStatus(val, date) {
if (val === 1) {
return '--';
} else {
// 判断时间 当前时间和最迟时间
if (date - Date.now() > 0) {
return '有效';
} else {
return '失效';
}
}
}
},
created() { created() {
// this.selectReplayStyle() // this.selectReplayStyle()
}, },
......
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