增加信息
This commit is contained in:
@@ -55,15 +55,7 @@ export default defineConfig({
|
|||||||
* @doc 代理介绍 https://umijs.org/docs/guides/proxy
|
* @doc 代理介绍 https://umijs.org/docs/guides/proxy
|
||||||
* @doc 代理配置 https://umijs.org/docs/api/config#proxy
|
* @doc 代理配置 https://umijs.org/docs/api/config#proxy
|
||||||
*/
|
*/
|
||||||
proxy: proxy['pro'],
|
proxy: proxy[REACT_APP_ENV],
|
||||||
define: {
|
|
||||||
"process.env": {
|
|
||||||
API_URL: "https://shopapi.jitucdz.com",
|
|
||||||
WS_URL: "ws://shopapi.jitucdz.com",
|
|
||||||
STATIC_URL: "https://shopapi.jitucdz.com",
|
|
||||||
WEMAP_KEY: "ZFDBZ-YUTWB-353UZ-NYKEY-JTVIZ-Q3F6X",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* @name 快速热更新配置
|
* @name 快速热更新配置
|
||||||
* @description 一个不错的热更新组件,更新时可以保留 state
|
* @description 一个不错的热更新组件,更新时可以保留 state
|
||||||
|
|||||||
@@ -37,10 +37,10 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
dev: {
|
dev: {
|
||||||
'/admin/': {
|
'/api/': {
|
||||||
target: 'http://192.168.1.32:1002',
|
target: 'http://192.168.1.32:1002',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: { '^/admin': '/admin' },
|
pathRewrite: { '^/api': '/api' },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
pre: {
|
pre: {
|
||||||
@@ -50,18 +50,4 @@ export default {
|
|||||||
pathRewrite: { '^/admin': '/admin' },
|
pathRewrite: { '^/admin': '/admin' },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prod: {
|
|
||||||
'/admin/': {
|
|
||||||
target: 'https://iadminapi.zhongshuai2023.com',
|
|
||||||
changeOrigin: true,
|
|
||||||
pathRewrite: { '^/admin': '/admin' },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
pro: {
|
|
||||||
'/admin/': {
|
|
||||||
target: 'https://iadminapi.zhongshuai2023.com',
|
|
||||||
changeOrigin: true,
|
|
||||||
pathRewrite: { '^/admin': '/admin' },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|||||||
1
dist/1156.1bbdcfa3.async.js
vendored
Normal file
1
dist/1156.1bbdcfa3.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
40
dist/2911.27900bb6.async.js
vendored
Normal file
40
dist/2911.27900bb6.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
40
dist/2911.4bdb898c.async.js
vendored
40
dist/2911.4bdb898c.async.js
vendored
File diff suppressed because one or more lines are too long
78
dist/3917.f9f758fe.async.js
vendored
Normal file
78
dist/3917.f9f758fe.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
3
dist/5384.529f9ae4.async.js
vendored
Normal file
3
dist/5384.529f9ae4.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
58
dist/6030.760d1f86.async.js
vendored
Normal file
58
dist/6030.760d1f86.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
60
dist/6030.76a4da21.async.js
vendored
60
dist/6030.76a4da21.async.js
vendored
File diff suppressed because one or more lines are too long
80
dist/8383.8257ce37.async.js
vendored
80
dist/8383.8257ce37.async.js
vendored
File diff suppressed because one or more lines are too long
3
dist/939.4dac2e3d.async.js
vendored
Normal file
3
dist/939.4dac2e3d.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
dist/index.html
vendored
2
dist/index.html
vendored
@@ -8,6 +8,6 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
<script src="/umi.e4c2eae3.js"></script>
|
<script src="/umi.978e06ed.js"></script>
|
||||||
|
|
||||||
</body></html>
|
</body></html>
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5351],{986:function(L,d,e){e.r(d),e.d(d,{default:function(){return C}});var m=e(90228),s=e.n(m),p=e(87999),c=e.n(p),g=e(7485);function y(l){return i.apply(this,arguments)}function i(){return i=c()(s()().mark(function l(o){return s()().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return a.abrupt("return",(0,g.request)("/apin/device/amount/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:o||{}}));case 1:case"end":return a.stop()}},l)})),i.apply(this,arguments)}var T=e(50959),x=e(16030),R=e(78383),u=e(11527),j=function(){var o=(0,T.useRef)(),v=[{title:"ID",dataIndex:"id",valueType:"text",search:!1},{title:"\u670D\u52A1\u8D39\u91D1\u989D",dataIndex:"amout",valueType:"text",search:!1},{title:"\u670D\u52A1\u8D39\u4EA7\u751F\u65E5\u671F",dataIndex:"incomeDay",valueType:"dateRange",search:{transform:function(r){return{incomeDayBegin:r[0],incomeDayEnd:r[1]}}}},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",valueType:"text",search:!1}];return(0,u.jsx)(x._z,{children:(0,u.jsx)("div",{style:{width:"100%",float:"right"},children:(0,u.jsx)(R.Z,{actionRef:o,rowKey:"id",search:{labelWidth:120},request:function(){var a=c()(s()().mark(function r(f,I,P){var h,t;return s()().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,y(f);case 2:return h=n.sent,t=h.data,n.abrupt("return",{data:(t==null?void 0:t.records)||[],total:t==null?void 0:t.total});case 5:case"end":return n.stop()}},r)}));return function(r,f,I){return a.apply(this,arguments)}}(),columns:v},"logList")})})},C=j}}]);
|
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5351],{986:function(L,d,e){e.r(d),e.d(d,{default:function(){return C}});var m=e(90228),s=e.n(m),p=e(87999),c=e.n(p),g=e(7485);function y(l){return i.apply(this,arguments)}function i(){return i=c()(s()().mark(function l(o){return s()().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return a.abrupt("return",(0,g.request)("/apin/device/amount/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:o||{}}));case 1:case"end":return a.stop()}},l)})),i.apply(this,arguments)}var T=e(50959),x=e(16030),R=e(35384),u=e(11527),j=function(){var o=(0,T.useRef)(),v=[{title:"ID",dataIndex:"id",valueType:"text",search:!1},{title:"\u670D\u52A1\u8D39\u91D1\u989D",dataIndex:"amout",valueType:"text",search:!1},{title:"\u670D\u52A1\u8D39\u4EA7\u751F\u65E5\u671F",dataIndex:"incomeDay",valueType:"dateRange",search:{transform:function(r){return{incomeDayBegin:r[0],incomeDayEnd:r[1]}}}},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",valueType:"text",search:!1}];return(0,u.jsx)(x._z,{children:(0,u.jsx)("div",{style:{width:"100%",float:"right"},children:(0,u.jsx)(R.Z,{actionRef:o,rowKey:"id",search:{labelWidth:120},request:function(){var a=c()(s()().mark(function r(f,I,P){var h,t;return s()().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,y(f);case 2:return h=n.sent,t=h.data,n.abrupt("return",{data:(t==null?void 0:t.records)||[],total:t==null?void 0:t.total});case 5:case"end":return n.stop()}},r)}));return function(r,f,I){return a.apply(this,arguments)}}(),columns:v},"logList")})})},C=j}}]);
|
||||||
File diff suppressed because one or more lines are too long
1
dist/src__pages__finance__earnings__index.c1cc6c07.async.js
vendored
Normal file
1
dist/src__pages__finance__earnings__index.c1cc6c07.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/src__pages__finance__integral__index.032586c0.async.js
vendored
Normal file
1
dist/src__pages__finance__integral__index.032586c0.async.js
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[2722],{15643:function(b,m,t){t.r(m);var T=t(90228),a=t.n(T),E=t(87999),s=t.n(E),i=t(19869),y=t(50959),p=t(16030),P=t(35384),u=t(11527),g=function(){var v=(0,y.useRef)(),d=[{title:"ID",dataIndex:"id",valueType:"text",search:!1},{title:"\u7528\u6237ID",dataIndex:"userId",valueType:"text",search:!1},{title:"\u94B1\u5305",dataIndex:"points2",valueType:"text",search:!1},{title:"\u4FEE\u6539\u65F6\u95F4",dataIndex:"updateTime",valueType:"text",search:!1},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",valueType:"text",search:!1}];return(0,u.jsx)(p._z,{children:(0,u.jsx)("div",{style:{width:"100%",float:"right"},children:(0,u.jsx)(P.Z,{actionRef:v,rowKey:"id",search:{labelWidth:120},request:function(){var D=s()(a()().mark(function o(f,c,n){var r,_;return a()().wrap(function(l){for(;;)switch(l.prev=l.next){case 0:return l.next=2,(0,i.xY)(f);case 2:return r=l.sent,_=r.data,l.abrupt("return",{data:(_==null?void 0:_.records)||[],total:_==null?void 0:_.total});case 5:case"end":return l.stop()}},o)}));return function(o,f,c){return D.apply(this,arguments)}}(),columns:d},"logList")})})};m.default=g},19869:function(b,m,t){t.d(m,{G6:function(){return f},I7:function(){return g},eq:function(){return P},hT:function(){return v},xY:function(){return y}});var T=t(90228),a=t.n(T),E=t(87999),s=t.n(E),i=t(7485);function y(n){return p.apply(this,arguments)}function p(){return p=s()(a()().mark(function n(r){return a()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,i.request)("/api/userspoints/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:r||{}}));case 1:case"end":return e.stop()}},n)})),p.apply(this,arguments)}function P(n){return u.apply(this,arguments)}function u(){return u=s()(a()().mark(function n(r){return a()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,i.request)("/api/userspoints/extract/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:r||{}}));case 1:case"end":return e.stop()}},n)})),u.apply(this,arguments)}function g(n){return h.apply(this,arguments)}function h(){return h=s()(a()().mark(function n(r){return a()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,i.request)("/api/userspoints/record/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:r||{}}));case 1:case"end":return e.stop()}},n)})),h.apply(this,arguments)}function v(n){return d.apply(this,arguments)}function d(){return d=s()(a()().mark(function n(r){return a()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,i.request)("/api/userspoints/points/extract/export",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:r||{},responseType:"blob"}));case 1:case"end":return e.stop()}},n)})),d.apply(this,arguments)}function D(n){return o.apply(this,arguments)}function o(){return o=_asyncToGenerator(_regeneratorRuntime().mark(function n(r){return _regeneratorRuntime().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",request("/api/userspoints/points/export",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:r||{},responseType:"blob"}));case 1:case"end":return e.stop()}},n)})),o.apply(this,arguments)}function f(n){return c.apply(this,arguments)}function c(){return c=s()(a()().mark(function n(r){return a()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,i.request)("/api/userspoints/points/record/export",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:r||{},responseType:"blob"}));case 1:case"end":return e.stop()}},n)})),c.apply(this,arguments)}}}]);
|
||||||
@@ -1 +0,0 @@
|
|||||||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[2722],{15643:function(T,o,e){e.r(o);var c=e(90228),t=e.n(c),h=e(87999),u=e.n(h),l=e(19869),E=e(50959),d=e(16030),f=e(78383),a=e(11527),D=function(){var _=(0,E.useRef)(),r=[{title:"ID",dataIndex:"id",valueType:"text",search:!1},{title:"\u7528\u6237ID",dataIndex:"userId",valueType:"text",search:!1},{title:"\u94B1\u5305",dataIndex:"points2",valueType:"text",search:!1},{title:"\u4FEE\u6539\u65F6\u95F4",dataIndex:"updateTime",valueType:"text",search:!1},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",valueType:"text",search:!1}];return(0,a.jsx)(d._z,{children:(0,a.jsx)("div",{style:{width:"100%",float:"right"},children:(0,a.jsx)(f.Z,{actionRef:_,rowKey:"id",search:{labelWidth:120},request:function(){var p=u()(t()().mark(function n(P,g,O){var v,s;return t()().wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,(0,l.xY)(P);case 2:return v=i.sent,s=v.data,i.abrupt("return",{data:(s==null?void 0:s.records)||[],total:s==null?void 0:s.total});case 5:case"end":return i.stop()}},n)}));return function(n,P,g){return p.apply(this,arguments)}}(),columns:r},"logList")})})};o.default=D},19869:function(T,o,e){e.d(o,{I7:function(){return D},eq:function(){return f},xY:function(){return E}});var c=e(90228),t=e.n(c),h=e(87999),u=e.n(h),l=e(7485);function E(_){return d.apply(this,arguments)}function d(){return d=u()(t()().mark(function _(r){return t()().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",(0,l.request)("/api/userspoints/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:r||{}}));case 1:case"end":return n.stop()}},_)})),d.apply(this,arguments)}function f(_){return a.apply(this,arguments)}function a(){return a=u()(t()().mark(function _(r){return t()().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",(0,l.request)("/api/userspoints/extract/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:r||{}}));case 1:case"end":return n.stop()}},_)})),a.apply(this,arguments)}function D(_){return m.apply(this,arguments)}function m(){return m=u()(t()().mark(function _(r){return t()().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",(0,l.request)("/api/userspoints/record/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:r||{}}));case 1:case"end":return n.stop()}},_)})),m.apply(this,arguments)}}}]);
|
|
||||||
1
dist/src__pages__finance__variation__index.ac3f402d.async.js
vendored
Normal file
1
dist/src__pages__finance__variation__index.ac3f402d.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/src__pages__finance__withdraw__index.5625e105.async.js
vendored
Normal file
1
dist/src__pages__finance__withdraw__index.5625e105.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/src__pages__order__components__BonusFormModal.c73a39a7.async.js
vendored
Normal file
1
dist/src__pages__order__components__BonusFormModal.c73a39a7.async.js
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6109],{3599:function(P,h,n){n.r(h);var E=n(48305),r=n.n(E),p=n(50959),d=n(94675),i=n(33917),v=n(92790),t=n(11527);h.default=function(m){var _=m.values,O=m.modalOpenState,o=m.onModalOpenState,D=(0,p.useState)(null),l=r()(D,2),a=l[0],u=l[1],c=(0,p.useState)(null),e=r()(c,2),j=e[0],A=e[1];(0,p.useEffect)(function(){_!=null&&_.id&&(0,v.QN)(_==null?void 0:_.id).then(function(f){var T=f.data;A(T||[])}).catch(function(){})},[_]);var M=[{title:"\u8D26\u5355\u53F7",dataIndex:"orderNo",search:!1},{title:"\u6295\u8D44\u4EBA",dataIndex:"shop",search:!1,render:function(T,s){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:["\u7528\u6237\u540D\uFF1A",s==null?void 0:s.username]}),(0,t.jsxs)("div",{children:["\u624B\u673A\u53F7\uFF1A",s==null?void 0:s.phone]}),(0,t.jsxs)("div",{children:["\u7B49\u7EA7\uFF1A",s==null?void 0:s.level]})]})}},{title:"\u7C7B\u578B",dataIndex:"typeValue",search:!1},{title:"\u91D1\u989D",dataIndex:"points",search:!1},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",search:!1}];return(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(d.Z,{width:"800px",title:"\u5206\u7EA2",open:O,onOk:function(){o(!1)},onCancel:function(){o(!1)},children:(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(i.Z,{rowKey:"id",columns:M,dataSource:j,pagination:!1})})})})}},92790:function(P,h,n){n.d(h,{Lp:function(){return D},QN:function(){return O},aT:function(){return v},tX:function(){return m}});var E=n(90228),r=n.n(E),p=n(87999),d=n.n(p),i=n(7485);function v(a){return t.apply(this,arguments)}function t(){return t=d()(r()().mark(function a(u){return r()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,i.request)("/api/orders/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:u||{}}));case 1:case"end":return e.stop()}},a)})),t.apply(this,arguments)}function m(a){return _.apply(this,arguments)}function _(){return _=d()(r()().mark(function a(u){return r()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,i.request)("/api/orders/export",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:u||{},responseType:"blob"}));case 1:case"end":return e.stop()}},a)})),_.apply(this,arguments)}function O(a){return o.apply(this,arguments)}function o(){return o=d()(r()().mark(function a(u){return r()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,i.request)("/api/orders/orderIncomeList?id=".concat(u),{method:"GET",headers:{"Content-Type":"application/json;charset=UTF-8"}}));case 1:case"end":return e.stop()}},a)})),o.apply(this,arguments)}function D(a){return l.apply(this,arguments)}function l(){return l=d()(r()().mark(function a(u){return r()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,i.request)("/api/orders/orderRefund",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:u||{}}));case 1:case"end":return e.stop()}},a)})),l.apply(this,arguments)}}}]);
|
||||||
1
dist/src__pages__order__components__EscFormModal.c75bb218.async.js
vendored
Normal file
1
dist/src__pages__order__components__EscFormModal.c75bb218.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/src__pages__order__index.e99ebbf7.async.js
vendored
Normal file
1
dist/src__pages__order__index.e99ebbf7.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/src__pages__piles__components__BonusFormModal.df97a800.async.js
vendored
Normal file
1
dist/src__pages__piles__components__BonusFormModal.df97a800.async.js
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6660],{25387:function(A,m,_){_.r(m);var v=_(90228),t=_.n(v),D=_(87999),c=_.n(D),p=_(48305),E=_.n(p),l=_(57571),d=_(50959),s=_(94675),a=_(35384),n=_(11527);m.default=function(i){var e=i.values,I=i.modalOpenState,O=i.onModalOpenState,T=(0,d.useState)(null),P=E()(T,2),R=P[0],x=P[1],j=(0,d.useState)(null),M=E()(j,2),L=M[0],U=M[1],f=(0,d.useRef)();(0,d.useEffect)(function(){f.current&&f.current.reload()},[e]);var g=[{title:"\u7528\u6237ID",dataIndex:"userId",search:!1},{title:"\u8BBE\u5907ID",dataIndex:"deviceId",search:!1},{title:"\u5206\u8D26\u65E5\u671F",dataIndex:"incomeDate",search:!1},{title:"\u521B\u5EFA\u65F6\u95F4",dataIndex:"createTime",search:!1}];return(0,n.jsx)(n.Fragment,{children:(0,n.jsx)(s.Z,{width:"800px",title:"\u6536\u76CA\u5217\u8868",open:I,onOk:function(){O(!1)},onCancel:function(){O(!1)},children:(0,n.jsx)(n.Fragment,{children:(0,n.jsx)(a.Z,{actionRef:f,rowKey:"id",search:{labelWidth:120},request:function(){var h=c()(t()().mark(function b(u,C,K){var y,r;return t()().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return u.deviceNo=e==null?void 0:e.deviceNo,u.orderId=e==null?void 0:e.orderId,u.userId=e==null?void 0:e.userId,o.next=5,(0,l.f)(u);case 5:return y=o.sent,r=y.data,o.abrupt("return",{data:(r==null?void 0:r.records)||[],total:r==null?void 0:r.total});case 8:case"end":return o.stop()}},b)}));return function(b,u,C){return h.apply(this,arguments)}}(),columns:g},"logList")})})})}},57571:function(A,m,_){_.d(m,{L:function(){return E},f:function(){return d}});var v=_(90228),t=_.n(v),D=_(87999),c=_.n(D),p=_(7485);function E(a){return l.apply(this,arguments)}function l(){return l=c()(t()().mark(function a(n){return t()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,p.request)("/api/device/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:n||{}}));case 1:case"end":return e.stop()}},a)})),l.apply(this,arguments)}function d(a){return s.apply(this,arguments)}function s(){return s=c()(t()().mark(function a(n){return t()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,p.request)("/api/device/incomeday/page",{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},data:n||{}}));case 1:case"end":return e.stop()}},a)})),s.apply(this,arguments)}}}]);
|
||||||
1
dist/src__pages__piles__index.609a36c8.async.js
vendored
Normal file
1
dist/src__pages__piles__index.609a36c8.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/src__pages__user__user__components__MoneyFormModal.8cdb4822.async.js
vendored
Normal file
1
dist/src__pages__user__user__components__MoneyFormModal.8cdb4822.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/src__pages__user__user__components__ShopModal.552f5065.async.js
vendored
Normal file
1
dist/src__pages__user__user__components__ShopModal.552f5065.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/src__pages__user__user__components__TempFormModal.27d459bc.async.js
vendored
Normal file
1
dist/src__pages__user__user__components__TempFormModal.27d459bc.async.js
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8280],{20902:function(B,s,e){var l=e(35361),o=e(56929),i=e(50959),m=e(20734),E=e(11527),a=["fieldProps","proFieldProps"],_=function(r,p){var u=r.fieldProps,t=r.proFieldProps,D=(0,o.Z)(r,a);return(0,E.jsx)(m.Z,(0,l.Z)({ref:p,valueType:"textarea",fieldProps:u,proFieldProps:t},D))};s.Z=i.forwardRef(_)},79669:function(B,s,e){e.r(s);var l=e(90228),o=e.n(l),i=e(87999),m=e.n(i),E=e(5e4),a=e(49547),_=e(19014),A=e(20902),r=e(40676),p=e(50959),u=e(11527);s.default=function(t){var D=t.modalOpenState,h=t.onModalOpenState,O=t.onSubmit,c=(0,p.useRef)();return(0,u.jsx)(u.Fragment,{children:(0,u.jsxs)(E.Y,{title:"\u6295\u8D44\u4EBA-\u8F6C\u6302",formRef:c,submitter:{searchConfig:{resetText:"\u91CD\u7F6E"},resetButtonProps:{onClick:function(){var n;(n=c.current)===null||n===void 0||n.resetFields()}}},onFinish:function(){var F=m()(o()().mark(function n(M){var P;return o()().wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return d.next=2,O(M);case 2:(P=c.current)===null||P===void 0||P.resetFields();case 3:case"end":return d.stop()}},n)}));return function(n){return F.apply(this,arguments)}}(),open:D,onOpenChange:h,children:[(0,u.jsxs)("div",{className:"text-red-600 ",children:[(0,u.jsx)("div",{children:"A\uFF1A\u9700\u8981\u8F6C\u6302\u7684\u6295\u8D44\u4EBA"}),(0,u.jsx)("div",{children:"B\uFF1A\u8F6C\u6302\u8BE5\u6295\u8D44\u4EBA\u540D\u4E0B"}),(0,u.jsx)("div",{children:"\u8BE5\u64CD\u4F5C\u628AA\u8F6C\u6302\u5230B\u540D\u4E0B"})]}),(0,u.jsx)(r.Z,{children:"A\uFF1A\u9700\u8981\u8F6C\u6302\u7684\u6295\u8D44\u4EBA"}),(0,u.jsxs)(a.A.Group,{children:[(0,u.jsx)(_.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"userNameSource",label:"\u7528\u6237\u540D(A)",placeholder:"\u8BF7\u8F93\u5165"}),(0,u.jsx)(_.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"phoneSource",label:"\u624B\u673A\u53F7(A)",placeholder:"\u8BF7\u8F93\u5165"})]}),(0,u.jsx)(r.Z,{children:"B\uFF1A\u628AA\u8F6C\u6302\u8BE5\u6295\u8D44\u4EBA\u540D\u4E0B"}),(0,u.jsxs)(a.A.Group,{children:[(0,u.jsx)(_.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"userNameTarget",label:"\u7528\u6237\u540D(B)",placeholder:"\u8BF7\u8F93\u5165"}),(0,u.jsx)(_.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"phoneTarget",label:"\u624B\u673A\u53F7(B)",placeholder:"\u8BF7\u8F93\u5165"})]}),(0,u.jsx)(A.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"remark",label:"\u5907\u6CE8",placeholder:"\u8BF7\u8F93\u5165"})]})})}}}]);
|
||||||
@@ -1 +0,0 @@
|
|||||||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8280],{20902:function(B,s,e){var d=e(35361),a=e(56929),i=e(50959),m=e(20734),E=e(11527),o=["fieldProps","proFieldProps"],_=function(r,p){var u=r.fieldProps,n=r.proFieldProps,D=(0,a.Z)(r,o);return(0,E.jsx)(m.Z,(0,d.Z)({ref:p,valueType:"textarea",fieldProps:u,proFieldProps:n},D))};s.Z=i.forwardRef(_)},79669:function(B,s,e){e.r(s);var d=e(90228),a=e.n(d),i=e(87999),m=e.n(i),E=e(5e4),o=e(49547),_=e(19014),A=e(20902),r=e(40676),p=e(50959),u=e(11527);s.default=function(n){var D=n.values,h=n.modalOpenState,O=n.onModalOpenState,v=n.onSubmit,c=(0,p.useRef)();return(0,u.jsx)(u.Fragment,{children:(0,u.jsxs)(E.Y,{title:"\u6295\u8D44\u4EBA-\u8F6C\u6302",formRef:c,submitter:{searchConfig:{resetText:"\u91CD\u7F6E"},resetButtonProps:{onClick:function(){var t;(t=c.current)===null||t===void 0||t.resetFields()}}},initialValues:D,onFinish:function(){var F=m()(a()().mark(function t(M){var P;return a()().wrap(function(l){for(;;)switch(l.prev=l.next){case 0:return l.next=2,v(M);case 2:(P=c.current)===null||P===void 0||P.resetFields();case 3:case"end":return l.stop()}},t)}));return function(t){return F.apply(this,arguments)}}(),open:h,onOpenChange:O,children:[(0,u.jsxs)("div",{className:"text-red-600 ",children:[(0,u.jsx)("div",{children:"A\uFF1A\u9700\u8981\u8F6C\u6302\u7684\u6295\u8D44\u4EBA"}),(0,u.jsx)("div",{children:"B\uFF1A\u8F6C\u6302\u8BE5\u6295\u8D44\u4EBA\u540D\u4E0B"}),(0,u.jsx)("div",{children:"\u8BE5\u64CD\u4F5C\u628AA\u8F6C\u6302\u5230B\u540D\u4E0B"})]}),(0,u.jsx)(r.Z,{children:"A\uFF1A\u9700\u8981\u8F6C\u6302\u7684\u6295\u8D44\u4EBA"}),(0,u.jsxs)(o.A.Group,{children:[(0,u.jsx)(_.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"userNameSource",label:"\u7528\u6237\u540D(A)",placeholder:"\u8BF7\u8F93\u5165"}),(0,u.jsx)(_.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"phoneSource",label:"\u624B\u673A\u53F7(A)",placeholder:"\u8BF7\u8F93\u5165"})]}),(0,u.jsx)(r.Z,{children:"B\uFF1A\u628AA\u8F6C\u6302\u8BE5\u6295\u8D44\u4EBA\u540D\u4E0B"}),(0,u.jsxs)(o.A.Group,{children:[(0,u.jsx)(_.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"userNameTarget",label:"\u7528\u6237\u540D(B)",placeholder:"\u8BF7\u8F93\u5165"}),(0,u.jsx)(_.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"phoneTarget",label:"\u624B\u673A\u53F7(B)",placeholder:"\u8BF7\u8F93\u5165"})]}),(0,u.jsx)(A.Z,{rules:[{required:!0,message:"\u8BF7\u8F93\u5165"}],width:"md",name:"remark",label:"\u5907\u6CE8",placeholder:"\u8BF7\u8F93\u5165"})]})})}}}]);
|
|
||||||
File diff suppressed because one or more lines are too long
1
dist/src__pages__user__user__edit.e96ab324.async.js
vendored
Normal file
1
dist/src__pages__user__user__edit.e96ab324.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/src__pages__user__user__index.58762639.async.js
vendored
Normal file
1
dist/src__pages__user__user__index.58762639.async.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
232
dist/umi.e4c2eae3.js → dist/umi.978e06ed.js
vendored
232
dist/umi.e4c2eae3.js → dist/umi.978e06ed.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -148,7 +148,6 @@ const BasicForm: FC<Record<string, any>> = () => {
|
|||||||
name={'ageMan'}
|
name={'ageMan'}
|
||||||
>
|
>
|
||||||
<InputNumber
|
<InputNumber
|
||||||
max={65}
|
|
||||||
addonAfter="岁"
|
addonAfter="岁"
|
||||||
/>
|
/>
|
||||||
</ProForm.Item>
|
</ProForm.Item>
|
||||||
@@ -336,6 +335,7 @@ const BasicForm: FC<Record<string, any>> = () => {
|
|||||||
>
|
>
|
||||||
<InputNumber
|
<InputNumber
|
||||||
min={0}
|
min={0}
|
||||||
|
max={100}
|
||||||
addonAfter="%"
|
addonAfter="%"
|
||||||
/>
|
/>
|
||||||
</ProForm.Item>
|
</ProForm.Item>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { variationPage } from '@/services/finance/index';
|
import { variationPage, recordExtract } from '@/services/finance/index';
|
||||||
|
import { exportData } from '@/utils/func';
|
||||||
|
|
||||||
|
import React, { useRef, useEffect, useState } from 'react';
|
||||||
import React, { useRef, useEffect,useState } from 'react';
|
|
||||||
import { useIntl, useAccess } from '@umijs/max';
|
import { useIntl, useAccess } from '@umijs/max';
|
||||||
import { message, Tag, Select } from 'antd';
|
import { message, Tag, Select, Button } from 'antd';
|
||||||
import { ActionType, PageContainer, ProTable } from '@ant-design/pro-components';
|
import { ActionType, PageContainer, ProTable } from '@ant-design/pro-components';
|
||||||
import moneyType from '@/assets/json/moneyType.json'
|
import moneyType from '@/assets/json/moneyType.json'
|
||||||
import { usersPage } from '@/services/user/user';
|
import { usersPage } from '@/services/user/user';
|
||||||
@@ -11,7 +11,7 @@ import { usersPage } from '@/services/user/user';
|
|||||||
|
|
||||||
const LogTableList: React.FC = () => {
|
const LogTableList: React.FC = () => {
|
||||||
const actionRef = useRef<ActionType>();
|
const actionRef = useRef<ActionType>();
|
||||||
|
const [searchParams, setSearchParams] = useState(null);
|
||||||
const [shopOption, setShopOption] = useState([]);
|
const [shopOption, setShopOption] = useState([]);
|
||||||
|
|
||||||
const searchShop = async (value) => {
|
const searchShop = async (value) => {
|
||||||
@@ -143,9 +143,15 @@ const LogTableList: React.FC = () => {
|
|||||||
labelWidth: 120,
|
labelWidth: 120,
|
||||||
defaultCollapsed: false,
|
defaultCollapsed: false,
|
||||||
}}
|
}}
|
||||||
|
toolBarRender={() => [
|
||||||
|
<Button type="primary" onClick={async () => {
|
||||||
|
let _res = await recordExtract(searchParams)
|
||||||
|
exportData(_res, '积分变动记录')
|
||||||
|
}}>导出</Button>,
|
||||||
|
]}
|
||||||
request={async (params, sorter, filter) => {
|
request={async (params, sorter, filter) => {
|
||||||
params.pointType = 1
|
params.pointType = 1
|
||||||
|
setSearchParams(params)
|
||||||
let { data } = await variationPage(params)
|
let { data } = await variationPage(params)
|
||||||
return {
|
return {
|
||||||
data: data?.records || [],
|
data: data?.records || [],
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { variationPage } from '@/services/finance/index';
|
import { variationPage,recordExtract } from '@/services/finance/index';
|
||||||
|
import { exportData } from '@/utils/func';
|
||||||
|
|
||||||
import React, { useRef, useEffect, useState } from 'react';
|
import React, { useRef, useEffect, useState } from 'react';
|
||||||
import { useIntl, useAccess } from '@umijs/max';
|
import { useIntl, useAccess } from '@umijs/max';
|
||||||
import { message, Tag, Select } from 'antd';
|
import { message, Tag, Select,Button } from 'antd';
|
||||||
import { ActionType, PageContainer, ProTable, ProFormSelect } from '@ant-design/pro-components';
|
import { ActionType, PageContainer, ProTable, ProFormSelect } from '@ant-design/pro-components';
|
||||||
import moneyType from '@/assets/json/moneyType.json'
|
import moneyType from '@/assets/json/moneyType.json'
|
||||||
import { usersPage } from '@/services/user/user';
|
import { usersPage } from '@/services/user/user';
|
||||||
@@ -14,6 +14,10 @@ import { usersPage } from '@/services/user/user';
|
|||||||
const LogTableList: React.FC = () => {
|
const LogTableList: React.FC = () => {
|
||||||
const actionRef = useRef<ActionType>();
|
const actionRef = useRef<ActionType>();
|
||||||
const [shopOption, setShopOption] = useState([]);
|
const [shopOption, setShopOption] = useState([]);
|
||||||
|
const [searchParams, setSearchParams] = useState(null);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const searchShop = async (value) => {
|
const searchShop = async (value) => {
|
||||||
const { success, data } = await usersPage({
|
const { success, data } = await usersPage({
|
||||||
@@ -144,8 +148,15 @@ const LogTableList: React.FC = () => {
|
|||||||
labelWidth: 120,
|
labelWidth: 120,
|
||||||
defaultCollapsed: false,
|
defaultCollapsed: false,
|
||||||
}}
|
}}
|
||||||
|
toolBarRender={() => [
|
||||||
|
<Button type="primary" onClick={async () => {
|
||||||
|
let _res = await recordExtract(searchParams)
|
||||||
|
exportData(_res, '积分记录')
|
||||||
|
}}>导出</Button>,
|
||||||
|
]}
|
||||||
request={async (params, sorter, filter) => {
|
request={async (params, sorter, filter) => {
|
||||||
params.pointType = 2
|
params.pointType = 2
|
||||||
|
setSearchParams(params)
|
||||||
let { data } = await variationPage(params)
|
let { data } = await variationPage(params)
|
||||||
return {
|
return {
|
||||||
data: data?.records || [],
|
data: data?.records || [],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { withdrawPage } from '@/services/finance/index';
|
import { withdrawPage, withdrawExtract } from '@/services/finance/index';
|
||||||
import { usersPage } from '@/services/user/user';
|
import { usersPage } from '@/services/user/user';
|
||||||
|
import { exportData } from '@/utils/func';
|
||||||
|
|
||||||
import React, { useRef, useEffect, useState } from 'react';
|
import React, { useRef, useEffect, useState } from 'react';
|
||||||
import { useIntl, useAccess } from '@umijs/max';
|
import { useIntl, useAccess } from '@umijs/max';
|
||||||
@@ -13,8 +13,11 @@ import TempFormModal from './components/TempFormModal';
|
|||||||
const LogTableList: React.FC = () => {
|
const LogTableList: React.FC = () => {
|
||||||
const actionRef = useRef<ActionType>();
|
const actionRef = useRef<ActionType>();
|
||||||
const [tempFormModal, setTempFormModal] = useState(false);
|
const [tempFormModal, setTempFormModal] = useState(false);
|
||||||
|
|
||||||
const [shopOption, setShopOption] = useState([]);
|
const [shopOption, setShopOption] = useState([]);
|
||||||
|
const [searchParams, setSearchParams] = useState(null);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const searchShop = async (value) => {
|
const searchShop = async (value) => {
|
||||||
const { success, data } = await usersPage({
|
const { success, data } = await usersPage({
|
||||||
@@ -225,14 +228,16 @@ const LogTableList: React.FC = () => {
|
|||||||
defaultCollapsed: false,
|
defaultCollapsed: false,
|
||||||
}}
|
}}
|
||||||
toolBarRender={() => [
|
toolBarRender={() => [
|
||||||
<Button type="primary" onClick={() => {
|
<Button type="primary" onClick={async () => {
|
||||||
window.location.href = exportLink(searchParams, '/admin/withdraw/export1');
|
let _res = await withdrawExtract(searchParams)
|
||||||
|
exportData(_res, '提现记录')
|
||||||
}}>导出提现申请</Button>,
|
}}>导出提现申请</Button>,
|
||||||
<Button icon={<UploadOutlined />} onClick={() => {
|
<Button icon={<UploadOutlined />} onClick={async () => {
|
||||||
setTempFormModal(true)
|
setTempFormModal(true)
|
||||||
}}>导入提现结果</Button>
|
}}>导入提现结果</Button>
|
||||||
]}
|
]}
|
||||||
request={async (params, sorter, filter) => {
|
request={async (params, sorter, filter) => {
|
||||||
|
setSearchParams(params)
|
||||||
let { data } = await withdrawPage(params)
|
let { data } = await withdrawPage(params)
|
||||||
return {
|
return {
|
||||||
data: data?.records || [],
|
data: data?.records || [],
|
||||||
|
|||||||
86
src/pages/order/components/BonusFormModal.tsx
Normal file
86
src/pages/order/components/BonusFormModal.tsx
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
/*
|
||||||
|
* @Note:
|
||||||
|
* @Author: 2058827620@qq.com
|
||||||
|
* @Date: 2022-04-03 10:53:25
|
||||||
|
*/
|
||||||
|
import React, { useState, useEffect } from 'react';
|
||||||
|
import {
|
||||||
|
Modal,
|
||||||
|
Table
|
||||||
|
} from 'antd';
|
||||||
|
|
||||||
|
import { orderList } from '@/services/order';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default ({ values, modalOpenState, onModalOpenState }) => {
|
||||||
|
|
||||||
|
const [config, setConfig] = useState(null);
|
||||||
|
const [items, setItems] = useState(null);
|
||||||
|
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!values?.id) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
orderList(values?.id).then(({ data }) => {
|
||||||
|
setItems(data || []);
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
});
|
||||||
|
}, [values]);
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '账单号',
|
||||||
|
dataIndex: 'orderNo',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '投资人',
|
||||||
|
dataIndex: 'shop',
|
||||||
|
search: false,
|
||||||
|
render: (_, record) => {
|
||||||
|
return <>
|
||||||
|
<div>用户名:{record?.username}</div>
|
||||||
|
<div>手机号:{record?.phone}</div>
|
||||||
|
<div>等级:{record?.level}</div>
|
||||||
|
</>
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '类型',
|
||||||
|
dataIndex: 'typeValue',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '金额',
|
||||||
|
dataIndex: 'points',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '创建时间',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Modal width="800px" title="分红" open={modalOpenState} onOk={() => {
|
||||||
|
onModalOpenState(false);
|
||||||
|
}} onCancel={() => {
|
||||||
|
onModalOpenState(false)
|
||||||
|
}}>
|
||||||
|
<>
|
||||||
|
<Table
|
||||||
|
rowKey="id"
|
||||||
|
columns={columns}
|
||||||
|
dataSource={items}
|
||||||
|
pagination={false}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
</Modal>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
103
src/pages/order/components/EscFormModal.tsx
Normal file
103
src/pages/order/components/EscFormModal.tsx
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
/*
|
||||||
|
* @Note:
|
||||||
|
* @Author: 2058827620@qq.com
|
||||||
|
* @Date: 2022-04-03 17:02:15
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { ProForm, ModalForm, ProFormRadio, ProFormText, ProFormTextArea, ProFormMoney, ProFormCaptcha, ProFormInstance } from '@ant-design/pro-components';
|
||||||
|
import { Button } from 'antd';
|
||||||
|
import { useEffect, useRef } from 'react';
|
||||||
|
import { smsCode } from '@/services/user/user'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default ({ modalOpenState, onModalOpenState, onSubmit }) => {
|
||||||
|
const restFormRef = useRef<ProFormInstance>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const handleFinish = async (formValues) => {
|
||||||
|
await onSubmit(formValues);
|
||||||
|
restFormRef.current?.resetFields();
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<ModalForm
|
||||||
|
title="订单-退单"
|
||||||
|
formRef={restFormRef}
|
||||||
|
submitter={{
|
||||||
|
searchConfig: {
|
||||||
|
resetText: '重置',
|
||||||
|
},
|
||||||
|
resetButtonProps: {
|
||||||
|
onClick: () => {
|
||||||
|
restFormRef.current?.resetFields();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
onFinish={handleFinish}
|
||||||
|
open={modalOpenState}
|
||||||
|
onOpenChange={onModalOpenState}
|
||||||
|
>
|
||||||
|
<ProFormText hidden={true} width="md" name="id" />
|
||||||
|
<ProForm.Group>
|
||||||
|
<ProFormText
|
||||||
|
rules={[{ required: true, message: '请输入!' }]}
|
||||||
|
width="md"
|
||||||
|
name="userName"
|
||||||
|
label="用户名"
|
||||||
|
placeholder="请输入"
|
||||||
|
/>
|
||||||
|
<ProFormText
|
||||||
|
rules={[{ required: true, message: '请输入!' }]}
|
||||||
|
width="md"
|
||||||
|
name="phone"
|
||||||
|
label="手机号"
|
||||||
|
placeholder="请输入"
|
||||||
|
/>
|
||||||
|
</ProForm.Group>
|
||||||
|
|
||||||
|
<ProForm.Group>
|
||||||
|
<ProFormCaptcha
|
||||||
|
placeholder={'请输入验证码'}
|
||||||
|
captchaTextRender={(timing, count) => {
|
||||||
|
if (timing) {
|
||||||
|
return `${count} ${'获取验证码'}`;
|
||||||
|
}
|
||||||
|
return '获取验证码';
|
||||||
|
}}
|
||||||
|
label="验证码"
|
||||||
|
name="smsCode"
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入验证码!',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
onGetCaptcha={async () => {
|
||||||
|
const { data } = await smsCode();
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</ProForm.Group>
|
||||||
|
<ProForm.Group>
|
||||||
|
<ProFormText
|
||||||
|
rules={[{ required: true, message: '请输入!' }]}
|
||||||
|
width="md"
|
||||||
|
name="orderNo"
|
||||||
|
label="订单号"
|
||||||
|
placeholder="请输入"
|
||||||
|
/>
|
||||||
|
</ProForm.Group>
|
||||||
|
<ProFormTextArea
|
||||||
|
rules={[{ required: true, message: '请输入' }]}
|
||||||
|
width="md"
|
||||||
|
name="remarks"
|
||||||
|
label="退款原因"
|
||||||
|
placeholder="请输入"
|
||||||
|
/>
|
||||||
|
</ModalForm>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
@@ -1,16 +1,23 @@
|
|||||||
import { orderPage, orderExport } from '@/services/order';
|
import { orderPage, orderExport, orderRefund } from '@/services/order';
|
||||||
import { exportData } from '@/utils/func';
|
import { exportData } from '@/utils/func';
|
||||||
import React, { useRef, useEffect, useState } from 'react';
|
import React, { useRef, useEffect, useState } from 'react';
|
||||||
import { useIntl, useAccess } from '@umijs/max';
|
import { useIntl, useAccess } from '@umijs/max';
|
||||||
import { message, Tag, Image, Button, Select } from 'antd';
|
import { message, Tag, Image, Button, Select } from 'antd';
|
||||||
import { ActionType, PageContainer, ProTable } from '@ant-design/pro-components';
|
import { ActionType, PageContainer, ProTable } from '@ant-design/pro-components';
|
||||||
|
import BonusFormModal from './components/BonusFormModal';
|
||||||
|
import EscFormModal from './components/EscFormModal';
|
||||||
|
|
||||||
|
|
||||||
const LogTableList: React.FC = () => {
|
const LogTableList: React.FC = () => {
|
||||||
const actionRef = useRef<ActionType>();
|
const actionRef = useRef<ActionType>();
|
||||||
const [searchParams, setSearchParams] = useState(null);
|
const [searchParams, setSearchParams] = useState(null);
|
||||||
|
const [bonusFormModal, setBonusFormModal] = useState(false);
|
||||||
|
const [row, setRow] = useState();
|
||||||
|
const [selectedRowsState, setSelectedRows] = useState([]);
|
||||||
|
const [escFormModal, setEscFormModal] = useState(false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
title: '订单号',
|
title: '订单号',
|
||||||
@@ -21,7 +28,8 @@ const LogTableList: React.FC = () => {
|
|||||||
return <div className={'flex items-center'}>
|
return <div className={'flex items-center'}>
|
||||||
{record.orderNo}
|
{record.orderNo}
|
||||||
<Button type="link" onClick={() => {
|
<Button type="link" onClick={() => {
|
||||||
|
setRow(record);
|
||||||
|
setBonusFormModal(true);
|
||||||
}}>查看</Button>
|
}}>查看</Button>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@@ -161,9 +169,28 @@ const LogTableList: React.FC = () => {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const escSubmit = async (fields) => {
|
||||||
|
const { success } = await orderRefund(fields);
|
||||||
|
if (success) {
|
||||||
|
message.success('退单成功');
|
||||||
|
actionRef.current?.reload();
|
||||||
|
setEscFormModal(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<PageContainer>
|
<PageContainer>
|
||||||
<div style={{ width: '100%', float: 'right' }}>
|
<div style={{ width: '100%', float: 'right' }}>
|
||||||
|
<EscFormModal
|
||||||
|
modalOpenState={escFormModal}
|
||||||
|
onModalOpenState={setEscFormModal}
|
||||||
|
onSubmit={escSubmit}
|
||||||
|
/>
|
||||||
|
<BonusFormModal
|
||||||
|
values={row}
|
||||||
|
modalOpenState={bonusFormModal}
|
||||||
|
onModalOpenState={setBonusFormModal}
|
||||||
|
/>
|
||||||
<ProTable
|
<ProTable
|
||||||
actionRef={actionRef}
|
actionRef={actionRef}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
@@ -175,7 +202,7 @@ const LogTableList: React.FC = () => {
|
|||||||
<Button
|
<Button
|
||||||
danger
|
danger
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
// setRefundFormModal(true);
|
setEscFormModal(true);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
退单
|
退单
|
||||||
@@ -193,6 +220,11 @@ const LogTableList: React.FC = () => {
|
|||||||
total: data?.total,
|
total: data?.total,
|
||||||
};
|
};
|
||||||
}}
|
}}
|
||||||
|
rowSelection={{
|
||||||
|
onChange: (_, selectedRows) => {
|
||||||
|
setSelectedRows(selectedRows)
|
||||||
|
},
|
||||||
|
}}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
112
src/pages/piles/components/BonusFormModal.tsx
Normal file
112
src/pages/piles/components/BonusFormModal.tsx
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
/*
|
||||||
|
* @Note:
|
||||||
|
* @Author: 2058827620@qq.com
|
||||||
|
* @Date: 2022-04-03 10:53:25
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { incomedayPage } from '@/services/piles';
|
||||||
|
import React, { useState, useEffect, useRef } from 'react';
|
||||||
|
import {
|
||||||
|
Modal,
|
||||||
|
Table
|
||||||
|
} from 'antd';
|
||||||
|
import { ActionType, PageContainer, ProTable } from '@ant-design/pro-components';
|
||||||
|
|
||||||
|
|
||||||
|
import { orderList } from '@/services/order';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default ({ values, modalOpenState, onModalOpenState }) => {
|
||||||
|
|
||||||
|
const [config, setConfig] = useState(null);
|
||||||
|
const [items, setItems] = useState(null);
|
||||||
|
const actionRef = useRef<ActionType>();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (actionRef.current) {
|
||||||
|
actionRef.current.reload();
|
||||||
|
}
|
||||||
|
}, [values]);
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '用户ID',
|
||||||
|
dataIndex: 'userId',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '设备ID',
|
||||||
|
dataIndex: 'deviceId',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '分账日期',
|
||||||
|
dataIndex: 'incomeDate',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// title: '服务费金额',
|
||||||
|
// dataIndex: 'serviceAmount',
|
||||||
|
// search: false,
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: '用户分成金额',
|
||||||
|
// dataIndex: 'userAmount',
|
||||||
|
// search: false,
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: '平台分成金额',
|
||||||
|
// dataIndex: 'platformAmount',
|
||||||
|
// search: false,
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: '奖金金额',
|
||||||
|
// dataIndex: 'bonusAmount',
|
||||||
|
// search: false,
|
||||||
|
// },
|
||||||
|
|
||||||
|
// {
|
||||||
|
// title: '平台分成配置',
|
||||||
|
// dataIndex: 'setConfig',
|
||||||
|
// search: false,
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: '创建时间',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Modal width="800px" title="收益列表" open={modalOpenState} onOk={() => {
|
||||||
|
onModalOpenState(false);
|
||||||
|
}} onCancel={() => {
|
||||||
|
onModalOpenState(false)
|
||||||
|
}}>
|
||||||
|
<>
|
||||||
|
<ProTable
|
||||||
|
actionRef={actionRef}
|
||||||
|
rowKey="id"
|
||||||
|
key="logList"
|
||||||
|
search={{
|
||||||
|
labelWidth: 120,
|
||||||
|
}}
|
||||||
|
request={async (params, sorter, filter) => {
|
||||||
|
params.deviceNo = values?.deviceNo
|
||||||
|
params.orderId = values?.orderId
|
||||||
|
params.userId = values?.userId
|
||||||
|
let { data } = await incomedayPage(params)
|
||||||
|
return {
|
||||||
|
data: data?.records || [],
|
||||||
|
total: data?.total,
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
columns={columns}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
</Modal>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
140
src/pages/piles/index.tsx
Normal file
140
src/pages/piles/index.tsx
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
import { devicePage } from '@/services/piles';
|
||||||
|
import { exportData } from '@/utils/func';
|
||||||
|
import React, { useRef, useEffect, useState } from 'react';
|
||||||
|
import { useIntl, useAccess } from '@umijs/max';
|
||||||
|
import { message, Tag, Image, Button, Select } from 'antd';
|
||||||
|
import { ActionType, PageContainer, ProTable } from '@ant-design/pro-components';
|
||||||
|
import BonusFormModal from './components/BonusFormModal';
|
||||||
|
|
||||||
|
|
||||||
|
const LogTableList: React.FC = () => {
|
||||||
|
const actionRef = useRef<ActionType>();
|
||||||
|
const [searchParams, setSearchParams] = useState(null);
|
||||||
|
const [bonusFormModal, setBonusFormModal] = useState(false);
|
||||||
|
const [row, setRow] = useState();
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '设备号',
|
||||||
|
dataIndex: 'deviceNo',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
render: (_: any, record: any) => {
|
||||||
|
return <div className={'flex items-center'}>
|
||||||
|
{record.deviceNo || '-'}
|
||||||
|
<Button type="link" onClick={() => {
|
||||||
|
setRow(record);
|
||||||
|
setBonusFormModal(true);
|
||||||
|
}}>查看</Button>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '订单号',
|
||||||
|
dataIndex: 'orderId',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '设备类型',
|
||||||
|
dataIndex: 'deviceType',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title: '设备状态',
|
||||||
|
dataIndex: 'deviceStatus',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
render: (_: any, record: any) => {
|
||||||
|
let color = record.deviceStatus == 1 ? 'volcano' : record.deviceStatus == 2 ? 'orange' : 'red'
|
||||||
|
return <Tag color={color}>{record.deviceStatus == 1 ? '已安装' : record.deviceStatus == 2 ? '已运营' : '未安装'}</Tag>
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '设备总收益',
|
||||||
|
dataIndex: 'income',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '安装站点名称',
|
||||||
|
dataIndex: 'stationName',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '安装站点地址',
|
||||||
|
dataIndex: 'stationAddress',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '安装时间',
|
||||||
|
dataIndex: 'installTime',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '交付时间',
|
||||||
|
dataIndex: 'deliverDate',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '分账有效期',
|
||||||
|
dataIndex: 'paymentValidity',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '分账类型',
|
||||||
|
dataIndex: 'paymentType',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
render: (_: any, record: any) => {
|
||||||
|
let color = record.paymentType == 1 ? 'volcano' : 'red'
|
||||||
|
return <Tag color={color}>{record.paymentType == 1 ? '普通分账' : '不分账'}</Tag>
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title: '创建时间',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
valueType: 'text',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<PageContainer>
|
||||||
|
<div style={{ width: '100%', float: 'right' }}>
|
||||||
|
<BonusFormModal
|
||||||
|
values={row}
|
||||||
|
modalOpenState={bonusFormModal}
|
||||||
|
onModalOpenState={setBonusFormModal}
|
||||||
|
/>
|
||||||
|
<ProTable
|
||||||
|
actionRef={actionRef}
|
||||||
|
rowKey="id"
|
||||||
|
key="logList"
|
||||||
|
search={{
|
||||||
|
labelWidth: 120,
|
||||||
|
}}
|
||||||
|
request={async (params, sorter, filter) => {
|
||||||
|
setSearchParams({ ...params });
|
||||||
|
let { data } = await devicePage(params)
|
||||||
|
return {
|
||||||
|
data: data?.records || [],
|
||||||
|
total: data?.total,
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
columns={columns}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</PageContainer>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LogTableList;
|
||||||
119
src/pages/user/user/components/MoneyFormModal.tsx
Normal file
119
src/pages/user/user/components/MoneyFormModal.tsx
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
/*
|
||||||
|
* @Note:
|
||||||
|
* @Author: 2058827620@qq.com
|
||||||
|
* @Date: 2022-04-03 17:02:15
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { ProForm, ModalForm, ProFormRadio, ProFormText, ProFormTextArea, ProFormMoney, ProFormCaptcha, ProFormInstance } from '@ant-design/pro-components';
|
||||||
|
import { Button } from 'antd';
|
||||||
|
import { useEffect, useRef } from 'react';
|
||||||
|
import { smsCode } from '@/services/user/user'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default ({ modalOpenState, onModalOpenState, onSubmit }) => {
|
||||||
|
const restFormRef = useRef<ProFormInstance>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const handleFinish = async (formValues) => {
|
||||||
|
await onSubmit(formValues);
|
||||||
|
restFormRef.current?.resetFields();
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<ModalForm
|
||||||
|
title="用户-余额"
|
||||||
|
formRef={restFormRef}
|
||||||
|
submitter={{
|
||||||
|
searchConfig: {
|
||||||
|
resetText: '重置',
|
||||||
|
},
|
||||||
|
resetButtonProps: {
|
||||||
|
onClick: () => {
|
||||||
|
restFormRef.current?.resetFields();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
onFinish={handleFinish}
|
||||||
|
open={modalOpenState}
|
||||||
|
onOpenChange={onModalOpenState}
|
||||||
|
>
|
||||||
|
<ProFormText hidden={true} width="md" name="id" />
|
||||||
|
<ProForm.Group>
|
||||||
|
<ProFormText
|
||||||
|
rules={[{ required: true, message: '请输入!' }]}
|
||||||
|
width="md"
|
||||||
|
name="userName"
|
||||||
|
label="用户名"
|
||||||
|
placeholder="请输入"
|
||||||
|
/>
|
||||||
|
<ProFormText
|
||||||
|
rules={[{ required: true, message: '请输入!' }]}
|
||||||
|
width="md"
|
||||||
|
name="phone"
|
||||||
|
label="手机号"
|
||||||
|
placeholder="请输入"
|
||||||
|
/>
|
||||||
|
</ProForm.Group>
|
||||||
|
|
||||||
|
<ProForm.Group>
|
||||||
|
<ProFormCaptcha
|
||||||
|
placeholder={'请输入验证码'}
|
||||||
|
captchaTextRender={(timing, count) => {
|
||||||
|
if (timing) {
|
||||||
|
return `${count} ${'获取验证码'}`;
|
||||||
|
}
|
||||||
|
return '获取验证码';
|
||||||
|
}}
|
||||||
|
label="验证码"
|
||||||
|
name="smsCode"
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入验证码!',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
onGetCaptcha={async () => {
|
||||||
|
const { data } = await smsCode();
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</ProForm.Group>
|
||||||
|
<ProForm.Group>
|
||||||
|
{/* <ProFormRadio.Group
|
||||||
|
rules={[{ required: true, message: '请输入!' }]}
|
||||||
|
name="type"
|
||||||
|
label="类型"
|
||||||
|
radioType="button"
|
||||||
|
options={[
|
||||||
|
{
|
||||||
|
label: '线下充值',
|
||||||
|
value: '51',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '余额划扣',
|
||||||
|
value: '52',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/> */}
|
||||||
|
<ProFormMoney
|
||||||
|
rules={[{ required: true, message: '请输入!' }]}
|
||||||
|
label="金额"
|
||||||
|
name="rechargeAmount"
|
||||||
|
customSymbol="¥"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</ProForm.Group>
|
||||||
|
<ProFormTextArea
|
||||||
|
rules={[{ required: true, message: '请输入' }]}
|
||||||
|
width="md"
|
||||||
|
name="remark"
|
||||||
|
label="备注"
|
||||||
|
placeholder="请输入"
|
||||||
|
/>
|
||||||
|
</ModalForm>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
98
src/pages/user/user/components/ShopModal.tsx
Normal file
98
src/pages/user/user/components/ShopModal.tsx
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
/*
|
||||||
|
* @Note:
|
||||||
|
* @Author: 2058827620@qq.com
|
||||||
|
* @Date: 2022-04-03 10:53:25
|
||||||
|
*/
|
||||||
|
import React, { useState, useEffect } from 'react';
|
||||||
|
import {
|
||||||
|
Modal,
|
||||||
|
Table
|
||||||
|
} from 'antd';
|
||||||
|
|
||||||
|
|
||||||
|
import { pageUpAndDownLevel } from '@/services/user/user';
|
||||||
|
|
||||||
|
export default ({ values, modalOpenState, onModalOpenState }) => {
|
||||||
|
|
||||||
|
const [items2, setitems2] = useState(null);
|
||||||
|
const [items, setItems] = useState(null);
|
||||||
|
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!values?.id) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
pageUpAndDownLevel(values?.id).then(({ data, success }) => {
|
||||||
|
if (success) {
|
||||||
|
setItems(data?.upLevel || []);
|
||||||
|
setitems2(data?.downLevel)
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
});
|
||||||
|
}, [values]);
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: 'ID',
|
||||||
|
dataIndex: 'id',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '用户',
|
||||||
|
dataIndex: 'shop',
|
||||||
|
search: false,
|
||||||
|
render: (_, record) => {
|
||||||
|
return <>
|
||||||
|
<div>用户名:{record?.userName}</div>
|
||||||
|
<div>手机号:{record?.phone}</div>
|
||||||
|
<div>等级:{record?.level}</div>
|
||||||
|
</>
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '余额',
|
||||||
|
dataIndex: 'points2',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '收益',
|
||||||
|
dataIndex: 'points1',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '创建时间',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Modal width="800px" title="" open={modalOpenState} onOk={() => {
|
||||||
|
onModalOpenState(false);
|
||||||
|
}} onCancel={() => {
|
||||||
|
onModalOpenState(false)
|
||||||
|
}}>
|
||||||
|
<>
|
||||||
|
<div style={{ margin: '15px 0' }}>上级</div>
|
||||||
|
<Table
|
||||||
|
rowKey="id"
|
||||||
|
columns={columns}
|
||||||
|
dataSource={items}
|
||||||
|
pagination={false}
|
||||||
|
/>
|
||||||
|
<div style={{ margin: '15px 0' }}>
|
||||||
|
下级
|
||||||
|
</div>
|
||||||
|
<Table
|
||||||
|
rowKey="id"
|
||||||
|
columns={columns}
|
||||||
|
dataSource={items2}
|
||||||
|
pagination={false}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
</Modal >
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -9,7 +9,7 @@ import { Divider } from 'antd';
|
|||||||
import { useEffect, useRef } from 'react';
|
import { useEffect, useRef } from 'react';
|
||||||
import FilesManager from '@/components/FilesManage/index';
|
import FilesManager from '@/components/FilesManage/index';
|
||||||
|
|
||||||
export default ({ values, modalOpenState, onModalOpenState, onSubmit }) => {
|
export default ({ modalOpenState, onModalOpenState, onSubmit }) => {
|
||||||
const restFormRef = useRef<ProFormInstance>();
|
const restFormRef = useRef<ProFormInstance>();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -27,7 +27,6 @@ export default ({ values, modalOpenState, onModalOpenState, onSubmit }) => {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
initialValues={values}
|
|
||||||
onFinish={async (e) => {
|
onFinish={async (e) => {
|
||||||
await onSubmit(e)
|
await onSubmit(e)
|
||||||
restFormRef.current?.resetFields();
|
restFormRef.current?.resetFields();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { usersPage, usersAdd, usersDelete, usersUpdate, updateUserLevel, userTransferHanging, exportUser } from '@/services/user/user';
|
import { usersPage, usersAdd, usersDelete, usersUpdate, updateUserLevel, userTransferHanging, exportUser, userRecharge } from '@/services/user/user';
|
||||||
|
|
||||||
|
|
||||||
import React, { useRef, useEffect, useState } from 'react';
|
import React, { useRef, useEffect, useState } from 'react';
|
||||||
@@ -10,6 +10,12 @@ import { PlusOutlined, LineChartOutlined } from '@ant-design/icons';
|
|||||||
import { exportData } from '@/utils/func';
|
import { exportData } from '@/utils/func';
|
||||||
import LevelFormModal from './components/LevelFormModal';
|
import LevelFormModal from './components/LevelFormModal';
|
||||||
import TempFormModal from './components/TempFormModal';
|
import TempFormModal from './components/TempFormModal';
|
||||||
|
import ShopModal from './components/ShopModal';
|
||||||
|
import MoneyFormModal from './components/MoneyFormModal';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加节点
|
* 添加节点
|
||||||
*
|
*
|
||||||
@@ -76,6 +82,10 @@ const LogTableList: React.FC = () => {
|
|||||||
const [levelFormModal, setLevelFormModal] = useState(false);
|
const [levelFormModal, setLevelFormModal] = useState(false);
|
||||||
const [tempFormModal, setTempFormModal] = useState(false);
|
const [tempFormModal, setTempFormModal] = useState(false);
|
||||||
const [searchParams, setSearchParams] = useState(null);
|
const [searchParams, setSearchParams] = useState(null);
|
||||||
|
const [shopModal, setBonusFormModal] = useState(false);
|
||||||
|
const [row, setRow] = useState();
|
||||||
|
const [moneyFormModal, setMoneyFormModal] = useState(false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 更改等级
|
// 更改等级
|
||||||
@@ -97,12 +107,30 @@ const LogTableList: React.FC = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleMoney = async (fields) => {
|
||||||
|
const { success } = await userRecharge(fields);
|
||||||
|
if (success) {
|
||||||
|
message.success('余额变更成功');
|
||||||
|
actionRef.current?.reload();
|
||||||
|
setMoneyFormModal(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
title: 'ID',
|
title: 'ID',
|
||||||
dataIndex: 'id',
|
dataIndex: 'id',
|
||||||
valueType: 'text',
|
valueType: 'text',
|
||||||
search: false,
|
search: false,
|
||||||
|
render: (_: any, record: any) => {
|
||||||
|
return <div className={'flex items-center'}>
|
||||||
|
{record.id}
|
||||||
|
<Button type="link" onClick={() => {
|
||||||
|
setRow(record);
|
||||||
|
setBonusFormModal(true);
|
||||||
|
}}>查看</Button>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '头像',
|
title: '头像',
|
||||||
@@ -136,7 +164,7 @@ const LogTableList: React.FC = () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '收益',
|
title: '收益',
|
||||||
dataIndex: 'points2',
|
dataIndex: 'points1',
|
||||||
valueType: 'text',
|
valueType: 'text',
|
||||||
search: false,
|
search: false,
|
||||||
},
|
},
|
||||||
@@ -224,6 +252,11 @@ const LogTableList: React.FC = () => {
|
|||||||
return (
|
return (
|
||||||
<PageContainer>
|
<PageContainer>
|
||||||
<div style={{ width: '100%', float: 'right' }}>
|
<div style={{ width: '100%', float: 'right' }}>
|
||||||
|
<ShopModal
|
||||||
|
values={row}
|
||||||
|
modalOpenState={shopModal}
|
||||||
|
onModalOpenState={setBonusFormModal}
|
||||||
|
/>
|
||||||
<LevelFormModal
|
<LevelFormModal
|
||||||
modalOpenState={levelFormModal}
|
modalOpenState={levelFormModal}
|
||||||
onModalOpenState={setLevelFormModal}
|
onModalOpenState={setLevelFormModal}
|
||||||
@@ -234,6 +267,11 @@ const LogTableList: React.FC = () => {
|
|||||||
onModalOpenState={setTempFormModal}
|
onModalOpenState={setTempFormModal}
|
||||||
onSubmit={handleTemp}
|
onSubmit={handleTemp}
|
||||||
/>
|
/>
|
||||||
|
<MoneyFormModal
|
||||||
|
modalOpenState={moneyFormModal}
|
||||||
|
onModalOpenState={setMoneyFormModal}
|
||||||
|
onSubmit={handleMoney}
|
||||||
|
/>
|
||||||
|
|
||||||
<ProTable
|
<ProTable
|
||||||
actionRef={actionRef}
|
actionRef={actionRef}
|
||||||
@@ -246,7 +284,7 @@ const LogTableList: React.FC = () => {
|
|||||||
<Button
|
<Button
|
||||||
danger
|
danger
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setTradeFormModal(true)
|
setMoneyFormModal(true)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
余额变更
|
余额变更
|
||||||
|
|||||||
@@ -127,7 +127,8 @@ export const errorConfig: RequestConfig = {
|
|||||||
// 拦截请求配置,进行个性化处理。
|
// 拦截请求配置,进行个性化处理。
|
||||||
const Authorization = localStorage.getItem('token') || ''
|
const Authorization = localStorage.getItem('token') || ''
|
||||||
const headers = { Authorization };
|
const headers = { Authorization };
|
||||||
config.url.includes('https://');
|
// let url = config.url;
|
||||||
|
// const url = config?.url;
|
||||||
let url = `https://iadminapi.zhongshuai2023.com` + config.url;
|
let url = `https://iadminapi.zhongshuai2023.com` + config.url;
|
||||||
if (config.url.includes('https://')) {
|
if (config.url.includes('https://')) {
|
||||||
url = config.url;
|
url = config.url;
|
||||||
|
|||||||
@@ -28,4 +28,38 @@ export async function variationPage(body) {
|
|||||||
},
|
},
|
||||||
data: body || {},
|
data: body || {},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
export async function withdrawExtract(body) {
|
||||||
|
return request('/api/userspoints/points/extract/export', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
data: body || {},
|
||||||
|
responseType: 'blob'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export async function pointsExtract(body) {
|
||||||
|
return request('/api/userspoints/points/export', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
data: body || {},
|
||||||
|
responseType: 'blob'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function recordExtract(body) {
|
||||||
|
return request('/api/userspoints/points/record/export', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
data: body || {},
|
||||||
|
responseType: 'blob'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,5 +17,27 @@ export async function orderExport(body) {
|
|||||||
'Content-Type': 'application/json;charset=UTF-8',
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
},
|
},
|
||||||
data: body || {},
|
data: body || {},
|
||||||
|
responseType: 'blob'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function orderList(id) {
|
||||||
|
return request(`/api/orders/orderIncomeList?id=${id}`, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 退单
|
||||||
|
export async function orderRefund(bodys) {
|
||||||
|
return request('/api/orders/orderRefund', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
data: bodys || {},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
22
src/services/piles/index.ts
Normal file
22
src/services/piles/index.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import { request } from '@umijs/max';
|
||||||
|
|
||||||
|
export async function devicePage(body) {
|
||||||
|
return request('/api/device/page', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
data: body || {},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function incomedayPage(body) {
|
||||||
|
return request('/api/device/incomeday/page', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
data: body || {},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@@ -71,3 +71,33 @@ export async function exportUser(body) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function pageUpAndDownLevel(id) {
|
||||||
|
return request(`/api/users/upAndDownLevel?id=${id}`, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function userRecharge(body) {
|
||||||
|
return request('/api/users/userRecharge', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
data: body || {},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 获取短信
|
||||||
|
export async function smsCode() {
|
||||||
|
return request(`/api/sms/sensitiveSendSms`, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json;charset=UTF-8',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export function exportLink(searchParams, api) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export function exportData(_res,name) {
|
export function exportData(_res,name) {
|
||||||
|
console.log(_res);
|
||||||
// 获取文件的二进制数据
|
// 获取文件的二进制数据
|
||||||
const blob = new Blob([_res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
const blob = new Blob([_res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||||
// 创建下载链接
|
// 创建下载链接
|
||||||
|
|||||||
Reference in New Issue
Block a user