first commit
|
@ -0,0 +1,31 @@
|
|||
var r = require("@babel/runtime/helpers/typeof.js");
|
||||
|
||||
module.exports = {
|
||||
isValidUrl: function(r) {
|
||||
return /(ht|f)tp(s?):\/\/([^ \\/]*\.)+[^ \\/]*(:[0-9]+)?\/?/.test(r);
|
||||
},
|
||||
equal: function e(t, n) {
|
||||
if (t === n) return !0;
|
||||
if (t && n && "object" == r(t) && "object" == r(n)) {
|
||||
var i, f, u, a = Array.isArray(t), o = Array.isArray(n);
|
||||
if (a && o) {
|
||||
if ((f = t.length) != n.length) return !1;
|
||||
for (i = f; 0 != i--; ) if (!e(t[i], n[i])) return !1;
|
||||
return !0;
|
||||
}
|
||||
if (a != o) return !1;
|
||||
var s = t instanceof Date, c = n instanceof Date;
|
||||
if (s != c) return !1;
|
||||
if (s && c) return t.getTime() == n.getTime();
|
||||
var l = t instanceof RegExp, g = n instanceof RegExp;
|
||||
if (l != g) return !1;
|
||||
if (l && g) return t.toString() == n.toString();
|
||||
var p = Object.keys(t);
|
||||
if ((f = p.length) !== Object.keys(n).length) return !1;
|
||||
for (i = f; 0 != i--; ) if (!Object.prototype.hasOwnProperty.call(n, p[i])) return !1;
|
||||
for (i = f; 0 != i--; ) if (!e(t[u = p[i]], n[u])) return !1;
|
||||
return !0;
|
||||
}
|
||||
return t != t && n != n;
|
||||
}
|
||||
};
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = function(r, e) {
|
||||
(null == e || e > r.length) && (e = r.length);
|
||||
for (var n = 0, t = new Array(e); n < e; n++) t[n] = r[n];
|
||||
return t;
|
||||
};
|
|
@ -0,0 +1,5 @@
|
|||
var r = require("./arrayLikeToArray");
|
||||
|
||||
module.exports = function(e) {
|
||||
if (Array.isArray(e)) return r(e);
|
||||
};
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = function(n, o) {
|
||||
if (!(n instanceof o)) throw new TypeError("Cannot call a class as a function");
|
||||
};
|
|
@ -0,0 +1,11 @@
|
|||
function e(e, r) {
|
||||
for (var t = 0; t < r.length; t++) {
|
||||
var n = r[t];
|
||||
n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0),
|
||||
Object.defineProperty(e, n.key, n);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = function(r, t, n) {
|
||||
return t && e(r.prototype, t), n && e(r, n), r;
|
||||
};
|
|
@ -0,0 +1,47 @@
|
|||
var r = require("./unsupportedIterableToArray");
|
||||
|
||||
module.exports = function(n, t) {
|
||||
var e;
|
||||
if ("undefined" == typeof Symbol || null == n[Symbol.iterator]) {
|
||||
if (Array.isArray(n) || (e = r(n)) || t && n && "number" == typeof n.length) {
|
||||
e && (n = e);
|
||||
var o = 0, u = function() {};
|
||||
return {
|
||||
s: u,
|
||||
n: function() {
|
||||
return o >= n.length ? {
|
||||
done: !0
|
||||
} : {
|
||||
done: !1,
|
||||
value: n[o++]
|
||||
};
|
||||
},
|
||||
e: function(r) {
|
||||
throw r;
|
||||
},
|
||||
f: u
|
||||
};
|
||||
}
|
||||
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||||
}
|
||||
var a, i = !0, l = !1;
|
||||
return {
|
||||
s: function() {
|
||||
e = n[Symbol.iterator]();
|
||||
},
|
||||
n: function() {
|
||||
var r = e.next();
|
||||
return i = r.done, r;
|
||||
},
|
||||
e: function(r) {
|
||||
l = !0, a = r;
|
||||
},
|
||||
f: function() {
|
||||
try {
|
||||
i || null == e.return || e.return();
|
||||
} finally {
|
||||
if (l) throw a;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
|
@ -0,0 +1,8 @@
|
|||
module.exports = function(e, r, t) {
|
||||
return r in e ? Object.defineProperty(e, r, {
|
||||
value: t,
|
||||
enumerable: !0,
|
||||
configurable: !0,
|
||||
writable: !0
|
||||
}) : e[r] = t, e;
|
||||
};
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = function(e) {
|
||||
return e && e.__esModule ? e : {
|
||||
default: e
|
||||
};
|
||||
};
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = function(e) {
|
||||
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e);
|
||||
};
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = function() {
|
||||
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||||
};
|
|
@ -0,0 +1,5 @@
|
|||
var r = require("./arrayWithoutHoles"), e = require("./iterableToArray"), t = require("./unsupportedIterableToArray"), u = require("./nonIterableSpread");
|
||||
|
||||
module.exports = function(a) {
|
||||
return r(a) || e(a) || t(a) || u();
|
||||
};
|
|
@ -0,0 +1,11 @@
|
|||
var o = require("../../../@babel/runtime/helpers/typeof");
|
||||
|
||||
function t(e) {
|
||||
return "function" == typeof Symbol && "symbol" == o(Symbol.iterator) ? module.exports = t = function(t) {
|
||||
return o(t);
|
||||
} : module.exports = t = function(t) {
|
||||
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : o(t);
|
||||
}, t(e);
|
||||
}
|
||||
|
||||
module.exports = t;
|
|
@ -0,0 +1,9 @@
|
|||
var r = require("./arrayLikeToArray");
|
||||
|
||||
module.exports = function(t, e) {
|
||||
if (t) {
|
||||
if ("string" == typeof t) return r(t, e);
|
||||
var o = Object.prototype.toString.call(t).slice(8, -1);
|
||||
return "Object" === o && t.constructor && (o = t.constructor.name), "Map" === o || "Set" === o ? Array.from(t) : "Arguments" === o || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o) ? r(t, e) : void 0;
|
||||
}
|
||||
};
|
|
@ -0,0 +1,162 @@
|
|||
Object.defineProperty(exports, "__esModule", {
|
||||
value: !0
|
||||
}), exports.default = void 0;
|
||||
|
||||
var e = require("@babel/runtime/helpers/typeof.js"), t = require("@babel/runtime/helpers/createForOfIteratorHelper.js"), i = require("@babel/runtime/helpers/classCallCheck.js"), n = require("@babel/runtime/helpers/createClass.js"), o = require("4110C867E645A4CF2776A060E1D18D45.js"), a = 6291456, r = {}, s = function() {
|
||||
function e() {
|
||||
i(this, e), getApp().PAINTER_MAX_LRU_SPACE && (a = getApp().PAINTER_MAX_LRU_SPACE),
|
||||
wx.getStorage({
|
||||
key: "savedFiles",
|
||||
success: function(e) {
|
||||
e.data && (r = e.data);
|
||||
}
|
||||
});
|
||||
}
|
||||
return n(e, [ {
|
||||
key: "download",
|
||||
value: function(e) {
|
||||
return new Promise(function(t, i) {
|
||||
if (e && o.isValidUrl(e)) {
|
||||
var n = function(e) {
|
||||
if (r[e]) return r[e].time = new Date().getTime(), wx.setStorage({
|
||||
key: "savedFiles",
|
||||
data: r
|
||||
}), r[e];
|
||||
}(e);
|
||||
n ? wx.getSavedFileInfo({
|
||||
filePath: n.path,
|
||||
success: function(e) {
|
||||
t(n.path);
|
||||
},
|
||||
fail: function(n) {
|
||||
console.error("the file is broken, redownload it, ".concat(JSON.stringify(n))),
|
||||
l(e).then(function(e) {
|
||||
t(e);
|
||||
}, function() {
|
||||
i();
|
||||
});
|
||||
}
|
||||
}) : l(e).then(function(e) {
|
||||
t(e);
|
||||
}, function() {
|
||||
i();
|
||||
});
|
||||
} else t(e);
|
||||
});
|
||||
}
|
||||
} ]), e;
|
||||
}();
|
||||
|
||||
function l(e) {
|
||||
return new Promise(function(i, n) {
|
||||
wx.downloadFile({
|
||||
url: e,
|
||||
success: function(o) {
|
||||
if (200 !== o.statusCode) return console.error("downloadFile ".concat(e, " failed res.statusCode is not 200")),
|
||||
void n();
|
||||
var s = o.tempFilePath;
|
||||
wx.getFileInfo({
|
||||
filePath: s,
|
||||
success: function(n) {
|
||||
var o, l = n.size;
|
||||
(o = l, new Promise(function(e, i) {
|
||||
var n = r.totalSize ? r.totalSize : 0;
|
||||
if (o + n <= a) e(); else {
|
||||
var s = [], l = JSON.parse(JSON.stringify(r));
|
||||
delete l.totalSize;
|
||||
var f, u = Object.keys(l).sort(function(e, t) {
|
||||
return l[e].time - l[t].time;
|
||||
}), d = t(u);
|
||||
try {
|
||||
for (d.s(); !(f = d.n()).done; ) {
|
||||
var v = f.value;
|
||||
if (n -= r[v].size, s.push(r[v].path), delete r[v], n + o < a) break;
|
||||
}
|
||||
} catch (e) {
|
||||
e = VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL.handleException(e), d.e(e);
|
||||
} finally {
|
||||
d.f();
|
||||
}
|
||||
r.totalSize = n, wx.setStorage({
|
||||
key: "savedFiles",
|
||||
data: r,
|
||||
success: function() {
|
||||
s.length > 0 && c(s), e();
|
||||
},
|
||||
fail: function(e) {
|
||||
console.error("doLru setStorage failed, ".concat(JSON.stringify(e))), i();
|
||||
}
|
||||
});
|
||||
}
|
||||
})).then(function() {
|
||||
(function(e, t, i) {
|
||||
return new Promise(function(n, o) {
|
||||
wx.saveFile({
|
||||
tempFilePath: i,
|
||||
success: function(i) {
|
||||
var o = r.totalSize ? r.totalSize : 0;
|
||||
r[e] = {}, r[e].path = i.savedFilePath, r[e].time = new Date().getTime(), r[e].size = t,
|
||||
r.totalSize = t + o, wx.setStorage({
|
||||
key: "savedFiles",
|
||||
data: r
|
||||
}), n(i.savedFilePath);
|
||||
},
|
||||
fail: function(t) {
|
||||
console.error("saveFile ".concat(e, " failed, then we delete all files, ").concat(JSON.stringify(t))),
|
||||
n(i), wx.removeStorage({
|
||||
key: "savedFiles",
|
||||
success: function() {
|
||||
wx.getSavedFileList({
|
||||
success: function(e) {
|
||||
c(e.fileList);
|
||||
},
|
||||
fail: function(e) {
|
||||
console.error("getSavedFileList failed, ".concat(JSON.stringify(e)));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
})(e, l, s).then(function(e) {
|
||||
i(e);
|
||||
});
|
||||
}, function() {
|
||||
i(s);
|
||||
});
|
||||
},
|
||||
fail: function(e) {
|
||||
console.error("getFileInfo ".concat(o.tempFilePath, " failed, ").concat(JSON.stringify(e))),
|
||||
i(o.tempFilePath);
|
||||
}
|
||||
});
|
||||
},
|
||||
fail: function(e) {
|
||||
console.error("downloadFile failed, ".concat(JSON.stringify(e), " ")), n();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function c(i) {
|
||||
var n, o = t(i);
|
||||
try {
|
||||
var a = function() {
|
||||
var t = n.value, i = t;
|
||||
"object" === e(t) && (i = t.filePath), wx.removeSavedFile({
|
||||
filePath: i,
|
||||
fail: function(e) {
|
||||
console.error("removeSavedFile ".concat(t, " failed, ").concat(JSON.stringify(e)));
|
||||
}
|
||||
});
|
||||
};
|
||||
for (o.s(); !(n = o.n()).done; ) a();
|
||||
} catch (e) {
|
||||
e = VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL.handleException(e), o.e(e);
|
||||
} finally {
|
||||
o.f();
|
||||
}
|
||||
}
|
||||
|
||||
exports.default = s;
|
|
@ -0,0 +1,222 @@
|
|||
Object.defineProperty(exports, "__esModule", {
|
||||
value: !0
|
||||
}), exports.default = void 0;
|
||||
|
||||
var t = require("@babel/runtime/helpers/toConsumableArray.js"), s = require("@babel/runtime/helpers/createForOfIteratorHelper.js"), e = require("@babel/runtime/helpers/classCallCheck.js"), i = require("@babel/runtime/helpers/createClass.js"), c = require("31180406E645A4CF577E6C018FB18D45.js"), h = function() {
|
||||
function h(t, s) {
|
||||
e(this, h), this.ctx = t, this.data = s;
|
||||
}
|
||||
return i(h, [ {
|
||||
key: "paint",
|
||||
value: function(t) {
|
||||
this.style = {
|
||||
width: this.data.width.toPx(),
|
||||
height: this.data.height.toPx()
|
||||
}, this._background();
|
||||
var e, i = s(this.data.views);
|
||||
try {
|
||||
for (i.s(); !(e = i.n()).done; ) {
|
||||
var c = e.value;
|
||||
this._drawAbsolute(c);
|
||||
}
|
||||
} catch (t) {
|
||||
t = VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL.handleException(t), i.e(t);
|
||||
} finally {
|
||||
i.f();
|
||||
}
|
||||
this.ctx.draw(!1, function() {
|
||||
t();
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "_background",
|
||||
value: function() {
|
||||
this.ctx.save();
|
||||
var t = this.style, s = t.width, e = t.height, i = this.data.background;
|
||||
this.ctx.translate(s / 2, e / 2), this._doClip(this.data.borderRadius, s, e), i ? i.startsWith("#") || i.startsWith("rgba") || "transparent" === i.toLowerCase() ? (this.ctx.fillStyle = i,
|
||||
this.ctx.fillRect(-s / 2, -e / 2, s, e)) : this.ctx.drawImage(i, -s / 2, -e / 2, s, e) : (this.ctx.fillStyle = "#fff",
|
||||
this.ctx.fillRect(-s / 2, -e / 2, s, e)), this.ctx.restore();
|
||||
}
|
||||
}, {
|
||||
key: "_drawAbsolute",
|
||||
value: function(s) {
|
||||
switch (s.css && s.css.length && (s.css = Object.assign.apply(Object, t(s.css))),
|
||||
s.type) {
|
||||
case "image":
|
||||
this._drawAbsImage(s);
|
||||
break;
|
||||
|
||||
case "text":
|
||||
this._fillAbsText(s);
|
||||
break;
|
||||
|
||||
case "rect":
|
||||
this._drawAbsRect(s);
|
||||
break;
|
||||
|
||||
case "qrcode":
|
||||
this._drawQRCode(s);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "_doClip",
|
||||
value: function(t, s, e) {
|
||||
if (t && s && e) {
|
||||
var i = Math.min(t.toPx(), s / 2, e / 2);
|
||||
this.ctx.globalAlpha = 0, this.ctx.fillStyle = "white", this.ctx.beginPath(), this.ctx.arc(-s / 2 + i, -e / 2 + i, i, 1 * Math.PI, 1.5 * Math.PI),
|
||||
this.ctx.lineTo(s / 2 - i, -e / 2), this.ctx.arc(s / 2 - i, -e / 2 + i, i, 1.5 * Math.PI, 2 * Math.PI),
|
||||
this.ctx.lineTo(s / 2, e / 2 - i), this.ctx.arc(s / 2 - i, e / 2 - i, i, 0, .5 * Math.PI),
|
||||
this.ctx.lineTo(-s / 2 + i, e / 2), this.ctx.arc(-s / 2 + i, e / 2 - i, i, .5 * Math.PI, 1 * Math.PI),
|
||||
this.ctx.closePath(), this.ctx.fill(), getApp().systemInfo && getApp().systemInfo.version <= "6.6.6" && "ios" === getApp().systemInfo.platform || this.ctx.clip(),
|
||||
this.ctx.globalAlpha = 1;
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "_doBorder",
|
||||
value: function(t, s, e) {
|
||||
if (t.css) {
|
||||
var i = t.css, c = i.borderRadius, h = i.borderWidth, r = i.borderColor;
|
||||
if (h) {
|
||||
var a;
|
||||
this.ctx.save(), this._preProcess(t, !0), a = c ? Math.min(c.toPx(), s / 2, e / 2) : 0;
|
||||
var o = h.toPx();
|
||||
this.ctx.lineWidth = o, this.ctx.strokeStyle = r || "black", this.ctx.beginPath(),
|
||||
this.ctx.arc(-s / 2 + a, -e / 2 + a, a + o / 2, 1 * Math.PI, 1.5 * Math.PI), this.ctx.lineTo(s / 2 - a, -e / 2 - o / 2),
|
||||
this.ctx.arc(s / 2 - a, -e / 2 + a, a + o / 2, 1.5 * Math.PI, 2 * Math.PI), this.ctx.lineTo(s / 2 + o / 2, e / 2 - a),
|
||||
this.ctx.arc(s / 2 - a, e / 2 - a, a + o / 2, 0, .5 * Math.PI), this.ctx.lineTo(-s / 2 + a, e / 2 + o / 2),
|
||||
this.ctx.arc(-s / 2 + a, e / 2 - a, a + o / 2, .5 * Math.PI, 1 * Math.PI), this.ctx.closePath(),
|
||||
this.ctx.stroke(), this.ctx.restore();
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "_preProcess",
|
||||
value: function(t, s) {
|
||||
var e, i, c;
|
||||
switch (t.type) {
|
||||
case "text":
|
||||
var h = "bold" === t.css.fontWeight ? "bold" : "normal";
|
||||
t.css.fontSize = t.css.fontSize ? t.css.fontSize : "20rpx", this.ctx.font = "normal ".concat(h, " ").concat(t.css.fontSize.toPx(), "px sans-serif");
|
||||
var r = this.ctx.measureText(t.text).width;
|
||||
e = t.css.width ? t.css.width.toPx() : r;
|
||||
var a = Math.ceil(r / e), o = t.css.maxLines < a ? t.css.maxLines : a, l = t.css.lineHeight ? t.css.lineHeight.toPx() : t.css.fontSize.toPx();
|
||||
i = l * o, c = {
|
||||
lines: o,
|
||||
lineHeight: l
|
||||
};
|
||||
break;
|
||||
|
||||
case "image":
|
||||
var n = getApp().systemInfo.pixelRatio ? getApp().systemInfo.pixelRatio : 2;
|
||||
e = t.css && t.css.width ? t.css.width.toPx() : Math.round(t.sWidth / n), i = t.css && t.css.height ? t.css.height.toPx() : Math.round(t.sHeight / n);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (!t.css.width || !t.css.height) return void console.error("You should set width and height");
|
||||
e = t.css.width.toPx(), i = t.css.height.toPx();
|
||||
}
|
||||
var x = t.css && t.css.right ? this.style.width - t.css.right.toPx(!0) : t.css && t.css.left ? t.css.left.toPx(!0) : 0, d = t.css && t.css.bottom ? this.style.height - i - t.css.bottom.toPx(!0) : t.css && t.css.top ? t.css.top.toPx(!0) : 0, u = t.css && t.css.rotate ? this._getAngle(t.css.rotate) : 0;
|
||||
switch (t.css && t.css.align ? t.css.align : t.css && t.css.right ? "right" : "left") {
|
||||
case "center":
|
||||
this.ctx.translate(x, d + i / 2);
|
||||
break;
|
||||
|
||||
case "right":
|
||||
this.ctx.translate(x - e / 2, d + i / 2);
|
||||
break;
|
||||
|
||||
default:
|
||||
this.ctx.translate(x + e / 2, d + i / 2);
|
||||
}
|
||||
return this.ctx.rotate(u), !s && t.css && t.css.borderRadius && this._doClip(t.css.borderRadius, e, i),
|
||||
{
|
||||
width: e,
|
||||
height: i,
|
||||
x: x,
|
||||
y: d,
|
||||
extra: c
|
||||
};
|
||||
}
|
||||
}, {
|
||||
key: "_drawQRCode",
|
||||
value: function(t) {
|
||||
this.ctx.save();
|
||||
var s = this._preProcess(t), e = s.width, i = s.height;
|
||||
c.api.draw(t.content, this.ctx, -e / 2, -i / 2, e, i, t.css.background, t.css.color),
|
||||
this.ctx.restore(), this._doBorder(t, e, i);
|
||||
}
|
||||
}, {
|
||||
key: "_drawAbsImage",
|
||||
value: function(t) {
|
||||
if (t.url) {
|
||||
this.ctx.save();
|
||||
var s, e, i = this._preProcess(t), c = i.width, h = i.height, r = 0, a = 0;
|
||||
c > h ? (e = Math.round(t.sWidth / c * h), s = t.sWidth) : (s = Math.round(t.sHeight / h * c),
|
||||
e = t.sHeight), t.sWidth > s && (r = Math.round((t.sWidth - s) / 2)), t.sHeight > e && (a = Math.round((t.sHeight - e) / 2)),
|
||||
t.css && "scaleToFill" === t.css.mode ? this.ctx.drawImage(t.url, -c / 2, -h / 2, c, h) : this.ctx.drawImage(t.url, r, a, s, e, -c / 2, -h / 2, c, h),
|
||||
this.ctx.restore(), this._doBorder(t, c, h);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "_fillAbsText",
|
||||
value: function(t) {
|
||||
if (t.text) {
|
||||
this.ctx.save();
|
||||
var s = this._preProcess(t), e = s.width, i = s.height, c = s.extra;
|
||||
this.ctx.fillStyle = t.css.color || "black";
|
||||
for (var h = c.lines, r = c.lineHeight, a = Math.round(t.text.length / h), o = 0, l = 0, n = 0; n < h; ++n) {
|
||||
l = a;
|
||||
for (var x = t.text.substr(o, l), d = this.ctx.measureText(x).width; o + l <= t.text.length && (e - d > t.css.fontSize.toPx() || d > e); ) {
|
||||
if (d < e) x = t.text.substr(o, ++l); else {
|
||||
if (x.length <= 1) break;
|
||||
x = t.text.substr(o, --l);
|
||||
}
|
||||
d = this.ctx.measureText(x).width;
|
||||
}
|
||||
if (o += x.length, n === h - 1 && o < t.text.length) {
|
||||
for (;this.ctx.measureText("".concat(x, "...")).width > e && !(x.length <= 1); ) x = x.substring(0, x.length - 1);
|
||||
x += "...", d = this.ctx.measureText(x).width;
|
||||
}
|
||||
this.ctx.setTextAlign(t.css.align ? t.css.align : "left");
|
||||
var u = void 0;
|
||||
switch (t.css.align) {
|
||||
case "center":
|
||||
u = 0;
|
||||
break;
|
||||
|
||||
case "right":
|
||||
u = e / 2;
|
||||
break;
|
||||
|
||||
default:
|
||||
u = -e / 2;
|
||||
}
|
||||
var f = -i / 2 + (0 === n ? t.css.fontSize.toPx() : t.css.fontSize.toPx() + n * r);
|
||||
"stroke" === t.css.textStyle ? this.ctx.strokeText(x, u, f, d) : this.ctx.fillText(x, u, f, d);
|
||||
var g = t.css.fontSize.toPx();
|
||||
t.css.textDecoration && (this.ctx.beginPath(), /\bunderline\b/.test(t.css.textDecoration) && (this.ctx.moveTo(u, f),
|
||||
this.ctx.lineTo(u + d, f)), /\boverline\b/.test(t.css.textDecoration) && (this.ctx.moveTo(u, f - g),
|
||||
this.ctx.lineTo(u + d, f - g)), /\bline-through\b/.test(t.css.textDecoration) && (this.ctx.moveTo(u, f - g / 3),
|
||||
this.ctx.lineTo(u + d, f - g / 3)), this.ctx.closePath(), this.ctx.strokeStyle = t.css.color,
|
||||
this.ctx.stroke());
|
||||
}
|
||||
this.ctx.restore(), this._doBorder(t, e, i);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "_drawAbsRect",
|
||||
value: function(t) {
|
||||
this.ctx.save();
|
||||
var s = this._preProcess(t), e = s.width, i = s.height;
|
||||
this.ctx.fillStyle = t.css.color, this.ctx.fillRect(-e / 2, -i / 2, e, i), this.ctx.restore(),
|
||||
this._doBorder(t, e, i);
|
||||
}
|
||||
}, {
|
||||
key: "_getAngle",
|
||||
value: function(t) {
|
||||
return Number(t) * Math.PI / 180;
|
||||
}
|
||||
} ]), h;
|
||||
}();
|
||||
|
||||
exports.default = h;
|
|
@ -0,0 +1,71 @@
|
|||
App({
|
||||
onLaunch: function() {
|
||||
var i = this;
|
||||
wx.getSystemInfo({
|
||||
success: function(t) {
|
||||
i.globalData.windowHeight = t.windowHeight, i.globalData.windowWidth = t.windowWidth;
|
||||
}
|
||||
});
|
||||
this.getopenid()
|
||||
},
|
||||
globalData: {
|
||||
windowHeight: null,
|
||||
windowWidth: null
|
||||
},
|
||||
getTotal:function (){
|
||||
wx.request({
|
||||
url: 'https://a1.miniappapi.com/api/65d1a78fe4d99',
|
||||
data: {
|
||||
app_wxid: wx.getStorageSync('openid'),
|
||||
app_appid: getApp().globalData.appid
|
||||
},
|
||||
header: {
|
||||
'Access-Token': getApp().globalData.AccessToken
|
||||
},
|
||||
success (res) {
|
||||
console.log(wx.getStorageSync('openid'))
|
||||
}
|
||||
})
|
||||
},
|
||||
getopenid:function(){
|
||||
if (!wx.getStorageSync('openid')){
|
||||
wx.login({
|
||||
success (res) {
|
||||
if (res.code) {
|
||||
//发起网络请求
|
||||
// console.log(res.code)
|
||||
wx.request({
|
||||
url: 'https://a1.miniappapi.com/api/65d1a7b12cb5e',
|
||||
data: {
|
||||
code: res.code,
|
||||
appid:getApp().globalData.appid
|
||||
},
|
||||
header: {
|
||||
'Access-Token': getApp().globalData.AccessToken
|
||||
},
|
||||
success (re) {
|
||||
console.log(re.data.data)
|
||||
try {
|
||||
// 将openid存储到本地存储中
|
||||
wx.setStorageSync('openid', re.data.data.openid);
|
||||
// console.log('OpenID存储成功');
|
||||
} catch (e) {
|
||||
// 存储失败的处理逻辑
|
||||
console.error('OpenID存储失败', e);
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log('登录失败!' + res.errMsg)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
globalData: {
|
||||
userInfo: null,
|
||||
appid: 'wx9c620219025842e7',
|
||||
AccessToken:'yyxsRMusKlOEAxwMGFXaqBKldDIzElAf'
|
||||
|
||||
}
|
||||
});
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"pages": [
|
||||
"pages/index/index",
|
||||
"pages/indexa/index",
|
||||
"index/index",
|
||||
"info/index",
|
||||
"type/index",
|
||||
"pages/gzwb/index"
|
||||
],
|
||||
"window": {
|
||||
"backgroundTextStyle": "light",
|
||||
"navigationBarBackgroundColor": "#ecf0f3",
|
||||
"navigationBarTitleText": "WeChat",
|
||||
"navigationBarTextStyle": "black"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
getApp(), Component({
|
||||
data: {},
|
||||
properties: {
|
||||
isShow: {
|
||||
type: Boolean,
|
||||
value: !1
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
value: "提示"
|
||||
},
|
||||
content: {
|
||||
type: String,
|
||||
value: ""
|
||||
},
|
||||
cancelText: {
|
||||
type: String,
|
||||
value: "取消"
|
||||
},
|
||||
confirmText: {
|
||||
type: String,
|
||||
value: "确定"
|
||||
},
|
||||
isNeedAuth: {
|
||||
type: Boolean,
|
||||
value: !1
|
||||
},
|
||||
cancelType: {
|
||||
type: String,
|
||||
value: ""
|
||||
},
|
||||
confirmType: {
|
||||
type: String,
|
||||
value: ""
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
preventTouchMove: function() {},
|
||||
cancel: function() {
|
||||
this.setData({
|
||||
isShow: !1
|
||||
}), this.triggerEvent("cancel");
|
||||
},
|
||||
confirm: function() {
|
||||
this.setData({
|
||||
isShow: !1
|
||||
}), this.triggerEvent("confirm");
|
||||
}
|
||||
}
|
||||
});
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
<view catchtouchmove="preventTouchMove" class="container" wx:if="{{isShow}}">
|
||||
<view class="back-model"></view>
|
||||
<view class="conent-model">
|
||||
<text class="title">{{title}}</text>
|
||||
<text class="content">{{content}}</text>
|
||||
<view class="quickBtn">
|
||||
<button bindtap="cancel" class="cancel-btn" openType="{{cancelType}}">{{cancelText}}</button>
|
||||
<button bindtap="confirm" class="confirm-btn" openType="{{confirmType}}">{{confirmText}}</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
|
@ -0,0 +1,67 @@
|
|||
.back-model,.container {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.back-model {
|
||||
background-color: rgba(0,0,0,.6);
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.back-model,.conent-model {
|
||||
position: fixed;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.conent-model {
|
||||
background: #fff;
|
||||
border-radius: 8rpx;
|
||||
left: 50%;
|
||||
margin-left: -311rpx;
|
||||
margin-top: -200rpx;
|
||||
padding-top: 32rpx;
|
||||
top: 50%;
|
||||
width: 622rpx;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: #3c3c3c;
|
||||
font-size: 36rpx;
|
||||
}
|
||||
|
||||
.content,.title {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.content {
|
||||
color: #999;
|
||||
font-size: 30rpx;
|
||||
padding: 32rpx;
|
||||
}
|
||||
|
||||
.quickBtn {
|
||||
border-top: 2rpx solid #eee;
|
||||
height: 96rpx;
|
||||
line-height: 96rpx;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.cancel-btn {
|
||||
border-right: 1rpx solid #eee;
|
||||
color: #3c3c3c;
|
||||
}
|
||||
|
||||
.cancel-btn,.confirm-btn {
|
||||
display: inline-block;
|
||||
font-size: 32rpx;
|
||||
height: 96rpx;
|
||||
line-height: 96rpx;
|
||||
text-align: center;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.confirm-btn {
|
||||
border-left: 1rpx solid #eee;
|
||||
color: #0c8;
|
||||
}
|
|
@ -0,0 +1,392 @@
|
|||
var t = require("../../@babel/runtime/helpers/defineProperty");
|
||||
|
||||
Component({
|
||||
properties: {
|
||||
isCanDraw: {
|
||||
type: Boolean,
|
||||
value: !1,
|
||||
observer: function(t, e) {
|
||||
t && this.drawPic();
|
||||
}
|
||||
},
|
||||
info: {
|
||||
type: String,
|
||||
value: !1,
|
||||
observer: function(t, e) {
|
||||
this.setData({
|
||||
inf: t
|
||||
});
|
||||
}
|
||||
},
|
||||
vsA: {
|
||||
type: Number,
|
||||
value: !1,
|
||||
observer: function(t, e) {
|
||||
this.setData({
|
||||
vsA1: 200 * t + "rpx"
|
||||
});
|
||||
}
|
||||
},
|
||||
vsB: {
|
||||
type: Number,
|
||||
value: !1,
|
||||
observer: function(t, e) {
|
||||
this.setData({
|
||||
vsB1: 200 * t + "rpx"
|
||||
});
|
||||
}
|
||||
},
|
||||
vsC: {
|
||||
type: Number,
|
||||
value: !1,
|
||||
observer: function(t, e) {
|
||||
this.setData({
|
||||
vsC1: 200 * t + "rpx"
|
||||
});
|
||||
}
|
||||
},
|
||||
vsD: {
|
||||
type: Number,
|
||||
value: !1,
|
||||
observer: function(t, e) {
|
||||
this.setData({
|
||||
vsD1: 200 * t + "rpx"
|
||||
});
|
||||
}
|
||||
},
|
||||
pi: {
|
||||
type: String,
|
||||
value: !1,
|
||||
observer: function(t, e) {
|
||||
this.setData({
|
||||
pic: "/img/" + t + ".jpg"
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
data: {
|
||||
isModal: !1,
|
||||
imgDraw: {},
|
||||
sharePath: "",
|
||||
visible: !1,
|
||||
pic: ""
|
||||
},
|
||||
lifetimes: {
|
||||
ready: function() {
|
||||
console.log("@@", this.data.pic);
|
||||
var t = this;
|
||||
wx.compressImage({
|
||||
src: "/img/jt.png",
|
||||
quality: 36,
|
||||
complete: function(e) {
|
||||
console.log(e.tempFilePath), t.setData({
|
||||
url1: e.tempFilePath
|
||||
});
|
||||
}
|
||||
}), wx.compressImage({
|
||||
src: t.data.pic,
|
||||
quality: 36,
|
||||
complete: function(e) {
|
||||
console.log(e.tempFilePath), t.setData({
|
||||
url2: e.tempFilePath
|
||||
});
|
||||
}
|
||||
}), wx.compressImage({
|
||||
src: "/img/mb.png",
|
||||
quality: 36,
|
||||
complete: function(e) {
|
||||
console.log(e.tempFilePath), t.setData({
|
||||
url4: e.tempFilePath
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handlePhotoSaved: function() {
|
||||
this.savePhoto(this.data.sharePath);
|
||||
},
|
||||
handleClose: function() {
|
||||
this.setData({
|
||||
visible: !1
|
||||
});
|
||||
},
|
||||
drawPic: function() {
|
||||
if (this.data.sharePath) return this.setData({
|
||||
visible: !0
|
||||
}), void this.triggerEvent("initData");
|
||||
wx.showLoading({
|
||||
title: "报告生成中"
|
||||
}), this.setData({
|
||||
imgDraw: {
|
||||
width: "750rpx",
|
||||
height: "1334rpx",
|
||||
background: this.data.url4,
|
||||
views: [ {
|
||||
type: "text",
|
||||
text: "▎ 你好,测试报告如下:",
|
||||
css: {
|
||||
top: "276rpx",
|
||||
fontSize: "32rpx",
|
||||
left: "46rpx",
|
||||
fontWeight: "bold",
|
||||
color: "#7b92b7"
|
||||
}
|
||||
}, {
|
||||
type: "text",
|
||||
text: "E",
|
||||
css: {
|
||||
top: "344rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "46rpx",
|
||||
height: "30rpx"
|
||||
}
|
||||
}, {
|
||||
type: "text",
|
||||
text: "I",
|
||||
css: {
|
||||
top: "344rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "290rpx",
|
||||
height: "30rpx"
|
||||
}
|
||||
}, {
|
||||
type: "rect",
|
||||
css: {
|
||||
borderRadius: "16rpx",
|
||||
top: "346rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "76rpx",
|
||||
width: "200rpx",
|
||||
height: "30rpx",
|
||||
color: "#008000"
|
||||
}
|
||||
}, {
|
||||
type: "rect",
|
||||
css: t({
|
||||
borderRadius: "16rpx",
|
||||
top: "346rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "76rpx",
|
||||
width: this.data.vsA1,
|
||||
height: "30rpx",
|
||||
color: "#008000"
|
||||
}, "color", "#FF0000")
|
||||
}, {
|
||||
type: "text",
|
||||
text: "S",
|
||||
css: {
|
||||
top: "384rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "46rpx",
|
||||
height: "30rpx"
|
||||
}
|
||||
}, {
|
||||
type: "text",
|
||||
text: "N",
|
||||
css: {
|
||||
top: "384rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "284rpx",
|
||||
height: "30rpx"
|
||||
}
|
||||
}, {
|
||||
type: "rect",
|
||||
css: {
|
||||
borderRadius: "16rpx",
|
||||
top: "386rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "76rpx",
|
||||
width: "200rpx",
|
||||
height: "30rpx",
|
||||
color: "#008000"
|
||||
}
|
||||
}, {
|
||||
type: "rect",
|
||||
css: t({
|
||||
borderRadius: "16rpx",
|
||||
top: "386rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "76rpx",
|
||||
width: this.data.vsB1,
|
||||
height: "30rpx",
|
||||
color: "#008000"
|
||||
}, "color", "#FF0000")
|
||||
}, {
|
||||
type: "text",
|
||||
text: "T",
|
||||
css: {
|
||||
top: "424rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "46rpx",
|
||||
height: "30rpx"
|
||||
}
|
||||
}, {
|
||||
type: "text",
|
||||
text: "F",
|
||||
css: {
|
||||
top: "424rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "286rpx",
|
||||
height: "30rpx"
|
||||
}
|
||||
}, {
|
||||
type: "rect",
|
||||
css: {
|
||||
borderRadius: "16rpx",
|
||||
top: "426rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "76rpx",
|
||||
width: "200rpx",
|
||||
height: "30rpx",
|
||||
color: "#008000"
|
||||
}
|
||||
}, {
|
||||
type: "rect",
|
||||
css: t({
|
||||
borderRadius: "16rpx",
|
||||
top: "426rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "76rpx",
|
||||
width: this.data.vsC1,
|
||||
height: "30rpx",
|
||||
color: "#008000"
|
||||
}, "color", "#FF0000")
|
||||
}, {
|
||||
type: "text",
|
||||
text: "J",
|
||||
css: {
|
||||
top: "464rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "46rpx",
|
||||
height: "30rpx"
|
||||
}
|
||||
}, {
|
||||
type: "text",
|
||||
text: "P",
|
||||
css: {
|
||||
top: "464rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "286rpx",
|
||||
height: "30rpx"
|
||||
}
|
||||
}, {
|
||||
type: "rect",
|
||||
css: {
|
||||
borderRadius: "16rpx",
|
||||
top: "466rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "76rpx",
|
||||
width: "200rpx",
|
||||
height: "30rpx",
|
||||
color: "#008000"
|
||||
}
|
||||
}, {
|
||||
type: "rect",
|
||||
css: {
|
||||
borderRadius: "16rpx",
|
||||
top: "466rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "76rpx",
|
||||
width: this.data.vsD1,
|
||||
height: "30rpx",
|
||||
color: "#FF0000"
|
||||
}
|
||||
}, {
|
||||
type: "image",
|
||||
url: this.data.url1,
|
||||
css: {
|
||||
top: "366rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "336rpx",
|
||||
width: "100rpx",
|
||||
height: "100rpx",
|
||||
color: "#FF0000",
|
||||
borderRadius: "16rpx"
|
||||
}
|
||||
}, {
|
||||
type: "image",
|
||||
url: this.data.url2,
|
||||
css: {
|
||||
top: "304rpx",
|
||||
fontSize: "28rpx",
|
||||
left: "466rpx",
|
||||
width: "206rpx",
|
||||
height: "206rpx",
|
||||
color: "#FF0000",
|
||||
borderRadius: "16rpx"
|
||||
}
|
||||
}, {
|
||||
type: "text",
|
||||
text: "▎ 该类型人格特点:",
|
||||
css: {
|
||||
top: "516rpx",
|
||||
fontSize: "37rpx",
|
||||
left: "46rpx",
|
||||
fontWeight: "bold",
|
||||
color: "#7b92b7"
|
||||
}
|
||||
}, {
|
||||
type: "text",
|
||||
text: " " + this.data.inf,
|
||||
css: t({
|
||||
top: "581rpx",
|
||||
fontSize: "32rpx",
|
||||
left: "56rpx",
|
||||
fontWeight: "bold",
|
||||
lineHeight: "56rpx",
|
||||
width: "646rpx",
|
||||
height: "620rpx"
|
||||
}, "fontWeight", "lighter")
|
||||
} ]
|
||||
}
|
||||
});
|
||||
},
|
||||
onImgErr: function(t) {
|
||||
wx.hideLoading(), wx.showToast({
|
||||
title: "生成分享图失败,请刷新页面重试"
|
||||
});
|
||||
},
|
||||
onImgOK: function(t) {
|
||||
wx.hideLoading(), this.setData({
|
||||
sharePath: t.detail.path,
|
||||
visible: !0
|
||||
}), this.triggerEvent("initData");
|
||||
},
|
||||
preventDefault: function() {},
|
||||
savePhoto: function(t) {
|
||||
var e = this;
|
||||
wx.showLoading({
|
||||
title: "正在保存...",
|
||||
mask: !0
|
||||
}), this.setData({
|
||||
isDrawImage: !1
|
||||
}), wx.saveImageToPhotosAlbum({
|
||||
filePath: t,
|
||||
success: function(t) {
|
||||
wx.showToast({
|
||||
title: "保存成功",
|
||||
icon: "none"
|
||||
}), setTimeout(function() {
|
||||
e.setData({
|
||||
visible: !1
|
||||
});
|
||||
}, 300);
|
||||
},
|
||||
fail: function(t) {
|
||||
wx.getSetting({
|
||||
success: function(t) {
|
||||
t.authSetting["scope.writePhotosAlbum"] || e.setData({
|
||||
isModal: !0
|
||||
});
|
||||
}
|
||||
}), setTimeout(function() {
|
||||
wx.hideLoading(), e.setData({
|
||||
visible: !1
|
||||
});
|
||||
}, 300);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"painter": "/painter/painter",
|
||||
"dialog-modal": "/components/dialogModal/index"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
<view catchtouchmove="preventDefault" class="share-wrap" wx:if="{{visible}}">
|
||||
<view class="share-back"></view>
|
||||
<view class="share-container" style="border-radius:36rpx;">
|
||||
<view bindtap="handleClose" class="close" data-ptpid="ebe9-1656-ad6a-462e"></view>
|
||||
<image class="share-image" mode="widthFix" src="{{sharePath}}"></image>
|
||||
<view class="share-tips">测试报告</view>
|
||||
<view bindtap="handlePhotoSaved" class="save-btn" data-ptpid="4095-16fd-bc97-4868"></view>
|
||||
</view>
|
||||
</view>
|
||||
<painter bind:imgOK="onImgOK" palette="{{imgDraw}}" style="position: absolute; top: -9999rpx;"></painter>
|
||||
<dialog-modal confirmType="openSetting" content="您未开启保存图片到相册的权限,请点击确定去开启权限!" isShow="{{isModal}}" title="提示"></dialog-modal>
|
|
@ -0,0 +1,75 @@
|
|||
.share-wrap {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.share-back {
|
||||
background: rgba(0,0,0,.6);
|
||||
height: 100%;
|
||||
top: 0;
|
||||
z-index: 888;
|
||||
}
|
||||
|
||||
.share-back,.share-container {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.share-container {
|
||||
background: #fff;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.close {
|
||||
height: 30rpx;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
right: 64rpx;
|
||||
top: 64rpx;
|
||||
width: 30rpx;
|
||||
}
|
||||
|
||||
.close::after {
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
|
||||
.close::before {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.close::after,.close::before {
|
||||
background: #9c9c9c;
|
||||
content: "";
|
||||
height: 3rpx;
|
||||
left: 0;
|
||||
margin-top: -2rpx;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.share-image {
|
||||
border-radius: 16rpx;
|
||||
box-shadow: 0 4rpx 8px 0 rgba(0,0,0,.1);
|
||||
display: block;
|
||||
margin: 66rpx auto 0;
|
||||
width: 420rpx;
|
||||
}
|
||||
|
||||
.share-tips {
|
||||
color: #3c3c3c;
|
||||
font-size: 28rpx;
|
||||
margin: 32rpx 0;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.save-btn {
|
||||
background: url("https://qiniu-image.qtshe.com/20190506save-btn.png") 50%;
|
||||
background-size: 100% 100%;
|
||||
height: 96rpx;
|
||||
margin: 0 auto 94rpx;
|
||||
width: 336rpx;
|
||||
}
|
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 798 B |
After Width: | Height: | Size: 7.8 KiB |
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1660583879353" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6261" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
|
||||
</style></defs><path d="M163.84 358.4c-30.72 0-51.2 20.48-51.2 51.2v358.4c0 30.72 20.48 51.2 51.2 51.2h122.88c25.6 0 56.32 5.12 76.8 20.48l81.92 30.72c5.12 5.12 10.24 5.12 15.36 5.12 20.48 0 35.84-15.36 35.84-35.84l25.6-537.6c0-5.12 0-10.24-5.12-15.36-10.24-15.36-30.72-20.48-46.08-10.24l-102.4 61.44c-25.6 15.36-51.2 20.48-81.92 20.48H163.84z" fill="#5AC8FA" p-id="6262"></path><path d="M112.64 256c-30.72 0-51.2 20.48-51.2 51.2v409.6c0 30.72 20.48 51.2 51.2 51.2h122.88c25.6 0 56.32 5.12 76.8 20.48l102.4 61.44c5.12 5.12 10.24 5.12 15.36 5.12 20.48 0 35.84-15.36 35.84-35.84V199.68c0-5.12 0-10.24-5.12-15.36-5.12-15.36-25.6-20.48-40.96-10.24l-102.4 61.44c-25.6 15.36-51.2 20.48-81.92 20.48H112.64z m122.88-51.2c20.48 0 35.84-5.12 51.2-15.36l102.4-61.44c46.08-25.6 97.28-10.24 122.88 30.72 10.24 15.36 10.24 30.72 10.24 46.08v624.64c0 46.08-35.84 87.04-87.04 87.04-15.36 0-30.72-5.12-40.96-10.24l-102.4-61.44c-15.36-20.48-35.84-25.6-56.32-25.6H112.64c-56.32 0-102.4-46.08-102.4-102.4V307.2c0-56.32 46.08-102.4 102.4-102.4h122.88zM665.6 721.92c-15.36 5.12-25.6 0-35.84-15.36-5.12-15.36 0-25.6 15.36-35.84 66.56-30.72 107.52-92.16 107.52-163.84 0-71.68-40.96-138.24-107.52-163.84-15.36-5.12-20.48-20.48-15.36-35.84 5.12-15.36 20.48-20.48 35.84-15.36 81.92 35.84 138.24 117.76 138.24 209.92 0 102.4-56.32 184.32-138.24 220.16z m81.92 189.44c-15.36 5.12-25.6 0-35.84-15.36-5.12-15.36 0-25.6 15.36-35.84 138.24-61.44 230.4-199.68 230.4-353.28 0-153.6-92.16-291.84-230.4-353.28-10.24 0-20.48-15.36-10.24-25.6 5.12-15.36 20.48-20.48 35.84-15.36 158.72 66.56 261.12 225.28 261.12 399.36a450.56 450.56 0 0 1-266.24 399.36z" fill="" p-id="6263"></path></svg>
|
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 319 KiB |
After Width: | Height: | Size: 70 KiB |
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657973957528" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4262" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
|
||||
</style></defs><path d="M704.412 512l-311.59799999999996-311.598-73.226 73.226L557.441 512 319.588 750.373l73.226 73.226L704.412 512z" p-id="4263"></path></svg>
|
After Width: | Height: | Size: 828 B |
|
@ -0,0 +1,689 @@
|
|||
Page({
|
||||
data: {
|
||||
items: [ {
|
||||
desc: "今年五一,出去旅游的话,你会",
|
||||
planA: "规划好路线,每天的流程也安排好",
|
||||
planB: "放假拎包就走,不规划,看心情",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "你觉得自己是个什么性格的人",
|
||||
planA: "一个性格较为随和、没有明确的目标和计划的人可能会随心所欲地行动。[e.g. 李白]",
|
||||
planB: "一个性格较为有条理的人可能会比较注重计划和安排,更容易按部就班地完成自己的任务。[e.g. 徐霞客]",
|
||||
valA: "P",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "如果你是学者或研究者,你会探索什么",
|
||||
planA: "自然科学领域中的物理学[e.g. 牛顿]",
|
||||
planB: "哲学领域[e.g. 柏拉图]",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "你是个开朗,自来熟的人吗",
|
||||
planA: "是",
|
||||
planB: "不是",
|
||||
valA: "E",
|
||||
valB: "I"
|
||||
}, {
|
||||
desc: "你容易和下面哪些人交朋友?",
|
||||
planA: "天马行空的艺术家",
|
||||
planB: "实事求是的企业家",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "你比较",
|
||||
planA: "感性",
|
||||
planB: "理性",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "工作生活中,你",
|
||||
planA: "常常凭借自己的冲动和热情来做出决定",
|
||||
planB: "具有系统的组织能力和理性思维,在行动前会制定详细的计划和时间表",
|
||||
valA: "P",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "你内心的情绪想法是否挂在脸上",
|
||||
planA: "是",
|
||||
planB: "不是",
|
||||
valA: "E",
|
||||
valB: "I"
|
||||
}, {
|
||||
desc: "按照详细的计划和时间表,并一步一步地执行",
|
||||
planA: "令你感到稳妥",
|
||||
planB: "令你感到束缚",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "当你去执行某任务时",
|
||||
planA: "制定计划来预防或减轻问题",
|
||||
planB: "更加喜欢实时应对问题",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "在大多数情况下,你会选择",
|
||||
planA: "在行动前会,制定详细的计划和时间表",
|
||||
planB: "喜欢实际行动和经验,实时应对问题",
|
||||
valA: "P",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "你在朋友眼中是个注重保护个人信息和隐私的人吗",
|
||||
planA: "是的",
|
||||
planB: "不是",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "你觉得朋友眼中的你是个",
|
||||
planA: "务实的人",
|
||||
planB: "思维活跃的人",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "遇到朋友和他的朋友,你会",
|
||||
planA: "自我介绍",
|
||||
planB: "沉默,待朋友介绍你",
|
||||
valA: "E",
|
||||
valB: "I"
|
||||
}, {
|
||||
desc: "你觉得身边朋友",
|
||||
planA: "思维活跃,富有想象力",
|
||||
planB: "脚踏实地的,实事求是",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "你做事",
|
||||
planA: "比较激情感性",
|
||||
planB: "重逻辑有条理",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "你比较喜欢",
|
||||
planA: "实时应当",
|
||||
planB: "末雨绸缪",
|
||||
valA: "F",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "你平时喜欢独处吗",
|
||||
planA: "喜欢",
|
||||
planB: "不喜欢",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "酒吧舞会中,你会感到",
|
||||
planA: "激情活力",
|
||||
planB: "嘈杂,想安静",
|
||||
valA: "E",
|
||||
valB: "I"
|
||||
}, {
|
||||
desc: "去游乐场,你会",
|
||||
planA: "提前按计划把要玩的项目安排妥当",
|
||||
planB: "没有计划,随心想玩就玩",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "去旅游",
|
||||
planA: "人到,随心逛",
|
||||
planB: "有规划,按部就班",
|
||||
valA: "P",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "你乐于社交聚会吗",
|
||||
planA: "不,想独处",
|
||||
planB: "是,乐在其中",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "朋友认为你",
|
||||
planA: "平易近人",
|
||||
planB: "高冷",
|
||||
valA: "E",
|
||||
valB: "I"
|
||||
}, {
|
||||
desc: "你更崇拜",
|
||||
planA: "思维活跃,富有想象力的人",
|
||||
planB: "见多识广,经验丰富的人",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "在生活工作中,你会",
|
||||
planA: "在执行时才思考解决方法",
|
||||
planB: "提前做好计划,条理进行",
|
||||
valA: "P",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "你觉得自己是有城府的人吗",
|
||||
planA: "是",
|
||||
planB: "不是",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "看重隐私,不会用来换取便利",
|
||||
planB: "可能会为一些便利,舍弃一些隐私",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "对未来有规划",
|
||||
planB: "遇事再解决",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "艺术画作,你喜欢",
|
||||
planA: "抽象",
|
||||
planB: "具体",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "你觉得自己性格是",
|
||||
planA: "温柔",
|
||||
planB: "坚定",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "对一些事情,你喜欢?",
|
||||
planA: "分析思考",
|
||||
planB: "仅凭感受",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "矜持",
|
||||
planB: "活跃",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "提前规划",
|
||||
planB: "随意,仅凭感受",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "你喜欢哪种类型的课程?",
|
||||
planA: "理论性",
|
||||
planB: "事实性",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "你是个a感性还是b理性追求公正的人?",
|
||||
planA: "a",
|
||||
planB: "b",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "可信",
|
||||
planB: "感人",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "描述",
|
||||
planB: "理论",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "提前安排好一切,会让你?",
|
||||
planA: "觉得约束",
|
||||
planB: "觉得稳妥",
|
||||
valA: "P",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "与朋友交往,你属于?",
|
||||
planA: "矜持",
|
||||
planB: "健谈",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "工作生活中,你属于?",
|
||||
planA: "有条不紊",
|
||||
planB: "不拘小节",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "激情",
|
||||
planB: "决定",
|
||||
valA: "P",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "有活力",
|
||||
planB: "安静",
|
||||
valA: "E",
|
||||
valB: "I"
|
||||
}, {
|
||||
desc: "你喜欢以下哪种节目?",
|
||||
planA: "变魔术",
|
||||
planB: "街舞",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "倘若需要牺牲大部分人的利益,才换取人类的延续,你会执行吗?",
|
||||
planA: "不会",
|
||||
planB: "会",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "利益",
|
||||
planB: "祝福",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "务实",
|
||||
planB: "意念",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: " 你觉得你是个?",
|
||||
planA: "务实的人",
|
||||
planB: "富有想象的人",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "你觉得身边朋友多吗?",
|
||||
planA: "不多",
|
||||
planB: "多",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "实事求是",
|
||||
planB: "热情包容",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "动手能力强",
|
||||
planB: "富有想象",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "公司聚餐时,你是咋样的",
|
||||
planA: "文静",
|
||||
planB: "爱合群",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "你觉得以下那点重要",
|
||||
planA: "理论",
|
||||
planB: "事实",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "有条理安排",
|
||||
planB: "即兴,激情",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "富有同情心",
|
||||
planB: "善于分析逻辑",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "遇到有小孩说没钱吃饭向你要钱时",
|
||||
planA: "会分析是否咋骗",
|
||||
planB: "觉得可怜会给",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "你是个颜控吗",
|
||||
planA: "不是",
|
||||
planB: "是",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "富想象的",
|
||||
planB: "以事论事",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "亲切",
|
||||
planB: "客观",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "你接到大任务时",
|
||||
planA: "先规划好实现步骤,再动手",
|
||||
planB: "立即动手",
|
||||
valA: "J",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "在社交聚会中,你",
|
||||
planA: "放不开,比较拘束",
|
||||
planB: "很自在,从容交谈",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "工作时,你会按照前辈传授的方法工作吗",
|
||||
planA: "会,比较稳妥",
|
||||
planB: "会探索尝试更优的方法",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "你身上会带有兴趣标签吗,比如喜欢某动漫,会穿带其logo衣服等",
|
||||
planA: "会",
|
||||
planB: "不会",
|
||||
valA: "E",
|
||||
valB: "I"
|
||||
}, {
|
||||
desc: "高中你喜欢物理还是政治?",
|
||||
planA: "政治",
|
||||
planB: "物理",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "你喜欢别人说你是感性还是理性的人",
|
||||
planA: "感性",
|
||||
planB: "理性",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "动手能力强",
|
||||
planB: "逻辑性强",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "事情的发展存在不确定性",
|
||||
planB: "有因必有果",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "你啥时候会提前规划安排",
|
||||
planA: "不太喜欢,但一些重要的事会这样做",
|
||||
planB: "平时就是这样的人",
|
||||
valA: "F",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "你自来熟吗",
|
||||
planA: "没,只是和熟悉的人交谈",
|
||||
planB: "嗯,可以和大伙打成一片",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "在社交聚会上,你是个活跃的人吗",
|
||||
planA: "是的",
|
||||
planB: "不是",
|
||||
valA: "E",
|
||||
valB: "I"
|
||||
}, {
|
||||
desc: "把未来的事,都提前做个规划,会觉得",
|
||||
planA: "稳当",
|
||||
planB: "束缚",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "你喜欢别人怎么评价你",
|
||||
planA: "有能力,有头脑",
|
||||
planB: "和善,富有同情心",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "你社交约会重要吗",
|
||||
planA: "优先级高",
|
||||
planB: "看情况,可能中途毁约,去做别的事情",
|
||||
valA: "J",
|
||||
valB: "P"
|
||||
}, {
|
||||
desc: "要实现大目标,你会",
|
||||
planA: "撸起袖子,就是干",
|
||||
planB: "拆成n多小目标,挨个实现",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "你可以从容与人聊天吗",
|
||||
planA: "仅熟悉的人",
|
||||
planB: "包括陌生人",
|
||||
valA: "I",
|
||||
valB: "E"
|
||||
}, {
|
||||
desc: "你解决问题会",
|
||||
planA: "稳定至上",
|
||||
planB: "探索性,追求更好方法",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "你喜欢哪类小说",
|
||||
planA: "科幻探索",
|
||||
planB: "历史纪实",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "你喜欢哪种领导?",
|
||||
planA: "随和,但能力稍欠缺",
|
||||
planB: "严厉,但能力强",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "你生活有条理性吗,会提前规划吗",
|
||||
planA: "不会,看心情",
|
||||
planB: "会,会觉得稳当",
|
||||
valA: "P",
|
||||
valB: "J"
|
||||
}, {
|
||||
desc: "开会时,发言你会紧张吗",
|
||||
planA: "不会,很从容",
|
||||
planB: "有时会,看和谁或内容",
|
||||
valA: "E",
|
||||
valB: "I"
|
||||
}, {
|
||||
desc: "你平时做事情会考虑别人的感受吗",
|
||||
planA: "看实际情况,事实重要",
|
||||
planB: "会的",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "创造性,天马行空",
|
||||
planB: "务实,经验而谈",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "心胸广阔的、对他人友好",
|
||||
planB: "对事态度坚决果断、毫不动摇",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "以下选项组合中,您更倾向于哪个选项,来表达个人的个性、风格及偏好?",
|
||||
planA: "追求公正,理大于情",
|
||||
planB: "有点情感偏袒",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "你觉得你和那种动物相似",
|
||||
planA: "绵羊",
|
||||
planB: "狮子",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "你看悲情电影时,会",
|
||||
planA: "纯粹欣赏电影情节,内心不波动",
|
||||
planB: "会代入情节融入其中,深感落泪",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "你喜欢看啥类型的视频",
|
||||
planA: "记录片",
|
||||
planB: "科幻片",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "你的衣服穿搭风格",
|
||||
planA: "喜欢潮流,追求时尚",
|
||||
planB: "普普通通,不喜欢张扬",
|
||||
valA: "N",
|
||||
valB: "S"
|
||||
}, {
|
||||
desc: "遇到乞讨要钱坐车的人时",
|
||||
planA: "会施舍抱有同情心",
|
||||
planB: "会理性分析其中是不是诈骗",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "你是个咋样的人?",
|
||||
planA: "坚持己见",
|
||||
planB: "温柔有爱心",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "你喜欢谁的画作",
|
||||
planA: "法国画家贝尔纳·吉克尔[现实主义画派]",
|
||||
planB: "安德烈·布洛东[超现实主义画派]",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
}, {
|
||||
desc: "你会?",
|
||||
planA: "在工作、学习、生活等方面全身心地投入其中",
|
||||
planB: "明确自己的目标,坚定不移地朝着目标前进",
|
||||
valA: "F",
|
||||
valB: "T"
|
||||
}, {
|
||||
desc: "你觉得你具有下面哪种?",
|
||||
planA: "较高的学习能力",
|
||||
planB: "快速适应新环境的能力",
|
||||
valA: "T",
|
||||
valB: "F"
|
||||
}, {
|
||||
desc: "日常生活工作中,你",
|
||||
planA: "喜欢实际生活中所获取到的、与事实相符合的经验",
|
||||
planB: "喜欢提出假设、理论模型、理论分析",
|
||||
valA: "S",
|
||||
valB: "N"
|
||||
} ],
|
||||
resu: [ "ENFJ", "ENFP", "ENTJ", "ENTP", "ESFP", "ESTJ", "ESTP", "INFJ", "INFP", "INFP", "INTJ", "INTP", "ISFJ", "ISFP", "ISTJ", "ISTJ", "ISTP" ],
|
||||
num: 0,
|
||||
numE: 0,
|
||||
numI: 0,
|
||||
numS: 0,
|
||||
numN: 0,
|
||||
numT: 0,
|
||||
numF: 0,
|
||||
numJ: 0,
|
||||
numP: 0,
|
||||
next: "下 一 题",
|
||||
vindex: 0
|
||||
},
|
||||
onShareAppMessage: function() {},
|
||||
onShareTimeline: function() {},
|
||||
onShow: function() {
|
||||
getApp().getTotal();
|
||||
},
|
||||
onLoad: function(a) {
|
||||
this.setData({
|
||||
vindex: a.a
|
||||
});
|
||||
},
|
||||
back: function() {
|
||||
wx.vibrateShort(), wx.navigateBack({});
|
||||
},
|
||||
zd: function() {
|
||||
wx.vibrateShort();
|
||||
},
|
||||
diff: function() {
|
||||
return (this.data.numE - this.data.numI > 0 ? "E" : "I") + (this.data.numS - this.data.numN > 0 ? "S" : "N") + (this.data.numT - this.data.numF > 0 ? "T" : "F") + (this.data.numJ - this.data.numP > 0 ? "J" : "P");
|
||||
},
|
||||
formSubmit: function(a) {
|
||||
var l = this;
|
||||
if ("" != a.detail.value.radioGroup) {
|
||||
switch (a.detail.value) {
|
||||
case "E":
|
||||
l.setData({
|
||||
numE: l.data.numE + 1
|
||||
});
|
||||
break;
|
||||
|
||||
case "I":
|
||||
l.setData({
|
||||
numI: l.data.numI + 1
|
||||
});
|
||||
break;
|
||||
|
||||
case "S":
|
||||
l.setData({
|
||||
numS: l.data.numS + 1
|
||||
});
|
||||
break;
|
||||
|
||||
case "N":
|
||||
l.setData({
|
||||
numN: l.data.numN + 1
|
||||
});
|
||||
break;
|
||||
|
||||
case "T":
|
||||
l.setData({
|
||||
numT: l.data.numT + 1
|
||||
});
|
||||
break;
|
||||
|
||||
case "F":
|
||||
l.setData({
|
||||
numF: l.data.numF + 1
|
||||
});
|
||||
break;
|
||||
|
||||
case "J":
|
||||
l.setData({
|
||||
numJ: l.data.numJ + 1
|
||||
});
|
||||
break;
|
||||
|
||||
case "P":
|
||||
l.setData({
|
||||
numP: l.data.numP + 1
|
||||
});
|
||||
}
|
||||
l.data.num == l.data.vindex - 2 && this.setData({
|
||||
next: "提交"
|
||||
}), l.data.num == l.data.vindex - 1 ? (this.setData({
|
||||
num: l.data.vindex - 1,
|
||||
next: "完毕"
|
||||
}), wx.showToast({
|
||||
title: "正在分析",
|
||||
duration: 700,
|
||||
icon: "loading",
|
||||
mask: !0,
|
||||
success: function(a) {
|
||||
setTimeout(function() {
|
||||
wx.showModal({
|
||||
content: "您的16型人格类型为:" + l.diff(),
|
||||
showCancel: !1,
|
||||
confirmText: "详情页",
|
||||
title: "结果",
|
||||
success: function(a) {
|
||||
wx.vibrateShort();
|
||||
var n = l.data.numE / (l.data.numE + l.data.numI), v = l.data.numS / (l.data.numS + l.data.numN), p = l.data.numT / (l.data.numT + l.data.numF), A = l.data.numJ / (l.data.numJ + l.data.numP);
|
||||
wx.redirectTo({
|
||||
url: "../type/index?a=" + l.diff() + "&vsA=" + n + "&vsB=" + v + "&vsC=" + p + "&vsD=" + A
|
||||
});
|
||||
},
|
||||
fail: function(a) {},
|
||||
complete: function(a) {}
|
||||
});
|
||||
}, 699);
|
||||
},
|
||||
fail: function(a) {},
|
||||
complete: function(a) {}
|
||||
})) : this.setData({
|
||||
num: l.data.num + 1
|
||||
});
|
||||
} else wx.showModal({
|
||||
content: "请选择,再下一题",
|
||||
title: "提醒",
|
||||
showCancel: !1,
|
||||
success: function(a) {},
|
||||
fail: function(a) {},
|
||||
complete: function(a) {}
|
||||
});
|
||||
},
|
||||
formReset: function() {}
|
||||
});
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"navigationBarTitleText": "",
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
<view>
|
||||
<view class="section section_gap" style="display: flex;flex-direction: row;justify-content: center;border-style: none solid;border-width: 5rpx;">
|
||||
<text style="padding-top: 13rpx;padding-right: 19rpx;">进度</text>
|
||||
<view style="width: 56%;padding-top: 19rpx;">
|
||||
<progress borderRadius="6" percent="{{(num+1)*100/vindex}}" strokeWidth="18"></progress>
|
||||
</view>
|
||||
<text style="padding-top: 14rpx;padding-left: 16rpx;">{{num+1}}/{{vindex}}</text>
|
||||
</view>
|
||||
<view class="section" style="border-style: none solid;border-width: 5rpx;">
|
||||
<form bindreset="formReset" bindsubmit="formSubmit">
|
||||
<view wx:for="{{items}}" wx:key="index">
|
||||
<view wx:if="{{index==num}}">
|
||||
<view style="height: 156rpx;margin-top: 6rpx;margin-top: 6rpx;margin-bottom: 46rpx;">
|
||||
<view class="label" style="padding: 30rpx 30rpx;">{{index+1}}、{{item.desc}}</view>
|
||||
</view>
|
||||
<radio-group bindchange="formSubmit" name="radioGroup" style="display: flex;flex-direction: column;">
|
||||
<view style="height: 156rpx;margin-top: 6rpx;margin-top: 6rpx;">
|
||||
<label bindtap="zd" style="padding: 30rpx 30rpx;">
|
||||
<radio value="{{item.valA}}"></radio>A {{item.planA}} </label>
|
||||
</view>
|
||||
<view style="height: 156rpx;margin-top: 6rpx;margin-top: 6rpx;">
|
||||
<label bindtap="zd" style="padding: 30rpx 30rpx;">
|
||||
<radio value="{{item.valB}}"></radio>B {{item.planB}} </label>
|
||||
</view>
|
||||
</radio-group>
|
||||
</view>
|
||||
</view>
|
||||
</form>
|
||||
</view>
|
||||
<view class="xiaogj" style="margin-top:-16rpx;">
|
||||
<button bindtap="back" class="lb1" plain="true" style="width:100%;margin-left:0px;margin-bottom:16px;border-style: solid ;border-width: 5rpx;">
|
||||
<view style="margin-bottom:6px;">
|
||||
<text decode="{{true}}" space="{{true}}" style="color:#485f84;"> 重 新 测 试 </text>
|
||||
</view>
|
||||
</button>
|
||||
|
||||
<view style="height: 166rpx;"></view>
|
||||
</view>
|
||||
</view>
|
|
@ -0,0 +1,88 @@
|
|||
page {
|
||||
background: #ecf0f3;
|
||||
}
|
||||
|
||||
.section {
|
||||
border-radius: 20rpx;
|
||||
box-shadow: inset 5px 5px 10px #d1d9e6,inset -5px -5px 10px #fff;
|
||||
margin: 6% 5%;
|
||||
padding: 30rpx;
|
||||
}
|
||||
|
||||
.btnsc {
|
||||
background: #fa5f05;
|
||||
border: none;
|
||||
box-shadow: 4px 4px 8px #fa5f05,-4px -4px 8px #fff;
|
||||
color: #fff;
|
||||
font-size: 17px;
|
||||
margin: 10% 5% 5%;
|
||||
padding: 6rpx 0;
|
||||
}
|
||||
|
||||
.label {
|
||||
color: #fa5f05;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.input {
|
||||
border-bottom: 1.5px solid #ddd;
|
||||
color: #364763;
|
||||
font-size: 16px;
|
||||
margin-bottom: 2rpx;
|
||||
margin-top: 50rpx;
|
||||
padding-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.fuzhi {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.fuzhi,.fuzhia {
|
||||
background: #ecf0f3;
|
||||
border: none;
|
||||
box-shadow: 3px 3px 6px #d1d9e6,-3px -3px 6px #fff;
|
||||
color: #fa5f05;
|
||||
font-size: 14px;
|
||||
line-height: 58rpx;
|
||||
margin-top: 76rpx;
|
||||
padding-top: 6rpx;
|
||||
width: 32%;
|
||||
}
|
||||
|
||||
.fuzhia {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
button::after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.daxinx {
|
||||
font-size: 15px;
|
||||
line-height: 28px;
|
||||
margin-bottom: 2rpx;
|
||||
margin-top: 0;
|
||||
padding-bottom: 12rpx;
|
||||
}
|
||||
|
||||
.tls {
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.xiaogj {
|
||||
margin: 0 5% 2%;
|
||||
}
|
||||
|
||||
.lb1 {
|
||||
border-radius: 8px;
|
||||
color: #ecf0f3;
|
||||
display: inline-block;
|
||||
font-size: 36rpx;
|
||||
height: 106rpx;
|
||||
line-height: 99rpx;
|
||||
margin: 16rpx 12rpx 6rpx 27rpx;
|
||||
text-align: center;
|
||||
width: 260rpx;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"navigationBarTitleText": "",
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
<view class="xiaogj" style="margin-bottom:17px;">
|
||||
<view class="de-main">
|
||||
<view class="detail_bg">
|
||||
<image mode="widthFix" src="../img/mbti.svg" style="width: 100%;"></image>
|
||||
<view style="display: flex;font-weight: bolder;margin-top: 6rpx;">
|
||||
<text decode="{{true}}"> {{endInfo.name}}:
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="detil">
|
||||
<text decode="{{true}}">{{endInfo.desc}}
|
||||
</text>
|
||||
</view>
|
||||
<view style="height: 6rpx;"></view>
|
||||
|
||||
<view style="height: 166rpx;"></view>
|
||||
</view>
|
||||
</view>
|
|
@ -0,0 +1,34 @@
|
|||
image {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.detail-sj {
|
||||
color: #999;
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
justify-content: center;
|
||||
line-height: 40rpx;
|
||||
padding-bottom: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.detail-sj,.detil {
|
||||
font-family: PingFang;
|
||||
}
|
||||
|
||||
.detil {
|
||||
font-size: 26rpx;
|
||||
line-height: 30px;
|
||||
overflow: hidden;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.xiaogj {
|
||||
margin: 0 5% 2%;
|
||||
}
|
||||
|
||||
page {
|
||||
background: #ecf0f3;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
Page({
|
||||
data: {},
|
||||
onLoad: function(o) {
|
||||
console.log("options", o), this.setData({
|
||||
bit11: decodeURIComponent(o.ur)
|
||||
}), console.log(this.data.bit11);
|
||||
},
|
||||
onReady: function() {},
|
||||
onShow: function() {
|
||||
getApp().getTotal();
|
||||
},
|
||||
onHide: function() {},
|
||||
onUnload: function() {},
|
||||
onPullDownRefresh: function() {},
|
||||
onReachBottom: function() {},
|
||||
onShareAppMessage: function() {}
|
||||
});
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"navigationBarTitleText": "",
|
||||
"navigationBarBackgroundColor": "#fff",
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<web-view src="{{bit11}}"></web-view>
|
|
@ -0,0 +1,63 @@
|
|||
Page({
|
||||
data: {
|
||||
link:[],
|
||||
notice: [ "测试时间预计5-15分钟", "请在心态平的情况下开始答题", "选项间无对错好坏之分", "请选择与你实际做法相符的", "而不是你认为怎样做是对的" ],
|
||||
resu: [ "ENFP", "INTJ", "ESFP", "INFP", "ESTJ", "ENFJ", "ENTJ", "ENTP", "ESTP", "INFJ", "ESFJ", "INTP", "ISFJ", "ISFP", "ISTJ", "ISTP", "more" ],
|
||||
tests: [ {
|
||||
a: " 简洁版[28道] ",
|
||||
b: 28
|
||||
}, {
|
||||
a: " 通用版[48道] ",
|
||||
b: 48
|
||||
}, {
|
||||
a: " 完整版[93道] ",
|
||||
b: 93
|
||||
} ],
|
||||
|
||||
bit11: "",
|
||||
bit12: "其他推荐"
|
||||
},
|
||||
|
||||
onLoad: function() {
|
||||
this.uLink()
|
||||
},
|
||||
onShow:function(){
|
||||
getApp().getTotal(); //调用统计
|
||||
},
|
||||
onHide: function() {},
|
||||
onUnload: function() {},
|
||||
onPullDownRefresh: function() {},
|
||||
onReachBottom: function() {},
|
||||
onShareAppMessage: function() {},
|
||||
onShareTimeline: function() {},
|
||||
uLink:function(){
|
||||
var that = this
|
||||
var o = "https://a1.miniappapi.com/api/65d0a827276be";
|
||||
wx.request({
|
||||
url: o,
|
||||
method: "GET",
|
||||
data: {
|
||||
app_appid : getApp().globalData.appid
|
||||
},
|
||||
header: {
|
||||
'Access-Token': getApp().globalData.AccessToken
|
||||
},
|
||||
success: function(t) {
|
||||
that.data.link = t.data.data;
|
||||
that.setData({
|
||||
link : t.data.data
|
||||
});
|
||||
},
|
||||
|
||||
});
|
||||
},
|
||||
goLink: function(e) {
|
||||
console.log(e.currentTarget.id);
|
||||
let index = e.currentTarget.id
|
||||
wx.vibrateShort(), wx.openEmbeddedMiniProgram({
|
||||
appId: this.data.link[index].app_wx_appid,
|
||||
path: this.data.link[index].app_wx_path
|
||||
});
|
||||
},
|
||||
|
||||
});
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"navigationBarTitleText": "MBTI人格测试",
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
<view class="xiaogj" style="margin-bottom:17px;">
|
||||
<label class="btwz">▎ 16型性格测试</label>
|
||||
<view class="dahezi" style="margin-bottom:6px;border-style: none solid;border-width: 5rpx;">
|
||||
<view wx:for="{{tests}}" wx:key="index">
|
||||
<navigator class="lb" role="navigation" url="/index/index?a={{item.b}}">
|
||||
<view>{{item.a}}</view>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
<label class="btwz">▎ 十六型人格类型详解</label>
|
||||
<view class="dahezi" style="margin-bottom:6px;border-style: none solid;border-width: 5rpx;">
|
||||
<view wx:for="{{resu}}" wx:key="index">
|
||||
<navigator class="lb" role="navigation" url="{{index==16?'../indexa/index':'../../type/index?a='+item}}" wx:if="{{index<3||index==16}}">
|
||||
<view style="display: flex;flex-direction: row;padding-left: 78rpx;">
|
||||
<view> {{item=='more'?'更多':item}} </view>
|
||||
<image src="../../img/{{item}}.svg" style="width: 67rpx;height: 67rpx;padding-top: 19rpx;"></image>
|
||||
</view>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
<label class="btwz">▎ {{bit12}}</label>
|
||||
<view class="dahezi" style="margin-bottom:6px;border-style: none solid;border-width: 5rpx;">
|
||||
<view id="{{bindex}}" path="{{item.app_wx_app}}" bindtap="goLink" wx:for="{{link}}" wx:for-index="bindex" wx:key="index">
|
||||
<view class="lb">
|
||||
<view style="font-size: small;">{{item.app_wx_name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="lb1" style="width:100%;margin-top:16px;margin-left:0px;margin-right:-10rpx;margin-bottom:16px;border-style:none none solid none ;border-width: 5rpx;">
|
||||
<button plain style="border-style: none none none none;height: 99rpx;">
|
||||
<view style="margin-bottom:6px;">
|
||||
<text decode="{{true}}" space="{{true}}" style="color:#485f84;">非科学性测试 丨 仅供参考娱乐</text>
|
||||
</view>
|
||||
</button>
|
||||
</view>
|
||||
<view class="newNoticeBox" style="border: solid 3rpx;border-color: #7b92b7;margin-right:-3.4rpx;">
|
||||
<view class="newNoticePicBox" style="display: flex;flex-direction: row;">
|
||||
<image class="newNoticePic" src="../../img/lb.png" style="margin-top:26rpx ;"></image>
|
||||
<view style="font-size: 27rpx;margin-left: 26rpx;color: #7b92b7;font-weight: bolder;">小</view>
|
||||
<view style="font-size: 27rpx;color: #7b92b7;font-weight: bolder;">提</view>
|
||||
<view style="font-size: 27rpx;margin-right: 26rpx;color: #7b92b7;font-weight: bolder;">示</view>
|
||||
</view>
|
||||
<swiper autoplay="true" circular="true" class="swiper_zi" interval="3000" vertical="true">
|
||||
<swiper-item wx:for="{{notice}}" wx:key="index">
|
||||
<view class="zimubox">
|
||||
<view class="swiper_item">{{item}}</view>
|
||||
</view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
</view>
|
|
@ -0,0 +1,117 @@
|
|||
page {
|
||||
background: #ecf0f3;
|
||||
}
|
||||
|
||||
.xiaogj {
|
||||
margin: 0 5% 2%;
|
||||
}
|
||||
|
||||
.lb:hover {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.lb {
|
||||
width: 260rpx;
|
||||
}
|
||||
|
||||
.lb,.lb2 {
|
||||
border-radius: 8px;
|
||||
box-shadow: 3px 3px 6px #d1d9e6,-3px -3px 6px #fff;
|
||||
color: #364763;
|
||||
display: inline-block;
|
||||
font-size: 32rpx;
|
||||
height: 99rpx;
|
||||
line-height: 99rpx;
|
||||
margin: 19rpx 12rpx 6rpx 27rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.lb2 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.lb1 {
|
||||
color: #364763;
|
||||
display: inline-block;
|
||||
font-size: 32rpx;
|
||||
height: 99rpx;
|
||||
line-height: 99rpx;
|
||||
margin: 19rpx 12rpx 6rpx 27rpx;
|
||||
text-align: center;
|
||||
width: 260rpx;
|
||||
}
|
||||
|
||||
.btwz,.lb1 {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.btwz {
|
||||
color: #7b92b7;
|
||||
display: block;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 6rpx;
|
||||
padding: 2px 0;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.dahezi {
|
||||
border-radius: 8px;
|
||||
box-shadow: inset 5px 5px 10px #d1d9e6,inset -5px -5px 10px #fff;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
font-size: 17px;
|
||||
padding: 14px 4.36%;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.dahezi,.newNoticeBox {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.newNoticeBox {
|
||||
background: #ecf0f3;
|
||||
border-radius: 10rpx;
|
||||
height: 86rpx;
|
||||
line-height: 86rpx;
|
||||
margin: 36rpx 0rpx 20rpx;
|
||||
}
|
||||
|
||||
.newNoticePicBox {
|
||||
flex: 1;
|
||||
padding-left: 16rpx;
|
||||
}
|
||||
|
||||
.newNoticePic {
|
||||
height: 36rpx;
|
||||
width: 46rpx;
|
||||
}
|
||||
|
||||
.swiper_zi {
|
||||
flex: 15;
|
||||
height: 100%;
|
||||
padding-top: 19rpx;
|
||||
width: 80vw;
|
||||
}
|
||||
|
||||
.swiper_zi .zimubox {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.swiper_zi .zimubox .swiper_item {
|
||||
color: #7b92b7;
|
||||
font-size: 27rpx;
|
||||
line-height: 50rpx;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.more {
|
||||
color: #7b92b7;
|
||||
font-size: 27rpx;
|
||||
padding-right: 16rpx;
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
Page({
|
||||
data: {
|
||||
resu: [ "ENFP", "INTJ", "ESFP", "INFP", "ESTJ", "ENFJ", "ENTJ", "ENTP", "ESTP", "INFJ", "ESFJ", "INTP", "ISFJ", "ISFP", "ISTJ", "ISTP", "more" ],
|
||||
tests: [ {
|
||||
a: " 简 洁 版 ",
|
||||
b: 28
|
||||
}, {
|
||||
a: " 通 用 版 ",
|
||||
b: 48
|
||||
}, {
|
||||
a: " 完 整 版 ",
|
||||
b: 93
|
||||
} ]
|
||||
},
|
||||
cs: function() {
|
||||
console.log("@@@@@@");
|
||||
},
|
||||
onLoad: function(n) {},
|
||||
onReady: function() {},
|
||||
onShow:function(){
|
||||
getApp().getTotal(); //调用统计
|
||||
},
|
||||
onHide: function() {},
|
||||
onUnload: function() {},
|
||||
onPullDownRefresh: function() {},
|
||||
onReachBottom: function() {},
|
||||
onShareAppMessage: function() {},
|
||||
onShareTimeline: function() {}
|
||||
});
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"navigationBarTitleText": "",
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
<view class="xiaogj" style="margin-bottom:17px;">
|
||||
<view style="display: flex;flex-direction: row;">
|
||||
<image mode="widthFix" src="../../img/mbti.svg" style="margin-top: 6rpx;margin-left: 26rpx;"></image>
|
||||
</view>
|
||||
<view class="dahezi" style="margin-bottom: 16rpx;border-style: none solid;border-width: 5rpx;">
|
||||
<view wx:for="{{resu}}" wx:key="index">
|
||||
<navigator class="lb" role="navigation" url="../../type/index?a={{item}}" wx:if="{{index<16}}">
|
||||
<view style="display: flex;flex-direction: row;padding-left: 78rpx;">
|
||||
<view> {{item}} </view>
|
||||
<image src="../../img/{{item}}.svg" style="width: 67rpx;height: 67rpx;padding-top: 19rpx;"></image>
|
||||
</view>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
<view style="height: 36rpx;"></view>
|
||||
|
||||
<view style="height: 166rpx;"></view>
|
||||
</view>
|
|
@ -0,0 +1,49 @@
|
|||
page {
|
||||
background: #ecf0f3;
|
||||
}
|
||||
|
||||
.xiaogj {
|
||||
margin: 0 5% 2%;
|
||||
}
|
||||
|
||||
.lb:hover {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.lb {
|
||||
box-shadow: 3px 3px 6px #d1d9e6,-3px -3px 6px #fff;
|
||||
color: #364763;
|
||||
display: inline-block;
|
||||
font-size: 32rpx;
|
||||
height: 99rpx;
|
||||
line-height: 99rpx;
|
||||
margin: 27rpx 12rpx 6rpx 27rpx;
|
||||
text-align: center;
|
||||
width: 260rpx;
|
||||
}
|
||||
|
||||
.btwz,.lb {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.btwz {
|
||||
color: #7b92b7;
|
||||
display: block;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
margin-bottom: 16rpx;
|
||||
margin-top: 16rpx;
|
||||
padding: 2px 0;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.dahezi {
|
||||
border-radius: 8px;
|
||||
box-shadow: inset 5px 5px 10px #d1d9e6,inset -5px -5px 10px #fff;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
font-size: 17px;
|
||||
padding: 9px 4.36%;
|
||||
width: 90%;
|
||||
}
|
|
@ -0,0 +1,151 @@
|
|||
var t = require("../@babel/runtime/helpers/interopRequireDefault"), e = require("../@babel/runtime/helpers/createForOfIteratorHelper"), n = t(require("../DD5CBCF0E645A4CFBB3AD4F73DA18D45.js")), i = t(require("../CB7FD377E645A4CFAD19BB7000A18D45.js")), r = require("../4110C867E645A4CF2776A060E1D18D45.js"), a = new i.default();
|
||||
|
||||
Component({
|
||||
canvasWidthInPx: 0,
|
||||
canvasHeightInPx: 0,
|
||||
paintCount: 0,
|
||||
properties: {
|
||||
customStyle: {
|
||||
type: String
|
||||
},
|
||||
palette: {
|
||||
type: Object,
|
||||
observer: function(t, e) {
|
||||
this.isNeedRefresh(t, e) && (this.paintCount = 0, this.startPaint());
|
||||
}
|
||||
},
|
||||
dirty: {
|
||||
type: Boolean,
|
||||
value: !1
|
||||
}
|
||||
},
|
||||
data: {
|
||||
picURL: "",
|
||||
showCanvas: !0,
|
||||
painterStyle: ""
|
||||
},
|
||||
attached: function() {
|
||||
String.prototype.toPx = function(t) {
|
||||
var e = (t ? /^-?[0-9]+([.]{1}[0-9]+){0,1}(rpx|px)$/g : /^[0-9]+([.]{1}[0-9]+){0,1}(rpx|px)$/g).exec(this);
|
||||
if (!this || !e) return console.log("The size: ".concat(this, " is illegal")), 0;
|
||||
var n = e[2], i = parseFloat(this), r = 0;
|
||||
return "rpx" === n ? r = Math.round(i * o) : "px" === n && (r = i), r;
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
isEmpty: function(t) {
|
||||
for (var e in t) return !1;
|
||||
return !0;
|
||||
},
|
||||
isNeedRefresh: function(t, e) {
|
||||
return !(!t || this.isEmpty(t) || this.data.dirty && r.equal(t, e));
|
||||
},
|
||||
startPaint: function() {
|
||||
var t = this;
|
||||
if (!this.isEmpty(this.properties.palette)) {
|
||||
if (!getApp().systemInfo || !getApp().systemInfo.screenWidth) try {
|
||||
getApp().systemInfo = wx.getSystemInfoSync();
|
||||
} catch (t) {
|
||||
t = VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL.handleException(t);
|
||||
var e = "Painter get system info failed, ".concat(JSON.stringify(t));
|
||||
return that.triggerEvent("imgErr", {
|
||||
error: e
|
||||
}), void console.log(e);
|
||||
}
|
||||
o = getApp().systemInfo.screenWidth / 750, this.downloadImages().then(function(e) {
|
||||
var i = e.width, r = e.height;
|
||||
if (t.canvasWidthInPx = i.toPx(), t.canvasHeightInPx = r.toPx(), i && r) {
|
||||
t.setData({
|
||||
painterStyle: "width:".concat(i, ";height:").concat(r, ";")
|
||||
});
|
||||
var a = wx.createCanvasContext("k-canvas", t);
|
||||
new n.default(a, e).paint(function() {
|
||||
t.saveImgToLocal();
|
||||
});
|
||||
} else console.log("You should set width and height correctly for painter, width: ".concat(i, ", height: ").concat(r));
|
||||
});
|
||||
}
|
||||
},
|
||||
downloadImages: function() {
|
||||
var t = this;
|
||||
return new Promise(function(n, i) {
|
||||
var r = 0, o = 0, s = JSON.parse(JSON.stringify(t.properties.palette));
|
||||
s.background && (r++, a.download(s.background).then(function(t) {
|
||||
s.background = t, o++, r === o && n(s);
|
||||
}, function() {
|
||||
o++, r === o && n(s);
|
||||
})), s.views && function() {
|
||||
var i, c = t, g = e(s.views);
|
||||
try {
|
||||
var h = function() {
|
||||
var t = i.value;
|
||||
t && "image" === t.type && t.url && (r++, a.download(t.url).then(function(e) {
|
||||
t.url = e, wx.getImageInfo({
|
||||
src: t.url,
|
||||
success: function(e) {
|
||||
t.sWidth = e.width, t.sHeight = e.height;
|
||||
},
|
||||
fail: function(t) {
|
||||
console.log("imgDownloadErr failed, ".concat(JSON.stringify(t))), c.triggerEvent("imgDownloadErr", {
|
||||
error: t
|
||||
});
|
||||
},
|
||||
complete: function() {
|
||||
o++, r === o && n(s);
|
||||
}
|
||||
});
|
||||
}, function() {
|
||||
o++, r === o && n(s);
|
||||
}));
|
||||
};
|
||||
for (g.s(); !(i = g.n()).done; ) h();
|
||||
} catch (t) {
|
||||
t = VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL.handleException(t), g.e(t);
|
||||
} finally {
|
||||
g.f();
|
||||
}
|
||||
}(), 0 === r && n(s);
|
||||
});
|
||||
},
|
||||
saveImgToLocal: function() {
|
||||
var t = this, e = this;
|
||||
setTimeout(function() {
|
||||
wx.canvasToTempFilePath({
|
||||
canvasId: "k-canvas",
|
||||
success: function(t) {
|
||||
e.getImageInfo(t.tempFilePath);
|
||||
},
|
||||
fail: function(t) {
|
||||
console.log("canvasToTempFilePath failed, ".concat(JSON.stringify(t))), e.triggerEvent("imgErr", {
|
||||
error: t
|
||||
});
|
||||
}
|
||||
}, t);
|
||||
}, 300);
|
||||
},
|
||||
getImageInfo: function(t) {
|
||||
var e = this;
|
||||
wx.getImageInfo({
|
||||
src: t,
|
||||
success: function(n) {
|
||||
if (e.paintCount > 5) {
|
||||
var i = "The result is always fault, even we tried ".concat(5, " times");
|
||||
return console.log(i), void e.triggerEvent("imgErr", {
|
||||
error: i
|
||||
});
|
||||
}
|
||||
Math.abs((n.width * e.canvasHeightInPx - e.canvasWidthInPx * n.height) / (n.height * e.canvasHeightInPx)) < .01 ? e.triggerEvent("imgOK", {
|
||||
path: t
|
||||
}) : e.startPaint(), e.paintCount++;
|
||||
},
|
||||
fail: function(t) {
|
||||
console.log("getImageInfo failed, ".concat(JSON.stringify(t))), e.triggerEvent("imgErr", {
|
||||
error: t
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var o = .5;
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<canvas canvasId="k-canvas" style="{{painterStyle}}{{customStyle}}"></canvas>
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"appid": "wx9c620219025842e7",
|
||||
"compileType": "miniprogram",
|
||||
"libVersion": "3.3.4",
|
||||
"packOptions": {
|
||||
"ignore": [],
|
||||
"include": []
|
||||
},
|
||||
"setting": {
|
||||
"coverView": true,
|
||||
"es6": true,
|
||||
"postcss": true,
|
||||
"minified": true,
|
||||
"enhance": true,
|
||||
"showShadowRootInWxmlPanel": true,
|
||||
"packNpmRelationList": [],
|
||||
"babelSetting": {
|
||||
"ignore": [],
|
||||
"disablePlugins": [],
|
||||
"outputPath": ""
|
||||
}
|
||||
},
|
||||
"condition": {},
|
||||
"editorSetting": {
|
||||
"tabIndent": "insertSpaces",
|
||||
"tabSize": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
|
||||
"projectname": "MBTI人格测试",
|
||||
"setting": {
|
||||
"compileHotReLoad": true,
|
||||
"urlCheck": false
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 196 KiB |
|
@ -0,0 +1,366 @@
|
|||
var n = require("../@babel/runtime/helpers/defineProperty"), s = getApp();
|
||||
|
||||
Page(n({
|
||||
data: {
|
||||
windowWidth: .86 * s.globalData.windowWidth,
|
||||
windowHeight: .6 * s.globalData.windowHeight,
|
||||
infosub: " \x3c!--提醒--\x3e 因为你还没有测试,所以这里展示的是虚拟信息\x3c!--提醒--\x3e\x3c!--提醒--\x3e 因为你还没有测试,所以这里展示的是虚拟信息\x3c!--提醒--\x3e",
|
||||
type: "",
|
||||
info: "",
|
||||
newInfo: "",
|
||||
cla: [ "个性特征分析", "可能存在的盲点", "功能运用", "有效地使用类型", "问题解决方式", "工作中的优势", "工作中的劣势", "适合的岗位特质", "适合的职业", "对组织的贡献", "领导风格", "潜在缺陷", "适合的工作环境", "个人发展建议" ],
|
||||
ENFJ: {
|
||||
a: "主人公型人格",
|
||||
b: "反应迅速,有责任心;真切地关心他人的想法和需求,并且力图在处理事情时给他人的情感以应有的尊重。能够容易也有技巧地提出建议和计划或主持小组讨论。友善,合群,在公众(学校等)事务中表现活跃,但也能花足够的时间在自己的学习上,以保证良好的工作表现",
|
||||
c: "性格优点",
|
||||
d: "对于不同的观点,你也很乐于接受,认可别人的言论自由。你是非常可靠的,只要承诺,就愿意自觉背负责任感。对事物充满热情和兴趣,非常乐干追求自己的爱好。\n 坚定地实行利他主义,尽自己最大的努力创造一个美好世界。\n 你魅力超凡,很能鼓舞人心,很容易进入领导角色。",
|
||||
e: "性格缺点",
|
||||
f: "不切实际的想法经常给自己施加压力,尽管有些事对你来讲是不现实的。希望每个人都能认可普遍的原则问题,过于理想主义。\n 因为喜欢教别人,给人以居高临下的感觉,甚至傲慢。\n 在自我提升方面,你拥有强烈的精力或决心,同样的标准也会用在别人身上。过分善解人意,同情心往往会让你身心疲惫。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域:信息传播、教育、服务业、卫生保健、商业、咨询、技术等领域\n 适合的典型职业:广告客户经理、杂志编辑、临床医师、职业规划师、培训专员、大学教授(人文学科)、销售经理、程序设计员、协调人、市场营销人员、新闻记者、社会工作者、人力资源工作者、电视制片人、公关、非盈利机构负责人等。",
|
||||
i: "就业指导",
|
||||
j: "身为下属,正确没面对提出太多要求或让他们负担过重的额外工作,尝试和平沟通\n 身为同事,因为自己的负责有时会激怒你的同事。天生的领导动力,往往让你做出超出其权限范围的决定。\n 身为上司,你的的理想主义可能会认识不到员工的真正局限性,分配任务时调查了解对方的准备情况。"
|
||||
},
|
||||
ENFP: {
|
||||
a: "竞选者型人格",
|
||||
b: "热情洋溢,情绪高昂,机敏,灵活,富有想象力;有能力做他们感兴趣的几乎所有的事情。很快能找到解决难题的办法并乐于帮助别人解决问题。经常依赖于临场的即兴发挥的能力而不是事先做好充分准备。不论他们想要什么或想做什么事情,总能找到牵强的理由或借口。",
|
||||
c: "性格优点",
|
||||
d: "你不怕冒险,愿意走出舒适区,寻找新的想法、体验。\n 善于捕捉一个人的情绪或表情的最细微的变化,并充分给与关怀、体贴你渴望听到其他人的想法和意见并且乐于分享。\n 你既是一个有爱心的听众,又是一个优秀的沟通者。面对纷扰的生活和工作,你总能找到乐趣和快乐。\n 因为你是一个热情、平易近人、具有利他精神和友好性格的人,所以你的熟人和朋友圈子往往很广。",
|
||||
e: "性格缺点",
|
||||
f: "因为需要取悦他人,你常会感到不安甚至会影响你正常的生活节奏。\n 长期保持纪律和专注对你来讲或许是一项挑战。\n 无聊、实际的事情常常引起你的混乱感,使你的生活一团糟。\n 因为过于随和,没有设定界限,对别人的事过度投入,以至于没有足够的时间精力解决自己的事。\n 表面积极、乐观,实际隐藏了很多心烦意乱或不满意。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的领域:创作类、艺术类、教育、咨询辅导类、研究、宗教、保健、技术等领域。\n 偏好的典型职业:各类培训师、人力资源工作者、社会科学工作者、团队建设顾问、职业规划师、编辑、艺术指导、建筑师、时装设计师、记者、口笔译人员、娱乐业人士、法律调解人、推拿医师、心理咨询师、心理学专家、顾问。",
|
||||
i: "就业指导",
|
||||
j: "身为下属,你关心把工作做好,当你能够按照自己的节奏行动并以自己的风格做事时,项目容易虎头蛇尾,很难保持专注力,被人诟病。\n 身为同事,你总是在寻找任何问题的双赢解决方案,集体头脑风暴是你的强项,注意在倾听他人的观点和建议时,不仅要宽容,而且要真诚地兴奋。\n 身为上司,学会设定界限和期望,万不得已时,要按规范谴责或解雇员工。"
|
||||
},
|
||||
ENTJ: {
|
||||
a: "指挥官型人格",
|
||||
b: "为人诚恳,坦白,有学习能力,是活动中的领导者。通常在要求推理和机智的对话的活动中表现良好(例如在公开的演说或谈话中)。了解很多信息,能不断积累知识。有时在其受任的领域内,表现出比经验更多的把握和信心。",
|
||||
c: "性格优点",
|
||||
d: "你无论走到哪里,都是一个高效的人。\n 精力充沛,真正享受在执行计划和目标时带领团队前进的乐趣。\n 你相信自己的能力,乐于表达自己的意见,并相信自己拥有领导能力。\n 当情况变得艰难时,你也不会放弃,意志力坚强,会努力实现自己的目标。\n 你是一名战略思想家,不仅解决暂时的问题,而且推动整个项目向前发展自己的解决方案。\n 你的魅力时刻鼓舞人心,通常会帮助你无法单独完成的雄心勃勃的目标。",
|
||||
e: "性格缺点",
|
||||
f: "固执和霸道--有时信心和意志力过分就导致固执和霸道。\n 不支持任何偏离自己主要目标的想法,更不支持基于情感考虑的想法。\n 思维敏捷的你无法忍受拖延,可能会将沉思误解为愚蠢,不耐烦也是你的标签。\n 对擅长思考,但不具有敏捷的想法和坚定的信念的人,你会表现得很傲慢。\n 情绪处理不当,经常践踏他人的感情,不经意间伤害了自己的伴侣和朋友,尤其在情绪激动的情况下。\n 在追求自己的目标时极其麻木不仁,将个人情况、敏感性和偏好视为不合理和无关紧要。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域有:商业、金融、咨询、培训、专业性职业、技术领域。\n 适合的典型职业:首席执行官、网络专家、管理顾问、政客、管理专员、授权商、公司财务、融资律师、个人理财顾问、房地产开发商、销售主管、环保工程师、经济分析师、教育顾问、法官、经理、技术培训人员、国际销售经理、特许经营业主、程序员。",
|
||||
i: "就业指导",
|
||||
j: "身为下属,如果任务进度变慢,你需要克服心不在焉的情绪,不要过分依赖环境的反馈。\n 身为同事,发挥善于交际的优势,在分享想法和建议的同时,也要接受那些能力不如你,甚至能力较差或缺乏动力的人。\n 身为上司,认识到每个人都扮演独特而重要的角色,学会激励,尤其面对效率低下,或者表现出自己懒惰或生产劣质工作的人"
|
||||
},
|
||||
ENTP: {
|
||||
a: "辩论家型人格",
|
||||
b: "行动迅速,灵巧,有很多特长,常激励同伴,机警坦率直言;可以站在问题的任何一方争辩,并不过分认真。善于随机应变地解决新出现的或具有挑战性的问题,但可能会忽视日常事务性的任务。兴趣转移较快。不论他们想要什么或想做什么事情,总能找到合乎逻辑的理由。",
|
||||
c: "性格优点",
|
||||
d: "你给人知识渊博的形象,很少放弃学习新事物的好机会,尤其是抽象概念。\n 思维敏捷,头脑灵活,很轻松就可以转换想法,并擅长利用积累的知识证明观点。\n 可以从广泛的知识库中搜索不同的想法,用一点原始的创造力将它们结合在一起形成大胆的新想法。\n 优秀的头脑风暴者,从各个角度分析问题以找到最佳解决方案。\n 你是一个充满魅力的人,你的自信、敏捷的思维以及新颖的想法会让别人觉得有趣和机智。\n 你的热情和精力确实令人印象深刻,不经意就投入了漫长的时间去寻找解决方案。",
|
||||
e: "性格缺点",
|
||||
f: "你不喜欢破坏自己的信仰的方法以及活力,从而导致心理和人际关系的紧张。\n 因为理性,经常误判他人的感受,常给人麻木不仁的感受。\n 很执拗地坚持自己的想法,导致对一起讨论的人不宽容难以集中注意力,思维跳跃常常影响你。\n 对可延展的概念感兴趣,却不喜欢解决实际问题。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的领域:创作、创业、开发、投资、公共关系、政治、创造性的领域。\n 偏好的典型职业:企业家、发明家、投资银行家、风险投资商、管理营销顾问、广告文案、访谈节目主持、政客、房地产开发商、后勤顾问、投资经纪人、广告创意指导、演员、战略规划家、大学校长/学院院长、互联网营销人员、营销策划人员",
|
||||
i: "就业指导",
|
||||
j: "身为下属,乐于挑战上级的想法,并且对限制性规则和规章有强烈的厌恶,常常需要忍受简单的例行工作,单调的任务对你来说是噩梦\n 身为同事,热衷头脑风暴、辩论和过度分析,但也要以任务为导向。对想法进行诚实、直接和客观的评估的同时,也要减少麻木不仁和居高临下的“恶名”在外。\n 身为上司,管理层往往是你最熟悉的地方。但是你面临的挑战是专注,在提出目标和任务的细节之前,减少项目的跳跃性。"
|
||||
},
|
||||
ESFP: {
|
||||
a: "表演者型人格",
|
||||
b: "外向,随和,易接纳,友善,喜欢享乐。喜欢运动和制作东西。清楚当前发生的事情并渴望参与其中;相对于掌握理论而言,更容易发现易于记忆的事实。在需要丰富的常识和与人、事打交道的实际能力的场合中,表现出色",
|
||||
c: "性格优点",
|
||||
d: "从不退缩的你以大胆著称,总想要体验所有可以体验的事物,用于走出舒适圈。\n 喜欢尝试新风格,并不断寻找在人群中脱颖而出的新方法,热衷原创。不仅仅在服装上,你的艺术创造力也体现在你的一言一行。实用主义是你所奉行的,你更重视感受和体验。\n 你的观察力是与生俱来,你总能捕捉到真实、有形的事物和变化。\n 你优秀的人际交往能力是很多人所羡慕的,健谈、诙谐,而且几乎从不乏可讨论的话题。",
|
||||
e: "性格缺点",
|
||||
f: "你的敏感非常情绪化,非常容易受到批评。\n 对待冲突,你可能会选择完全忽略并避免冲突,而不是解决冲突。\n 冒险行为、自我放纵以及一时快乐都是你经常涉足的事情,然而很少为未来制定详细的计划。\n 不专心,任何需要长期奉献和专注的事情对表演者来说都是一个特殊的挑战。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的职业领域:教育、社会服务、健康护理、娱乐业、商业、服务业等。\n 偏好的典型职业:早教、公关专业人士、劳工关系调解人、零售经理、商品规划师、促销员、团队培训人员、表演人员、社会工作者、牙医、受益、融资者、旅游项目经营者、特别事件的协调人、社会工作者、旅游销售经理、运动设备销售员、融资者、保险代理/经纪人。",
|
||||
i: "就业指导",
|
||||
j: "身为下属,热衷于变化和新想法的同时,学会接受重复和严格定义的任务。理性对待批评,在受到攻击时,试图理解和宽容,减少攻击性。\n 身为同事,保持你的凝聚力,除了关注情绪本身还要注重目标的实现。\n 身为上司,不仅尽其所能为需要完成的日常工作注入活力和乐趣,也要注意权威和社会地位的树立,这样在领导和管理上,会事半功倍。"
|
||||
},
|
||||
ESTJ: {
|
||||
a: "总经理型人格",
|
||||
b: "注重实际的现实主义者,关注事实;天生的商业和力学头脑;对他们认为没有用处的科目不感兴趣,但在必要时也能专注其中;喜欢组织并管理活动。如果能考虑到别人的情感、感受和观点的话,能够将事情管理得非常出色",
|
||||
c: "性格优点",
|
||||
d: "敬业是大部分人对你的印象。\n 你总能坚持不懈地捍卫自己的想法和原则,除非证明自己的立场是错误的,不然不会让步。\n 你喜欢直接和诚实,信任事实远胜于抽象的想法或观点,所以你更倾向直截了当地陈述和信息。\n 你努力体现直实性和可靠性,使你成为家庭,公司和社区中非常负责任的成员\n 你总是在享受创造秩序的乐趣,通过建立规则、结构和明确的角色来努力在他们的环境中创造秩序和安全。\n 你是优秀的组织者,这让你更有机会成为有能力和自信的领导者,并能公平客观地将任务和责任分配给他人。",
|
||||
e: "性格缺点",
|
||||
f: "执着于行之有效,但常常忽视可能更有效的方法,常常固执缺乏灵活性。\n 因坚定拥护传统,对打破常规的新事物新想法会让你混乱。\n 过于关注社会地位,因过于专注于满足他人的期望,以至于无法满足自己的需求。\n 自尊心对你来说太重要,使你难以放松给人摆架子的感觉。\n 因难以表达情感使你最大弱点:难以表达情感和感受同理心。\n 沉迷于事实和最有效的方法有时候令人窒息。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域:营销、服务、科学技术、自然物理、管理、专业人员等领域表现更佳。\n 偏好的典型职业:业务主管、军官、首席信息官、运动商品销售员、房地产开发商、预算分析员、健康管理员、药剂师、信用顾问、保险代理、项目经理、数据库经理、信息总监、后勤与供应经理、业务运作顾问、证券经纪人、电脑分析人员、保险代理、普通承包商、工厂主。",
|
||||
i: "就业指导",
|
||||
j: "理身为下属,尝试克服固执和不灵活,在一定程度上,自己多进行实践去验证想法。努力接受不合逻辑的事物和想法的存在,不轻易展现刻板印象。\n 身为同事,要学会更多层面的人际交往,尊重以灵感为导向的同事,而不是简单的鄙视与漠视。\n 身为上司,不可专横跋扈,权威至上,对工作中良好导向的变革要支持,允许下属思维的发散和碰撞,有助于促进整体的工作氛围。"
|
||||
},
|
||||
ESTP: {
|
||||
a: "企业家型人格",
|
||||
b: "关注事实,不焦虑,不着急,随遇而安。喜欢机械的事物和体育运动,支持并偏向朋友的一方。可能有点儿直率和不敏感。在他们认为需要的时候,可以在数学SPort和其他自然科学方面应付裕如。不喜欢冗长的解释。擅长动手操作、拆开并重组物体。",
|
||||
c: "性格优点",
|
||||
d: "你总是充满活力和活力,热衷突破界限,发现和使用新事物和新想法。\n 你热爱知识和哲学,但不是为了自己,擅长找到可行的想法并深入研究细节,以便以后可以更好的利用它们。\n 你的洞察力让你能够注意到事情何时发生变化以及何时需要改变。\n 更喜欢田古培和事实的问题和答安进行清晰的交流头的问题和答案进行凊晰的交流。\n 善于交际,你仿佛是天生的团队领导者,善于利用社交互动和社交机会。",
|
||||
e: "性格缺点",
|
||||
f: "因你通常很难承认和表达自己的感受,感觉和情绪仅次于事实和“现实”。\n 你的耐心系数太低,总是按照自己的节奏来行动,难以与人步调一致 你的冒险精神往往会给自己带来额外的风险。\n 无视规则和社会期望的非结构化解决方式不是所有人和事所能接受的。图喜欢在当下解决问题,有时候会过分追求完美。\n 不喜欢被束缚。重复、强硬的规则对你来说是一种挑战。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域:多样性的服务领域,要求在迅速改变的环境中快速思考/反应的服务领域可以满足这类人的好奇心和洞察力。如:金融、商贸、体育、娱乐、商业等。\n 偏好的典型职业:企业家、保险代理、土木工程师、预算分析员、促销商、证券经纪人、运动商品销售员、体能训练师、警察、消防员、情报人员、旅游代理、职业运动员、教练、承包商、医疗急救技术员、新闻记者、电子游戏开发人员、房地产开发商、业务运作顾问、技术培训人员、旅游代理、手工艺人、网络经销商等。",
|
||||
i: "就业指导",
|
||||
j: '身为下属,在职业发展初期,努力接受规则和规定,学会与主管核对,而不是太过锋芒毕露和越俎代庖。\n 身为同事,你的直率有时候并非是好事,要善于观察,并能很好地适应同事习惯和情绪的变化。\n 身为上司,在讲求务实的同时,也要考虑到"事情一直以来的做事方式"或下属的心理安慰。另外,宽泛、无形的大目标要拆解程小而清晰、可衡量和可实现的目标,\n 不要一直盯着目标,重视每步的脚踏实地。'
|
||||
},
|
||||
INFJ: {
|
||||
a: "提倡者型人格",
|
||||
b: "通过毅力、独创性和做被需要和要求的事情的渴望而成功;能全身心地投入工作。沉静而有力,有责任心,关心他人。常因其坚定的原则而受到尊敬。可能因其关于如何能最好地为大众福祉服务的清晰的信念,而获得景仰和追随。",
|
||||
c: "性格优点",
|
||||
d: "你拥有生动的想象力和强烈的同情心,使你成为优秀的顾问。\n 透过现象看本质,这种近乎不可思议的能力可以充分理解人们的真实动机、感受和需求。\n 很有原则让你成为令人信服和鼓舞人心的沟通者。\n 你凭借自己的热情可以一心一意地追求自己的理想,这让很多人难以望其项背。\n 你通常旨在利用自己的优势实现更大的利益,往往会牺牲自己而取得成功。",
|
||||
e: "性格缺点",
|
||||
f: "对批评敏感,当有人挑战你的原则或价值观时,你可能会做出强烈反应,却不懂得化解。\n 你重视诚实,但也很私密。你会发现很难敞开心扉,并且对自己的挣扎感到脆弱。\n 提倡者的人格类型几乎都是理想主义的,不完美总是存在的,但你却经常为此焦头烂额。\n 你往往受到生活中有更大目标的激励,不甘平凡。\n 经常找不到一种方法来平衡自己的动力以帮助他人进行必要的自我保健和休息,有时会筋疲力尽。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域:咨询、教育、科研、文化、艺术、设计等领域。\n 偏好的典型职业:人力资源经理、特殊教育人员、健康顾问、建筑师、健康医师、培训师、职业划师、组织发展顾问、编辑、艺术指导、心理咨询师、作家、调解员、营销人员、社会科学工作者等。",
|
||||
i: "就业指导",
|
||||
j: "身为下属,如果遇到一个乐于倾听的上级就太幸福了,最好是价值观也能一致,当然,完美的工作环境并不总是可能的。遇到难相处的上级,希望你有能力应对工作的各种挑战。\n 身为同事,你可能非常受欢迎和受人尊敬,但一定不要牺牲自己的精力和幸福为代价,为那些不那么敬业的同事收拾残局。\n 身为上司,要勇于行使自己的权力,张弛有度,打成一片往往会造成工作完成度不高,还不利于树立威信。"
|
||||
},
|
||||
INFP: {
|
||||
a: "调停者型人格",
|
||||
b: "充满热忱,忠诚,但只在其对人充分了解后方才言及此类事情。关注对观念和语言的学习以及自己的个人计划。善于从事资料的汇编工作。倾向于承诺过多,然后再想方设法予以解决。为人友善,但常常因太专注于自己正在做的事情,而显得不够友善或者对外界不够关切。",
|
||||
c: "性格优点",
|
||||
d: "你的敏感,让你善解人意,对别人总是体贴和善良的。\n 你愿意分享自己生活中的美好事物,对待周围的人很慷慨。\n 你尽量不去评判任何人的信仰、生活方式或决定。你是宽容的,能够接受很多不同的声音。\n 喜欢从非传统的角度看待事物,其中,很多在作家和艺术家中得到了很好的体现。当一个想法或运动激发了你的想象力时,你会充满激情,想要全心全意地投入其中一直追求一种有意义的、充满目标的生活,并希望世界变得更美好。",
|
||||
e: "性格缺点",
|
||||
f: "你的浪漫主义有时显得不切实际,毕竟没有那么多完美的事。\n 常常感到孤独或孤立,尤其是处于一个新环境,你不愿意结交新朋友或参与到新的团体中。\n 富有想象力、内省的天性并不总是有助于提高工作效率,这使得你很难专注。情感脆弱,容易吸收他人的负面情绪或态度。\n 取悦他人可能给自己带来不必要的压力或耗尽自己的精力。经常自我批评,指责自己无用、自私或严重不足",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域:创作类、艺术类、教育、咨询辅导类、研究、宗教、保健、技术等领域。\n 偏好的典型职业:人力资源工作者、社会科学工作者、团队建设顾问、职业规划师、编辑、艺术指导、建筑师、时装设计师、记者、美术指导、口笔译人员、娱乐业人士、法律调解人、推拿医师、心理咨询师、心理学家、顾问",
|
||||
i: "就业指导",
|
||||
j: "身为下属,当面对惩罚或高度消极的老板时,你要承受其压力,尽力把事情做好。克服拖延症,好好计划自己的工作任务清单。\n 身为同事,你渴望平等和公平,往往被工作场所的等级制度扼杀。试图和谐与合作的方式,会给你带来很多益处。\n 身为上司,学会进行微观管理,设定界限、深入挖掘效率低下或提出批评。"
|
||||
},
|
||||
ESFJ: {
|
||||
a: "执行官型人格",
|
||||
b: "热心,健谈,合群,认真尽责;是“天生的合作者”、活跃的“委员会成员”。总是善待他人。在受到充分的鼓励和赞扬时表现出色。对抽象的思考和技术性的课题缺乏兴趣。主要兴趣在于那些能直接的、可见地影响人们生活的事情。",
|
||||
c: "性格优点",
|
||||
d: "你有较强的实践能力,是日常任务和日常维护的优秀管理者。\n 你具备强烈的责任感,并努力履行自己的义务,尽管有时这可能更多来自社会期望而不是内在驱动力。\n 你非常重视稳定性和安全性,并努力维持现状,这使得你能够成为任何团体的真正支柱,并给人依赖感。\n 敏感和热情的性格促使你寻求和谐并深切关心他人的感受,努力营造双赢的局面。你热衷于社交、舒适和受欢迎,擅长与人打交道,在团体中,注重强烈的“归属感’",
|
||||
e: "性格缺点",
|
||||
f: "有时候过分关注社会地位和影响力会影响你做许多决定,甚至会限制创造力和开放性。\n 因为重视社会可接受的事物,可能会表现的非常谨慎,以至于对任何非传统或主流之外的事物都持批评态度。\n 不愿意走出自己的舒适区,拒绝创新或即兴发挥。\n 对待批评自己习惯、信仰或传统的人,你会变得有防御和攻击性。如果没有听到和看到很多赞赏,你会变得很沮丧。\n 因为太过无私,通过溺爱建立自己的价值,对于人际交往不总是那么受用,可能遭到误解很反感。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域:卫生保健、教育、社会服务、咨询、商业、营销、服务业、文书等领域。\n 偏好的典型职业:销售代表、零售业主、房地产代理商、兽医、特殊教育老师、信用顾问、员工援助顾问(EAP)、体能训练师、护士、理疗师、营销经理、运动教练、口笔译人员、人力资源顾问、商品采购员、公关客户经理等,个人银行业务员,人力资源顾问,接待员,信贷顾问,秘书 。",
|
||||
i: "就业指导",
|
||||
j: "身为下属,需要克服过多的自由和即兴发挥,避免自己在工作中苦苦挣扎。保持自己在有结构、安全和指导方针的工作场所中茁壮成长。\n 身为同事,善于利用自己优秀的社交能力,能诚恳地接受批评,不过分敏感。\n 身为上司,遇到挑战自己的权威,压力和脾气也会随之而来,希望能表现地更为大度和宽宏。"
|
||||
},
|
||||
INTJ: {
|
||||
a: "建筑师型人格",
|
||||
b: "具有独创性的思想和强烈的内驱力,通常只用以达到自己的目的。在对其有吸引力的领域,无论有无帮助,他们都具有一种良好的能力来组织工作并付诸实施。对事物持怀疑态度,好批评.独立果断,时常固执己见。为了在最重要的方面上获胜,必须学会在一些不太重要的方面上作出让步",
|
||||
c: "性格优点",
|
||||
d: "你是理性杰出的代表者,擅于扩展知识和磨练理性思维能力。\n 因为坚定研究和分析得出结论,拥有足够的自信来支持自己的想法,甚至面对分歧富有创造力和自我激励的你努力以自己的方式做事。\n 你的个性是雄心勃勃且以目标为导向的。当有清晰的愿景,你会竭尽全力将这些愿景变为现实。\n 你对实物充满好奇心,因而对新想法持开放态度,特别喜欢另类或相反的观点。\n 喜欢潜入各种挑战,好奇心和决心可以在广泛的努力中取得成功。",
|
||||
e: "性格缺点",
|
||||
f: "如果你认为某些人智力低下,那你很有可能表现出傲慢的态度。重视事实而忽视感觉,同时会形成一种偏见,进而影响整体判断因过于挑剔,尤其是在思想和感情方面,但这种批评往往是不公平的。\n 讨厌盲目地跟随任何事情而不理解为什么,可能会陷入对无用的规则和规定的争论中。\n 在关系早期阶段,很难理解正在发生的事情以及如何表现,甚至质疑爱和联系的重要性。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域:商业、金融、技术、教育、健康保障、医药及专业性、创造性职业领域。\n 偏好的典型职业:知识产权律师、管理顾问、经济学者、国际银行业务职员、证券投资和金融分析专家、设计工程师、程序员、各类科学家、技术专家、财务专家、建筑师信息系统开发商、综合网络专业人员。",
|
||||
i: "就业指导",
|
||||
j: "身为下属,学会和一个事无巨细的老板相处,向老板提供反馈,充分利用他们所有\n 的创造力和独创性来扩展你的责任和发展专业知识。\n 身为同事,你宁愿独自工作,也不想团队合作或社交互动。要想取得更大的成功学会赢得同事的合作。\n 身为上司,愿意平等地对待为他们工作的人,还学要学会指导那些希望被告知该做什么的员工。"
|
||||
},
|
||||
INTP: {
|
||||
a: "逻辑学家型人格",
|
||||
b: "安静,缄默含蓄;在理论性或科学性的科目上表现尤为出色。注重逻辑,有时甚至到了吹毛求疵的地步。通常对观念和思想感兴趣,但不太喜欢聚会或闲谈。常常有十分明确限定的兴趣或爱好。需要选择从事那些自己的兴趣能够用得上且有用职业。",
|
||||
c: "性格优点",
|
||||
d: "你热衷于分析遇到的一切,从研究数据到周围人的行为。\n 因为不懈的想象力,你可以想出大多数人不会想到的创造性的、违反直觉的想法。因被好奇心和强烈的学习欲望所驱动,你倾向于接受新的想法和做事方式。总是在寻找新的追求、爱好和研究领域。关心真相,不仅仅停留在事物表面。",
|
||||
e: "性格缺点",
|
||||
f: "常常会迷失在自己的思路中,即使和其他人在一起,也会感到与其他人脱节。\n 你总是认为理性是通往更美好、更幸福世界的关键,同时低估情感、同情心、礼仪和传统等非理性价值观的重要性,往往给人以麻木不仁或不友善的印象。\n 一直在寻找要新方法,对待之前的方式总是不满意。\n 虽然你喜欢分享自己的想法但缺乏足够的耐心。完美主义,以至于永远无法做出决定。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的职业领域:计算机应用与开发、理论研究、学术领域、专业领域、创造性领域等。\n 偏好的典型职业:建筑师、计算机软件设计人员、网络专家、网站设计人员、系统分析人员、信息服务开发商、金融规划师、风险投资商、调查员、财务分析、经济学者、大学教授、知识产权律师、音乐家、神经科医师、分析心理学专家、企业金\n 融律师等。",
|
||||
i: "就业指导",
|
||||
j: "身为下属,学会适应“繁重的工作”的工作环境,当遇到的监督和限制时,能理解暂时自由的匮乏。\n 身为同事,学会社交和一起工作,你可能会从同事那里得到意识不到的更多的好处\n 身为上司,你倾向于宽容和灵活,工作中持开放态度,并且允许员工有相当大的自由度,但是前提是下属能有自觉性和较高的能力。"
|
||||
},
|
||||
ISFJ: {
|
||||
a: "守卫者型人格",
|
||||
b: "安静,友好,负责有责任感。工作投入,力图满足职责要求,热心为朋友和群体服务。周到、刻苦、准确。尽管其兴趣并不常在技术领域,但可能花时间去掌握技术方面的知识和技能。对细节和常规工作有耐心。忠诚,体贴为他人着想,关心他人的感受",
|
||||
c: "性格优点",
|
||||
d: "你喜欢和任何需要的人分享知识、经验、时间和精力,尤其是与朋友和家人,有同理心,争取共赢。\n 你做事一丝不苟、谨慎,最擅长实现自己的最终目标。你非常富有想象力,使得你非常迷人和鼓舞人心。\n 热情、忠诚和勤奋是你的标签,致力于自己的想法和组织形成情感依恋。你具备良好的实践技能,并可能创造你认为的美丽与和谐。",
|
||||
e: "性格缺点",
|
||||
f: "过于谦虚和害羞,以至于你总是拒绝表达自己的想法难以避免冲突或批评带来的任何消极情绪以致影响到个人生活过分利他主义,压抑自己的感受,往往导致很多压力和挫败感因为你总是默默地努力满足每个人的期望,造成自己的超负荷自己。因因为你高度重视传统和历史,很多情况下难以使你改变。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域:卫生保健、社会服务、教育、商业、服务、设计、艺术。\n 偏好的典型职业:人事管理员、护理医师、营养学家、家庭保健员、图书管理员室内装潢师、律师助手、数据库经理、信息总监、后勤与供应经理、业务运作顾问、工厂主管、记账员、福利院工作者、特殊教育工作者、旅馆业主、项目经理等",
|
||||
i: "就业指导",
|
||||
j: "身为下属,过分谦虚不利于职位晋升,学会和上级沟通表达自己的态度\n 身为同事,你要更倾向于发展自己的职业技能,而不是总是克制自己,强调利他主义。你往往会因为同理心会让自己背负莫须有的压力。\n 身为上司,要学会管理和冲突治理,适应人事物的变化,以不变应万变"
|
||||
},
|
||||
ISFP: {
|
||||
a: "探险家型人格",
|
||||
b: "孤独缄默,友善,敏感,对自己能力保持谦逊的态度。避免表现自己的不同意见,不把自己的意见和价值观强加于人。通常不愿意做领导或挑头,但常常是忠诚的追随者。爱享受当前的时刻,并且不想过分勉力而为,因此对于明确分配的任务和工作顺利进行感到相当放松。",
|
||||
c: "性格优点",
|
||||
d: "迷人的你,总是吸引着大家的喜爱,跟你在一起轻松而愉快。感知他人的情绪,帮助你建立和谐和善意,并尽量减少冲突。你利用创造力和洞察力来构思大胆的想法,传达人们的心声。\n 在你安静的外表之下,跳动着一颗热情的心。好奇心促使你有大胆的艺术和人文主义视野。\n 你的艺术感会让你以-有形的方式和令人惊叹的美丽展示创造力,无论是写歌、描绘情感,还是在图表中呈现统计数据。",
|
||||
e: "性格缺点",
|
||||
f: "你的言论自由往往与传统和硬性规则背道而驰,这可能会使结构更严格的学者和工作成为挑战。\n 不喜欢长期的承诺和计划,容易陷入财务困境。\n 容易紧张,活在当下,充满情感,这样会使你失去特有的魅力和创造力。 可以将小事升级为激烈的竞争,导致无法获得长期成功。\n 你的敏感性和艺术性再被量化后,会让你自尊受损,无法自拔。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的职业领域:手工艺、技工、艺术、医护、科学技术、销售、商业、服务业。\n 偏好的典型职业:护理医师、牙科保健医师、室内园艺设计师、时装设计师、客户服务代表、测量/检查人员、护士、海洋生物学者、厨师、优先顾客销售代表、行政人员、商品规划师、旅游销售经理。",
|
||||
i: "就业指导",
|
||||
j: "身为下属,学会接受微观管理,平衡自己非常规的做事方式和他人的做事方式。\n 身为同事,同龄人的交往让你更舒适,但要适应人际交往和社交互动。另外需要注意的是不要让自己的工作方式影响到其他人,因为你在情绪冲突上往往会变得过分敏感。\n 身为上司,作为管理者,你可能感觉不自然,但这不影响你的能力,保持倾听,给与下属自由,让你成为一个更受欢迎的领导者。"
|
||||
},
|
||||
ISTJ: {
|
||||
a: "物流师型人格",
|
||||
b: "严肃,安静,通过全神贯注和细致周到而赢得成功。实际,有序关注事实,有逻辑,现实,可信赖。注意把每件事情都组织得很好。做事负责。对该做的事情有主见;不顾反对和干扰,能逐步实施自己的想法。",
|
||||
c: "性格优点",
|
||||
d: "诚信是你的的核心,你非常不喜欢情绪操纵,心理游戏和令人安心的谎言。\n 你总是努力工作并专注于自己的目标,具有极大的耐心和意志力。\n 对待人和事都非常负责任,有极强的忠诚度,热衷于履行自己的承诺和职责。\n 冷静而务实是你的标签,在生活和工作中脚踏实地,擅长做出清晰、理性的决定。重视创建和执行秩序,可以有效地执行自己选择的事情,并维护结构和规则,促进可靠性。\n 你拥有自豪的知识宝库,大家喜欢称你万事通,重点关注的是事实和统计数据。",
|
||||
e: "性格缺点",
|
||||
f: "对于新想法新观念,很难将你改变,尤其是在你不支持的情况,程度较大则表现出固执。\n 因为太过于诚实,很多时候忽略了情绪,给人麻木不仁的感受。\n 喜欢规则明确的工作,导致任何规则的改变或新事物的出现可能会引起你的混乱过于墨守成规不知变通。\n 对自己的过分依赖,导致经常从自身找原因,从而不合理地责备自己,把责任推到自己身上。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的职业领域:商业、金融、小学教育、法律、应用科学、卫生保健、服务、技术类。\n 偏好的典型职业:气象学者、数据库管理、保健管理员、财务工作者、后勤经理、信息总监、预算分析员、医学研究、检查员、农学家、保健医生、生物医学研究者、办公室管理人员、信用分析师、审计员、证券经纪人、侦探,地质学家,工程技术人员",
|
||||
i: "就业指导",
|
||||
j: "身为下属,成为多面手自然获得领导器重,如果负担过重或是有更好的人来胜任的话,要适当放弃部分责任对待自己不要过分苛责,对待批评要理性看待,不可太过敏感\n 身为同事,尊重不同的声音,尝试接受创新、头脑风暴以及理论和新想法的冲击重视合作。\n 身为上司,给与下属更多的发挥空间,适当调整规范,容忍轻微的错误和规则的破坏,不要抓得太细,具有格局观。"
|
||||
},
|
||||
ISTP: {
|
||||
a: "鉴赏家型人格",
|
||||
b: "冷静的旁观者,安静,寡言,以超然的好奇心、求知欲观察和分析生活,时有出人意料的独特的幽默言行。通常对客观规律、机械事物的工作原理、因果关系感兴趣。因为他们认为浪费精力是缺乏效率的,所以只有在他们认为必要的时候才会表达意见或发挥自己的影响。",
|
||||
c: "性格优点",
|
||||
d: "你性格开朗,心地善良,很少感到压力过大,活在当下,顺其自然,是个乐天派。\n 在实用的东西、机械和工艺方面,你富有想象力,新颖的想法很容易出现。\n 你可以将自发性与逻辑相结合,毫不费力地转换思维方式以适应新情况,从而使你变得灵活而多才多艺。\n 你的灵活性总是能在做好优先级的情况发挥最大的能量。\n 你往往能成为危机处理专家,这种创造力和自发性在危机情况下是天生的。",
|
||||
e: "性格缺点",
|
||||
f: "喜欢随波逐流,不希望别人改变自己的习惯、生活方式或想法。往往缺乏同理心和情感敏感性,显得你麻木不仁。\n 你是真正的内向者,将个人事务保密,而且通常更喜欢沉默而不是闲聊。喜欢新奇事物,但又容易感到无聊和不长久。\n 承诺对你貌似是一个特殊挑战,在恋爱关系上,这种品质就不那么受欢迎了。\n 因为喜欢冒险,你常常会升级冲突和危险。",
|
||||
g: "职业偏好",
|
||||
h: "偏好的工作领域:服务、技术、刑侦、健康护理、商业、金融、手工、贸易等。\n 偏好的典型职业:电脑程序员、软件开发商、医疗急救技术员、商业精英、商务专员、警察、武器专家、消防员、海关验货员、体育器材/用品销售商、海洋生物学者、经济学者、证券分析员、银行职员、管理顾问、生理治疗专家、药剂师、园艺服务人员、驯兽员、技术培训人员等。",
|
||||
i: "就业指导",
|
||||
j: "作为下属,你更喜欢轻松而随和,试图接受严格的规则、指导方针和正式协议。在完成任务前,尽量有个完整的策略,少些随机性。\n 身为同事,对于自己直率的沟通方式,要懂得适可而止,不然会导致误解或伤害感情。\n 身为上司,理解下属的健谈或情绪表达,能适当的给出相应的反馈,避免给人以一种冷漠和无视的感觉。"
|
||||
}
|
||||
},
|
||||
onShareAppMessage: function() {},
|
||||
onShareTimeline: function() {},
|
||||
onLoad: function(n) {
|
||||
var s = this;
|
||||
console.log("@@@@@@", n), this.setData({
|
||||
vsA: n.vsA,
|
||||
vsB: n.vsB,
|
||||
vsC: n.vsC,
|
||||
vsD: n.vsD,
|
||||
ty: n.a
|
||||
}), n.vsA && (wx.showLoading({
|
||||
title: "报告生成中"
|
||||
}), setTimeout(function() {
|
||||
s.setData({
|
||||
isCanDraw: !0
|
||||
});
|
||||
}, 2e3), setTimeout(function() {
|
||||
wx.hideLoading({
|
||||
success: function(n) {}
|
||||
});
|
||||
}, 2200));
|
||||
var b = this, p = n.a;
|
||||
switch (this.setData({
|
||||
type: p
|
||||
}), p) {
|
||||
case "ENFJ":
|
||||
b.setData({
|
||||
newInfo: b.data.ENFJ,
|
||||
info: "1.热忱、易感应及负责任的--具能鼓励他人的领导风格。\n 2.对别人所想或希求会表达真正关切且切实用心去处理。\n 3.能怡然且技巧性地带领团体讨论或演示文稿提案。\n 4.爱交际、受欢迎及富同情心。\n 5.对称许及批评很在意。\n 6.喜欢带引别人且能使别人或团体发挥潜能。 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ENFP":
|
||||
b.setData({
|
||||
newInfo: b.data.ENFP,
|
||||
info: "1.充满热忱、活力充沛、聪明的、富想象力的,视生命充满机会但期能得自他人肯定与支持。\n 2.几乎能达成所有有兴趣的事。\n 3.对难题很快就有对策并能对有困难的人施予援手。\n 4.依赖能改善的能力而无须预作规划准备。\n 5.为达目的常能找出强制自己为之的理由。\n 6.即兴执行者。 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ENTJ":
|
||||
b.setData({
|
||||
newInfo: b.data.ENTJ,
|
||||
info: "1.坦诚、具决策力的活动领导者。\n 2.长于发展与实施广泛的系统以解决组织的问题。\n 3.专精于具内涵与智能的谈话如对公众演讲。\n 4.乐于经常吸收新知且能广开信息管道。\n 5.易生过度自信,会强于表达自已创见。\n 6.喜于长程策划及目标设定 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ENTP":
|
||||
b.setData({
|
||||
newInfo: b.data.ENTP,
|
||||
info: "1.反应快、聪明、长于多样事务。\n 2.具激励伙伴、敏捷及直言讳专长。\n 3.会为了有趣对问题的两面加予争辩。\n 4.对解决新及挑战性的问题富有策略,但会轻忽或厌烦经常的任务与细节。\n 5.兴趣多元,易倾向于转移至新生的兴趣。\n 6.对所想要的会有技巧地找出逻辑的理由。\n 7.长于看清础他人,有智能去解决新或有挑战的问题 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ESFJ":
|
||||
b.setData({
|
||||
newInfo: b.data.ESFJ,
|
||||
info: "1.诚挚、爱说话、合作性高、受 欢迎、光明正大 的—天生的 合作者及活跃的组织成员。\n 2.重和谐且长于创造和谐。\n 3.常作对他人有益事务。\n 4.给予鼓励及称许会有更佳工作成效。\n 5.最有兴趣于会直接及有形影响人们生活的事务。\n 6.喜欢与他人共事去精确且准时地完成工作。 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ESFP":
|
||||
b.setData({
|
||||
newInfo: b.data.ESFP,
|
||||
info: "1.外向、和善、接受性、乐于分享喜乐予他人。\n 2.喜欢与他人一起行动且促成事件发生,在学习时亦然。\n 3.知晓事件未来的发展并会热列参与。\n 5.最擅长于人际相处能力及具备完备常识,很有弹性能立即 适应他人与环境。\n 6.对生命、人、物质享受的热爱者。 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ESTJ":
|
||||
b.setData({
|
||||
newInfo: b.data.ESTJ,
|
||||
info: "1.务实、真实、事实倾向,具企业或技术天份。\n 2.不喜欢抽象理论;最喜欢学习可立即运用事理。\n 3.喜好组织与管理活动且专注以最有效率方式行事以达致成效。\n 4.具决断力、关注细节且很快作出决策—优秀行政者。\n 5.会忽略他人感受。\n 6.喜作领导者或企业主管。 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ESTP":
|
||||
b.setData({
|
||||
newInfo: b.data.ESTP,
|
||||
info: "1.擅长现场实时解决问题—解决问题者。\n 2.喜欢办事并乐于其中及过程。\n 3.倾向于喜好技术事务及运动,交结同好友人。\n 4.具适应性、容忍度、务实性;投注心力于会很快具 成效工作。\n 5.不喜欢冗长概念的解释及理论。\n 6.最专精于可操作、处理、分解或组合的真实事务。 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "INFJ":
|
||||
b.setData({
|
||||
newInfo: b.data.INFJ,
|
||||
info: "1.因为坚忍、创意及必须达成的意图而能成功。\n 2.会在工作中投注最大的努力。\n 3.默默强力的、诚挚的及用心的关切他人。\n 4.因坚守原则而受敬重。\n 5.提出造福大众利益的明确远景而为人所尊敬与追随。\n 6.追求创见、关系及物质财物的意义及关联。\n 7.想了解什么能激励别人及对他人具洞察力。\n 8.光明正大且坚信其价值观。\n 9.有组织且果断地履行其愿景。 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "INFP":
|
||||
b.setData({
|
||||
newInfo: b.data.INFP,
|
||||
info: "1安静观察者,具理想性与对其价值观及重要之人具忠诚心。\n 2.希外在生活形态与内在价值观相吻合。\n 3.具好奇心且很快能看出机会所在。常担负开发创意的触媒者 。\n 4.除非价值观受侵犯,行事会具弹性、适应力高且承受力强。\n 5.具想了解及发展他人潜能的企图。想作太多且作事全神贯注 。\n 6.对所处境遇及拥有不太在意。\n 7.具适应力、有弹性除非价值观受到威胁。 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "INTJ":
|
||||
b.setData({
|
||||
newInfo: b.data.INTJ,
|
||||
info: "1.具强大动力与本意来达成目的与创意—固执顽固者。\n 2.有宏大的愿景且能快速在众多外界事件中找出有意义的模范。\n 3.对所承负职务,具良好能力于策划工作并完成。\n 4.具怀疑心、挑剔性、独立性、果决,对专业水准及绩效要求高。 \n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "INTP":
|
||||
b.setData({
|
||||
newInfo: b.data.INTP,
|
||||
info: "1.安静、自持、弹性及具适应力。\n 2.特别喜爱追求理论与科学事理。\n 3.习于以逻辑及分析来解决问题—问题解决者。\n 4.最有兴趣于创意事务及特定工作,对聚会与闲聊无 大兴趣。\n 5.追求可发挥个人强烈兴趣的生涯。\n 6.追求发展对有兴趣事务之逻辑解释。\n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ISFJ":
|
||||
b.setData({
|
||||
newInfo: b.data.ISFJ,
|
||||
info: "1.安静、和善、负责任且有良心。\n 2.行事尽责投入。\n 3.安定性高,常居项目工作或团体之安定力量。\n 4.愿投入、吃苦及力求精确。\n 5.兴趣通常不在于科技方面。对细节事务有耐心。\n 6.忠诚、考虑周到、知性且会关切他人感受。\n 7.致力于创构有序及和谐的工作与家庭环境。\n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ISFP":
|
||||
b.setData({
|
||||
newInfo: b.data.ISFP,
|
||||
info: "1.羞怯的、安宁和善地、敏感的、亲切的、且行事谦虚。\n 2.喜于避开争论,不对他人强加已见或价值观。\n 3.无意于领导却常是忠诚的追随者。\n 4.办事不急躁,安于现状无意于以过度的急切或努力破坏现况,且非成果导向。\n 5.喜欢有自有的空间及照自订的时程办事。\n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ISTJ":
|
||||
b.setData({
|
||||
newInfo: b.data.ISTJ,
|
||||
info: "1.严肃、安静、藉由集中心 志与全力投入、及可被信赖获致成功。\n 2.行事务实、有序、实际 、 逻辑、真实及可信赖\n 3.十分留意且乐于任何事(工作、居家、生活均有良好组织及有序。\n 4.负责任。\n 5.照设定成效来作出决策且不畏阻挠与闲言会坚定为之。\n 6.重视传统与忠诚。\n 7.传统性的思考者或经理。\n "
|
||||
});
|
||||
break;
|
||||
|
||||
case "ISTP":
|
||||
b.setData({
|
||||
newInfo: b.data.ISTP,
|
||||
info: "1.冷静旁观者—安静、预留余地、弹性及会以无偏见的好奇心与未预期原始的幽默观察与分析。\n 2.有兴趣于探索原因及效果,技术事件是为何及如何运作且使用逻辑的原理组构事实、重视效能。\n 3.擅长于掌握问题核心及找出解决方式。\n 4.分析成事的缘由且能实时由大量资料中找出实际问题的核心。\n "
|
||||
});
|
||||
}
|
||||
},
|
||||
createShareImage: function() {
|
||||
this.setData({
|
||||
isCanDraw: !this.data.isCanDraw
|
||||
});
|
||||
},
|
||||
onReady: function() {},
|
||||
onShow: function() {
|
||||
getApp().getTotal();
|
||||
var n = wx.createAnimation({
|
||||
duration: 500,
|
||||
timingFunction: "linear"
|
||||
});
|
||||
this.animation = n;
|
||||
var s = !0;
|
||||
setInterval(function() {
|
||||
s ? (n.scale(1, 1).step(), s = !s) : (n.scale(.8, .8).step(), s = !s), this.setData({
|
||||
animation: n.export()
|
||||
});
|
||||
}.bind(this), 650);
|
||||
},
|
||||
onHide: function() {},
|
||||
onUnload: function() {},
|
||||
onPullDownRefresh: function() {},
|
||||
onReachBottom: function() {}
|
||||
}, "onShareAppMessage", function() {}));
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"navigationBarTitleText": "",
|
||||
"usingComponents": {
|
||||
"share-box": "/components/shareBox/index"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
<view class="xiaogj" style="margin-bottom:17px;">
|
||||
<view style="display: flex;flex-direction: row;">
|
||||
<image mode="widthFix" src="../img/mbti.svg" style="margin-top: 6rpx;margin-left: 26rpx;"></image>
|
||||
</view>
|
||||
<label class="btwz">▎ {{type}}类型介绍</label>
|
||||
<view class="dahezia" style="border-style:none solid none solid;border-width: 0.5rpx 5rpx 0 5rpx;">
|
||||
<view>
|
||||
<view class="flex-row" style="display: flex;flex-direction: row;justify-content:space-around">
|
||||
<image mode="aspectFill" src="../img/{{type}}.svg" style="width: 50%;padding: 3% 3% 0 3%;"></image>
|
||||
<view style="width: 50%;">
|
||||
<view style="font-size:larger;padding-top: 16rpx;color: #2c67c5;">{{type}}</view>
|
||||
<view style="font-size:medium;padding-top: 16rpx;color: #2c67c5;">{{newInfo.a}}</view>
|
||||
<view style="padding-top: 16rpx;font-size: x-small;line-height: 39rpx;">
|
||||
<text decode="{{true}}"> </text>{{newInfo.b}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="font-size:larger;padding-top: -36rpx;color: #2c67c5;">{{newInfo.c}}</view>
|
||||
<text decode="{{true}}" style="font-size: small;padding-top: 16rpx;">
|
||||
<text decode="{{true}}"> </text>{{newInfo.d}}</text>
|
||||
<view style="font-size:larger;padding-top: 16rpx;color: #2c67c5;">{{newInfo.e}}</view>
|
||||
<text decode="{{true}}" style="font-size: small;padding-top: 16rpx;">
|
||||
<text decode="{{true}}"> </text>{{newInfo.f}}</text>
|
||||
|
||||
<view style="height: 66rpx;"></view>
|
||||
<view style="font-size:larger;padding-top: 16rpx;color: #2c67c5;">{{newInfo.g}}</view>
|
||||
<text decode="{{true}}" style="font-size: small;padding-top: 16rpx;">
|
||||
<text decode="{{true}}"> </text>{{newInfo.h}}</text>
|
||||
<view style="font-size:larger;padding-top: 16rpx;color: #2c67c5;">{{newInfo.i}}</view>
|
||||
<text decode="{{true}}" style="font-size: small;padding-top: 16rpx;">
|
||||
<text decode="{{true}}"> </text>{{newInfo.j}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<label class="btwz">▎ {{type}}结果分析</label>
|
||||
<view class="dahezi" style="border-style: none solid;border-width: 5rpx;">
|
||||
<view wx:for="{{cla}}" wx:key="index">
|
||||
<navigator class="lb" role="navigation" url="../info/index?a={{type}}&b={{index+1}}">
|
||||
<view> {{item}} </view>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
<view style="height: 56rpx;"></view>
|
||||
|
||||
<view style="height: 106rpx;"></view>
|
||||
</view>
|
||||
<movable-area bindtap="createShareImage" class="movable-area">
|
||||
<movable-view class="movable-view" direction="all" x="{{windowWidth}}" y="{{windowHeight}}">
|
||||
<view style="text-align: center;">
|
||||
<image src="../img/a.png" style="width: 70px;height: 70px;"></image>
|
||||
</view>
|
||||
</movable-view>
|
||||
</movable-area>
|
||||
<share-box bind:initData="createShareImage" info="{{vsA?newInfo.b:infosub}}" isCanDraw="{{isCanDraw}}" pi="{{ty}}" vsA="{{vsA}}" vsB="{{vsB}}" vsC="{{vsC}}" vsD="{{vsD}}"></share-box>
|
|
@ -0,0 +1,94 @@
|
|||
.das {
|
||||
border-bottom: 2px solid #fa6f1e;
|
||||
margin: 2% 5%;
|
||||
text-align: center;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.bg {
|
||||
width: 76%;
|
||||
}
|
||||
|
||||
.logo {
|
||||
border-radius: 6rpx;
|
||||
margin-bottom: 6px;
|
||||
width: 86px;
|
||||
}
|
||||
|
||||
.xiaogj {
|
||||
margin: 0 5% 2%;
|
||||
}
|
||||
|
||||
.lb {
|
||||
box-shadow: 3px 3px 6px #d1d9e6,-3px -3px 6px #fff;
|
||||
}
|
||||
|
||||
.lb,.lb1 {
|
||||
color: #364763;
|
||||
display: inline-block;
|
||||
font-size: 29rpx;
|
||||
height: 99rpx;
|
||||
line-height: 99rpx;
|
||||
margin: 27rpx 12rpx 6rpx 27rpx;
|
||||
text-align: center;
|
||||
width: 260rpx;
|
||||
}
|
||||
|
||||
.btwz,.lb,.lb1 {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.btwz {
|
||||
color: #2c67c5;
|
||||
display: block;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
margin-bottom: 16rpx;
|
||||
margin-top: 16rpx;
|
||||
padding: 2px 0;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.dahezi {
|
||||
box-shadow: inset 5px 5px 10px #d1d9e6,inset -5px -5px 10px #fff;
|
||||
}
|
||||
|
||||
.dahezi,.dahezia {
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
font-family: PingFang;
|
||||
font-size: 17px;
|
||||
font-style: normal;
|
||||
padding: 9px 4.36%;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.dahezia {
|
||||
box-shadow: inset 1px 5px 1px #ecf0f3,inset -5px -5px 10px #fff;
|
||||
}
|
||||
|
||||
page {
|
||||
background: #ecf0f3;
|
||||
}
|
||||
|
||||
.movable-area {
|
||||
bottom: 0;
|
||||
height: 46%;
|
||||
left: 0;
|
||||
pointer-events: none;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.movable-view {
|
||||
background: #d3e0e4;
|
||||
border-radius: 35px;
|
||||
height: 70px;
|
||||
pointer-events: auto;
|
||||
width: 70px;
|
||||
}
|