You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/p__User__Detail__Order__ind...

507 lines
21 KiB

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[21939],{
/***/ 27438:
/*!***********************************************************!*\
!*** ./src/pages/User/Detail/Order/index.tsx + 1 modules ***!
\***********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"default": function() { return /* binding */ Order; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(7557);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(82242);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(41498);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectWithoutProperties.js
var objectWithoutProperties = __webpack_require__(39647);
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
var _umi_production_exports = __webpack_require__(80184);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/index.js + 24 modules
var tabs = __webpack_require__(99313);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
var modal = __webpack_require__(43418);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
var message = __webpack_require__(8591);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
var es_button = __webpack_require__(3113);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/skeleton/index.js + 12 modules
var skeleton = __webpack_require__(61621);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/empty/index.js + 3 modules
var empty = __webpack_require__(64165);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/pagination/index.js + 10 modules
var pagination = __webpack_require__(58421);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(35325);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(1079);
// EXTERNAL MODULE: ./src/components/ui-customization/index.tsx + 32 modules
var ui_customization = __webpack_require__(7401);
;// CONCATENATED MODULE: ./src/pages/User/Detail/Order/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var Ordermodules = ({"flex_box_center":"flex_box_center___YpQfo","flex_space_between":"flex_space_between___TbnTA","flex_box_vertical_center":"flex_box_vertical_center___i5tGV","flex_box_center_end":"flex_box_center_end___TGOEs","flex_box_column":"flex_box_column___WffX7","order":"order___vJMML","title":"title___y1Rw3","btn":"btn___BCKjx","content":"content___snC8y","w1":"w1___NLhhp","w2":"w2___wVmr8","w3":"w3___nkCwO","w4":"w4___rU_a2","w5":"w5___TXF5V","w6":"w6___fnvwR","listTitle":"listTitle___fxcJs","listContent":"listContent___KWWlP","info":"info___d0rSf","d1":"d1___J4DJD","d2":"d2___TWgK5","d3":"d3___vdAxO","unitPrice":"unitPrice___iZ863","p":"p___aEkYF","l":"l___QebDv","payType":"payType___U1bBW","price":"price___jAHt9","status":"status___r8pAq","action":"action___oXuBE"});
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/pages/User/Detail/Order/index.tsx
var _excluded = ["user", "userDetail", "globalSetting", "dispatch"];
var TabPane = tabs/* default */.Z.TabPane;
// const listData = [
// {
// num: "13031815255975476953148", //订单号
// state: "unpaid", //订单状态
// name: "Python程序设计入门", //商品名
// expiration: "2", //有效类型
// price: '100.0', //实际价格
// origin_price: "200.0", //原始价格
// days: 56, //有效天数
// // start_at: null, //固定开始日期
// // end_at: null, //固定结束日期
// created_at: "2021-03-18 15:25:59", //订单创建时间
// subject_id: 17 // 实践课程id
// }
// ]
var Paths = function Paths(_ref) {
var user = _ref.user,
userDetail = _ref.userDetail,
globalSetting = _ref.globalSetting,
dispatch = _ref.dispatch,
props = objectWithoutProperties_default()(_ref, _excluded);
var _useState = (0,_react_17_0_2_react.useState)(''),
_useState2 = slicedToArray_default()(_useState, 2),
activeKey = _useState2[0],
setActiveKey = _useState2[1];
var _useState3 = (0,_react_17_0_2_react.useState)([]),
_useState4 = slicedToArray_default()(_useState3, 2),
list = _useState4[0],
setList = _useState4[1];
var _useState5 = (0,_react_17_0_2_react.useState)(0),
_useState6 = slicedToArray_default()(_useState5, 2),
total = _useState6[0],
setTotal = _useState6[1];
var _useState7 = (0,_react_17_0_2_react.useState)(1),
_useState8 = slicedToArray_default()(_useState7, 2),
current = _useState8[0],
setCurrent = _useState8[1];
var _useState9 = (0,_react_17_0_2_react.useState)(true),
_useState10 = slicedToArray_default()(_useState9, 2),
loading = _useState10[0],
setLoading = _useState10[1];
var _useState11 = (0,_react_17_0_2_react.useState)(null),
_useState12 = slicedToArray_default()(_useState11, 2),
btnLoading = _useState12[0],
setBtnLoading = _useState12[1];
(0,_react_17_0_2_react.useEffect)(function () {
(0,util/* setDocumentTitle */.Dk)('我购买的课程');
getData();
}, []);
var getData = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(param) {
var initParam, res;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
initParam = {
state: '',
page: 1,
per_page: 10
};
setLoading(true);
_context.next = 4;
return (0,fetch/* default */.ZP)("/api/payments.json", {
method: 'get',
params: objectSpread2_default()(objectSpread2_default()({}, initParam), param)
});
case 4:
res = _context.sent;
if (res !== null && res !== void 0 && res.orders) {
setList(res === null || res === void 0 ? void 0 : res.orders);
setTotal(res === null || res === void 0 ? void 0 : res.count);
setLoading(false);
}
case 6:
case "end":
return _context.stop();
}
}, _callee);
}));
return function getData(_x) {
return _ref2.apply(this, arguments);
};
}();
var handleTabsClick = function handleTabsClick(key) {
if (key === activeKey) return;
getData({
state: key,
page: 1
});
setCurrent(1);
setActiveKey(key);
};
var tabsMapping = [{
name: '全部订单',
activeKey: ''
}, {
name: '待付款',
activeKey: 'unpaid'
}, {
name: '已完成',
activeKey: 'payed'
}, {
name: '已失效',
activeKey: 'expired'
}];
var cancelOrder = function cancelOrder(num) {
modal/* default */.Z.confirm({
// className: reset.CustomTipsModalCss,
centered: true,
icon: null,
okText: '确定',
cancelText: '取消',
title: '取消订单',
content: '确定取消该订单吗?',
onOk: function () {
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
var res, page;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return (0,fetch/* default */.ZP)("/api/payments/".concat(num, "/cancel"), {
method: 'POST'
});
case 2:
res = _context2.sent;
if (res.status === 0) {
page = list.length === 1 && current > 1 ? current - 1 : current;
getData({
page: page,
state: activeKey
});
setCurrent(page);
}
case 4:
case "end":
return _context2.stop();
}
}, _callee2);
}));
function onOk() {
return _onOk.apply(this, arguments);
}
return onOk;
}()
});
};
var deleteOrder = function deleteOrder(num) {
modal/* default */.Z.confirm({
// className: reset.CustomTipsModalCss,
centered: true,
okText: '确定',
cancelText: '取消',
icon: null,
title: '删除订单',
content: '确定删除该订单吗?',
onOk: function () {
var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
var res, page;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return (0,fetch/* default */.ZP)("/api/payments/".concat(num, ".json"), {
method: 'DELETE'
});
case 2:
res = _context3.sent;
if (res.status === 0) {
page = list.length === 1 && current > 1 ? current - 1 : current;
getData({
page: page,
state: activeKey
});
setCurrent(page);
}
case 4:
case "end":
return _context3.stop();
}
}, _callee3);
}));
function onOk() {
return _onOk2.apply(this, arguments);
}
return onOk;
}()
});
};
var continuePayOrder = function continuePayOrder(item) {
_umi_production_exports.history.push("/order/".concat(item === null || item === void 0 ? void 0 : item.subject_id, "/pay?order_num=").concat(item === null || item === void 0 ? void 0 : item.num));
};
var againBuyOrder = /*#__PURE__*/function () {
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4(item) {
var res;
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
if (item.is_subject_exist) {
_context4.next = 3;
break;
}
message/* default */.ZP.warning('课程已下架');
return _context4.abrupt("return");
case 3:
setBtnLoading(item === null || item === void 0 ? void 0 : item.num);
_context4.next = 6;
return (0,fetch/* default */.ZP)("/api/payments.json", {
method: 'POST',
body: {
subject_id: item === null || item === void 0 ? void 0 : item.subject_id,
payment_method: 'wechat_qr'
}
});
case 6:
res = _context4.sent;
if (res !== null && res !== void 0 && res.num) {
_umi_production_exports.history.push("/order/".concat(item === null || item === void 0 ? void 0 : item.subject_id, "/pay?order_num=").concat(res === null || res === void 0 ? void 0 : res.num));
setBtnLoading(null);
}
case 8:
case "end":
return _context4.stop();
}
}, _callee4);
}));
return function againBuyOrder(_x2) {
return _ref3.apply(this, arguments);
};
}();
var handleChange = function handleChange(page) {
document.body.scrollIntoView();
getData({
page: page
});
setCurrent(page);
};
var start = function start(id, bool) {
if (!bool) {
message/* default */.ZP.warning('课程已下架');
return;
}
_umi_production_exports.history.push("/paths/".concat(id));
};
var invoice = function invoice(id) {
_umi_production_exports.history.push("/order/invoice?ids=".concat(encodeURIComponent(JSON.stringify([id]))));
};
var renderContent = function renderContent() {
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Ordermodules.content,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Ordermodules.listTitle,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
style: {
paddingLeft: 30,
textAlign: 'left'
},
className: Ordermodules.w1,
children: "\u8BA2\u5355\u4FE1\u606F"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.w2,
children: "\u5355\u4EF7(\u5143)"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.w3,
children: "\u5B9E\u4ED8\u91D1\u989D(\u5143)"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.w6,
children: "\u652F\u4ED8\u65B9\u5F0F"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.w4,
children: "\u4EA4\u6613\u72B6\u6001"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.w5,
children: "\u64CD\u4F5C"
})]
}), list.map(function (item, index) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Ordermodules.listContent,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Ordermodules.info,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("a", {
href: "/paths/".concat(item.subject_id),
className: Ordermodules.d1,
children: item.name
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Ordermodules.d2,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
children: ["\u8BA2\u5355\u7F16\u53F7\uFF1A", item.num]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
marginLeft: 22
},
children: item.created_at
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Ordermodules.d3,
children: ["\u8BFE\u7A0B\u6709\u6548\u671F\uFF1A", (item === null || item === void 0 ? void 0 : item.expiration) === '1' && '永久有效', (item === null || item === void 0 ? void 0 : item.expiration) === '2' && "\u8D2D\u4E70\u540E".concat(item === null || item === void 0 ? void 0 : item.days, "\u5929\u6709\u6548"), (item === null || item === void 0 ? void 0 : item.expiration) === '3' && "".concat(item === null || item === void 0 ? void 0 : item.start_at, "\u5230").concat(item === null || item === void 0 ? void 0 : item.end_at)]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Ordermodules.unitPrice,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.p,
children: item.price
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.l,
children: item.origin_price
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.price,
children: item.price
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.payType,
children: item === null || item === void 0 ? void 0 : item.payment_method
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.status,
children: item.state === 'unpaid' ? '待支付' : item.state === 'expired' ? "已失效" : '交易完成'
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Ordermodules.action,
children: [item.state === 'unpaid' && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
return cancelOrder(item.num);
},
type: "primary",
ghost: true,
children: "\u53D6\u6D88\u8BA2\u5355"
}), item.state === 'expired' && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
return deleteOrder(item.num);
},
type: "primary",
danger: true,
ghost: true,
children: "\u5220\u9664\u8BA2\u5355"
}), item.state === 'unpaid' && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
return continuePayOrder(item);
},
type: "primary",
children: "\u7EE7\u7EED\u652F\u4ED8"
}), item.state === 'expired' && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
loading: btnLoading === item.num,
disabled: btnLoading !== null && btnLoading !== item.num,
onClick: function onClick() {
return againBuyOrder(item);
},
type: "primary",
children: "\u91CD\u65B0\u8D2D\u4E70"
}), item.allow_invoice && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
return invoice(item.id);
},
ghost: true,
type: "primary",
children: "\u5F00\u53D1\u7968"
}), item.state === 'payed' && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
onClick: function onClick() {
return start(item.subject_id, item.is_subject_exist);
},
type: "primary",
children: "\u5F00\u59CB\u5B66\u4E60"
})]
})]
}, index);
})]
});
};
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(ui_customization/* CustomCrumbs */._b, {
dataSource: [{
name: '我的'
}, {
name: '我购买的课程'
}]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: Ordermodules.order,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: Ordermodules.title,
children: "\u6211\u8D2D\u4E70\u7684\u8BFE\u7A0B"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(tabs/* default */.Z, {
activeKey: activeKey,
onChange: handleTabsClick,
tabBarExtraContent: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
onClick: function onClick() {
return _umi_production_exports.history.push('/order/records');
},
className: Ordermodules.btn,
children: "\u5F00\u7968\u8BB0\u5F55"
}),
children: tabsMapping.map(function (e) {
return /*#__PURE__*/(0,jsx_runtime.jsx)(TabPane, {
tab: e.name,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(skeleton/* default */.Z, {
loading: loading,
active: true,
paragraph: {
rows: 5
},
children: !!list.length ? renderContent() : /*#__PURE__*/(0,jsx_runtime.jsx)(empty/* default */.Z, {})
})
}, e.activeKey);
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
hideOnSinglePage: true,
onChange: function onChange(page) {
return handleChange(page);
},
current: current,
pageSize: 10,
total: total
})]
})]
});
};
/* harmony default export */ var Order = ((0,_umi_production_exports.connect)(function (_ref4) {
var user = _ref4.user,
userDetail = _ref4.userDetail,
globalSetting = _ref4.globalSetting;
return {
user: user,
userDetail: userDetail,
globalSetting: globalSetting
};
})(Paths));
/***/ })
}]);