@polyv/iar-questionnaire-ui 2.0.0-rc-20250109.1

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/index.cjs.js ADDED
@@ -0,0 +1,9 @@
1
+ !function(){"use strict";try{if("undefined"!=typeof document){var i=document.createElement("style");i.appendChild(document.createTextNode('.plv-iar-button{position:relative;display:flex;width:100%;padding:0 12px;border-radius:20px;height:40px;border:none;outline:none;cursor:pointer;font-size:16px;justify-content:center;align-items:center}.plv-iar-button.is-disabled{opacity:.6}.plv-iar-button--type-primary{background:#3082fe;color:#fff}.plv-iar-button--type-primary.is-outline{background:#fff;border:1px solid #3082FE;color:#3082fe}.plv-iar-questionnaire__question-option__item{padding:11px 24px 12px 48px;border-radius:8px;font-size:14px;line-height:22px;color:#0009;background:#f2f3f5;position:relative}.plv-iar-questionnaire__question-option__item+.plv-iar-questionnaire__question-option__item{margin-top:12px}.plv-iar-questionnaire__question-option__item.is-active{background:#3f76fc1a;color:#3f76fc;font-weight:700}.plv-iar-questionnaire__question-option__item__index{position:absolute;top:11px;left:24px}.plv-iar-questionnaire__question-score{display:flex;align-items:center;flex-wrap:wrap}.plv-iar-questionnaire__question-score__item{cursor:pointer}.plv-iar-questionnaire__question-score__item--start{width:24px;height:24px;margin-right:14px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAflBMVEUAAAD09PTc3Nzc3Nzd3d3g4ODb29vc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3f39/g4ODh4eHc3Nzc3Nzb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29ve3t7i4uLb29vc3Nzb29vb29vb29vd3d3b29vc3Nzf39/////b29tUkRBFAAAAKXRSTlMAB/XwLBz04teThl5QQSchFvnm3t29ubGXjX9sOTUR7OnJqqONckkwAv3RWLEAAAFDSURBVEjHxZTXjoMwEEUBG9NMLyGhpJf5/x9cR4sw0XrAftmcN4Z7dK2RZetruK6hEASGBY7jmhUAGFVkDoCTGQh7EOzNCmSFXoFRRcZ+BaZbEcJEqJcfGUywUbfAqGIkUiA6FQdYcNhK25STpUA4tZFkwu9t7YECr27vPJFe+uiCpoRNyiboHqkQYge0cWLrbTDdPBP5Nz3Ry5Pemhi0DDLIHT2P2/nj01pAT1v5E7U+SIr1fJFMQWl4a3lvzkvSFcNLlW9RheUrF3m9fHXedzVutt4dv6iFCypgR8Lydq4WchsRKCBQRIgwIULfF4QQEXaYsEOESkbytl1soEKWJBPXVNytq/xWr2mYT0Cnrc1nHNaWVPdy1Ndra7qB4Bx/DuMzCG5KoQHw+d8x9wEapVCU0Us1f0VloVxSJ3eB/PoffgD3A4P/UBEs0gAAAABJRU5ErkJggg==);background-size:100% 100%;margin-bottom:8px}.plv-iar-questionnaire__question-score__item--start.is-active{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAeFBMVEUAAAD/mQ7/mQ7/mg7/mQ3/mg7/mg7/mw3/rin/mQ3/mg3/mg3/mw//nBH/ng7/nBH/nhL/mg3/mg3/mg3/mg7/mg3/mg3/mw3/mw//mxD/mhP/nxP/oRb/phn/mg7/mQ7/mQ7/mQ7/mg7/mw7/mQ7/mg7/mxH/mQ0FSzOOAAAAJ3RSTlMA9O/e/JWONgbn14ZQLCMeEvjivbmxcF9DLygaFwrJqqOAfmtaST2km/q1AAABP0lEQVRIx8WV2ZKCMBREsxhZZAfZxHXU+/9/OGNhQRzTQ/Iy9mPSp/pC3eqwjylNHQGl3Py7PN85AWuitYt/yInywS3AKWLgD4APLgFOERkfAZ5ZAht6auMWMEcsBzhFZGIGhE3EmTSdl9z7OBI6IKJ4b3b6fVSrsiCDilLVUe/Pm3+rVSVXtKCVrFR9S3+AlpO1ePuIuFsT/D4O5Qk7v/AYAwTyT+osCNExTXGw5A9i9qJ+gQh69ktJ8Ze/SNibEon9MjGWHSRkCtorNPtD2GkXM3BhSEczcIQAGgn5/RXYbB8AHQF1ALgi4Ar7BQi1zRYBWwBI7TuV0v6ABBUz208JY8lpRsxV400TPFc/nmb0jEAzXpbarVeOZw1+Rg7t62F7wE9LRRRG78dRSFQZgUCak1kjA+Mmfc0rA67+R98Mx3zXTcKFewAAAABJRU5ErkJggg==)}.plv-iar-questionnaire__question-score__item--score{width:32px;height:32px;flex-shrink:0;border-radius:50%;border:1px solid #CFD8DC;font-size:14px;color:#333;text-align:center;line-height:32px;margin-right:8px;margin-bottom:8px}.plv-iar-questionnaire__question-score__item--score.is-active{border-color:#2196f3;color:#2196f3;background-color:#2196f31a}.plv-iar-questionnaire__question-item__top{display:flex;align-items:center;margin-bottom:12px}.plv-iar-questionnaire__question-item__count{border-radius:2px;background:#0000000f;font-size:10px;height:16px;line-height:16px;color:#0009;padding:0 4px;min-width:36px;text-align:center;box-sizing:border-box;margin-right:6px}.plv-iar-questionnaire__question-item__type{color:#23aa4f;font-size:10px;border-radius:2px;height:16px;line-height:16px;padding:0 4px;box-sizing:border-box;font-weight:700;position:relative;overflow:hidden}.plv-iar-questionnaire__question-item__type:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;background:currentColor;opacity:.1}.plv-iar-questionnaire__question-item__type--C{color:#3f76fc}.plv-iar-questionnaire__question-item__type--J{color:#ff5252}.plv-iar-questionnaire__question-item__title{color:#333a47;font-size:14px;line-height:22px;font-weight:700;margin-bottom:16px}.plv-iar-questionnaire__question-item__desc{font-size:12px;color:#0006;margin-bottom:24px;margin-top:-4px;line-height:18px}.plv-iar-questionnaire__question-item__textarea{width:100%;box-sizing:border-box;height:88px;display:block;font-size:14px;color:#333;resize:none;padding:5px 10px;border:1px solid #efefef;border-radius:4px;outline:none}@font-face{font-family:DIN-Bold;src:url(../font/DINPro-Bold.otf)}.plv-iar-font-din{font-family:DIN-Bold,sans-serif}.plv-iar-normal-questionnaire{width:100%;height:100%;display:flex;flex-direction:column;background-color:#f7f8fa;overflow:hidden}.plv-iar-normal-questionnaire__title{padding:16px 12px 0;text-align:center;color:#000c;font-size:20px;font-weight:700;margin-bottom:16px}.plv-iar-normal-questionnaire__body{flex:1;padding:0 12px 24px;overflow:hidden;position:relative}.plv-iar-normal-questionnaire__body--shadow:before{content:"";height:50%;position:absolute;left:24px;right:24px;bottom:12px;border-radius:12px;background-color:#fff;z-index:1}.plv-iar-normal-questionnaire__body--shadow:after{content:"";height:8px;position:absolute;left:24px;right:24px;bottom:16px;border-radius:0 0 6px 6px;background:linear-gradient(180deg,#f2f3f5,#f2f3f500);z-index:2}.plv-iar-normal-questionnaire__panel{width:100%;height:100%;background-color:#fff;border-radius:12px;position:relative;z-index:3;box-sizing:border-box;padding:16px 12px;overflow-y:auto}.plv-iar-normal-questionnaire__control{padding:12px;background:#fff;border-top:1px solid #E6E6E6;display:flex;padding-bottom:calc(constant(safe-area-inset-bottom) + 12px);padding-bottom:calc(env(safe-area-inset-bottom) + 12px)}@supports not (padding-bottom: calc(env(safe-area-inset-bottom) + 12px)){.plv-iar-normal-questionnaire__control{padding-bottom:12px}}.plv-iar-normal-questionnaire__control__btn{flex:1}.plv-iar-normal-questionnaire__control__btn+.plv-iar-normal-questionnaire__control__btn{margin-left:12px}')),document.head.appendChild(i)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();
2
+ "use strict";var e=Object.defineProperty,t=(t,n,i)=>((t,n,i)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[n]=i)(t,"symbol"!=typeof n?n+"":n,i);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue");
3
+ /*!
4
+ * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
5
+ *
6
+ * Copyright (c) 2014-2017, Jon Schlinkert.
7
+ * Released under the MIT License.
8
+ */
9
+ function i(e){return"[object Object]"===Object.prototype.toString.call(e)}function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},r.apply(this,arguments)}function o(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)t.indexOf(n=o[i])>=0||(r[n]=e[n]);return r}const s={silent:!1,logLevel:"warn"},a=["validator"],u=Object.prototype,c=u.toString,l=u.hasOwnProperty,p=/^\s*function (\w+)/;function d(e){var t;const n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){const e=n.toString().match(p);return e?e[1]:""}return""}const f=function(e){var t,n;return!1!==i(e)&&(void 0===(t=e.constructor)||!1!==i(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf"))},y=e=>e;let v=y;if("production"!=={}.NODE_ENV){const e="undefined"!=typeof console;v=e?function(e,t=s.logLevel){!1===s.silent&&console[t](`[VueTypes warn]: ${e}`)}:y}const _=(e,t)=>l.call(e,t),m=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},h=Array.isArray||function(e){return"[object Array]"===c.call(e)},q=e=>"[object Function]"===c.call(e),b=e=>f(e)&&_(e,"_vueTypes_name"),g=e=>f(e)&&(_(e,"type")||["_vueTypes_name","validator","default","required"].some((t=>_(e,t))));function T(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function O(e,t,n=!1){let i,r=!0,o="";i=f(e)?e:{type:e};const s=b(i)?i._vueTypes_name+" - ":"";if(g(i)&&null!==i.type){if(void 0===i.type||!0===i.type)return r;if(!i.required&&void 0===t)return r;h(i.type)?(r=i.type.some((e=>!0===O(e,t,!0))),o=i.type.map((e=>d(e))).join(" or ")):(o=d(i),r="Array"===o?h(t):"Object"===o?f(t):"String"===o||"Number"===o||"Boolean"===o||"Function"===o?function(e){if(null==e)return"";const t=e.constructor.toString().match(p);return t?t[1]:""}(t)===o:t instanceof i.type)}if(!r){const e=`${s}value "${t}" should be of type "${o}"`;return!1===n?(v(e),!1):e}if(_(i,"validator")&&q(i.validator)){const e=v,o=[];if(v=e=>{o.push(e)},r=i.validator(t),v=e,!r){const e=(o.length>1?"* ":"")+o.join("\n* ");return o.length=0,!1===n?(v(e),r):e}}return r}function C(e,t){const n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get(){return this.required=!0,this}},def:{value(e){return void 0===e?(_(this,"default")&&delete this.default,this):q(e)||!0===O(this,e,!0)?(this.default=h(e)?()=>[...e]:f(e)?()=>Object.assign({},e):e,this):(v(`${this._vueTypes_name} - invalid default value: "${e}"`),this)}}}),{validator:i}=n;return q(i)&&(n.validator=T(i,n)),n}function x(e,t){const n=C(e,t);return Object.defineProperty(n,"validate",{value(e){return q(this.validator)&&v(`${this._vueTypes_name} - calling .validate() will overwrite the current custom validator function. Validator info:\n${JSON.stringify(this)}`),this.validator=T(e,this),this}})}function S(e,t,n){const i=function(e){const t={};return Object.getOwnPropertyNames(e).forEach((n=>{t[n]=Object.getOwnPropertyDescriptor(e,n)})),Object.defineProperties({},t)}(t);if(i._vueTypes_name=e,!f(n))return i;const{validator:r}=n,s=o(n,a);if(q(r)){let{validator:e}=i;e&&(e=null!==(c=(u=e).__original)&&void 0!==c?c:u),i.validator=T(e?function(t){return e.call(this,t)&&r.call(this,t)}:r,i)}var u,c;return Object.assign(i,s)}function j(e){return e.replace(/^(?!\s*$)/gm," ")}const I=()=>x("any",{}),k=()=>x("function",{type:Function}),Q=()=>x("boolean",{type:Boolean}),w=()=>x("string",{type:String}),$=()=>x("number",{type:Number}),E=()=>x("array",{type:Array}),P=()=>x("object",{type:Object});function A(e,t="custom validation failed"){if("function"!=typeof e)throw new TypeError("[VueTypes error]: You must provide a function as argument");return C(e.name||"<<anonymous function>>",{type:null,validator(n){const i=e(n);return i||v(`${this._vueTypes_name} - ${t}`),i}})}function N(e){if(!h(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");const t=`oneOf - value should be one of "${e.join('", "')}".`,n=e.reduce(((e,t)=>{if(null!=t){const n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e}),[]);return C("oneOf",{type:n.length>0?n:void 0,validator(n){const i=-1!==e.indexOf(n);return i||v(t),i}})}function D(e){if(!h(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");let t=!1,n=[];for(let r=0;r<e.length;r+=1){const i=e[r];if(g(i)){if(b(i)&&"oneOf"===i._vueTypes_name&&i.type){n=n.concat(i.type);continue}if(q(i.validator)&&(t=!0),!0===i.type||!i.type){v('oneOfType - invalid usage of "true" or "null" as types.');continue}n=n.concat(i.type)}else n.push(i)}n=n.filter(((e,t)=>n.indexOf(e)===t));const i=n.length>0?n:null;return C("oneOfType",t?{type:i,validator(t){const n=[],i=e.some((e=>{const i=O(b(e)&&"oneOf"===e._vueTypes_name?e.type||null:e,t,!0);return"string"==typeof i&&n.push(i),!0===i}));return i||v(`oneOfType - provided value does not match any of the ${n.length} passed-in validators:\n${j(n.join("\n"))}`),i}}:{type:i})}function R(e){return C("arrayOf",{type:Array,validator(t){let n="";const i=t.every((t=>(n=O(e,t,!0),!0===n)));return i||v(`arrayOf - value validation error:\n${j(n)}`),i}})}function F(e){return C("instanceOf",{type:e})}function B(e){return C("objectOf",{type:Object,validator(t){let n="";const i=Object.keys(t).every((i=>(n=O(e,t[i],!0),!0===n)));return i||v(`objectOf - value validation error:\n${j(n)}`),i}})}function J(e){const t=Object.keys(e),n=t.filter((t=>{var n;return!(null===(n=e[t])||void 0===n||!n.required)})),i=C("shape",{type:Object,validator(i){if(!f(i))return!1;const r=Object.keys(i);if(n.length>0&&n.some((e=>-1===r.indexOf(e)))){const e=n.filter((e=>-1===r.indexOf(e)));return v(1===e.length?`shape - required property "${e[0]}" is not defined.`:`shape - required properties "${e.join('", "')}" are not defined.`),!1}return r.every((n=>{if(-1===t.indexOf(n))return!0===this._vueTypes_isLoose||(v(`shape - shape definition does not include a "${n}" property. Allowed keys: "${t.join('", "')}".`),!1);const r=O(e[n],i[n],!0);return"string"==typeof r&&v(`shape - "${n}" property validation error:\n ${j(r)}`),!0===r}))}});return Object.defineProperty(i,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(i,"loose",{get(){return this._vueTypes_isLoose=!0,this}}),i}const L=["name","validate","getter"],U=(()=>{var e;return(e=class{static get any(){return I()}static get func(){return k().def(this.defaults.func)}static get bool(){return Q().def(this.defaults.bool)}static get string(){return w().def(this.defaults.string)}static get number(){return $().def(this.defaults.number)}static get array(){return E().def(this.defaults.array)}static get object(){return P().def(this.defaults.object)}static get integer(){return C("integer",{type:Number,validator:e=>m(e)}).def(this.defaults.integer)}static get symbol(){return C("symbol",{validator:e=>"symbol"==typeof e})}static get nullable(){return{type:null}}static extend(e){if(h(e))return e.forEach((e=>this.extend(e))),this;const{name:t,validate:n=!1,getter:i=!1}=e,r=o(e,L);if(_(this,t))throw new TypeError(`[VueTypes error]: Type "${t}" already defined`);const{type:s}=r;if(b(s))return delete r.type,Object.defineProperty(this,t,i?{get:()=>S(t,s,r)}:{value(...e){const n=S(t,s,r);return n.validator&&(n.validator=n.validator.bind(n,...e)),n}});let a;return a=i?{get(){const e=Object.assign({},r);return n?x(t,e):C(t,e)},enumerable:!0}:{value(...e){const i=Object.assign({},r);let o;return o=n?x(t,i):C(t,i),i.validator&&(o.validator=i.validator.bind(o,...e)),o},enumerable:!0},Object.defineProperty(this,t,a)}}).defaults={},e.sensibleDefaults=void 0,e.config=s,e.custom=A,e.oneOf=N,e.instanceOf=F,e.oneOfType=D,e.arrayOf=R,e.objectOf=B,e.shape=J,e.utils={validate:(e,t)=>!0===O(t,e,!0),toType:(e,t,n=!1)=>n?x(e,t):C(e,t)},e})();!function(e={func:()=>{},bool:!0,string:"",number:0,array:()=>[],object:()=>({}),integer:0}){var t;(t=class extends U{static get sensibleDefaults(){return r({},this.defaults)}static set sensibleDefaults(t){this.defaults=!1!==t?r({},!0!==t?t:e):{}}}).defaults=r({},e)}();class V{static get string(){return w().def("")}static get looseString(){return w()}static get number(){return $().def(0)}static get looseNumber(){return $()}static get bool(){return Q().def(!0)}}t(V,"objectType",P),t(V,"array",(()=>E().def([]))),t(V,"object",P),t(V,"func",k),t(V,"oneOf",N),t(V,"oneOfType",D),t(V,"enum",w),t(V,"any",I);function Y(e,t,n,i,r,o,s,a){var u="function"==typeof e?e.options:e;return t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),{exports:e,options:u}}const z=Y(n.defineComponent({__name:"iar-button",props:{type:V.enum().def("primary"),disabled:V.bool.def(!1),size:V.enum().def(""),outline:V.bool.def(!1)},emits:{click:()=>!0},setup(e,{emit:t}){const n=e,{onClick:i}=(e=>{const{emit:t,props:n}=e;return{onClick:function(e){t("click",e)}}})({props:n,emit:t});return{__sfc:!0,props:n,emit:t,onClick:i}}}),(function(){var e=this,t=e._self._c,n=e._self._setupProxy;return t("button",{staticClass:"plv-iar-button",class:{["plv-iar-button--type-"+e.type]:!0,"is-outline":e.outline,"is-disabled":e.disabled},on:{click:n.onClick}},[e._t("default")],2)}),[]).exports,M={confirm:"确认",cancel:"取消",close:"关闭",submit:"提交"},H={confirm:"Confirm",cancel:"Cancel",close:"Close",submit:"Submit"};function G(e,t=""){return Object.keys(e).reduce(((n,i)=>{const r=e[i],o=t?`${t}.${i}`:i;return"object"!=typeof r||null===r||Array.isArray(r)?n[o]=r:Object.assign(n,G(r,o)),n}),{})}const K=()=>{const e=n.inject("interactGlobalConfig",{globalLang:"zh_CN"});return{injectData:e,toast:t=>{e.toast&&e.toast(t)}}},X=e=>{const{injectData:t}=K(),i=G({common:M,[e.key]:e.zh}),r=G({common:H,[e.key]:e.en}),o=n.computed((()=>t.globalLang||"zh_CN"));return{$t:function(e){return("zh_CN"===o.value?i:r)[e]}}};var W=Object.defineProperty,Z=(e,t,n)=>((e,t,n)=>t in e?W(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n),ee=(e=>(e.CheckBox="C",e.Radio="R",e.Question="Q",e.Star="X",e.Scor="S",e.Judgement="J",e.Fill="T",e))(ee||{});function te(e,t){var n;const i={questionnaireId:e.questionnaireId,questionnaireTitle:e.questionnaireTitle||e.name,questionnaireDesc:e.desc,questionnaireType:e.questionnaireType||e.type,limitTime:t,questions:(null==(n=e.questions)?void 0:n.map((e=>function(e){const t={questionId:e.questionId,title:e.name,desc:e.desc||"",type:e.type,required:"Y"===e.required,scoreEnabled:"Y"===e.scoreEnabled,score:e.score||0,options:ne(e)};let n;if(e.answer)switch(e.type){case ee.CheckBox:n=e.answer.toLocaleUpperCase().split("");break;case ee.Radio:case ee.Judgement:n=e.answer.toLocaleUpperCase()}return t.answer=n,t}(e))))||[]};return e.privacy&&"Y"===e.privacy.required&&e.privacy.content&&(i.privacyContent=e.privacy.content),"Y"===e.privacyEnabled&&e.privacyContent&&(i.privacyContent=e.privacyContent),i}function ne(e){let t=[];const n=Object.keys(e);let i=1;for(;n.includes(`option${i}`);){const n=e[`option${i}`];"string"==typeof n&&t.push({id:ie(i),content:n}),i++}return e.optionList&&e.optionList.length&&(t=e.optionList.filter((e=>"string"==typeof e.name)).map(((e,t)=>({id:ie(t+1),content:e.name})))),t}function ie(e){if(e<=0)throw new Error("Input must be a positive integer.");let t="";for(;e>0;){const n=--e%26+65;t=String.fromCharCode(n)+t,e=Math.floor(e/26)}return t}var re=(e=>(e.StartQuestionnaire="StartQuestionnaire",e))(re||{});class oe{constructor(){this.__eventStore={}}__addOnEvent(e,t,n,i){if(!t||!n)return;let r=this.__eventStore[t];r||(r=[]),r.push({type:e,handler:n,callbackHandler:n.bind(i)}),this.__eventStore[t]=r}on(e,t,n=this){this.__addOnEvent("normal",e,t,n)}once(e,t,n=this){this.__addOnEvent("once",e,t,n)}off(e,t){let n=this.__eventStore[e];n&&(n=n.filter((e=>e.handler!==t)),this.__eventStore[e]=n)}emit(e,t){const n=this.__eventStore[e];n&&n.forEach((n=>{const{type:i,handler:r,callbackHandler:o}=n;"function"==typeof o&&o(t),"once"===i&&this.off(e,r)}))}destroy(){this.__eventStore={}}}Z(class e{constructor(t){Z(this,"QuestionnaireEvent",re),Z(this,"QuestionItemType",ee),Z(this,"eventEmitter",new oe),Z(this,"__onStartQuestionnaire",(async e=>{let t=te(e.content,e.leftTime);e.ossUrl&&(t=await this.getQuestionnaireDetail({ossUrl:e.ossUrl})),this.eventEmitter.emit(re.StartQuestionnaire,{questionnaireData:t})})),this.__iarCore=t,t.addMessageHandles(e.appName,{START_QUESTIONNAIRE:this.__onStartQuestionnaire})}async getQuestionnaireDetail(e){let t,n;if(e.ossUrl){n=(await this.__iarCore.otherApi.get(e.ossUrl,{})).data}else if(e.questionnaireId){const t=await this.__iarCore.getChannelInfo();n=(await this.__iarCore.staticApi.get(`/questionnaire/${t.channelId}/${e.questionnaireId}.json`,{})).data}return n&&(t=te({...n.questionnaire,questions:n.questions})),t}},"appName","questionnaire");const se=Symbol("QUESTIONNAIRE_PROVIDE_KEY"),ae=()=>{const e=n.inject(se),t=e.getQuestionnaireTarget(),i=t.QuestionItemType;return{...e,questionnaireTarget:t,QuestionItemType:i}},ue={key:"questionnaire",zh:{typeCheckbox:"多选题",typeRadio:"单选题",typeQuestion:"问答题",typeStar:"评星题",typeScor:"评星题",typeJudgement:"判断题",typeFill:"填空题",prevQuestion:"上一题",nextQuestion:"下一题",finishError:"请完成答题"},en:{typeCheckbox:"Multiple Choice",typeRadio:"Single Choice",typeQuestion:"Question",typeStar:"Evaluation",typeScor:"Evaluation",typeJudgement:"Judgement",typeFill:"Fill in the blank",prevQuestion:"Previous",nextQuestion:"Next",finishError:"Please complete the answer"}};const ce=Y(n.defineComponent({__name:"question-option",props:{options:V.array(),value:V.oneOfType([String,Number,Array]),type:V.enum()},emits:{click:()=>!0},setup(e,{emit:t}){const n=e,{questionnaireTarget:i}=ae();return{__sfc:!0,props:n,emit:t,questionnaireTarget:i,isActive:function(e){const t=i.QuestionItemType;if(n.type===t.CheckBox){return(n.value||[]).includes(e.id)}return n.value===e.id}}}}),(function(){var e=this,t=e._self._c,n=e._self._setupProxy;return t("div",{staticClass:"plv-iar-questionnaire__question-option"},e._l(e.options,(function(i,r){return t("div",{key:r,staticClass:"plv-iar-questionnaire__question-option__item",class:{"is-active":n.isActive(i)},on:{click:function(e){return n.emit("click",i)}}},[t("div",{staticClass:"plv-iar-questionnaire__question-option__item__index"},[e._v(e._s(i.id)+".")]),t("div",[e._v(e._s(i.content))])])})),0)}),[]).exports;const le=Y(n.defineComponent({__name:"question-score",props:{value:V.oneOfType([String,Number,Array]),type:V.enum()},emits:{click:()=>!0},setup(e,{emit:t}){const i=e,{questionnaireTarget:r}=ae(),o=n.computed((()=>{const e=r.QuestionItemType;return i.type===e.Scor}));return{__sfc:!0,props:i,emit:t,questionnaireTarget:r,isScore:o,isActive:function(e){return e+1<=i.value},onClickItem:function(e){const n=e+1;i.value!==n?t("click",n):t("click",0)}}}}),(function(){var e=this,t=e._self._c,n=e._self._setupProxy;return t("div",{staticClass:"plv-iar-questionnaire__question-score"},e._l(Array(n.isScore?10:5),(function(i,r){return t("div",{key:r,staticClass:"plv-iar-questionnaire__question-score__item",class:{"plv-iar-questionnaire__question-score__item--start":!n.isScore,"plv-iar-questionnaire__question-score__item--score":n.isScore,"is-active":n.isActive(r)},on:{click:function(e){return n.onClickItem(r)}}},[e._v(" "+e._s(n.isScore?r+1:"")+" ")])})),0)}),[]).exports;const pe=Y(n.defineComponent({__name:"question-item",props:{value:V.oneOfType([Array,Number,String]),questionnaireTarget:V.object().isRequired,question:V.object().isRequired,index:V.number.def(0),total:V.number.def(0)},emits:{input:()=>!0},setup(e,{emit:t}){const i=e,r=i.questionnaireTarget.QuestionItemType,{questionTypeText:o,questionType:s,questionTitle:a,questionDesc:u,onClickOption:c,onTextareaInput:l,onClickScore:p}=(e=>{const{props:t,emit:i}=e,{$t:r}=X(ue),o=n.computed((()=>t.question.type)),s=n.computed((()=>{const e=t.questionnaireTarget.QuestionItemType;return{[e.CheckBox]:r("questionnaire.typeCheckbox"),[e.Fill]:r("questionnaire.typeFill"),[e.Judgement]:r("questionnaire.typeJudgement"),[e.Question]:r("questionnaire.typeQuestion"),[e.Radio]:r("questionnaire.typeRadio"),[e.Scor]:r("questionnaire.typeScor"),[e.Star]:r("questionnaire.typeStar")}[o.value]})),a=n.computed((()=>t.question.title)),u=n.computed((()=>t.question.desc));return{questionType:o,questionTypeText:s,questionTitle:a,questionDesc:u,onClickOption:function(e){const n=t.questionnaireTarget.QuestionItemType;switch(o.value){case n.Radio:case n.Judgement:i("input",e.id);break;case n.CheckBox:let r=t.value||[];Array.isArray(r)||(r=[]),r.includes(e.id)?r=r.filter((t=>t!==e.id)):r.push(e.id),i("input",r)}},onTextareaInput:function(e){const t=e.target;i("input",t.value)},onClickScore:function(e){i("input",e)}}})({props:i,emit:t});return{__sfc:!0,props:i,emit:t,QuestionItemType:r,questionTypeText:o,questionType:s,questionTitle:a,questionDesc:u,onClickOption:c,onTextareaInput:l,onClickScore:p,QuestionOption:ce,QuestionScore:le}}}),(function(){var e=this,t=e._self._c,n=e._self._setupProxy;return t("div",{staticClass:"plv-iar-questionnaire__question-item"},[t("div",{staticClass:"plv-iar-questionnaire__question-item__top"},[t("div",{staticClass:"plv-iar-questionnaire__question-item__count"},[e._v(e._s(e.index+1)+"/"+e._s(e.total))]),t("div",{class:["plv-iar-questionnaire__question-item__type","plv-iar-questionnaire__question-item__type--"+n.questionType]},[e._v(e._s(n.questionTypeText))])]),t("div",{staticClass:"plv-iar-questionnaire__question-item__title"},[e._v(e._s(n.questionTitle))]),n.questionDesc?t("div",{staticClass:"plv-iar-questionnaire__question-item__desc"},[e._v(e._s(n.questionDesc))]):e._e(),[n.QuestionItemType.CheckBox,n.QuestionItemType.Radio,n.QuestionItemType.Judgement].includes(n.questionType)?t(n.QuestionOption,{attrs:{options:e.question.options,value:e.value,type:n.questionType},on:{click:n.onClickOption}}):n.questionType===n.QuestionItemType.Question?t("textarea",{staticClass:"plv-iar-questionnaire__question-item__textarea",domProps:{value:e.value},on:{input:n.onTextareaInput}}):[n.QuestionItemType.Scor,n.QuestionItemType.Star].includes(n.questionType)?t(n.QuestionScore,{attrs:{value:e.value,type:n.questionType},on:{click:n.onClickScore}}):e._e()],1)}),[]).exports;const de=Y(n.defineComponent({__name:"normal-questionnaire",props:{questionnaireTarget:V.object().isRequired,questionnaireData:V.object()},emits:{submit:()=>!0},setup(e,{emit:t}){const i=e;n.provide(se,{getQuestionnaireTarget:()=>i.questionnaireTarget});const{$t:r}=X(ue),{toast:o}=K(),s=n.computed((()=>{var e;return(null==(e=i.questionnaireData)?void 0:e.questions)||[]})),{answer:a,isFinish:u,getSubmitAnswer:c}=(e=>{const{questions:t,props:i}=e;function r(e){const t=i.questionnaireTarget.QuestionItemType;switch(e.type){case t.CheckBox:return[];case t.Question:case t.Radio:case t.Judgement:return"";case t.Scor:case t.Star:return 0}}const o=n.ref(function(){const e={};return t.value.forEach((t=>{e[t.questionId]=r(t)})),e}());function s(){let e={...o.value};t.value.forEach((t=>{const n=t.questionId;if(!(n in e)){const i=r(t);e[n]=i}})),o.value=e}s(),n.watch(t,(()=>{s()}));const a=n.computed((()=>{const e=i.questionnaireTarget.QuestionItemType;for(let n=0;n<t.value.length;n++){const i=t.value[n],r=o.value[i.questionId];if(i.required)switch(i.type){case e.CheckBox:if(!r||0===r.length)return!1;break;case e.Question:case e.Radio:case e.Judgement:if(!r)return!1;break;case e.Scor:case e.Star:if(0===r)return!1}}return!0}));return{answer:o,isFinish:a,getSubmitAnswer:function(){return t.value.map((e=>({questionId:e.questionId,type:e.type,answer:o.value[e.questionId]})))}}})({questions:s,props:i}),l=n.ref(-1),p=n.computed((()=>{var e;const t=l.value;return null==(e=s.value[t])?void 0:e.questionId}));n.watch((()=>i.questionnaireData),(()=>{s.value.length?l.value=0:l.value=-1}),{immediate:!0});const d=n.computed((()=>l.value>=s.value.length-1?r("common.submit"):r("questionnaire.nextQuestion"))),f=n.computed((()=>l.value>=s.value.length-1&&!u.value));return{__sfc:!0,props:i,emit:t,$t:r,toast:o,questions:s,answer:a,isFinish:u,getSubmitAnswer:c,currentIndex:l,currentQuestionId:p,toPrev:function(){l.value<=0||(l.value-=1)},toNext:function(){if(l.value>=s.value.length-1){if(!u.value)return void o(r("questionnaire.finishError"));const e=c();t("submit",e)}else l.value+=1},nextText:d,nextDisabled:f,IarButton:z,QuestionItem:pe}}}),(function(){var e=this,t=e._self._c,n=e._self._setupProxy;return e.questionnaireData?t("div",{staticClass:"plv-iar-normal-questionnaire"},[t("div",{staticClass:"plv-iar-normal-questionnaire__title"},[e._v(e._s(e.questionnaireData.questionnaireTitle))]),n.currentQuestionId?t("div",{staticClass:"plv-iar-normal-questionnaire__body",class:{"plv-iar-normal-questionnaire__body--shadow":n.currentIndex<n.questions.length-1}},[t("div",{staticClass:"plv-iar-normal-questionnaire__panel"},[t(n.QuestionItem,{key:n.currentQuestionId,attrs:{question:n.questions[n.currentIndex],index:n.currentIndex,total:n.questions.length,"questionnaire-target":e.questionnaireTarget},model:{value:n.answer[n.currentQuestionId],callback:function(t){e.$set(n.answer,n.currentQuestionId,t)},expression:"answer[currentQuestionId]"}})],1)]):e._e(),t("div",{staticClass:"plv-iar-normal-questionnaire__control"},[t(n.IarButton,{staticClass:"plv-iar-normal-questionnaire__control__btn",attrs:{outline:"",disabled:n.currentIndex<=0},on:{click:n.toPrev}},[e._v(" "+e._s(n.$t("questionnaire.prevQuestion"))+" ")]),t(n.IarButton,{staticClass:"plv-iar-normal-questionnaire__control__btn",attrs:{disabled:n.nextDisabled},on:{click:n.toNext}},[e._v(" "+e._s(n.nextText)+" ")])],1)]):e._e()}),[]).exports;exports.NormalQuestionnaire=de;
package/index.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import { ComponentOptionsMixin } from 'vue';
2
+ import { DefineComponent } from 'vue';
3
+ import { ExtractPropTypes } from 'vue';
4
+ import { Questionnaire } from '@polyv/iar-questionnaire-sdk';
5
+ import { QuestionnaireData } from '@polyv/iar-questionnaire-sdk';
6
+ import { SubmitAnswerData } from '@polyv/iar-questionnaire-sdk';
7
+ import { VueTypeValidableDef } from 'vue-types';
8
+
9
+ export declare const NormalQuestionnaire: DefineComponent< {
10
+ /** 问卷数据 */
11
+ questionnaireData: VueTypeValidableDef<QuestionnaireData>;
12
+ questionnaireTarget: VueTypeValidableDef<Questionnaire> & {
13
+ required: true;
14
+ };
15
+ }, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
16
+ submit: (arg: SubmitAnswerData[]) => void;
17
+ }, string, Readonly<ExtractPropTypes< {
18
+ /** 问卷数据 */
19
+ questionnaireData: VueTypeValidableDef<QuestionnaireData>;
20
+ questionnaireTarget: VueTypeValidableDef<Questionnaire> & {
21
+ required: true;
22
+ };
23
+ }>>, {}>;
24
+
25
+ export { }