diff --git a/package-lock.json b/package-lock.json index 12f5ad785..ba1bf063e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1680,9 +1680,9 @@ "dev": true }, "async-validator": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.10.0.tgz", - "integrity": "sha512-tjkUJ3OXURZbm1nrlU2QtH0XJe4YvhN1J9AYiKFN9ODBqt0AFIE6YZdZByrWG2SidPUOOK5KIAsqskqFj/43ZQ==", + "version": "1.10.1", + "resolved": "http://bnpm.byted.org/async-validator/download/async-validator-1.10.1.tgz", + "integrity": "sha1-QemwufjnGebt+UY3LwGKlYwucPM=", "requires": { "babel-runtime": "6.x" } @@ -1961,7 +1961,7 @@ }, "batch-processor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", + "resolved": "http://bnpm.byted.org/batch-processor/download/batch-processor-1.0.0.tgz", "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=" }, "bcrypt-pbkdf": { @@ -3528,8 +3528,8 @@ }, "deepmerge": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + "resolved": "http://bnpm.byted.org/deepmerge/download/deepmerge-2.2.1.tgz", + "integrity": "sha1-XT/yKgHAD2RUBaL7wX0HeKGAEXA=" }, "default-gateway": { "version": "2.7.2", @@ -3910,8 +3910,8 @@ }, "element-resize-detector": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.0.tgz", - "integrity": "sha512-UmhNB8sIJVZeg56gEjgmMd6p37sCg8j8trVW0LZM7Wzv+kxQ5CnRHcgRKBTB/kFUSn3e7UP59kl2V2U8Du1hmg==", + "resolved": "http://bnpm.byted.org/element-resize-detector/download/element-resize-detector-1.2.0.tgz", + "integrity": "sha1-YzRP1vTl7P9vAY0Cfheygf1Pozg=", "requires": { "batch-processor": "1.0.0" } @@ -6724,18 +6724,18 @@ "dev": true }, "iview": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/iview/-/iview-3.1.5.tgz", - "integrity": "sha512-lFom+Do/mJ4ejdu/+o/kCMWVGBpe85pIho7AsrOge/7IPuP5UbdSPu720qaEe4lC2T1AFczD74LlzqZ/mik0FA==", + "version": "3.2.2", + "resolved": "http://bnpm.byted.org/iview/download/iview-3.2.2.tgz", + "integrity": "sha1-W32NtdHqcRzDn6rmBFeqA1TLUsg=", "requires": { - "async-validator": "^1.8.2", - "deepmerge": "^2.1.0", - "element-resize-detector": "^1.1.14", + "async-validator": "^1.10.0", + "deepmerge": "^2.2.1", + "element-resize-detector": "^1.2.0", "js-calendar": "^1.2.3", "lodash.throttle": "^4.1.1", - "popper.js": "^1.14.1", + "popper.js": "^1.14.6", "tinycolor2": "^1.4.1", - "v-click-outside-x": "^3.5.0" + "v-click-outside-x": "^3.5.6" } }, "iview-area": { @@ -6785,8 +6785,8 @@ }, "js-calendar": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/js-calendar/-/js-calendar-1.2.3.tgz", - "integrity": "sha512-dAA1/Zbp4+c5E+ARCVTIuKepXsNLzSYfzvOimiYD4S5eeP9QuplSHLcdhfqFSwyM1o1u6ku6RRRCyaZ0YAjiBw==" + "resolved": "http://bnpm.byted.org/js-calendar/download/js-calendar-1.2.3.tgz", + "integrity": "sha1-pYOwZEtOaVujlPNE0QPbzHp6fT4=" }, "js-cookie": { "version": "2.2.0", @@ -7742,7 +7742,7 @@ }, "lodash.throttle": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "resolved": "http://bnpm.byted.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz", "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" }, "lodash.transform": { @@ -8988,8 +8988,8 @@ }, "popper.js": { "version": "1.14.6", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.6.tgz", - "integrity": "sha512-AGwHGQBKumlk/MDfrSOf0JHhJCImdDMcGNoqKmKkU+68GFazv3CQ6q9r7Ja1sKDZmYWTckY/uLyEznheTDycnA==" + "resolved": "http://bnpm.byted.org/popper.js/download/popper.js-1.14.6.tgz", + "integrity": "sha1-qyDdTt+SiLiztlMcR8NhEHtgtLA=" }, "portfinder": { "version": "1.0.20", @@ -11458,7 +11458,7 @@ }, "tinycolor2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "resolved": "http://bnpm.byted.org/tinycolor2/download/tinycolor2-1.4.1.tgz", "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" }, "tmp": { @@ -11969,16 +11969,16 @@ "dev": true }, "v-click-outside-x": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/v-click-outside-x/-/v-click-outside-x-3.5.6.tgz", - "integrity": "sha512-41j5mdZ8NzGJM5Or0BTADKU1B0vBi5a29g9ieVNTorg3FTiep6zOXjZeLpMmSH/koon1JP6S5uvwI2OfSVCgSA==" + "version": "3.7.1", + "resolved": "http://bnpm.byted.org/v-click-outside-x/download/v-click-outside-x-3.7.1.tgz", + "integrity": "sha1-qgPqoOQeRMtSB9z4bC2fDdZAhME=" }, "v-org-tree": { "version": "1.0.6", "resolved": "http://registry.npm.taobao.org/v-org-tree/download/v-org-tree-1.0.6.tgz", "integrity": "sha1-uh4EL9bExFb9/FmFtlvClFpAaWc=", "requires": { - "clonedeep": "2.0.0" + "clonedeep": "^2.0.0" } }, "validate-npm-package-license": { diff --git a/package.json b/package.json index a79236088..3e2561e05 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "dayjs": "^1.7.7", "echarts": "^4.0.4", "html2canvas": "^1.0.0-alpha.12", - "iview": "^3.1.3", + "iview": "^3.2.2", "iview-area": "^1.5.17", "js-cookie": "^2.2.0", "simplemde": "^1.11.2", diff --git a/src/api/data.js b/src/api/data.js index fce9771c7..234c4b419 100644 --- a/src/api/data.js +++ b/src/api/data.js @@ -42,3 +42,10 @@ export const getOrgData = () => { method: 'get' }) } + +export const getTreeSelectData = () => { + return axios.request({ + url: 'get_tree_select_data', + method: 'get' + }) +} diff --git a/src/components/tree-select/index.js b/src/components/tree-select/index.js new file mode 100644 index 000000000..707b53c9f --- /dev/null +++ b/src/components/tree-select/index.js @@ -0,0 +1 @@ +export { default } from './tree-select.vue' diff --git a/src/components/tree-select/tree-select-tree.vue b/src/components/tree-select/tree-select-tree.vue new file mode 100644 index 000000000..8ba209d0d --- /dev/null +++ b/src/components/tree-select/tree-select-tree.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/src/components/tree-select/tree-select.vue b/src/components/tree-select/tree-select.vue new file mode 100644 index 000000000..a1fb2a8a8 --- /dev/null +++ b/src/components/tree-select/tree-select.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/locale/lang/en-US.js b/src/locale/lang/en-US.js index 0a3498de4..2c2d68cb5 100644 --- a/src/locale/lang/en-US.js +++ b/src/locale/lang/en-US.js @@ -40,5 +40,6 @@ export default { message_page: 'Message Center', tree_table_page: 'Tree Table', org_tree_page: 'Org Tree', - drag_drawer_page: 'Draggable Drawer' + drag_drawer_page: 'Draggable Drawer', + tree_select_page: 'Tree Selector' } diff --git a/src/locale/lang/zh-CN.js b/src/locale/lang/zh-CN.js index 9626230b7..a7277deb5 100644 --- a/src/locale/lang/zh-CN.js +++ b/src/locale/lang/zh-CN.js @@ -40,5 +40,6 @@ export default { message_page: '消息中心', tree_table_page: '树状表格', org_tree_page: '组织结构树', - drag_drawer_page: '可拖动抽屉' + drag_drawer_page: '可拖动抽屉', + tree_select_page: '树状下拉选择器' } diff --git a/src/locale/lang/zh-TW.js b/src/locale/lang/zh-TW.js index 23bffb98c..f634b86fa 100644 --- a/src/locale/lang/zh-TW.js +++ b/src/locale/lang/zh-TW.js @@ -40,5 +40,6 @@ export default { message_page: '消息中心', tree_table_page: '樹狀表格', org_tree_page: '組織結構樹', - drag_drawer_page: '可拖動抽屜' + drag_drawer_page: '可拖動抽屜', + tree_select_page: '樹狀下拉選擇器' } diff --git a/src/mock/data.js b/src/mock/data.js index e2ee4400e..4c5703626 100644 --- a/src/mock/data.js +++ b/src/mock/data.js @@ -1,6 +1,7 @@ import Mock from 'mockjs' import { doCustomTimes } from '@/libs/util' import orgData from './data/org-data' +import { treeData } from './data/tree-select' const Random = Mock.Random export const getTableData = req => { @@ -33,3 +34,7 @@ export const uploadImage = req => { export const getOrgData = req => { return orgData } + +export const getTreeSelectData = req => { + return treeData +} diff --git a/src/mock/data/tree-select.js b/src/mock/data/tree-select.js new file mode 100644 index 000000000..27034beda --- /dev/null +++ b/src/mock/data/tree-select.js @@ -0,0 +1,82 @@ +export const treeData = [ + { + id: 1, + title: '1', + children: [ + { + id: 11, + title: '1-1', + loading: false, + children: [ + // { + // id: 111, + // title: '1-1-1' + // }, + // { + // id: 112, + // title: '1-1-2' + // }, + // { + // id: 113, + // title: '1-1-3' + // }, + // { + // id: 114, + // title: '1-1-4' + // } + ] + }, + { + id: 12, + title: '1-2', + children: [ + { + id: 121, + title: '1-2-1' + } + ] + } + ] + } +] + +export const newTreeData = [ + { + id: 'a', + title: 'a', + children: [ + { + id: 'a1', + title: 'a-1', + children: [ + { + id: 112, + title: '1-1-2' + }, + { + id: 'a12', + title: 'a-1-2' + }, + { + id: 'a13', + title: 'a-1-3' + }, + { + id: 'a14', + title: 'a-1-4' + } + ] + }, + { + id: 'a2', + title: 'a-2', + children: [ + { + id: 'a21', + title: 'b-2-1' + } + ] + } + ] + } +] diff --git a/src/mock/index.js b/src/mock/index.js index 503e3cdb3..554a45633 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -1,6 +1,6 @@ import Mock from 'mockjs' import { login, logout, getUserInfo } from './login' -import { getTableData, getDragList, uploadImage, getOrgData } from './data' +import { getTableData, getDragList, uploadImage, getOrgData, getTreeSelectData } from './data' import { getMessageInit, getContentByMsgId, hasRead, removeReaded, restoreTrash, messageCount } from './user' // 配置Ajax请求延时,可用来测试网络延迟大时项目中一些效果 @@ -23,5 +23,6 @@ Mock.mock(/\/message\/remove_readed/, removeReaded) Mock.mock(/\/message\/restore/, restoreTrash) Mock.mock(/\/message\/count/, messageCount) Mock.mock(/\/get_org_data/, getOrgData) +Mock.mock(/\/get_tree_select_data/, getTreeSelectData) export default Mock diff --git a/src/router/routers.js b/src/router/routers.js index 00ec60434..1427fbd50 100644 --- a/src/router/routers.js +++ b/src/router/routers.js @@ -107,6 +107,15 @@ export default [ }, component: Main, children: [ + { + path: 'tree_select_page', + name: 'tree_select_page', + meta: { + icon: 'md-arrow-dropdown-circle', + title: '树状下拉选择器' + }, + component: () => import('@/view/components/tree-select/index.vue') + }, { path: 'count_to_page', name: 'count_to_page', diff --git a/src/test.js b/src/test.js new file mode 100644 index 000000000..e69de29bb diff --git a/src/view/components/tree-select/index.vue b/src/view/components/tree-select/index.vue new file mode 100644 index 000000000..4dcc7e189 --- /dev/null +++ b/src/view/components/tree-select/index.vue @@ -0,0 +1,90 @@ + + + + +