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.
179 lines
10 KiB
179 lines
10 KiB
"use strict";
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[1855],{
|
|
|
|
/***/ 570:
|
|
/*!***************************************!*\
|
|
!*** ./src/pages/MoopCases/label.css ***!
|
|
\***************************************/
|
|
/***/ (function() {
|
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 70479:
|
|
/*!**************************************************!*\
|
|
!*** ./src/pages/MoopCases/InfoPanel/index.less ***!
|
|
\**************************************************/
|
|
/***/ (function() {
|
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 20680:
|
|
/*!*************************************************!*\
|
|
!*** ./src/pages/MoopCases/InfoPanel/index.tsx ***!
|
|
\*************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ Types: function() { return /* binding */ Types; }
|
|
/* harmony export */ });
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 71418);
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd */ 3113);
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ 14478);
|
|
/* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! umi */ 23852);
|
|
/* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/fetch */ 64841);
|
|
/* harmony import */ var _utils_env__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/env */ 19351);
|
|
/* harmony import */ var _components_RenderHtml__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/RenderHtml */ 92936);
|
|
/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./index.less */ 70479);
|
|
/* harmony import */ var _label_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../label.css */ 570);
|
|
var __defProp = Object.defineProperty;
|
|
var __defProps = Object.defineProperties;
|
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
var __spreadValues = (a, b) => {
|
|
for (var prop in b || (b = {}))
|
|
if (__hasOwnProp.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
if (__getOwnPropSymbols)
|
|
for (var prop of __getOwnPropSymbols(b)) {
|
|
if (__propIsEnum.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
}
|
|
return a;
|
|
};
|
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
var __async = (__this, __arguments, generator) => {
|
|
return new Promise((resolve, reject) => {
|
|
var fulfilled = (value) => {
|
|
try {
|
|
step(generator.next(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var rejected = (value) => {
|
|
try {
|
|
step(generator.throw(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
});
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const initialState = {
|
|
data: void 0
|
|
};
|
|
var Types = /* @__PURE__ */ ((Types2) => {
|
|
Types2["GET_DATA"] = "get-data";
|
|
Types2["PRAISE"] = "on-praise";
|
|
return Types2;
|
|
})(Types || {});
|
|
function reducer(state, action) {
|
|
switch (action.type) {
|
|
case "get-data" /* GET_DATA */:
|
|
return __spreadProps(__spreadValues({}, state), { data: action.payload });
|
|
case "on-praise" /* PRAISE */:
|
|
return __spreadProps(__spreadValues({}, state), { data: action.payload });
|
|
default:
|
|
throw new Error();
|
|
}
|
|
}
|
|
/* harmony default export */ __webpack_exports__["default"] = (() => {
|
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, initialState);
|
|
const { data } = state;
|
|
const { caseId } = (0,umi__WEBPACK_IMPORTED_MODULE_1__.useParams)();
|
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
let didCancel = false;
|
|
function init() {
|
|
return __async(this, null, function* () {
|
|
const response = yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_2__/* .get */ .U2)(`libraries/${caseId}.json`);
|
|
if (!didCancel) {
|
|
if (response.status === 404) {
|
|
umi__WEBPACK_IMPORTED_MODULE_1__.history.push("/moop_cases");
|
|
} else {
|
|
dispatch({
|
|
type: "get-data" /* GET_DATA */,
|
|
payload: response
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
if (!didCancel) {
|
|
init();
|
|
}
|
|
return () => {
|
|
didCancel = true;
|
|
};
|
|
}, [caseId]);
|
|
function onPraise() {
|
|
return __async(this, null, function* () {
|
|
yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_2__/* .post */ .v_)(`praise_tread/like.json`, {
|
|
object_id: caseId,
|
|
object_type: "library"
|
|
});
|
|
let rs = __spreadValues({}, data);
|
|
rs.operation.user_praised = true;
|
|
rs.praise_count += 1;
|
|
dispatch({
|
|
type: "on-praise" /* PRAISE */,
|
|
payload: rs
|
|
});
|
|
});
|
|
}
|
|
function onDeleteCase() {
|
|
return __async(this, null, function* () {
|
|
yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_2__/* .del */ .IV)(`/libraries/${caseId}.json`);
|
|
umi__WEBPACK_IMPORTED_MODULE_1__.history.push("/moop_cases");
|
|
});
|
|
}
|
|
return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { spinning: !data, delay: 500 }, data ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("section", { className: "moop-info" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "crumb" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(umi__WEBPACK_IMPORTED_MODULE_1__.Link, { to: "/moop_cases" }, "\u6559\u5B66\u6848\u4F8B > "), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, data.title)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "title" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("h2", null, data.title, (_a = data.tags) == null ? void 0 : _a.map(
|
|
(tag, index) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: "label-" + index, key: tag.id }, tag.name)
|
|
)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(umi__WEBPACK_IMPORTED_MODULE_1__.Link, { to: "/moop_cases" }, "\u8FD4\u56DE")), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "moop-info-body" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "moop-sub-title" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("img", { src: `${_utils_env__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.IMG_SERVER}/images/${(_b = data.creator) == null ? void 0 : _b.image_url}`, alt: "cover", width: 50 }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "desc" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "flex-container" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, (_c = data.creator) == null ? void 0 : _c.name), ((_d = data.operation) == null ? void 0 : _d.can_editable) ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(umi__WEBPACK_IMPORTED_MODULE_1__.Link, { to: `/moop_cases/${data.id}/edit`, style: { marginRight: 10 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .ZP, { type: "ghost" }, "\u7F16\u8F91")) : null, ((_e = data.operation) == null ? void 0 : _e.can_deletable) ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
|
|
antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z,
|
|
{
|
|
placement: "bottomRight",
|
|
title: "\u662F\u5426\u786E\u8BA4\u5220\u9664\uFF1F",
|
|
onConfirm: onDeleteCase
|
|
},
|
|
/* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .ZP, { type: "dashed" }, "\u5220\u9664")
|
|
) : null), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: "sum" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, (_f = data.creator) == null ? void 0 : _f.school_name), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, "\u7F16\u7801\uFF1A", data.uuid), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, "\u53D1\u5E03\u65F6\u95F4\uFF1A", data.published_at)))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("p", null, "\u4F5C\u8005\uFF1A", `${data.author_name} / ${data.author_school_name}`), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_RenderHtml__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { value: data.content }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("ul", { className: "attachment" }, (_g = data.attachments) == null ? void 0 : _g.map(
|
|
(item) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("li", { key: item.id }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("a", { href: item.url }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("i", { className: "iconfont icon-fujian" }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, item.title), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, item.filesize)))
|
|
)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("button", { className: "praise", disabled: (_h = data.operation) == null ? void 0 : _h.user_praised, onClick: onPraise }, ((_i = data.operation) == null ? void 0 : _i.user_praised) ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, "\u5DF2\u8D5E") : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("i", { className: "iconfont icon-dianzan" })), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", null, data.praise_count)))) : null);
|
|
});
|
|
|
|
|
|
/***/ })
|
|
|
|
}]); |