parsec-libs 0.0.79 → 0.0.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _message = require('antd/lib/message');
5
6
  var _Tooltip = require('antd/lib/tooltip');
6
7
  var _Switch = require('antd/lib/switch');
7
8
  var _Button = require('antd/lib/button');
@@ -11,7 +12,6 @@ var icons = require('@ant-design/icons');
11
12
  var moment = require('moment');
12
13
  var createApiHooks = require('create-api-hooks');
13
14
  var _Row = require('antd/lib/row');
14
- var _message = require('antd/lib/message');
15
15
  var CopyToClipboard = require('react-copy-to-clipboard');
16
16
  var _Space = require('antd/lib/space');
17
17
  var fileSaver = require('file-saver');
@@ -38,6 +38,7 @@ var _extends$1 = require('@babel/runtime/helpers/esm/extends');
38
38
 
39
39
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
40
40
 
41
+ var _message__default = /*#__PURE__*/_interopDefaultLegacy(_message);
41
42
  var _Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(_Tooltip);
42
43
  var _Switch__default = /*#__PURE__*/_interopDefaultLegacy(_Switch);
43
44
  var _Button__default = /*#__PURE__*/_interopDefaultLegacy(_Button);
@@ -45,7 +46,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
45
46
  var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
46
47
  var createApiHooks__default = /*#__PURE__*/_interopDefaultLegacy(createApiHooks);
47
48
  var _Row__default = /*#__PURE__*/_interopDefaultLegacy(_Row);
48
- var _message__default = /*#__PURE__*/_interopDefaultLegacy(_message);
49
49
  var CopyToClipboard__default = /*#__PURE__*/_interopDefaultLegacy(CopyToClipboard);
50
50
  var _Space__default = /*#__PURE__*/_interopDefaultLegacy(_Space);
51
51
  var _Divider__default = /*#__PURE__*/_interopDefaultLegacy(_Divider);
@@ -324,6 +324,14 @@ function _nonIterableRest() {
324
324
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
325
325
  }
326
326
 
327
+ var createUUId = function createUUId() {
328
+ function S4() {
329
+ return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);
330
+ }
331
+
332
+ return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();
333
+ };
334
+
327
335
  var _excluded = ["surveyId"];
328
336
 
329
337
  var _SurveyTypeObj, _QuestionTypeObj;
@@ -426,9 +434,26 @@ var useApi = {
426
434
  var surveyId = _ref8.surveyId;
427
435
  return parsecAdmin.request.post("/admin/survey/copy/".concat(surveyId));
428
436
  }),
429
- 查看调查结果: createApiHooks__default['default'](function (_ref9) {
430
- var publishId = _ref9.publishId,
431
- surveyId = _ref9.surveyId;
437
+ 下载问卷模板: createApiHooks__default['default'](function () {
438
+ return parsecAdmin.request.get('/mch/survey/question/template');
439
+ }),
440
+ 导入问卷: createApiHooks__default['default'](function (_ref9) {
441
+ var surveyId = _ref9.surveyId,
442
+ file = _ref9.file;
443
+ var form = new FormData();
444
+ form.append('file', file);
445
+ return parsecAdmin.request.post('/mch/survey/question/import', form, {
446
+ params: {
447
+ surveyId: surveyId
448
+ },
449
+ headers: {
450
+ 'content-type': 'application/x-www-form-urlencoded'
451
+ }
452
+ });
453
+ }),
454
+ 查看调查结果: createApiHooks__default['default'](function (_ref10) {
455
+ var publishId = _ref10.publishId,
456
+ surveyId = _ref10.surveyId;
432
457
  return parsecAdmin.request.get("/admin/survey/publish/".concat(surveyId, "/result/").concat(publishId));
433
458
  })
434
459
  };
@@ -732,16 +757,42 @@ var index = (function (_ref2) {
732
757
  pageHeaderProps = _ref2.pageHeaderProps,
733
758
  extraColumns = _ref2.extraColumns,
734
759
  _ref2$copy = _ref2.copy,
735
- copy = _ref2$copy === void 0 ? true : _ref2$copy;
760
+ copy = _ref2$copy === void 0 ? true : _ref2$copy,
761
+ showDownload = _ref2.showDownload,
762
+ importSurvey = _ref2.importSurvey;
736
763
  var switchQrModalVisible = useSwitchQrModalVisible();
737
764
  var switchTableModalVisible = useSwitchTableModalVisible();
765
+ var uuid = React.useRef(localStorage.getItem('question-uuid'));
766
+
767
+ var _useApi$导入问卷 = useApi.导入问卷({
768
+ needInit: false
769
+ }),
770
+ importReq = _useApi$导入问卷.request;
771
+
772
+ var _useApi$下载问卷模板 = useApi.下载问卷模板({
773
+ needInit: false
774
+ }),
775
+ downloadLoading = _useApi$下载问卷模板.loading,
776
+ reqDownload = _useApi$下载问卷模板.request;
777
+
778
+ var handleImportExcel = function handleImportExcel() {
779
+ return reqDownload().then(function (r) {
780
+ fileSaver.saveAs(r, '问卷导入模板.xlsx');
781
+ });
782
+ };
783
+
738
784
  return /*#__PURE__*/React__default['default'].createElement(parsecAdmin.TableList, {
739
785
  pageHeaderProps: pageHeaderProps,
740
- action: onToAdd ? /*#__PURE__*/React__default['default'].createElement(_Button__default['default'], {
786
+ action: [onToAdd && /*#__PURE__*/React__default['default'].createElement(_Button__default['default'], {
741
787
  type: "default",
742
788
  icon: /*#__PURE__*/React__default['default'].createElement(icons.PlusOutlined, null),
743
789
  onClick: onToAdd
744
- }, "\u6DFB\u52A0") : undefined,
790
+ }, "\u6DFB\u52A0"), showDownload && /*#__PURE__*/React__default['default'].createElement(_Button__default['default'], {
791
+ type: "default",
792
+ loading: downloadLoading,
793
+ icon: /*#__PURE__*/React__default['default'].createElement(icons.DownloadOutlined, null),
794
+ onClick: handleImportExcel
795
+ }, "\u4E0B\u8F7D\u6A21\u677F")].filter(Boolean),
745
796
  getList: function getList(_ref3) {
746
797
  var current = _ref3.pagination.current,
747
798
  params = _ref3.params;
@@ -777,7 +828,9 @@ var index = (function (_ref2) {
777
828
  var id = _ref4.id;
778
829
  return /*#__PURE__*/React__default['default'].createElement(_Switch__default['default'], {
779
830
  onChange: function onChange() {
780
- return parsecAdmin.handleSubmit(function () {
831
+ uuid.current = createUUId();
832
+ localStorage.setItem('question-uuid', uuid.current);
833
+ parsecAdmin.handleSubmit(function () {
781
834
  return useApi.启用停用调查.request({
782
835
  surveyId: id
783
836
  });
@@ -863,9 +916,32 @@ var index = (function (_ref2) {
863
916
  onClick: function onClick() {
864
917
  return onToEdit(surveyId);
865
918
  }
866
- }, "\u7F16\u8F91"), onToPreview && /*#__PURE__*/React__default['default'].createElement(parsecAdmin.LinkButton, {
919
+ }, "\u7F16\u8F91"), !enabled && importSurvey && /*#__PURE__*/React__default['default'].createElement(parsecAdmin.LinkButton, {
867
920
  onClick: function onClick() {
868
- return onToPreview(publishKey);
921
+ var el = document.createElement('input');
922
+ el.setAttribute('type', 'file');
923
+ el.addEventListener('change', function () {
924
+ var _el$files;
925
+
926
+ var file = (_el$files = el.files) === null || _el$files === void 0 ? void 0 : _el$files[0];
927
+
928
+ if (file) {
929
+ console.log('file', file);
930
+ importReq({
931
+ file: file,
932
+ surveyId: surveyId
933
+ }).then(function () {
934
+ _message__default['default'].success('导入成功');
935
+ }).catch(function () {
936
+ _message__default['default'].error('导入失败');
937
+ });
938
+ }
939
+ });
940
+ el.click();
941
+ }
942
+ }, "\u5BFC\u5165\u95EE\u5377"), onToPreview && /*#__PURE__*/React__default['default'].createElement(parsecAdmin.LinkButton, {
943
+ onClick: function onClick() {
944
+ return onToPreview(publishKey, uuid.current);
869
945
  }
870
946
  }, "\u9884\u89C8"), copy && /*#__PURE__*/React__default['default'].createElement(parsecAdmin.LinkButton, {
871
947
  onClick: function onClick() {
@@ -937,7 +1013,7 @@ var _excluded$2 = ["form"];
937
1013
  var initQuestionItem = {
938
1014
  widgetType: WidgetType.无,
939
1015
  // 是否必答
940
- isMustAnswer: true,
1016
+ mustAnswer: true,
941
1017
  questionType: QuestionType.填空
942
1018
  };
943
1019
  var useAddForm = function useAddForm(form) {
@@ -1827,7 +1903,7 @@ var SettingDrawer = (function () {
1827
1903
  if (isTest) {
1828
1904
  setCallback(function () {
1829
1905
  return form.setFieldsValue({
1830
- isMustAnswer: isTest
1906
+ mustAnswer: isTest
1831
1907
  });
1832
1908
  });
1833
1909
  }
@@ -1848,7 +1924,7 @@ var SettingDrawer = (function () {
1848
1924
  children: /*#__PURE__*/React__default['default'].createElement(parsecAdmin.FormDescriptions, _extends({}, formDescriptionsProps, {
1849
1925
  items: [{
1850
1926
  label: '此题必答',
1851
- name: 'isMustAnswer',
1927
+ name: 'mustAnswer',
1852
1928
  formItemProps: {
1853
1929
  valuePropName: 'checked',
1854
1930
  render: /*#__PURE__*/React__default['default'].createElement(_Switch__default['default'], {
@@ -2317,7 +2393,7 @@ var CardItem = function CardItem(_ref8) {
2317
2393
  groupSize = _ref11.groupSize;
2318
2394
 
2319
2395
  var count = groupSize && questionType !== QuestionType.组 ? "".concat(groupIndex + 1 - parentGroupsSize + groupSize, ".").concat(index - groupIndex) : index + 1 - parentGroupsSize + (value.groupSize || 0);
2320
- return "".concat(getFieldValue('isMustAnswer') ? '* ' : '', "\u9898\u76EE").concat(count, " \uFF08").concat(questionType === QuestionType.组 ? '题目分组' : questionType ? "".concat(QuestionTypeObj[questionType], "\u9898") : '', "\uFF09").concat(score ? "\uFF08".concat(score, "\u5206\uFF09") : '');
2396
+ return "".concat(getFieldValue('mustAnswer') ? '* ' : '', "\u9898\u76EE").concat(count, " \uFF08").concat(questionType === QuestionType.组 ? '题目分组' : questionType ? "".concat(QuestionTypeObj[questionType], "\u9898") : '', "\uFF09").concat(score ? "\uFF08".concat(score, "\u5206\uFF09") : '');
2321
2397
  }),
2322
2398
  type: "inner",
2323
2399
  extra: /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(_Tooltip__default['default'], {
@@ -2698,7 +2774,10 @@ var useApi$3 = {
2698
2774
  var Store$1 = unstatedNext.createContainer(function (previewHost) {
2699
2775
  var _useQsParse = parsecHooks.useQsParse(),
2700
2776
  publishKey = _useQsParse.publishKey,
2701
- surveyId = _useQsParse.surveyId;
2777
+ surveyId = _useQsParse.surveyId,
2778
+ userKey = _useQsParse.userKey;
2779
+
2780
+ console.log('userKey', userKey);
2702
2781
 
2703
2782
  var _useApi$生成调查分发KEY = useApi$3.生成调查分发KEY({
2704
2783
  needInit: !publishKey && !!surveyId,
@@ -2708,7 +2787,7 @@ var Store$1 = unstatedNext.createContainer(function (previewHost) {
2708
2787
  }),
2709
2788
  result = _useApi$生成调查分发KEY.data.result;
2710
2789
 
2711
- var previewUrl = "".concat(previewHost, "?key=").concat(publishKey || result, "&isPreview=1");
2790
+ var previewUrl = "".concat(previewHost, "?key=").concat(publishKey || result, "&isPreview=1&userKey=").concat(userKey);
2712
2791
  var mobilePreviewUrl = "".concat(previewUrl, "&isPhone=1");
2713
2792
  return {
2714
2793
  previewUrl: previewUrl,
@@ -39,7 +39,7 @@ export declare type QuestionItem = BaseQuestionItem | SingleChooseQuestionType |
39
39
  export declare type BaseQuestionItem = {
40
40
  id: number;
41
41
  widgetType: WidgetType;
42
- isMustAnswer: boolean;
42
+ mustAnswer: boolean;
43
43
  questionType: QuestionType.填空;
44
44
  questionPicUrl?: string;
45
45
  questionCode?: string;
@@ -432,6 +432,40 @@ declare const _default: {
432
432
  surveyId: number;
433
433
  };
434
434
  };
435
+ 下载问卷模板: (({ cache, initValue, params, needInit, deepCache, debounceInterval }?: import("create-api-hooks").ApiHooksParams<unknown, unknown>) => {
436
+ request: (p?: unknown) => Promise<unknown>;
437
+ data: unknown;
438
+ loading: boolean;
439
+ error: any;
440
+ dataRef: import("react").MutableRefObject<unknown>;
441
+ }) & {
442
+ request: (params?: unknown) => Promise<unknown>;
443
+ DataType: unknown;
444
+ ParamsType: unknown;
445
+ };
446
+ 导入问卷: (({ cache, initValue, params, needInit, deepCache, debounceInterval }?: import("create-api-hooks").ApiHooksParams<{
447
+ surveyId: number;
448
+ file: any;
449
+ }, unknown>) => {
450
+ request: (p?: {
451
+ surveyId: number;
452
+ file: any;
453
+ }) => Promise<unknown>;
454
+ data: unknown;
455
+ loading: boolean;
456
+ error: any;
457
+ dataRef: import("react").MutableRefObject<unknown>;
458
+ }) & {
459
+ request: (params?: {
460
+ surveyId: number;
461
+ file: any;
462
+ }) => Promise<unknown>;
463
+ DataType: unknown;
464
+ ParamsType: {
465
+ surveyId: number;
466
+ file: any;
467
+ };
468
+ };
435
469
  查看调查结果: (({ cache, initValue, params, needInit, deepCache, debounceInterval }?: import("create-api-hooks").ApiHooksParams<{
436
470
  publishId: number;
437
471
  surveyId: number;
@@ -1,11 +1,13 @@
1
1
  import { MyPageHeaderProps } from 'parsec-admin/lib/components/pageHeader';
2
2
  import { TableListColumnProps } from 'parsec-admin/lib/templates/tableList/Types';
3
- declare const _default: ({ onToAdd, onToEdit, onToPreview, pageHeaderProps, extraColumns, copy, }: {
3
+ declare const _default: ({ onToAdd, onToEdit, onToPreview, pageHeaderProps, extraColumns, copy, showDownload, importSurvey, }: {
4
4
  onToAdd?: () => void;
5
5
  onToEdit?: (surveyId: number) => void;
6
- onToPreview?: (publishKey: string) => void;
6
+ onToPreview?: (publishKey: string, userKey?: string) => void;
7
7
  pageHeaderProps?: MyPageHeaderProps | false;
8
8
  extraColumns?: TableListColumnProps<any>[];
9
9
  copy?: boolean;
10
+ importSurvey?: boolean;
11
+ showDownload?: boolean;
10
12
  }) => JSX.Element;
11
13
  export default _default;
@@ -0,0 +1 @@
1
+ export declare const createUUId: () => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parsec-libs",
3
- "version": "0.0.79",
3
+ "version": "0.0.80",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",