newsee-cli 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.en.md +36 -36
  2. package/README.md +36 -36
  3. package/bin/init.js +1 -1
  4. package/micro_11111/.editorconfig +10 -0
  5. package/micro_11111/.eslintignore +9 -0
  6. package/micro_11111/.eslintrc.js +33 -0
  7. package/micro_11111/.postcssrc.js +21 -0
  8. package/micro_11111/.prettierignore +10 -0
  9. package/micro_11111/.prettierrc +12 -0
  10. package/micro_11111/.stylelintignore +8 -0
  11. package/micro_11111/.stylelintrc.json +303 -0
  12. package/micro_11111/README.md +3 -0
  13. package/micro_11111/babel.config.js +34 -0
  14. package/micro_11111/env.config.js +62 -0
  15. package/micro_11111/env.param.config.js +112 -0
  16. package/micro_11111/favicon.ico +0 -0
  17. package/micro_11111/index.html +28 -0
  18. package/micro_11111/jsconfig.json +25 -0
  19. package/micro_11111/package.json +60 -0
  20. package/micro_11111/src/App.vue +32 -0
  21. package/micro_11111/src/Layout/Layout.vue +28 -0
  22. package/micro_11111/src/UI/index.js +1 -0
  23. package/micro_11111/src/assets/iconfont/DIN.Alternate.Bold.ttf +0 -0
  24. package/micro_11111/src/assets/layout/empty.png +0 -0
  25. package/micro_11111/src/assets/layout/prelogin-header.png +0 -0
  26. package/micro_11111/src/assets/trigger/close.png +0 -0
  27. package/micro_11111/src/assets/trigger/company.png +0 -0
  28. package/micro_11111/src/assets/trigger/department.png +0 -0
  29. package/micro_11111/src/assets/trigger/left-arrow.png +0 -0
  30. package/micro_11111/src/assets/trigger/pwd.png +0 -0
  31. package/micro_11111/src/assets/trigger/right-arrow-gray.png +0 -0
  32. package/micro_11111/src/assets/trigger/search-gray.png +0 -0
  33. package/micro_11111/src/assets/trigger/user.png +0 -0
  34. package/micro_11111/src/assets/trigger/weixin-work.png +0 -0
  35. package/micro_11111/src/components/Selector/Selector.vue +254 -0
  36. package/micro_11111/src/components/Selector/components/abyss.vue +308 -0
  37. package/micro_11111/src/components/Selector/components/search.vue +307 -0
  38. package/micro_11111/src/config.js +20 -0
  39. package/micro_11111/src/main.js +14 -0
  40. package/micro_11111/src/mixins/base.js +57 -0
  41. package/micro_11111/src/mixins/extension/app.js +80 -0
  42. package/micro_11111/src/mixins/extension/cryptoPassWord.js +15 -0
  43. package/micro_11111/src/mixins/extension/wx-relative.js +42 -0
  44. package/micro_11111/src/mixins/index.js +5 -0
  45. package/micro_11111/src/router/index.js +12 -0
  46. package/micro_11111/src/router/routes.js +55 -0
  47. package/micro_11111/src/service/common.js +72 -0
  48. package/micro_11111/src/service/preload.js +19 -0
  49. package/micro_11111/src/service/selector.js +114 -0
  50. package/micro_11111/src/store/getters.js +10 -0
  51. package/micro_11111/src/store/index.js +18 -0
  52. package/micro_11111/src/store/modules/Account.js +27 -0
  53. package/micro_11111/src/store/modules/Base.js +38 -0
  54. package/micro_11111/src/style/index.scss +3 -0
  55. package/micro_11111/src/style/mixins/mixins.scss +11 -0
  56. package/micro_11111/src/style/public.scss +32 -0
  57. package/micro_11111/src/style/reset.scss +814 -0
  58. package/micro_11111/src/utils/core/create-basic.js +16 -0
  59. package/micro_11111/src/utils/core/create.js +13 -0
  60. package/micro_11111/src/utils/core/reprefix.js +8 -0
  61. package/micro_11111/src/utils/fetch/fetch.js +66 -0
  62. package/micro_11111/src/utils/fetch/fetchDataType.js +53 -0
  63. package/micro_11111/src/utils/index.js +0 -0
  64. package/micro_11111/src/utils/library/aes.js +834 -0
  65. package/micro_11111/src/utils/library/crypto.js +130 -0
  66. package/micro_11111/src/utils/library/date.js +62 -0
  67. package/micro_11111/src/utils/library/debounce.js +34 -0
  68. package/micro_11111/src/utils/library/event.js +45 -0
  69. package/micro_11111/src/utils/library/image.js +14 -0
  70. package/micro_11111/src/utils/library/stringcover.js +9 -0
  71. package/micro_11111/src/utils/library/urlhandle.js +14 -0
  72. package/micro_11111/src/utils/library/video.js +156 -0
  73. package/micro_11111/src/views/Home/Home.vue +23 -0
  74. package/micro_11111/src/views/Login/Login.vue +65 -0
  75. package/micro_11111/src/views/Login/LoginApp.vue +72 -0
  76. package/micro_11111/src/views/Login/LoginThirdApp.vue +77 -0
  77. package/micro_11111/src/views/Login/LoginThirdParty.vue +59 -0
  78. package/micro_11111/src/views/Prelogin/index.vue +199 -0
  79. package/micro_11111/static/loadBuffer/loadBuffer.js +19 -0
  80. package/micro_11111/static/loadBuffer/loading.gif +0 -0
  81. package/micro_11111/tag.js +19 -0
  82. package/package.json +46 -46
@@ -0,0 +1,80 @@
1
+ export default {
2
+ data() {
3
+ return {
4
+ show: false,
5
+ };
6
+ },
7
+ methods: {
8
+ setupWebViewJavascriptBridge(callback) {
9
+ if (window.WebViewJavascriptBridge) {
10
+ return callback(WebViewJavascriptBridge);
11
+ }
12
+ if (window.WVJBCallbacks) {
13
+ return window.WVJBCallbacks.push(callback);
14
+ }
15
+ window.WVJBCallbacks = [callback];
16
+ var WVJBIframe = document.createElement('iframe');
17
+ WVJBIframe.style.display = 'none';
18
+ WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';
19
+ document.documentElement.appendChild(WVJBIframe);
20
+ setTimeout(function () {
21
+ document.documentElement.removeChild(WVJBIframe);
22
+ }, 0);
23
+ },
24
+ connectWebViewJavascriptBridge(callback) {
25
+ if (window.WebViewJavascriptBridge) {
26
+ callback(WebViewJavascriptBridge);
27
+ } else {
28
+ document.addEventListener(
29
+ 'WebViewJavascriptBridgeReady',
30
+ function () {
31
+ callback(WebViewJavascriptBridge);
32
+ },
33
+ false
34
+ );
35
+ }
36
+ },
37
+ initJsBridge() {
38
+ if (!this.isIOS) {
39
+ //安卓端 初始化jsbridge
40
+ this.connectWebViewJavascriptBridge(function (bridge) {
41
+ bridge.init(function (message, responseCallback) {
42
+ var data = {
43
+ 'Javascript Responds': '测试中文!',
44
+ };
45
+ if (responseCallback) {
46
+ responseCallback(data);
47
+ }
48
+ });
49
+ bridge.registerHandler('functionInJs', function (data, responseCallback) {
50
+ if (responseCallback) {
51
+ var responseData = 'Javascript Says Right back aka!';
52
+ responseCallback(responseData);
53
+ }
54
+ });
55
+ });
56
+
57
+ window.WebViewJavascriptBridge.callHandler('getProConfig', { param: '中文测试' }, function (
58
+ responseData
59
+ ) {
60
+ response = JSON.parse(responseData);
61
+ for (var key in response.responseData) {
62
+ window.localStorage[key] = response.responseData[key];
63
+ }
64
+ });
65
+ window.WebViewJavascriptBridge.callHandler(
66
+ 'debug',
67
+ { param: window.localStorage.toString() },
68
+ function (responseData) { }
69
+ );
70
+ } else if (this.isIOS) {
71
+ //iso端 获取必要参数
72
+ let iOSInfo = window.iOSInfo;
73
+ for (var key in iOSInfo) {
74
+ window.localStorage[key] = iOSInfo[key];
75
+ }
76
+ this.setupWebViewJavascriptBridge(function (bridge) { });
77
+ }
78
+ },
79
+ },
80
+ };
@@ -0,0 +1,15 @@
1
+ import { encryptBase64 } from '../../utils/library/crypto';
2
+
3
+ export default {
4
+ data() {
5
+ return {
6
+ cryptoKey: '0123456789012345', //crypto key
7
+ };
8
+ },
9
+ methods: {
10
+ //set crypto by Pass64
11
+ getCryptoBybase64(password) {
12
+ return encryptBase64(password, this.cryptoKey);
13
+ },
14
+ },
15
+ };
@@ -0,0 +1,42 @@
1
+ import { wxAuth } from '../../service/common';
2
+ import wx from 'weixin-js-sdk';
3
+
4
+ export default {
5
+ data() {
6
+ return {};
7
+ },
8
+ methods: {
9
+ // 获取微信参数
10
+ getWxParams(cb) {
11
+ let wxParams;
12
+ try {
13
+ wxParams = JSON.parse(localStorage.getItem('wxWarehouseParams'));
14
+ } catch {
15
+ wxParams = null;
16
+ }
17
+ if (wxParams && new Date().getTime() < wxParams.expireTime - 5 * 60 * 1000) {
18
+ cb && cb(wxParams);
19
+ } else {
20
+ wxAuth(location.href.split('#')[0]).then(res => {
21
+ localStorage.setItem('wxWarehouseParams', JSON.stringify(res));
22
+ cb && cb(res);
23
+ });
24
+ }
25
+ },
26
+
27
+ // 初始化微信配置
28
+ initWxConfig() {
29
+ this.getWxParams(obj => {
30
+ wx.config({
31
+ beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
32
+ debug: false, // 开启调试模式,调用的所有api的返回值会在在PC端打印(客户端alert)出来
33
+ appId: obj.appId, // 必填,企业微信的corpID
34
+ timestamp: obj.timestamp, // 必填,生成签名的时间戳
35
+ nonceStr: obj.nonceStr, // 必填,生成签名的随机串
36
+ signature: obj.signature, // 必填,签名,见附录1
37
+ jsApiList: ['scanQRCode'], // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
38
+ });
39
+ });
40
+ },
41
+ },
42
+ };
@@ -0,0 +1,5 @@
1
+ import base from './base';
2
+
3
+ export default {
4
+ mixins: [base],
5
+ };
@@ -0,0 +1,12 @@
1
+ import Vue from 'vue';
2
+ import Router from 'vue-router';
3
+ import routes from './routes';
4
+
5
+ Vue.use(Router);
6
+
7
+ const router = new Router({
8
+ scrollBehavior: () => ({ y: 0 }),
9
+ routes,
10
+ });
11
+
12
+ export default router;
@@ -0,0 +1,55 @@
1
+ const Layout = resolve => require(['../Layout/Layout.vue'], resolve);
2
+ import { iniView } from '../config';
3
+
4
+ export default [
5
+ { path: '/', redirect: iniView },
6
+ { path: '*', redirect: iniView },
7
+ {
8
+ path: '',
9
+ component: Layout,
10
+ children: [
11
+ //通用登录页
12
+ {
13
+ name: 'prelogin',
14
+ path: 'prelogin',
15
+ component: () => import('../views/Prelogin/index.vue'),
16
+ meta: { title: '通用登录页', auth: true, key: 'prelogin' },
17
+ },
18
+ //登录页
19
+ {
20
+ name: 'login',
21
+ path: 'login',
22
+ component: () => import('../views/Login/Login.vue'),
23
+ meta: { title: '登录页', auth: true, key: 'login' },
24
+ },
25
+ //第三方登录页
26
+ {
27
+ name: 'loginThirdParty',
28
+ path: 'loginThirdParty',
29
+ component: () => import('../views/Login/LoginThirdParty.vue'),
30
+ meta: { title: '第三方登录页', auth: true, key: 'loginThirdParty' },
31
+ },
32
+ //App登录页
33
+ {
34
+ name: 'loginApp',
35
+ path: 'loginApp',
36
+ component: () => import('../views/Login/LoginApp.vue'),
37
+ meta: { title: 'App登录页', auth: true, key: 'loginApp' },
38
+ },
39
+ //第三方App登录页
40
+ {
41
+ name: 'loginThirdApp',
42
+ path: 'loginThirdApp',
43
+ component: () => import('../views/Login/LoginThirdApp.vue'),
44
+ meta: { title: '第三方App登录页', auth: true, key: 'loginThirdApp' },
45
+ },
46
+ //主页
47
+ {
48
+ name: 'home',
49
+ path: 'home',
50
+ component: () => import('../views/Home/Home.vue'),
51
+ meta: { title: '主页', auth: true, key: 'home' },
52
+ },
53
+ ],
54
+ },
55
+ ];
@@ -0,0 +1,72 @@
1
+ import { dataFilter } from '../utils/fetch/fetchDataType';
2
+ import fetch from '../utils/fetch/fetch';
3
+
4
+ /**
5
+ * 登录
6
+ * @param query
7
+ */
8
+ export function login(query) {
9
+ dataFilter(query);
10
+ return fetch({
11
+ url: '/api/oauth/remote/call',
12
+ method: 'post',
13
+ data: query,
14
+ headers: {
15
+ 'Content-Type': 'application/json',
16
+ },
17
+ });
18
+ }
19
+
20
+ /**
21
+ * 获取微信jssdk授权参数
22
+ * @param query
23
+ */
24
+ export function wxAuth(query) {
25
+ dataFilter(query);
26
+ return fetch({
27
+ method: 'post',
28
+ url: '/api/warehouse/wechat/getSingleInfo',
29
+ data: query,
30
+ headers: {
31
+ 'Content-Type': 'application/json',
32
+ },
33
+ });
34
+ }
35
+
36
+ /**
37
+ * 上传文件
38
+ * @param query
39
+ */
40
+ export function uploadFiles(query) {
41
+ dataFilter(query);
42
+ return fetch({
43
+ url: '/api/zuul/fastdfs/fastdfs/upload-files-standard',
44
+ method: 'post',
45
+ data: query,
46
+ });
47
+ }
48
+
49
+
50
+ // 删除上传的文件
51
+ export function deleteUploadFileByFileId(query) {
52
+ dataFilter(query);
53
+ return fetch({
54
+ url: '/api/fastdfs/fastdfs/delete-file-standard',
55
+ method: 'get',
56
+ params: query,
57
+ });
58
+ }
59
+
60
+
61
+ /**
62
+ * userId解密
63
+ * @param query
64
+ */
65
+ export function decryptUserId(query) {
66
+ dataFilter(query);
67
+ return fetch({
68
+ url: '/equipAPI/qiwei/decryptUserInfo',
69
+ method: 'get',
70
+ params: query,
71
+ });
72
+ }
@@ -0,0 +1,19 @@
1
+ import { dataFilter } from '../utils/fetch/fetchDataType';
2
+ import fetch from '../utils/fetch/fetch';
3
+ import { headers } from '../config';
4
+
5
+ /**
6
+ * 登录
7
+ * @param query
8
+ */
9
+ export function login(query) {
10
+ dataFilter(query);
11
+ return fetch({
12
+ url: '/api/oauth/login',
13
+ method: 'post',
14
+ params: query,
15
+ headers: {
16
+ ...headers,
17
+ },
18
+ });
19
+ }
@@ -0,0 +1,114 @@
1
+ import { dataFilter } from '../utils/fetch/fetchDataType';
2
+ import fetch from '../utils/fetch/fetch';
3
+ import { headers } from '../config';
4
+
5
+ //获取员工组织详情
6
+ export function getUserDetail(query) {
7
+ dataFilter(query);
8
+ return fetch({
9
+ url: '/api/system/user/detail-user-wygl',
10
+ method: 'get',
11
+ params: query,
12
+ headers: {
13
+ ...headers,
14
+ funcid: 'newsee-nsservice-root-funcid-mywaitlist',
15
+ },
16
+ });
17
+ }
18
+ //获取根节点
19
+ export function getRoot(query) {
20
+ dataFilter(query);
21
+ return fetch({
22
+ url: '/api/system/organization/get-orgtree-form-standard',
23
+ method: 'get',
24
+ params: query,
25
+ headers: {
26
+ ...headers,
27
+ funcid: 'newsee-nsservice-root-funcid-mywaitlist',
28
+ },
29
+ });
30
+ }
31
+ //获取子节点部门
32
+ export function getChildrenDept(query) {
33
+ dataFilter(query);
34
+ return fetch({
35
+ url: '/api/system/organization/get-child-organization-form-standard',
36
+ method: 'get',
37
+ params: query,
38
+ headers: {
39
+ ...headers,
40
+ funcid: 'newsee-nsservice-root-funcid-mywaitlist',
41
+ },
42
+ });
43
+ }
44
+ //获取子节点员工
45
+ export function getChildrenUser(query) {
46
+ dataFilter(query);
47
+ return fetch({
48
+ url: '/api/system/user/list-user-by-organizationId',
49
+ method: 'get',
50
+ params: query,
51
+ headers: {
52
+ ...headers,
53
+ funcid: 'newsee-nsservice-root-funcid-mywaitlist',
54
+ },
55
+ });
56
+ }
57
+ //搜索员工
58
+ export function getUserList(query) {
59
+ dataFilter(query);
60
+ return fetch({
61
+ url: '/api/system/user/getUserListByUserName',
62
+ method: 'post',
63
+ data: query,
64
+ headers: {
65
+ ...headers,
66
+ 'Content-Type': 'multipart/form-data',
67
+ funcid: 'newsee-nsservice-root-funcid-mywaitlist',
68
+ },
69
+ });
70
+ }
71
+
72
+ //搜索部门
73
+ export function getDeptList(query) {
74
+ dataFilter(query);
75
+ return fetch({
76
+ url: '/api/system/organization/organization-tree-search-bypage',
77
+ method: 'get',
78
+ params: query,
79
+ headers: {
80
+ ...headers,
81
+ funcid: 'newsee-nsservice-root-funcid-mywaitlist',
82
+ },
83
+ });
84
+ }
85
+
86
+ //存储常用联系人
87
+ export function addRecord(otherHeaders, query) {
88
+ dataFilter(query);
89
+ return fetch({
90
+ url: '/api/system/record/add-record',
91
+ method: 'post',
92
+ data: query,
93
+ headers: {
94
+ ...headers,
95
+ ...otherHeaders,
96
+ 'Content-Type': 'application/json',
97
+ },
98
+ });
99
+ }
100
+
101
+ //读取常用联系人
102
+ export function selectRecord(otherHeaders, query) {
103
+ dataFilter(query);
104
+ return fetch({
105
+ url: '/api/system/record/select-record',
106
+ method: 'post',
107
+ data: query,
108
+ headers: {
109
+ ...headers,
110
+ ...otherHeaders,
111
+ 'Content-Type': 'application/json',
112
+ },
113
+ });
114
+ }
@@ -0,0 +1,10 @@
1
+ const getters = {
2
+ account: state => state.Account.account,
3
+ token: state => state.Base.token,
4
+ userId: state => state.Base.userId,
5
+ userName: state => state.Base.userName,
6
+ mobilePhone: state => state.Base.mobilePhone,
7
+ organizationShortName: state => state.Base.organizationShortName,
8
+ organizationId: state => state.Base.organizationId,
9
+ };
10
+ export default getters;
@@ -0,0 +1,18 @@
1
+ import Vue from 'vue';
2
+ import Vuex from 'vuex';
3
+ import getters from './getters';
4
+
5
+ import Account from './modules/Account';
6
+ import Base from './modules/Base';
7
+
8
+ Vue.use(Vuex);
9
+
10
+ const store = new Vuex.Store({
11
+ modules: {
12
+ Account,
13
+ Base,
14
+ },
15
+ getters,
16
+ });
17
+
18
+ export default store;
@@ -0,0 +1,27 @@
1
+ const key = 'account';
2
+
3
+ const Account = {
4
+ state: {
5
+ account: localStorage.getItem(key) || '',
6
+ },
7
+
8
+ mutations: {
9
+ SET_ACCOUNT: (state, data) => {
10
+ localStorage.setItem(key, data);
11
+ state.account = data;
12
+ },
13
+ },
14
+
15
+ actions: {
16
+ /**
17
+ * 设置用户账号
18
+ * @param commit
19
+ * @param data
20
+ */
21
+ setAccount({ commit }, data) {
22
+ commit('SET_ACCOUNT', data);
23
+ },
24
+ },
25
+ };
26
+
27
+ export default Account;
@@ -0,0 +1,38 @@
1
+ const key = 'userInfo';
2
+ const userInfo = JSON.parse(localStorage.getItem(key)) || {};
3
+
4
+ const Base = {
5
+ state: {
6
+ token: userInfo.token,
7
+ userId: userInfo.userId,
8
+ userName: userInfo.userName,
9
+ mobilePhone: userInfo.mobilePhone,
10
+ organizationId:userInfo.organizationId,
11
+ organizationShortName:userInfo.organizationShortName,
12
+ },
13
+
14
+ mutations: {
15
+ SET_USER_INFO: (state, data) => {
16
+ localStorage.setItem(key, JSON.stringify(data));
17
+ state.token = data.token;
18
+ state.userId = data.userId;
19
+ state.userName = data.userName;
20
+ state.mobilePhone = data.mobilePhone;
21
+ state.organizationId = data.organizationId;
22
+ state.organizationShortName = data.organizationShortName;
23
+ },
24
+ },
25
+
26
+ actions: {
27
+ /**
28
+ * 设置用户信息
29
+ * @param commit
30
+ * @param data
31
+ */
32
+ setUserInfo({ commit }, data) {
33
+ commit('SET_USER_INFO', data);
34
+ },
35
+ },
36
+ };
37
+
38
+ export default Base;
@@ -0,0 +1,3 @@
1
+ @import 'reset';
2
+ @import 'public';
3
+
@@ -0,0 +1,11 @@
1
+ @mixin clearFloat {
2
+ zoom: 1;
3
+ &:after {
4
+ clear: both;
5
+ }
6
+ &:after,
7
+ &:before {
8
+ display: table;
9
+ content: '';
10
+ }
11
+ }
@@ -0,0 +1,32 @@
1
+ @import 'mixins/mixins';
2
+
3
+ body {
4
+ font-family: 'DIN Alternate Bold', Avenir-Heavy, PingFang SC, Helvetica Neue, Arial, sans-serif;
5
+ background: #fafafa;
6
+ }
7
+
8
+ .fl {
9
+ float: left;
10
+ }
11
+
12
+ .fr {
13
+ float: right;
14
+ }
15
+
16
+ .clear {
17
+ @include clearFloat;
18
+ }
19
+
20
+ @font-face {
21
+ font-family: 'DIN Alternate Bold';
22
+ src: url('../assets/iconfont/DIN.Alternate.Bold.ttf');
23
+ }
24
+
25
+ div.common-popup {
26
+ top: 0;
27
+ left: 0;
28
+ width: 100%;
29
+ height: 100%;
30
+ background: #f5f7f8;
31
+ transform: none;
32
+ }