From 80a5c404276084df0064895aab8ac6099e3ec4b2 Mon Sep 17 00:00:00 2001
From: "DESKTOP-GH3RO9U\\ting" <1754415696@qq.com>
Date: Tue, 31 May 2022 10:16:05 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B5=E9=9D=A2?=
=?UTF-8?q?=E6=A0=B7=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 19 +-
src/assets/less/common.less | 505 +++++++++++++++++-
src/assets/styles/sidebar.scss | 2 +-
src/views/erp/bill/AllocationOutList.vue | 4 +-
src/views/erp/bill/AssembleList.vue | 4 +-
src/views/erp/bill/DisassembleList.vue | 4 +-
src/views/erp/bill/InventoryReview.vue | 4 +-
src/views/erp/bill/OtherInList.vue | 4 +-
src/views/erp/bill/OtherOutList.vue | 4 +-
src/views/erp/bill/PurchaseBackList.vue | 4 +-
src/views/erp/bill/PurchaseInList.vue | 4 +-
src/views/erp/bill/PurchaseOrderList.vue | 4 +-
src/views/erp/bill/RetailBackList.vue | 4 +-
src/views/erp/bill/RetailOutList.vue | 4 +-
src/views/erp/bill/SaleBackList.vue | 4 +-
src/views/erp/bill/SaleOrderList.vue | 4 +-
src/views/erp/bill/SaleOutList.vue | 4 +-
src/views/erp/bill/mixins/BillListMixin.js | 2 +-
src/views/erp/bill/mixins/BillModalMixin.js | 8 +-
src/views/erp/financial/AdvanceInList.vue | 4 +-
src/views/erp/financial/GiroList.vue | 4 +-
src/views/erp/financial/ItemInList.vue | 4 +-
src/views/erp/financial/ItemOutList.vue | 4 +-
src/views/erp/financial/MoneyInList.vue | 4 +-
src/views/erp/financial/MoneyOutList.vue | 4 +-
.../erp/material/MaterialAttributeList.vue | 10 +-
src/views/erp/material/MaterialList.vue | 4 +-
.../erp/material/MaterialPropertyList.vue | 4 +-
.../erp/material/modules/MaterialModal.vue | 2 +-
src/views/erp/report/AccountReport.vue | 4 +-
src/views/erp/report/AllocationDetail.vue | 4 +-
src/views/erp/report/BuyInReport.vue | 4 +-
src/views/erp/report/CustomerAccount.vue | 4 +-
src/views/erp/report/InDetail.vue | 4 +-
src/views/erp/report/InMaterialCount.vue | 4 +-
src/views/erp/report/InOutStockReport.vue | 4 +-
src/views/erp/report/MaterialStock.vue | 4 +-
src/views/erp/report/OutDetail.vue | 4 +-
src/views/erp/report/OutMaterialCount.vue | 4 +-
src/views/erp/report/SaleOutReport.vue | 4 +-
src/views/erp/report/StockWarningReport.vue | 4 +-
src/views/erp/report/VendorAccount.vue | 4 +-
src/views/erp/report/batchStock.vue | 2 +-
.../erp/report/modules/AccountInOutList.vue | 4 +-
.../erp/report/modules/MaterialInOutList.vue | 4 +-
src/views/erp/system/AccountList.vue | 4 +-
src/views/erp/system/CustomerList.vue | 4 +-
src/views/erp/system/DepotList.vue | 4 +-
src/views/erp/system/FunctionList.vue | 4 +-
src/views/erp/system/InOutItemList.vue | 4 +-
src/views/erp/system/LogList.vue | 4 +-
src/views/erp/system/MemberList.vue | 4 +-
src/views/erp/system/PersonList.vue | 4 +-
src/views/erp/system/PlatformConfigList.vue | 4 +-
src/views/erp/system/PluginList.vue | 4 +-
src/views/erp/system/RoleList.vue | 4 +-
src/views/erp/system/SystemConfigList.vue | 4 +-
src/views/erp/system/TenantList.vue | 4 +-
src/views/erp/system/UnitList.vue | 10 +-
src/views/erp/system/UserList.vue | 4 +-
src/views/erp/system/VendorList.vue | 4 +-
61 files changed, 636 insertions(+), 132 deletions(-)
diff --git a/package.json b/package.json
index c779131..0321791 100644
--- a/package.json
+++ b/package.json
@@ -41,6 +41,7 @@
"dependencies": {
"@babel/parser": "^7.7.4",
"@riophae/vue-treeselect": "0.4.0",
+ "ant-design-vue": "1.5.2",
"axios": "0.24.0",
"bpmn-js-token-simulation": "^0.10.0",
"cache-loader": "^2.0.1",
@@ -54,11 +55,18 @@
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"highlight.js": "9.18.5",
+ "jquery": "^1.12.4",
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1",
+ "less": "^2.7.3",
"less-loader": "^5.0.0",
+ "lodash.get": "^4.4.2",
+ "lodash.pick": "^4.4.0",
+ "mathjs": "^10.1.1",
+ "md5": "^2.2.1",
"min-dash": "^3.5.2",
+ "moment": "^2.21.0",
"nprogress": "0.2.0",
"qs": "^6.10.3",
"quill": "1.3.7",
@@ -69,6 +77,7 @@
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
"vue-draggable-resizable": "^2.3.0",
+ "vue-ls": "^3.2.0",
"vue-meta": "^2.4.0",
"vue-quill-editor": "^3.0.6",
"vue-router": "3.4.9",
@@ -78,15 +87,7 @@
"wangeditor": ">=3.0.0",
"webpack": "^4.41.5",
"xlsx": "^0.14.3",
- "xml-js": "^1.6.11",
- "lodash.get": "^4.4.2",
- "lodash.pick": "^4.4.0",
- "md5": "^2.2.1",
- "mathjs": "^10.1.1",
- "jquery": "^1.12.4",
- "moment": "^2.21.0",
- "vue-ls": "^3.2.0",
- "ant-design-vue": "1.5.2"
+ "xml-js": "^1.6.11"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.6",
diff --git a/src/assets/less/common.less b/src/assets/less/common.less
index f4fb9ef..bcb224b 100644
--- a/src/assets/less/common.less
+++ b/src/assets/less/common.less
@@ -71,4 +71,507 @@
/* 内嵌子表背景颜色 */
.j-inner-table-wrapper /deep/ .ant-table-expanded-row .ant-table-wrapper .ant-table-tbody .ant-table-row {
background-color: #FFFFFF;
-}
\ No newline at end of file
+}
+body {
+ /*打开滚动条固定显示*/
+ overflow-y: scroll;
+
+ &.colorWeak {
+ filter: invert(80%);
+ }
+}
+
+.layout {
+ min-height: 100vh !important;
+ overflow-x: hidden;
+
+ &.mobile {
+
+ .ant-layout-content {
+
+ .content {
+ margin: 24px 0 0;
+ }
+ }
+
+ /**
+ * ant-table-wrapper
+ * 覆盖的表格手机模式样式,如果想修改在手机上表格最低宽度,可以在这里改动
+ */
+ .ant-table-wrapper {
+ .ant-table-content {
+ overflow-y: auto;
+ }
+ .ant-table-body {
+ min-width: 800px;
+ }
+ }
+ .sidemenu {
+ .ant-header-fixedHeader {
+
+ &.ant-header-side-opened, &.ant-header-side-closed {
+ width: 100%
+ }
+ }
+ }
+
+ .topmenu {
+ /* 必须为 topmenu 才能启用流式布局 */
+ &.content-width-Fluid {
+ .header-index-wide {
+ margin-left: 0;
+ }
+ }
+ }
+ .header, .top-nav-header-index {
+ .user-wrapper .action {
+ padding: 0 12px;
+ }
+ }
+ }
+
+ &.ant-layout-has-sider {
+ flex-direction: row;
+ }
+
+ .trigger {
+ font-size: 22px;
+ line-height: 42px;
+ padding: 0 18px;
+ cursor: pointer;
+ transition: color 300ms, background 300ms;
+
+ &:hover {
+ background: rgba(255, 255, 255, 0.3);
+ }
+ }
+
+ .topmenu {
+ .ant-header-fixedHeader {
+ position: fixed;
+ top: 0;
+ right: 0;
+ z-index: 9;
+ width: 100%;
+ transition: width .2s;
+
+ &.ant-header-side-opened {
+ width: 100%;
+ }
+
+ &.ant-header-side-closed {
+ width: 100%;
+ }
+ }
+ /* 必须为 topmenu 才能启用流式布局 */
+ &.content-width-Fluid {
+ .header-index-wide {
+ max-width: unset;
+ margin-left: 24px;
+ }
+
+ .page-header-index-wide {
+ max-width: unset;
+ }
+ }
+
+ }
+
+ .sidemenu {
+ .ant-header-fixedHeader {
+ position: fixed;
+ top: 0;
+ right: 0;
+ z-index: 9;
+ width: 100%;
+ transition: width .2s;
+
+ &.ant-header-side-opened {
+ width: calc(100% - 200px)
+ }
+
+ &.ant-header-side-closed {
+ width: calc(100% - 80px)
+ }
+ }
+ }
+
+ .header {
+ height: 64px;
+ padding: 0 12px 0 0;
+ background: #fff;
+ box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
+ position: relative;
+ }
+
+ .header, .top-nav-header-index {
+
+ .user-wrapper {
+ float: right;
+ height: 100%;
+
+ .action {
+ cursor: pointer;
+ padding: 0 14px;
+ display: inline-block;
+ transition: all .3s;
+
+ height: 70%;
+ line-height: 46px;
+
+ &.action-full {
+ height: 100%;
+ }
+
+ &:hover {
+ background: rgba(255, 255, 255, 0.3);
+ }
+
+ .avatar {
+ margin: 20px 10px 20px 0;
+ color: #1890ff;
+ background: hsla(0, 0%, 100%, .85);
+ vertical-align: middle;
+ }
+
+ .icon {
+ font-size: 16px;
+ padding: 4px;
+ }
+
+ .anticon {
+ color: white;
+ }
+ }
+ }
+
+ &.dark {
+ .user-wrapper {
+
+ .action {
+ color: black;
+
+ &:hover {
+ background: rgba(0, 0, 0, 0.05);
+ }
+
+ .anticon {
+ color: black;
+ }
+ }
+ }
+ }
+ }
+
+ &.mobile {
+ .top-nav-header-index {
+
+ .header-index-wide {
+
+ .header-index-left {
+
+ .trigger {
+ color: rgba(255, 255, 255, 0.85);
+ padding: 0 12px;
+ }
+
+ .logo.top-nav-header {
+ text-align: center;
+ width: 56px;
+ line-height: 58px;
+ }
+ }
+ }
+
+ .user-wrapper .action .avatar {
+ margin: 20px 0;
+ }
+
+ &.light {
+
+ .header-index-wide {
+
+ .header-index-left {
+ .trigger {
+ color: rgba(0, 0, 0, 0.65);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ &.tablet {
+ /*overflow: hidden; text-overflow:ellipsis; white-space: nowrap;*/
+ .top-nav-header-index {
+
+ .header-index-wide {
+
+ .header-index-left {
+ .logo > a {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ }
+ }
+ }
+
+ }
+
+ .top-nav-header-index {
+ box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
+ position: relative;
+ transition: background .3s, width .2s;
+
+ .header-index-wide {
+ width: 100%;
+ margin: auto;
+ padding: 0 20px 0 0;
+ display: flex;
+ height: 59px;
+
+ .ant-menu.ant-menu-horizontal {
+ border: none;
+ height: 64px;
+ line-height: 64px;
+ }
+
+ .header-index-left {
+ flex: 1 1;
+ display: flex;
+
+ .logo.top-nav-header {
+ width: 165px;
+ height: 64px;
+ position: relative;
+ line-height: 64px;
+ transition: all .3s;
+ overflow: hidden;
+
+ img {
+ display: inline-block;
+ vertical-align: middle;
+ height: 32px;
+ }
+
+ h1 {
+ color: #fff;
+ display: inline-block;
+ vertical-align: top;
+ font-size: 16px;
+ margin: 0 0 0 12px;
+ font-weight: 400;
+ }
+ }
+ }
+
+ .header-index-right {
+ float: right;
+ height: 59px;
+ overflow: hidden;
+ .action:hover {
+ background-color: rgba(0, 0, 0, 0.05);
+ }
+ }
+ }
+
+ &.light {
+ background-color: #fff;
+
+ .header-index-wide {
+ .header-index-left {
+ .logo {
+ h1 {
+ color: #002140;
+ }
+ }
+ }
+ }
+ }
+
+ &.dark {
+
+ .user-wrapper {
+
+ .action {
+ color: white;
+
+ &:hover {
+ background: rgba(255, 255, 255, 0.3);
+ }
+ }
+ }
+ .header-index-wide .header-index-left .trigger:hover {
+ background: rgba(255, 255, 255, 0.3);
+ }
+ }
+
+ }
+
+ /*内容区*/
+ .layout-content {
+ margin: 24px 24px 0px;
+ height: 64px;
+ padding: 0 12px 0 0;
+ }
+
+}
+
+.topmenu {
+ .page-header-index-wide {
+ margin: 0 auto;
+ width: 100%;
+ }
+}
+
+/* drawer-sider 自定义*/
+.ant-drawer.drawer-sider {
+ .sider {
+ box-shadow: none;
+ }
+
+ &.dark {
+ .ant-drawer-content {
+ background-color: rgb(0, 21, 41);
+ }
+ }
+ &.light {
+ box-shadow: none;
+ .ant-drawer-content {
+ background-color: #fff;
+ }
+ }
+
+ .ant-drawer-body {
+ padding: 0
+ }
+}
+
+/* 菜单样式*/
+.sider {
+ box-shadow: 2px 116px 6px 0 rgba(0, 21, 41, .35);
+ position: relative;
+ z-index: 10;
+
+ &.ant-fixed-sidemenu {
+ position: fixed;
+ height: 100%;
+ }
+
+ .logo {
+ height: 64px;
+ position: relative;
+ line-height: 64px;
+ padding-left: 10px;
+ -webkit-transition: all .3s;
+ transition: all .3s;
+ background: #ffffff;
+ overflow: hidden;
+
+ img, h1 {
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ img {
+ height: 32px;
+ }
+
+ h1 {
+ color: #fff;
+ font-size: 18px;
+ margin: 0 0 10px 8px;
+ font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-weight: 600;
+ }
+ }
+
+ &.light {
+ background-color: #fff;
+ box-shadow: 2px 116px 8px 0 rgba(29, 35, 41, 0.05);
+
+ .logo {
+ background: #fff;
+ box-shadow: 1px 1px 0 0 #e8e8e8;
+
+ h1 {
+ color: unset;
+ }
+ }
+
+ .ant-menu-light {
+ border-right-color: transparent;
+ }
+ }
+
+}
+
+/*外置的样式控制*/
+.user-dropdown-menu-wrapper.ant-dropdown-menu {
+ padding: 4px 0;
+
+ .ant-dropdown-menu-item {
+ width: 160px;
+ }
+
+ .ant-dropdown-menu-item > .anticon:first-child,
+ .ant-dropdown-menu-item > a > .anticon:first-child,
+ .ant-dropdown-menu-submenu-title > .anticon:first-child
+ .ant-dropdown-menu-submenu-title > a > .anticon:first-child {
+ min-width: 12px;
+ margin-right: 8px;
+ }
+
+}
+
+/* 数据列表 样式*/
+.table-alert {
+ margin-bottom: 16px;
+}
+
+.table-page-search-wrapper {
+
+ .ant-form-inline {
+
+ .ant-form-item {
+ display: flex;
+ margin-bottom: 24px;
+ margin-right: 0;
+
+ .ant-form-item-control-wrapper {
+ flex: 1 1;
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ > .ant-form-item-label {
+ line-height: 32px;
+ padding-right: 8px;
+ width: auto;
+ }
+ .ant-form-item-control {
+ height: 32px;
+ line-height: 32px;
+ }
+ }
+ }
+
+ .table-page-search-submitButtons {
+ display: block;
+ margin-bottom: 24px;
+ white-space: nowrap;
+ }
+
+}
+
+.content {
+
+ .table-operator {
+ margin-bottom: 18px;
+
+ button {
+ margin-right: 8px;
+ }
+ }
+}
diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss
index ed308b8..2e07ac4 100644
--- a/src/assets/styles/sidebar.scss
+++ b/src/assets/styles/sidebar.scss
@@ -22,7 +22,7 @@
top: 0;
bottom: 0;
left: 0;
- z-index: 1001;
+ z-index: 1000;
overflow: hidden;
-webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
box-shadow: 2px 0 6px rgba(0,21,41,.35);
diff --git a/src/views/erp/bill/AllocationOutList.vue b/src/views/erp/bill/AllocationOutList.vue
index ad11d68..a124232 100644
--- a/src/views/erp/bill/AllocationOutList.vue
+++ b/src/views/erp/bill/AllocationOutList.vue
@@ -211,6 +211,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/AssembleList.vue b/src/views/erp/bill/AssembleList.vue
index 90e8056..82eece9 100644
--- a/src/views/erp/bill/AssembleList.vue
+++ b/src/views/erp/bill/AssembleList.vue
@@ -211,6 +211,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/DisassembleList.vue b/src/views/erp/bill/DisassembleList.vue
index 4a52d8a..e7e3965 100644
--- a/src/views/erp/bill/DisassembleList.vue
+++ b/src/views/erp/bill/DisassembleList.vue
@@ -211,6 +211,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/InventoryReview.vue b/src/views/erp/bill/InventoryReview.vue
index 04f7c9e..56b9b7d 100644
--- a/src/views/erp/bill/InventoryReview.vue
+++ b/src/views/erp/bill/InventoryReview.vue
@@ -219,6 +219,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/OtherInList.vue b/src/views/erp/bill/OtherInList.vue
index d41671a..2eb439b 100644
--- a/src/views/erp/bill/OtherInList.vue
+++ b/src/views/erp/bill/OtherInList.vue
@@ -229,6 +229,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/OtherOutList.vue b/src/views/erp/bill/OtherOutList.vue
index cc3149d..24800d6 100644
--- a/src/views/erp/bill/OtherOutList.vue
+++ b/src/views/erp/bill/OtherOutList.vue
@@ -229,6 +229,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/PurchaseBackList.vue b/src/views/erp/bill/PurchaseBackList.vue
index 0c411ac..f0f4b00 100644
--- a/src/views/erp/bill/PurchaseBackList.vue
+++ b/src/views/erp/bill/PurchaseBackList.vue
@@ -241,6 +241,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/PurchaseInList.vue b/src/views/erp/bill/PurchaseInList.vue
index abbe747..2bf3a60 100644
--- a/src/views/erp/bill/PurchaseInList.vue
+++ b/src/views/erp/bill/PurchaseInList.vue
@@ -250,6 +250,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/PurchaseOrderList.vue b/src/views/erp/bill/PurchaseOrderList.vue
index 7e2a5b5..477df62 100644
--- a/src/views/erp/bill/PurchaseOrderList.vue
+++ b/src/views/erp/bill/PurchaseOrderList.vue
@@ -225,6 +225,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/RetailBackList.vue b/src/views/erp/bill/RetailBackList.vue
index e7f6abe..ba6d940 100644
--- a/src/views/erp/bill/RetailBackList.vue
+++ b/src/views/erp/bill/RetailBackList.vue
@@ -239,6 +239,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/RetailOutList.vue b/src/views/erp/bill/RetailOutList.vue
index b9be8b6..373de84 100644
--- a/src/views/erp/bill/RetailOutList.vue
+++ b/src/views/erp/bill/RetailOutList.vue
@@ -233,6 +233,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/SaleBackList.vue b/src/views/erp/bill/SaleBackList.vue
index 4cbd101..3d8d03e 100644
--- a/src/views/erp/bill/SaleBackList.vue
+++ b/src/views/erp/bill/SaleBackList.vue
@@ -241,6 +241,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/SaleOrderList.vue b/src/views/erp/bill/SaleOrderList.vue
index 58c7670..5ef77d6 100644
--- a/src/views/erp/bill/SaleOrderList.vue
+++ b/src/views/erp/bill/SaleOrderList.vue
@@ -240,6 +240,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/SaleOutList.vue b/src/views/erp/bill/SaleOutList.vue
index 85a7bcf..fb0ccf4 100644
--- a/src/views/erp/bill/SaleOutList.vue
+++ b/src/views/erp/bill/SaleOutList.vue
@@ -249,6 +249,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/bill/mixins/BillListMixin.js b/src/views/erp/bill/mixins/BillListMixin.js
index 6714007..e0350cf 100644
--- a/src/views/erp/bill/mixins/BillListMixin.js
+++ b/src/views/erp/bill/mixins/BillListMixin.js
@@ -114,7 +114,7 @@ export const BillListMixin = {
});
},
getDepotData() {
- getAction('/depot/findDepotByCurrentUser').then((res)=>{
+ getAction('erp/depot/findDepotByCurrentUser').then((res)=>{
if(res.code === 200){
this.depotList = res.data;
}else{
diff --git a/src/views/erp/bill/mixins/BillModalMixin.js b/src/views/erp/bill/mixins/BillModalMixin.js
index 7dde2ac..c2e2c1d 100644
--- a/src/views/erp/bill/mixins/BillModalMixin.js
+++ b/src/views/erp/bill/mixins/BillModalMixin.js
@@ -58,7 +58,7 @@ export const BillModalMixin = {
},
methods: {
addInit(amountNum) {
- getAction('/sequence/buildNumber').then((res) => {
+ getAction('/erp/sequence/buildNumber').then((res) => {
if (res && res.code === 200) {
this.form.setFieldsValue({'number':amountNum + res.data.defaultNumber})
}
@@ -83,7 +83,7 @@ export const BillModalMixin = {
this.manyAccountBtnStatus = false
},
copyAddInit(amountNum) {
- getAction('/sequence/buildNumber').then((res) => {
+ getAction('/erp/sequence/buildNumber').then((res) => {
if (res && res.code === 200) {
this.form.setFieldsValue({'number':amountNum + res.data.defaultNumber})
}
@@ -169,7 +169,7 @@ export const BillModalMixin = {
},
initDepot() {
let that = this;
- getAction('/depot/findDepotByCurrentUser').then((res) => {
+ getAction('/erp/depot/findDepotByCurrentUser').then((res) => {
if(res.code === 200){
let arr = res.data
for(let item of that.materialTable.columns){
@@ -311,7 +311,7 @@ export const BillModalMixin = {
},
onAdded(event) {
const { row, target } = event
- getAction('/depot/findDepotByCurrentUser').then((res) => {
+ getAction('/erp/depot/findDepotByCurrentUser').then((res) => {
if (res.code === 200) {
let arr = res.data
for (let i = 0; i < arr.length; i++) {
diff --git a/src/views/erp/financial/AdvanceInList.vue b/src/views/erp/financial/AdvanceInList.vue
index 13f6ed0..4595a10 100644
--- a/src/views/erp/financial/AdvanceInList.vue
+++ b/src/views/erp/financial/AdvanceInList.vue
@@ -195,6 +195,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/financial/GiroList.vue b/src/views/erp/financial/GiroList.vue
index 3efffe1..db783bb 100644
--- a/src/views/erp/financial/GiroList.vue
+++ b/src/views/erp/financial/GiroList.vue
@@ -182,6 +182,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/financial/ItemInList.vue b/src/views/erp/financial/ItemInList.vue
index 8463771..0ce901d 100644
--- a/src/views/erp/financial/ItemInList.vue
+++ b/src/views/erp/financial/ItemInList.vue
@@ -195,6 +195,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/financial/ItemOutList.vue b/src/views/erp/financial/ItemOutList.vue
index d102d5d..e7d792b 100644
--- a/src/views/erp/financial/ItemOutList.vue
+++ b/src/views/erp/financial/ItemOutList.vue
@@ -194,6 +194,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/financial/MoneyInList.vue b/src/views/erp/financial/MoneyInList.vue
index c83dace..3252b75 100644
--- a/src/views/erp/financial/MoneyInList.vue
+++ b/src/views/erp/financial/MoneyInList.vue
@@ -198,6 +198,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/financial/MoneyOutList.vue b/src/views/erp/financial/MoneyOutList.vue
index 2828452..af17540 100644
--- a/src/views/erp/financial/MoneyOutList.vue
+++ b/src/views/erp/financial/MoneyOutList.vue
@@ -198,6 +198,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/material/MaterialAttributeList.vue b/src/views/erp/material/MaterialAttributeList.vue
index a6e749e..3ece501 100644
--- a/src/views/erp/material/MaterialAttributeList.vue
+++ b/src/views/erp/material/MaterialAttributeList.vue
@@ -75,9 +75,9 @@
}
],
url: {
- list: "/materialAttribute/list",
- delete: "/materialAttribute/delete",
- deleteBatch: "/materialAttribute/deleteBatch"
+ list: "/erp/materialAttribute/list",
+ delete: "/erp/materialAttribute/delete",
+ deleteBatch: "/erp/materialAttribute/deleteBatch"
}
}
},
@@ -89,6 +89,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/material/MaterialList.vue b/src/views/erp/material/MaterialList.vue
index 9da14de..9c7ffb4 100644
--- a/src/views/erp/material/MaterialList.vue
+++ b/src/views/erp/material/MaterialList.vue
@@ -289,6 +289,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/material/MaterialPropertyList.vue b/src/views/erp/material/MaterialPropertyList.vue
index 8f2bb76..92805e5 100644
--- a/src/views/erp/material/MaterialPropertyList.vue
+++ b/src/views/erp/material/MaterialPropertyList.vue
@@ -118,6 +118,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/material/modules/MaterialModal.vue b/src/views/erp/material/modules/MaterialModal.vue
index 52e1d4b..1dca2e3 100644
--- a/src/views/erp/material/modules/MaterialModal.vue
+++ b/src/views/erp/material/modules/MaterialModal.vue
@@ -736,7 +736,7 @@
let params = {};
params.currentPage = 1;
params.pageSize = 100;
- getAction('/unit/list', params).then((res) => {
+ getAction('/erp/unit/list', params).then((res) => {
if(res){
that.unitList = res.data.rows;
that.unitList.forEach(item => {
diff --git a/src/views/erp/report/AccountReport.vue b/src/views/erp/report/AccountReport.vue
index e688a35..c3ec051 100644
--- a/src/views/erp/report/AccountReport.vue
+++ b/src/views/erp/report/AccountReport.vue
@@ -176,6 +176,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/AllocationDetail.vue b/src/views/erp/report/AllocationDetail.vue
index 2b887da..0181903 100644
--- a/src/views/erp/report/AllocationDetail.vue
+++ b/src/views/erp/report/AllocationDetail.vue
@@ -253,6 +253,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/BuyInReport.vue b/src/views/erp/report/BuyInReport.vue
index 74f1590..9d98e70 100644
--- a/src/views/erp/report/BuyInReport.vue
+++ b/src/views/erp/report/BuyInReport.vue
@@ -159,6 +159,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/CustomerAccount.vue b/src/views/erp/report/CustomerAccount.vue
index f5215c4..de56d71 100644
--- a/src/views/erp/report/CustomerAccount.vue
+++ b/src/views/erp/report/CustomerAccount.vue
@@ -241,6 +241,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/InDetail.vue b/src/views/erp/report/InDetail.vue
index 61feb85..1de5633 100644
--- a/src/views/erp/report/InDetail.vue
+++ b/src/views/erp/report/InDetail.vue
@@ -245,6 +245,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/InMaterialCount.vue b/src/views/erp/report/InMaterialCount.vue
index f334efd..506f9cc 100644
--- a/src/views/erp/report/InMaterialCount.vue
+++ b/src/views/erp/report/InMaterialCount.vue
@@ -215,6 +215,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/InOutStockReport.vue b/src/views/erp/report/InOutStockReport.vue
index 2a36093..c700c08 100644
--- a/src/views/erp/report/InOutStockReport.vue
+++ b/src/views/erp/report/InOutStockReport.vue
@@ -221,6 +221,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/MaterialStock.vue b/src/views/erp/report/MaterialStock.vue
index 63a7b82..555620c 100644
--- a/src/views/erp/report/MaterialStock.vue
+++ b/src/views/erp/report/MaterialStock.vue
@@ -266,6 +266,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/OutDetail.vue b/src/views/erp/report/OutDetail.vue
index 91404d5..86fdad9 100644
--- a/src/views/erp/report/OutDetail.vue
+++ b/src/views/erp/report/OutDetail.vue
@@ -245,6 +245,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/OutMaterialCount.vue b/src/views/erp/report/OutMaterialCount.vue
index 3611299..aff2d3d 100644
--- a/src/views/erp/report/OutMaterialCount.vue
+++ b/src/views/erp/report/OutMaterialCount.vue
@@ -215,6 +215,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/SaleOutReport.vue b/src/views/erp/report/SaleOutReport.vue
index 10d97d6..035bdb8 100644
--- a/src/views/erp/report/SaleOutReport.vue
+++ b/src/views/erp/report/SaleOutReport.vue
@@ -167,6 +167,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/StockWarningReport.vue b/src/views/erp/report/StockWarningReport.vue
index 545fc3f..34ea2fe 100644
--- a/src/views/erp/report/StockWarningReport.vue
+++ b/src/views/erp/report/StockWarningReport.vue
@@ -166,6 +166,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/VendorAccount.vue b/src/views/erp/report/VendorAccount.vue
index 8ac851b..d09d491 100644
--- a/src/views/erp/report/VendorAccount.vue
+++ b/src/views/erp/report/VendorAccount.vue
@@ -242,6 +242,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/batchStock.vue b/src/views/erp/report/batchStock.vue
index 002d6cf..3e6597d 100644
--- a/src/views/erp/report/batchStock.vue
+++ b/src/views/erp/report/batchStock.vue
@@ -168,6 +168,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/modules/AccountInOutList.vue b/src/views/erp/report/modules/AccountInOutList.vue
index 800dfc1..7358f44 100644
--- a/src/views/erp/report/modules/AccountInOutList.vue
+++ b/src/views/erp/report/modules/AccountInOutList.vue
@@ -158,6 +158,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/report/modules/MaterialInOutList.vue b/src/views/erp/report/modules/MaterialInOutList.vue
index c8c0f7d..816f268 100644
--- a/src/views/erp/report/modules/MaterialInOutList.vue
+++ b/src/views/erp/report/modules/MaterialInOutList.vue
@@ -128,6 +128,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/AccountList.vue b/src/views/erp/system/AccountList.vue
index 0adc049..e6aa1bb 100644
--- a/src/views/erp/system/AccountList.vue
+++ b/src/views/erp/system/AccountList.vue
@@ -175,6 +175,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/CustomerList.vue b/src/views/erp/system/CustomerList.vue
index a772c5f..2b07aa7 100644
--- a/src/views/erp/system/CustomerList.vue
+++ b/src/views/erp/system/CustomerList.vue
@@ -189,6 +189,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/DepotList.vue b/src/views/erp/system/DepotList.vue
index 580b067..b4365d4 100644
--- a/src/views/erp/system/DepotList.vue
+++ b/src/views/erp/system/DepotList.vue
@@ -172,6 +172,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/FunctionList.vue b/src/views/erp/system/FunctionList.vue
index 323fe37..1994de4 100644
--- a/src/views/erp/system/FunctionList.vue
+++ b/src/views/erp/system/FunctionList.vue
@@ -140,6 +140,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/InOutItemList.vue b/src/views/erp/system/InOutItemList.vue
index 8d6bc2a..2eed1c7 100644
--- a/src/views/erp/system/InOutItemList.vue
+++ b/src/views/erp/system/InOutItemList.vue
@@ -153,6 +153,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/LogList.vue b/src/views/erp/system/LogList.vue
index 9e3d620..30ec256 100644
--- a/src/views/erp/system/LogList.vue
+++ b/src/views/erp/system/LogList.vue
@@ -183,6 +183,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/MemberList.vue b/src/views/erp/system/MemberList.vue
index ac3a7e7..02f6811 100644
--- a/src/views/erp/system/MemberList.vue
+++ b/src/views/erp/system/MemberList.vue
@@ -185,6 +185,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/PersonList.vue b/src/views/erp/system/PersonList.vue
index e5f7d90..7011ee4 100644
--- a/src/views/erp/system/PersonList.vue
+++ b/src/views/erp/system/PersonList.vue
@@ -153,6 +153,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/PlatformConfigList.vue b/src/views/erp/system/PlatformConfigList.vue
index 3b92d28..d5275bc 100644
--- a/src/views/erp/system/PlatformConfigList.vue
+++ b/src/views/erp/system/PlatformConfigList.vue
@@ -101,6 +101,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/PluginList.vue b/src/views/erp/system/PluginList.vue
index 68956f6..98f8e44 100644
--- a/src/views/erp/system/PluginList.vue
+++ b/src/views/erp/system/PluginList.vue
@@ -247,6 +247,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/RoleList.vue b/src/views/erp/system/RoleList.vue
index a16cf1f..05b3953 100644
--- a/src/views/erp/system/RoleList.vue
+++ b/src/views/erp/system/RoleList.vue
@@ -189,6 +189,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/SystemConfigList.vue b/src/views/erp/system/SystemConfigList.vue
index 02f74d3..d7b2c2e 100644
--- a/src/views/erp/system/SystemConfigList.vue
+++ b/src/views/erp/system/SystemConfigList.vue
@@ -169,6 +169,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/TenantList.vue b/src/views/erp/system/TenantList.vue
index f5c5926..c09ba54 100644
--- a/src/views/erp/system/TenantList.vue
+++ b/src/views/erp/system/TenantList.vue
@@ -155,6 +155,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/UnitList.vue b/src/views/erp/system/UnitList.vue
index b71f518..549bbdb 100644
--- a/src/views/erp/system/UnitList.vue
+++ b/src/views/erp/system/UnitList.vue
@@ -137,9 +137,9 @@
}
],
url: {
- list: "/unit/list",
- delete: "/unit/delete",
- deleteBatch: "/unit/deleteBatch"
+ list: "/erp/unit/list",
+ delete: "/erp/unit/delete",
+ deleteBatch: "/erp/unit/deleteBatch"
}
}
},
@@ -158,6 +158,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/UserList.vue b/src/views/erp/system/UserList.vue
index 790cad6..4b47aab 100644
--- a/src/views/erp/system/UserList.vue
+++ b/src/views/erp/system/UserList.vue
@@ -208,6 +208,6 @@
}
}
-
\ No newline at end of file
diff --git a/src/views/erp/system/VendorList.vue b/src/views/erp/system/VendorList.vue
index 35aa481..4ae7468 100644
--- a/src/views/erp/system/VendorList.vue
+++ b/src/views/erp/system/VendorList.vue
@@ -188,6 +188,6 @@
}
}
-
\ No newline at end of file
From faa5194e54476f5f466c9c8c5bbd0af0c34876d0 Mon Sep 17 00:00:00 2001
From: Loki <654612@qq.com>
Date: Tue, 31 May 2022 17:38:15 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A0=B7=E5=BC=8F=20?=
=?UTF-8?q?=E6=9B=B4=E6=94=B9=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 2 +
public/UEditor/dialogs/anchor/anchor.html | 40 +
.../UEditor/dialogs/attachment/attachment.css | 681 +
.../dialogs/attachment/attachment.html | 60 +
.../UEditor/dialogs/attachment/attachment.js | 760 +
.../attachment/fileTypeImages/icon_chm.gif | Bin 0 -> 923 bytes
.../fileTypeImages/icon_default.png | Bin 0 -> 841 bytes
.../attachment/fileTypeImages/icon_doc.gif | Bin 0 -> 1012 bytes
.../attachment/fileTypeImages/icon_exe.gif | Bin 0 -> 949 bytes
.../attachment/fileTypeImages/icon_jpg.gif | Bin 0 -> 950 bytes
.../attachment/fileTypeImages/icon_mp3.gif | Bin 0 -> 986 bytes
.../attachment/fileTypeImages/icon_mv.gif | Bin 0 -> 1001 bytes
.../attachment/fileTypeImages/icon_pdf.gif | Bin 0 -> 996 bytes
.../attachment/fileTypeImages/icon_ppt.gif | Bin 0 -> 1001 bytes
.../attachment/fileTypeImages/icon_psd.gif | Bin 0 -> 1009 bytes
.../attachment/fileTypeImages/icon_rar.gif | Bin 0 -> 1007 bytes
.../attachment/fileTypeImages/icon_txt.gif | Bin 0 -> 970 bytes
.../attachment/fileTypeImages/icon_xls.gif | Bin 0 -> 1005 bytes
.../dialogs/attachment/images/alignicon.gif | Bin 0 -> 1051 bytes
.../dialogs/attachment/images/alignicon.png | Bin 0 -> 3714 bytes
.../UEditor/dialogs/attachment/images/bg.png | Bin 0 -> 2810 bytes
.../dialogs/attachment/images/file-icons.gif | Bin 0 -> 20097 bytes
.../dialogs/attachment/images/file-icons.png | Bin 0 -> 44070 bytes
.../dialogs/attachment/images/icons.gif | Bin 0 -> 453 bytes
.../dialogs/attachment/images/icons.png | Bin 0 -> 2678 bytes
.../dialogs/attachment/images/image.png | Bin 0 -> 1672 bytes
.../dialogs/attachment/images/progress.png | Bin 0 -> 1269 bytes
.../dialogs/attachment/images/success.gif | Bin 0 -> 445 bytes
.../dialogs/attachment/images/success.png | Bin 0 -> 1621 bytes
.../UEditor/dialogs/background/background.css | 94 +
.../dialogs/background/background.html | 56 +
.../UEditor/dialogs/background/background.js | 376 +
.../UEditor/dialogs/background/images/bg.png | Bin 0 -> 2810 bytes
.../dialogs/background/images/success.png | Bin 0 -> 1621 bytes
public/UEditor/dialogs/charts/chart.config.js | 65 +
public/UEditor/dialogs/charts/charts.css | 165 +
public/UEditor/dialogs/charts/charts.html | 89 +
public/UEditor/dialogs/charts/charts.js | 519 +
.../UEditor/dialogs/charts/images/charts0.png | Bin 0 -> 25306 bytes
.../UEditor/dialogs/charts/images/charts1.png | Bin 0 -> 19263 bytes
.../UEditor/dialogs/charts/images/charts2.png | Bin 0 -> 23016 bytes
.../UEditor/dialogs/charts/images/charts3.png | Bin 0 -> 7823 bytes
.../UEditor/dialogs/charts/images/charts4.png | Bin 0 -> 8344 bytes
.../UEditor/dialogs/charts/images/charts5.png | Bin 0 -> 47084 bytes
public/UEditor/dialogs/emotion/emotion.css | 43 +
public/UEditor/dialogs/emotion/emotion.html | 54 +
public/UEditor/dialogs/emotion/emotion.js | 186 +
public/UEditor/dialogs/emotion/images/0.gif | Bin 0 -> 43 bytes
.../UEditor/dialogs/emotion/images/bface.gif | Bin 0 -> 27167 bytes
.../UEditor/dialogs/emotion/images/cface.gif | Bin 0 -> 8603 bytes
.../UEditor/dialogs/emotion/images/fface.gif | Bin 0 -> 18479 bytes
.../dialogs/emotion/images/jxface2.gif | Bin 0 -> 40706 bytes
.../emotion/images/neweditor-tab-bg.png | Bin 0 -> 216 bytes
.../UEditor/dialogs/emotion/images/tface.gif | Bin 0 -> 19805 bytes
.../UEditor/dialogs/emotion/images/wface.gif | Bin 0 -> 49850 bytes
.../UEditor/dialogs/emotion/images/yface.gif | Bin 0 -> 28409 bytes
public/UEditor/dialogs/gmap/gmap.html | 89 +
public/UEditor/dialogs/help/help.css | 7 +
public/UEditor/dialogs/help/help.html | 82 +
public/UEditor/dialogs/help/help.js | 56 +
public/UEditor/dialogs/image/image.css | 894 +
public/UEditor/dialogs/image/image.html | 120 +
public/UEditor/dialogs/image/image.js | 1148 +
.../dialogs/image/images/alignicon.jpg | Bin 0 -> 16101 bytes
public/UEditor/dialogs/image/images/bg.png | Bin 0 -> 2810 bytes
public/UEditor/dialogs/image/images/icons.gif | Bin 0 -> 453 bytes
public/UEditor/dialogs/image/images/icons.png | Bin 0 -> 2678 bytes
public/UEditor/dialogs/image/images/image.png | Bin 0 -> 1672 bytes
.../UEditor/dialogs/image/images/progress.png | Bin 0 -> 1269 bytes
.../UEditor/dialogs/image/images/success.gif | Bin 0 -> 445 bytes
.../UEditor/dialogs/image/images/success.png | Bin 0 -> 1621 bytes
.../dialogs/insertframe/insertframe.html | 98 +
public/UEditor/dialogs/internal.js | 80 +
public/UEditor/dialogs/link/link.html | 126 +
public/UEditor/dialogs/map/map.html | 135 +
public/UEditor/dialogs/map/show.html | 118 +
public/UEditor/dialogs/music/music.css | 30 +
public/UEditor/dialogs/music/music.html | 32 +
public/UEditor/dialogs/music/music.js | 192 +
public/UEditor/dialogs/preview/preview.html | 40 +
.../UEditor/dialogs/scrawl/images/addimg.png | Bin 0 -> 628 bytes
.../UEditor/dialogs/scrawl/images/brush.png | Bin 0 -> 608 bytes
.../UEditor/dialogs/scrawl/images/delimg.png | Bin 0 -> 516 bytes
.../UEditor/dialogs/scrawl/images/delimgH.png | Bin 0 -> 578 bytes
.../UEditor/dialogs/scrawl/images/empty.png | Bin 0 -> 519 bytes
.../UEditor/dialogs/scrawl/images/emptyH.png | Bin 0 -> 657 bytes
.../UEditor/dialogs/scrawl/images/eraser.png | Bin 0 -> 43271 bytes
public/UEditor/dialogs/scrawl/images/redo.png | Bin 0 -> 454 bytes
.../UEditor/dialogs/scrawl/images/redoH.png | Bin 0 -> 536 bytes
.../UEditor/dialogs/scrawl/images/scale.png | Bin 0 -> 435 bytes
.../UEditor/dialogs/scrawl/images/scaleH.png | Bin 0 -> 330 bytes
public/UEditor/dialogs/scrawl/images/size.png | Bin 0 -> 775 bytes
public/UEditor/dialogs/scrawl/images/undo.png | Bin 0 -> 444 bytes
.../UEditor/dialogs/scrawl/images/undoH.png | Bin 0 -> 511 bytes
public/UEditor/dialogs/scrawl/scrawl.css | 72 +
public/UEditor/dialogs/scrawl/scrawl.html | 95 +
public/UEditor/dialogs/scrawl/scrawl.js | 671 +
.../dialogs/searchreplace/searchreplace.html | 102 +
.../dialogs/searchreplace/searchreplace.js | 164 +
.../dialogs/snapscreen/snapscreen.html | 58 +
public/UEditor/dialogs/spechars/spechars.html | 21 +
public/UEditor/dialogs/spechars/spechars.js | 57 +
public/UEditor/dialogs/table/dragicon.png | Bin 0 -> 304 bytes
public/UEditor/dialogs/table/edittable.css | 84 +
public/UEditor/dialogs/table/edittable.html | 64 +
public/UEditor/dialogs/table/edittable.js | 237 +
public/UEditor/dialogs/table/edittd.html | 61 +
public/UEditor/dialogs/table/edittip.html | 33 +
public/UEditor/dialogs/template/config.js | 42 +
public/UEditor/dialogs/template/images/bg.gif | Bin 0 -> 84 bytes
.../UEditor/dialogs/template/images/pre0.png | Bin 0 -> 250 bytes
.../UEditor/dialogs/template/images/pre1.png | Bin 0 -> 291 bytes
.../UEditor/dialogs/template/images/pre2.png | Bin 0 -> 394 bytes
.../UEditor/dialogs/template/images/pre3.png | Bin 0 -> 485 bytes
.../UEditor/dialogs/template/images/pre4.png | Bin 0 -> 393 bytes
public/UEditor/dialogs/template/template.css | 18 +
public/UEditor/dialogs/template/template.html | 26 +
public/UEditor/dialogs/template/template.js | 53 +
public/UEditor/dialogs/video/images/bg.png | Bin 0 -> 2810 bytes
.../dialogs/video/images/center_focus.jpg | Bin 0 -> 11795 bytes
.../dialogs/video/images/file-icons.gif | Bin 0 -> 20097 bytes
.../dialogs/video/images/file-icons.png | Bin 0 -> 44070 bytes
public/UEditor/dialogs/video/images/icons.gif | Bin 0 -> 453 bytes
public/UEditor/dialogs/video/images/icons.png | Bin 0 -> 2678 bytes
public/UEditor/dialogs/video/images/image.png | Bin 0 -> 1672 bytes
.../dialogs/video/images/left_focus.jpg | Bin 0 -> 11423 bytes
.../dialogs/video/images/none_focus.jpg | Bin 0 -> 11546 bytes
.../UEditor/dialogs/video/images/progress.png | Bin 0 -> 1269 bytes
.../dialogs/video/images/right_focus.jpg | Bin 0 -> 11334 bytes
.../UEditor/dialogs/video/images/success.gif | Bin 0 -> 445 bytes
.../UEditor/dialogs/video/images/success.png | Bin 0 -> 1621 bytes
public/UEditor/dialogs/video/video.css | 635 +
public/UEditor/dialogs/video/video.html | 86 +
public/UEditor/dialogs/video/video.js | 797 +
public/UEditor/dialogs/webapp/webapp.html | 53 +
public/UEditor/dialogs/wordimage/tangram.js | 1495 +
.../UEditor/dialogs/wordimage/wordimage.html | 111 +
public/UEditor/dialogs/wordimage/wordimage.js | 157 +
public/UEditor/index.html | 175 +
public/UEditor/lang/en/en.js | 755 +
public/UEditor/lang/en/images/addimage.png | Bin 0 -> 3373 bytes
.../lang/en/images/alldeletebtnhoverskin.png | Bin 0 -> 743 bytes
.../lang/en/images/alldeletebtnupskin.png | Bin 0 -> 743 bytes
public/UEditor/lang/en/images/background.png | Bin 0 -> 3854 bytes
public/UEditor/lang/en/images/button.png | Bin 0 -> 4929 bytes
public/UEditor/lang/en/images/copy.png | Bin 0 -> 1222 bytes
.../UEditor/lang/en/images/deletedisable.png | Bin 0 -> 649 bytes
.../UEditor/lang/en/images/deleteenable.png | Bin 0 -> 664 bytes
.../UEditor/lang/en/images/listbackground.png | Bin 0 -> 3750 bytes
public/UEditor/lang/en/images/localimage.png | Bin 0 -> 3083 bytes
public/UEditor/lang/en/images/music.png | Bin 0 -> 91561 bytes
.../lang/en/images/rotateleftdisable.png | Bin 0 -> 719 bytes
.../lang/en/images/rotateleftenable.png | Bin 0 -> 952 bytes
.../lang/en/images/rotaterightdisable.png | Bin 0 -> 754 bytes
.../lang/en/images/rotaterightenable.png | Bin 0 -> 1007 bytes
public/UEditor/lang/en/images/upload.png | Bin 0 -> 3941 bytes
public/UEditor/lang/zh-cn/images/copy.png | Bin 0 -> 4319 bytes
.../UEditor/lang/zh-cn/images/localimage.png | Bin 0 -> 6979 bytes
public/UEditor/lang/zh-cn/images/music.png | Bin 0 -> 23106 bytes
public/UEditor/lang/zh-cn/images/upload.png | Bin 0 -> 6608 bytes
public/UEditor/lang/zh-cn/zh-cn.js | 669 +
public/UEditor/themes/default/css/ueditor.css | 1904 +
.../themes/default/css/ueditor.min.css | 8 +
public/UEditor/themes/default/dialogbase.css | 100 +
.../UEditor/themes/default/images/anchor.gif | Bin 0 -> 184 bytes
.../UEditor/themes/default/images/arrow.png | Bin 0 -> 1173 bytes
.../themes/default/images/arrow_down.png | Bin 0 -> 1610 bytes
.../themes/default/images/arrow_up.png | Bin 0 -> 1649 bytes
.../themes/default/images/button-bg.gif | Bin 0 -> 1114 bytes
.../themes/default/images/cancelbutton.gif | Bin 0 -> 1227 bytes
.../UEditor/themes/default/images/charts.png | Bin 0 -> 518 bytes
.../themes/default/images/cursor_h.gif | Bin 0 -> 253 bytes
.../themes/default/images/cursor_h.png | Bin 0 -> 175 bytes
.../themes/default/images/cursor_v.gif | Bin 0 -> 370 bytes
.../themes/default/images/cursor_v.png | Bin 0 -> 177 bytes
.../themes/default/images/dialog-title-bg.png | Bin 0 -> 938 bytes
.../themes/default/images/filescan.png | Bin 0 -> 4282 bytes
.../themes/default/images/highlighted.gif | Bin 0 -> 111 bytes
.../themes/default/images/icons-all.gif | Bin 0 -> 3750 bytes
.../UEditor/themes/default/images/icons.gif | Bin 0 -> 20947 bytes
.../UEditor/themes/default/images/icons.png | Bin 0 -> 19694 bytes
.../themes/default/images/loaderror.png | Bin 0 -> 3209 bytes
.../UEditor/themes/default/images/loading.gif | Bin 0 -> 734 bytes
public/UEditor/themes/default/images/lock.gif | Bin 0 -> 1062 bytes
.../default/images/neweditor-tab-bg.png | Bin 0 -> 216 bytes
.../themes/default/images/pagebreak.gif | Bin 0 -> 54 bytes
.../UEditor/themes/default/images/scale.png | Bin 0 -> 167 bytes
.../themes/default/images/sortable.png | Bin 0 -> 2851 bytes
.../UEditor/themes/default/images/spacer.gif | Bin 0 -> 43 bytes
.../themes/default/images/sparator_v.png | Bin 0 -> 122 bytes
.../default/images/table-cell-align.png | Bin 0 -> 1847 bytes
.../default/images/tangram-colorpicker.png | Bin 0 -> 17355 bytes
.../themes/default/images/toolbar_bg.png | Bin 0 -> 170 bytes
.../themes/default/images/unhighlighted.gif | Bin 0 -> 111 bytes
.../UEditor/themes/default/images/upload.png | Bin 0 -> 6608 bytes
.../themes/default/images/videologo.gif | Bin 0 -> 1604 bytes
public/UEditor/themes/default/images/word.gif | Bin 0 -> 1019 bytes
.../themes/default/images/wordpaste.png | Bin 0 -> 6467 bytes
public/UEditor/themes/iframe.css | 1 +
.../third-party/SyntaxHighlighter/shCore.js | 3655 ++
.../SyntaxHighlighter/shCoreDefault.css | 1 +
.../third-party/codemirror/codemirror.css | 104 +
.../third-party/codemirror/codemirror.js | 3581 ++
.../highcharts/adapters/mootools-adapter.js | 13 +
.../adapters/mootools-adapter.src.js | 313 +
.../highcharts/adapters/prototype-adapter.js | 15 +
.../adapters/prototype-adapter.src.js | 316 +
.../adapters/standalone-framework.js | 17 +
.../adapters/standalone-framework.src.js | 583 +
.../third-party/highcharts/highcharts-more.js | 50 +
.../highcharts/highcharts-more.src.js | 2430 ++
.../third-party/highcharts/highcharts.js | 283 +
.../third-party/highcharts/highcharts.src.js | 16974 +++++++++
.../highcharts/modules/annotations.js | 7 +
.../highcharts/modules/annotations.src.js | 401 +
.../highcharts/modules/canvas-tools.js | 133 +
.../highcharts/modules/canvas-tools.src.js | 3113 ++
.../third-party/highcharts/modules/data.js | 17 +
.../highcharts/modules/data.src.js | 582 +
.../highcharts/modules/drilldown.js | 11 +
.../highcharts/modules/drilldown.src.js | 447 +
.../highcharts/modules/exporting.js | 22 +
.../highcharts/modules/exporting.src.js | 709 +
.../third-party/highcharts/modules/funnel.js | 12 +
.../highcharts/modules/funnel.src.js | 289 +
.../third-party/highcharts/modules/heatmap.js | 1 +
.../highcharts/modules/heatmap.src.js | 53 +
.../third-party/highcharts/modules/map.js | 27 +
.../third-party/highcharts/modules/map.src.js | 1002 +
.../highcharts/modules/no-data-to-display.js | 12 +
.../modules/no-data-to-display.src.js | 128 +
.../highcharts/themes/dark-blue.js | 254 +
.../highcharts/themes/dark-green.js | 255 +
.../third-party/highcharts/themes/gray.js | 257 +
.../third-party/highcharts/themes/grid.js | 103 +
.../third-party/highcharts/themes/skies.js | 89 +
public/UEditor/third-party/jquery-1.10.2.js | 9789 +++++
.../UEditor/third-party/jquery-1.10.2.min.js | 6 +
.../UEditor/third-party/jquery-1.10.2.min.map | 1 +
.../snapscreen/UEditorSnapscreen.exe | Bin 0 -> 519936 bytes
.../UEditor/third-party/video-js/font/vjs.eot | Bin 0 -> 3536 bytes
.../UEditor/third-party/video-js/font/vjs.svg | 65 +
.../UEditor/third-party/video-js/font/vjs.ttf | Bin 0 -> 3372 bytes
.../third-party/video-js/font/vjs.woff | Bin 0 -> 4228 bytes
.../UEditor/third-party/video-js/video-js.css | 766 +
.../third-party/video-js/video-js.min.css | 5 +
.../UEditor/third-party/video-js/video.dev.js | 7108 ++++
public/UEditor/third-party/video-js/video.js | 129 +
.../third-party/webuploader/webuploader.css | 28 +
.../webuploader/webuploader.custom.js | 5670 +++
.../webuploader/webuploader.custom.min.js | 2 +
.../webuploader/webuploader.flashonly.js | 4176 +++
.../webuploader/webuploader.flashonly.min.js | 2 +
.../webuploader/webuploader.html5only.js | 5559 +++
.../webuploader/webuploader.html5only.min.js | 2 +
.../third-party/webuploader/webuploader.js | 6733 ++++
.../webuploader/webuploader.min.js | 2 +
.../webuploader/webuploader.withoutimage.js | 4593 +++
.../webuploader.withoutimage.min.js | 2 +
public/UEditor/third-party/xss.min.js | 1 +
.../zeroclipboard/ZeroClipboard.js | 1256 +
.../zeroclipboard/ZeroClipboard.min.js | 9 +
public/UEditor/ueditor.all.js | 29559 ++++++++++++++++
public/UEditor/ueditor.all.min.js | 18 +
public/UEditor/ueditor.config.js | 473 +
public/UEditor/ueditor.parse.js | 1022 +
public/UEditor/ueditor.parse.min.js | 7 +
src/App.vue | 10 +-
src/api/api.js | 4 +-
src/api/manage.js | 2 +-
src/api/system/dictDetail.js | 52 +
.../src/highlight/index.js | 2 +-
src/components/jeecg/JEditableTable.vue | 3 +-
src/components/jeecg/JImageUpload.vue | 2 +-
src/components/jeecg/JImportModal.vue | 4 +-
src/components/jeecg/JModal/index.vue | 2 +-
src/components/jeecg/JUpload.vue | 2 +-
.../jeecgbiz/modal/SelectUserListModal.vue | 4 +-
src/components/tools/DynamicNotice.vue | 2 +-
src/main.js | 4 +
src/mixins/JeecgListMixin.js | 2 +-
src/store/modules/user.js | 15 +
src/utils/util.js | 8 +-
.../taskAssignRule/taskAssignRuleDialog.vue | 2 +-
src/views/erp/bill/dialog/LinkBillList.vue | 2 +-
src/views/erp/bill/mixins/BillListMixin.js | 2 +-
.../erp/bill/modules/AllocationOutModal.vue | 6 +-
src/views/erp/bill/modules/AssembleModal.vue | 6 +-
.../erp/bill/modules/DisassembleModal.vue | 6 +-
.../erp/bill/modules/InventoryReviewModal.vue | 6 +-
src/views/erp/bill/modules/OtherInModal.vue | 6 +-
src/views/erp/bill/modules/OtherOutModal.vue | 6 +-
.../erp/bill/modules/PurchaseBackModal.vue | 6 +-
.../erp/bill/modules/PurchaseInModal.vue | 6 +-
.../erp/bill/modules/PurchaseOrderModal.vue | 6 +-
.../erp/bill/modules/RetailBackModal.vue | 6 +-
src/views/erp/bill/modules/RetailOutModal.vue | 6 +-
src/views/erp/bill/modules/SaleBackModal.vue | 6 +-
src/views/erp/bill/modules/SaleOrderModal.vue | 6 +-
src/views/erp/bill/modules/SaleOutModal.vue | 6 +-
.../erp/financial/dialog/DebtBillList.vue | 2 +-
.../financial/mixins/FinancialListMixin.js | 2 +-
.../erp/financial/modules/AdvanceInModal.vue | 6 +-
src/views/erp/financial/modules/GiroModal.vue | 6 +-
.../erp/financial/modules/ItemInModal.vue | 6 +-
.../erp/financial/modules/ItemOutModal.vue | 6 +-
.../erp/financial/modules/MoneyInModal.vue | 6 +-
.../erp/financial/modules/MoneyOutModal.vue | 6 +-
.../erp/material/MaterialCategoryList.vue | 2 +-
src/views/erp/material/MaterialList.vue | 16 +-
.../erp/material/MaterialPropertyList.vue | 6 +-
.../modules/MaterialCategoryModal.vue | 2 +-
.../erp/material/modules/MaterialModal.vue | 8 +-
src/views/erp/report/AccountReport.vue | 4 +-
src/views/erp/report/AllocationDetail.vue | 2 +-
src/views/erp/report/BuyInReport.vue | 2 +-
src/views/erp/report/CustomerAccount.vue | 2 +-
src/views/erp/report/InDetail.vue | 2 +-
src/views/erp/report/InMaterialCount.vue | 2 +-
src/views/erp/report/InOutStockReport.vue | 6 +-
src/views/erp/report/MaterialStock.vue | 2 +-
src/views/erp/report/OutDetail.vue | 2 +-
src/views/erp/report/OutMaterialCount.vue | 2 +-
src/views/erp/report/SaleOutReport.vue | 2 +-
src/views/erp/report/StockWarningReport.vue | 2 +-
src/views/erp/report/VendorAccount.vue | 2 +-
src/views/erp/report/batchStock.vue | 2 +-
.../erp/report/modules/AccountInOutList.vue | 2 +-
.../erp/report/modules/MaterialInOutList.vue | 2 +-
src/views/erp/system/AccountList.vue | 8 +-
src/views/erp/system/CustomerList.vue | 14 +-
src/views/erp/system/DepotList.vue | 8 +-
src/views/erp/system/FunctionList.vue | 6 +-
src/views/erp/system/InOutItemList.vue | 6 +-
src/views/erp/system/LogList.vue | 2 +-
src/views/erp/system/MemberList.vue | 14 +-
src/views/erp/system/MsgList.vue | 6 +-
src/views/erp/system/OrganizationList.vue | 2 +-
src/views/erp/system/PersonList.vue | 6 +-
src/views/erp/system/PlatformConfigList.vue | 6 +-
src/views/erp/system/PluginList.vue | 10 +-
src/views/erp/system/RoleList.vue | 8 +-
src/views/erp/system/TenantList.vue | 4 +-
src/views/erp/system/UserList.vue | 10 +-
src/views/erp/system/VendorList.vue | 14 +-
.../erp/system/modules/OrganizationModal.vue | 2 +-
.../erp/system/modules/RolePushBtnModal.vue | 2 +-
src/views/login.vue | 6 +-
src/views/pay/refund/index.vue | 18 +-
src/views/system/sensitiveWord/index.vue | 2 +-
vue.config.js | 13 +-
351 files changed, 128774 insertions(+), 196 deletions(-)
create mode 100644 public/UEditor/dialogs/anchor/anchor.html
create mode 100644 public/UEditor/dialogs/attachment/attachment.css
create mode 100644 public/UEditor/dialogs/attachment/attachment.html
create mode 100644 public/UEditor/dialogs/attachment/attachment.js
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_default.png
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_exe.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_jpg.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_rar.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_txt.gif
create mode 100644 public/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif
create mode 100644 public/UEditor/dialogs/attachment/images/alignicon.gif
create mode 100644 public/UEditor/dialogs/attachment/images/alignicon.png
create mode 100644 public/UEditor/dialogs/attachment/images/bg.png
create mode 100644 public/UEditor/dialogs/attachment/images/file-icons.gif
create mode 100644 public/UEditor/dialogs/attachment/images/file-icons.png
create mode 100644 public/UEditor/dialogs/attachment/images/icons.gif
create mode 100644 public/UEditor/dialogs/attachment/images/icons.png
create mode 100644 public/UEditor/dialogs/attachment/images/image.png
create mode 100644 public/UEditor/dialogs/attachment/images/progress.png
create mode 100644 public/UEditor/dialogs/attachment/images/success.gif
create mode 100644 public/UEditor/dialogs/attachment/images/success.png
create mode 100644 public/UEditor/dialogs/background/background.css
create mode 100644 public/UEditor/dialogs/background/background.html
create mode 100644 public/UEditor/dialogs/background/background.js
create mode 100644 public/UEditor/dialogs/background/images/bg.png
create mode 100644 public/UEditor/dialogs/background/images/success.png
create mode 100644 public/UEditor/dialogs/charts/chart.config.js
create mode 100644 public/UEditor/dialogs/charts/charts.css
create mode 100644 public/UEditor/dialogs/charts/charts.html
create mode 100644 public/UEditor/dialogs/charts/charts.js
create mode 100644 public/UEditor/dialogs/charts/images/charts0.png
create mode 100644 public/UEditor/dialogs/charts/images/charts1.png
create mode 100644 public/UEditor/dialogs/charts/images/charts2.png
create mode 100644 public/UEditor/dialogs/charts/images/charts3.png
create mode 100644 public/UEditor/dialogs/charts/images/charts4.png
create mode 100644 public/UEditor/dialogs/charts/images/charts5.png
create mode 100644 public/UEditor/dialogs/emotion/emotion.css
create mode 100644 public/UEditor/dialogs/emotion/emotion.html
create mode 100644 public/UEditor/dialogs/emotion/emotion.js
create mode 100644 public/UEditor/dialogs/emotion/images/0.gif
create mode 100644 public/UEditor/dialogs/emotion/images/bface.gif
create mode 100644 public/UEditor/dialogs/emotion/images/cface.gif
create mode 100644 public/UEditor/dialogs/emotion/images/fface.gif
create mode 100644 public/UEditor/dialogs/emotion/images/jxface2.gif
create mode 100644 public/UEditor/dialogs/emotion/images/neweditor-tab-bg.png
create mode 100644 public/UEditor/dialogs/emotion/images/tface.gif
create mode 100644 public/UEditor/dialogs/emotion/images/wface.gif
create mode 100644 public/UEditor/dialogs/emotion/images/yface.gif
create mode 100644 public/UEditor/dialogs/gmap/gmap.html
create mode 100644 public/UEditor/dialogs/help/help.css
create mode 100644 public/UEditor/dialogs/help/help.html
create mode 100644 public/UEditor/dialogs/help/help.js
create mode 100644 public/UEditor/dialogs/image/image.css
create mode 100644 public/UEditor/dialogs/image/image.html
create mode 100644 public/UEditor/dialogs/image/image.js
create mode 100644 public/UEditor/dialogs/image/images/alignicon.jpg
create mode 100644 public/UEditor/dialogs/image/images/bg.png
create mode 100644 public/UEditor/dialogs/image/images/icons.gif
create mode 100644 public/UEditor/dialogs/image/images/icons.png
create mode 100644 public/UEditor/dialogs/image/images/image.png
create mode 100644 public/UEditor/dialogs/image/images/progress.png
create mode 100644 public/UEditor/dialogs/image/images/success.gif
create mode 100644 public/UEditor/dialogs/image/images/success.png
create mode 100644 public/UEditor/dialogs/insertframe/insertframe.html
create mode 100644 public/UEditor/dialogs/internal.js
create mode 100644 public/UEditor/dialogs/link/link.html
create mode 100644 public/UEditor/dialogs/map/map.html
create mode 100644 public/UEditor/dialogs/map/show.html
create mode 100644 public/UEditor/dialogs/music/music.css
create mode 100644 public/UEditor/dialogs/music/music.html
create mode 100644 public/UEditor/dialogs/music/music.js
create mode 100644 public/UEditor/dialogs/preview/preview.html
create mode 100644 public/UEditor/dialogs/scrawl/images/addimg.png
create mode 100644 public/UEditor/dialogs/scrawl/images/brush.png
create mode 100644 public/UEditor/dialogs/scrawl/images/delimg.png
create mode 100644 public/UEditor/dialogs/scrawl/images/delimgH.png
create mode 100644 public/UEditor/dialogs/scrawl/images/empty.png
create mode 100644 public/UEditor/dialogs/scrawl/images/emptyH.png
create mode 100644 public/UEditor/dialogs/scrawl/images/eraser.png
create mode 100644 public/UEditor/dialogs/scrawl/images/redo.png
create mode 100644 public/UEditor/dialogs/scrawl/images/redoH.png
create mode 100644 public/UEditor/dialogs/scrawl/images/scale.png
create mode 100644 public/UEditor/dialogs/scrawl/images/scaleH.png
create mode 100644 public/UEditor/dialogs/scrawl/images/size.png
create mode 100644 public/UEditor/dialogs/scrawl/images/undo.png
create mode 100644 public/UEditor/dialogs/scrawl/images/undoH.png
create mode 100644 public/UEditor/dialogs/scrawl/scrawl.css
create mode 100644 public/UEditor/dialogs/scrawl/scrawl.html
create mode 100644 public/UEditor/dialogs/scrawl/scrawl.js
create mode 100644 public/UEditor/dialogs/searchreplace/searchreplace.html
create mode 100644 public/UEditor/dialogs/searchreplace/searchreplace.js
create mode 100644 public/UEditor/dialogs/snapscreen/snapscreen.html
create mode 100644 public/UEditor/dialogs/spechars/spechars.html
create mode 100644 public/UEditor/dialogs/spechars/spechars.js
create mode 100644 public/UEditor/dialogs/table/dragicon.png
create mode 100644 public/UEditor/dialogs/table/edittable.css
create mode 100644 public/UEditor/dialogs/table/edittable.html
create mode 100644 public/UEditor/dialogs/table/edittable.js
create mode 100644 public/UEditor/dialogs/table/edittd.html
create mode 100644 public/UEditor/dialogs/table/edittip.html
create mode 100644 public/UEditor/dialogs/template/config.js
create mode 100644 public/UEditor/dialogs/template/images/bg.gif
create mode 100644 public/UEditor/dialogs/template/images/pre0.png
create mode 100644 public/UEditor/dialogs/template/images/pre1.png
create mode 100644 public/UEditor/dialogs/template/images/pre2.png
create mode 100644 public/UEditor/dialogs/template/images/pre3.png
create mode 100644 public/UEditor/dialogs/template/images/pre4.png
create mode 100644 public/UEditor/dialogs/template/template.css
create mode 100644 public/UEditor/dialogs/template/template.html
create mode 100644 public/UEditor/dialogs/template/template.js
create mode 100644 public/UEditor/dialogs/video/images/bg.png
create mode 100644 public/UEditor/dialogs/video/images/center_focus.jpg
create mode 100644 public/UEditor/dialogs/video/images/file-icons.gif
create mode 100644 public/UEditor/dialogs/video/images/file-icons.png
create mode 100644 public/UEditor/dialogs/video/images/icons.gif
create mode 100644 public/UEditor/dialogs/video/images/icons.png
create mode 100644 public/UEditor/dialogs/video/images/image.png
create mode 100644 public/UEditor/dialogs/video/images/left_focus.jpg
create mode 100644 public/UEditor/dialogs/video/images/none_focus.jpg
create mode 100644 public/UEditor/dialogs/video/images/progress.png
create mode 100644 public/UEditor/dialogs/video/images/right_focus.jpg
create mode 100644 public/UEditor/dialogs/video/images/success.gif
create mode 100644 public/UEditor/dialogs/video/images/success.png
create mode 100644 public/UEditor/dialogs/video/video.css
create mode 100644 public/UEditor/dialogs/video/video.html
create mode 100644 public/UEditor/dialogs/video/video.js
create mode 100644 public/UEditor/dialogs/webapp/webapp.html
create mode 100644 public/UEditor/dialogs/wordimage/tangram.js
create mode 100644 public/UEditor/dialogs/wordimage/wordimage.html
create mode 100644 public/UEditor/dialogs/wordimage/wordimage.js
create mode 100644 public/UEditor/index.html
create mode 100644 public/UEditor/lang/en/en.js
create mode 100644 public/UEditor/lang/en/images/addimage.png
create mode 100644 public/UEditor/lang/en/images/alldeletebtnhoverskin.png
create mode 100644 public/UEditor/lang/en/images/alldeletebtnupskin.png
create mode 100644 public/UEditor/lang/en/images/background.png
create mode 100644 public/UEditor/lang/en/images/button.png
create mode 100644 public/UEditor/lang/en/images/copy.png
create mode 100644 public/UEditor/lang/en/images/deletedisable.png
create mode 100644 public/UEditor/lang/en/images/deleteenable.png
create mode 100644 public/UEditor/lang/en/images/listbackground.png
create mode 100644 public/UEditor/lang/en/images/localimage.png
create mode 100644 public/UEditor/lang/en/images/music.png
create mode 100644 public/UEditor/lang/en/images/rotateleftdisable.png
create mode 100644 public/UEditor/lang/en/images/rotateleftenable.png
create mode 100644 public/UEditor/lang/en/images/rotaterightdisable.png
create mode 100644 public/UEditor/lang/en/images/rotaterightenable.png
create mode 100644 public/UEditor/lang/en/images/upload.png
create mode 100644 public/UEditor/lang/zh-cn/images/copy.png
create mode 100644 public/UEditor/lang/zh-cn/images/localimage.png
create mode 100644 public/UEditor/lang/zh-cn/images/music.png
create mode 100644 public/UEditor/lang/zh-cn/images/upload.png
create mode 100644 public/UEditor/lang/zh-cn/zh-cn.js
create mode 100644 public/UEditor/themes/default/css/ueditor.css
create mode 100644 public/UEditor/themes/default/css/ueditor.min.css
create mode 100644 public/UEditor/themes/default/dialogbase.css
create mode 100644 public/UEditor/themes/default/images/anchor.gif
create mode 100644 public/UEditor/themes/default/images/arrow.png
create mode 100644 public/UEditor/themes/default/images/arrow_down.png
create mode 100644 public/UEditor/themes/default/images/arrow_up.png
create mode 100644 public/UEditor/themes/default/images/button-bg.gif
create mode 100644 public/UEditor/themes/default/images/cancelbutton.gif
create mode 100644 public/UEditor/themes/default/images/charts.png
create mode 100644 public/UEditor/themes/default/images/cursor_h.gif
create mode 100644 public/UEditor/themes/default/images/cursor_h.png
create mode 100644 public/UEditor/themes/default/images/cursor_v.gif
create mode 100644 public/UEditor/themes/default/images/cursor_v.png
create mode 100644 public/UEditor/themes/default/images/dialog-title-bg.png
create mode 100644 public/UEditor/themes/default/images/filescan.png
create mode 100644 public/UEditor/themes/default/images/highlighted.gif
create mode 100644 public/UEditor/themes/default/images/icons-all.gif
create mode 100644 public/UEditor/themes/default/images/icons.gif
create mode 100644 public/UEditor/themes/default/images/icons.png
create mode 100644 public/UEditor/themes/default/images/loaderror.png
create mode 100644 public/UEditor/themes/default/images/loading.gif
create mode 100644 public/UEditor/themes/default/images/lock.gif
create mode 100644 public/UEditor/themes/default/images/neweditor-tab-bg.png
create mode 100644 public/UEditor/themes/default/images/pagebreak.gif
create mode 100644 public/UEditor/themes/default/images/scale.png
create mode 100644 public/UEditor/themes/default/images/sortable.png
create mode 100644 public/UEditor/themes/default/images/spacer.gif
create mode 100644 public/UEditor/themes/default/images/sparator_v.png
create mode 100644 public/UEditor/themes/default/images/table-cell-align.png
create mode 100644 public/UEditor/themes/default/images/tangram-colorpicker.png
create mode 100644 public/UEditor/themes/default/images/toolbar_bg.png
create mode 100644 public/UEditor/themes/default/images/unhighlighted.gif
create mode 100644 public/UEditor/themes/default/images/upload.png
create mode 100644 public/UEditor/themes/default/images/videologo.gif
create mode 100644 public/UEditor/themes/default/images/word.gif
create mode 100644 public/UEditor/themes/default/images/wordpaste.png
create mode 100644 public/UEditor/themes/iframe.css
create mode 100644 public/UEditor/third-party/SyntaxHighlighter/shCore.js
create mode 100644 public/UEditor/third-party/SyntaxHighlighter/shCoreDefault.css
create mode 100644 public/UEditor/third-party/codemirror/codemirror.css
create mode 100644 public/UEditor/third-party/codemirror/codemirror.js
create mode 100644 public/UEditor/third-party/highcharts/adapters/mootools-adapter.js
create mode 100644 public/UEditor/third-party/highcharts/adapters/mootools-adapter.src.js
create mode 100644 public/UEditor/third-party/highcharts/adapters/prototype-adapter.js
create mode 100644 public/UEditor/third-party/highcharts/adapters/prototype-adapter.src.js
create mode 100644 public/UEditor/third-party/highcharts/adapters/standalone-framework.js
create mode 100644 public/UEditor/third-party/highcharts/adapters/standalone-framework.src.js
create mode 100644 public/UEditor/third-party/highcharts/highcharts-more.js
create mode 100644 public/UEditor/third-party/highcharts/highcharts-more.src.js
create mode 100644 public/UEditor/third-party/highcharts/highcharts.js
create mode 100644 public/UEditor/third-party/highcharts/highcharts.src.js
create mode 100644 public/UEditor/third-party/highcharts/modules/annotations.js
create mode 100644 public/UEditor/third-party/highcharts/modules/annotations.src.js
create mode 100644 public/UEditor/third-party/highcharts/modules/canvas-tools.js
create mode 100644 public/UEditor/third-party/highcharts/modules/canvas-tools.src.js
create mode 100644 public/UEditor/third-party/highcharts/modules/data.js
create mode 100644 public/UEditor/third-party/highcharts/modules/data.src.js
create mode 100644 public/UEditor/third-party/highcharts/modules/drilldown.js
create mode 100644 public/UEditor/third-party/highcharts/modules/drilldown.src.js
create mode 100644 public/UEditor/third-party/highcharts/modules/exporting.js
create mode 100644 public/UEditor/third-party/highcharts/modules/exporting.src.js
create mode 100644 public/UEditor/third-party/highcharts/modules/funnel.js
create mode 100644 public/UEditor/third-party/highcharts/modules/funnel.src.js
create mode 100644 public/UEditor/third-party/highcharts/modules/heatmap.js
create mode 100644 public/UEditor/third-party/highcharts/modules/heatmap.src.js
create mode 100644 public/UEditor/third-party/highcharts/modules/map.js
create mode 100644 public/UEditor/third-party/highcharts/modules/map.src.js
create mode 100644 public/UEditor/third-party/highcharts/modules/no-data-to-display.js
create mode 100644 public/UEditor/third-party/highcharts/modules/no-data-to-display.src.js
create mode 100644 public/UEditor/third-party/highcharts/themes/dark-blue.js
create mode 100644 public/UEditor/third-party/highcharts/themes/dark-green.js
create mode 100644 public/UEditor/third-party/highcharts/themes/gray.js
create mode 100644 public/UEditor/third-party/highcharts/themes/grid.js
create mode 100644 public/UEditor/third-party/highcharts/themes/skies.js
create mode 100644 public/UEditor/third-party/jquery-1.10.2.js
create mode 100644 public/UEditor/third-party/jquery-1.10.2.min.js
create mode 100644 public/UEditor/third-party/jquery-1.10.2.min.map
create mode 100644 public/UEditor/third-party/snapscreen/UEditorSnapscreen.exe
create mode 100644 public/UEditor/third-party/video-js/font/vjs.eot
create mode 100644 public/UEditor/third-party/video-js/font/vjs.svg
create mode 100644 public/UEditor/third-party/video-js/font/vjs.ttf
create mode 100644 public/UEditor/third-party/video-js/font/vjs.woff
create mode 100644 public/UEditor/third-party/video-js/video-js.css
create mode 100644 public/UEditor/third-party/video-js/video-js.min.css
create mode 100644 public/UEditor/third-party/video-js/video.dev.js
create mode 100644 public/UEditor/third-party/video-js/video.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.css
create mode 100644 public/UEditor/third-party/webuploader/webuploader.custom.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.custom.min.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.flashonly.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.flashonly.min.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.html5only.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.html5only.min.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.min.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.withoutimage.js
create mode 100644 public/UEditor/third-party/webuploader/webuploader.withoutimage.min.js
create mode 100644 public/UEditor/third-party/xss.min.js
create mode 100644 public/UEditor/third-party/zeroclipboard/ZeroClipboard.js
create mode 100644 public/UEditor/third-party/zeroclipboard/ZeroClipboard.min.js
create mode 100644 public/UEditor/ueditor.all.js
create mode 100644 public/UEditor/ueditor.all.min.js
create mode 100644 public/UEditor/ueditor.config.js
create mode 100644 public/UEditor/ueditor.parse.js
create mode 100644 public/UEditor/ueditor.parse.min.js
create mode 100644 src/api/system/dictDetail.js
diff --git a/package.json b/package.json
index 0321791..043f49b 100644
--- a/package.json
+++ b/package.json
@@ -74,6 +74,7 @@
"sortablejs": "1.10.2",
"throttle-debounce": "^2.1.0",
"vue": "2.6.12",
+ "vue-area-linkage": "^5.1.0",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
"vue-draggable-resizable": "^2.3.0",
@@ -106,6 +107,7 @@
"eslint-plugin-import": "^2.20.0",
"eslint-plugin-prettier": "^3.1.0",
"eslint-plugin-vue": "7.2.0",
+ "file-loader": "^6.2.0",
"fs-extra": "^8.1.0",
"lint-staged": "10.5.3",
"runjs": "4.4.2",
diff --git a/public/UEditor/dialogs/anchor/anchor.html b/public/UEditor/dialogs/anchor/anchor.html
new file mode 100644
index 0000000..f277847
--- /dev/null
+++ b/public/UEditor/dialogs/anchor/anchor.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/UEditor/dialogs/attachment/attachment.css b/public/UEditor/dialogs/attachment/attachment.css
new file mode 100644
index 0000000..548b428
--- /dev/null
+++ b/public/UEditor/dialogs/attachment/attachment.css
@@ -0,0 +1,681 @@
+@charset "utf-8";
+/* dialog样式 */
+.wrapper {
+ zoom: 1;
+ width: 630px;
+ *width: 626px;
+ height: 380px;
+ margin: 0 auto;
+ padding: 10px;
+ position: relative;
+ font-family: sans-serif;
+}
+
+/*tab样式框大小*/
+.tabhead {
+ float:left;
+}
+.tabbody {
+ width: 100%;
+ height: 346px;
+ position: relative;
+ clear: both;
+}
+
+.tabbody .panel {
+ position: absolute;
+ width: 0;
+ height: 0;
+ background: #fff;
+ overflow: hidden;
+ display: none;
+}
+
+.tabbody .panel.focus {
+ width: 100%;
+ height: 346px;
+ display: block;
+}
+
+/* 上传附件 */
+.tabbody #upload.panel {
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ position: absolute !important;
+ clip: rect(1px, 1px, 1px, 1px);
+ background: #fff;
+ display: block;
+}
+
+.tabbody #upload.panel.focus {
+ width: 100%;
+ height: 346px;
+ display: block;
+ clip: auto;
+}
+
+#upload .queueList {
+ margin: 0;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ overflow: hidden;
+}
+
+#upload p {
+ margin: 0;
+}
+
+.element-invisible {
+ width: 0 !important;
+ height: 0 !important;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ overflow: hidden;
+ position: absolute !important;
+ clip: rect(1px, 1px, 1px, 1px);
+}
+
+#upload .placeholder {
+ margin: 10px;
+ border: 2px dashed #e6e6e6;
+ *border: 0px dashed #e6e6e6;
+ height: 172px;
+ padding-top: 150px;
+ text-align: center;
+ background: url(./images/image.png) center 70px no-repeat;
+ color: #cccccc;
+ font-size: 18px;
+ position: relative;
+ top:0;
+ *top: 10px;
+}
+
+#upload .placeholder .webuploader-pick {
+ font-size: 18px;
+ background: #00b7ee;
+ border-radius: 3px;
+ line-height: 44px;
+ padding: 0 30px;
+ *width: 120px;
+ color: #fff;
+ display: inline-block;
+ margin: 0 auto 20px auto;
+ cursor: pointer;
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+#upload .placeholder .webuploader-pick-hover {
+ background: #00a2d4;
+}
+
+
+#filePickerContainer {
+ text-align: center;
+}
+
+#upload .placeholder .flashTip {
+ color: #666666;
+ font-size: 12px;
+ position: absolute;
+ width: 100%;
+ text-align: center;
+ bottom: 20px;
+}
+
+#upload .placeholder .flashTip a {
+ color: #0785d1;
+ text-decoration: none;
+}
+
+#upload .placeholder .flashTip a:hover {
+ text-decoration: underline;
+}
+
+#upload .placeholder.webuploader-dnd-over {
+ border-color: #999999;
+}
+
+#upload .filelist {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+ position: relative;
+ height: 300px;
+}
+
+#upload .filelist:after {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ clear: both;
+}
+
+#upload .filelist li {
+ width: 113px;
+ height: 113px;
+ background: url(./images/bg.png);
+ text-align: center;
+ margin: 9px 0 0 9px;
+ *margin: 6px 0 0 6px;
+ position: relative;
+ display: block;
+ float: left;
+ overflow: hidden;
+ font-size: 12px;
+}
+
+#upload .filelist li p.log {
+ position: relative;
+ top: -45px;
+}
+
+#upload .filelist li p.title {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ top: 5px;
+ text-indent: 5px;
+ text-align: left;
+}
+
+#upload .filelist li p.progress {
+ position: absolute;
+ width: 100%;
+ bottom: 0;
+ left: 0;
+ height: 8px;
+ overflow: hidden;
+ z-index: 50;
+ margin: 0;
+ border-radius: 0;
+ background: none;
+ -webkit-box-shadow: 0 0 0;
+}
+
+#upload .filelist li p.progress span {
+ display: none;
+ overflow: hidden;
+ width: 0;
+ height: 100%;
+ background: #1483d8 url(./images/progress.png) repeat-x;
+
+ -webit-transition: width 200ms linear;
+ -moz-transition: width 200ms linear;
+ -o-transition: width 200ms linear;
+ -ms-transition: width 200ms linear;
+ transition: width 200ms linear;
+
+ -webkit-animation: progressmove 2s linear infinite;
+ -moz-animation: progressmove 2s linear infinite;
+ -o-animation: progressmove 2s linear infinite;
+ -ms-animation: progressmove 2s linear infinite;
+ animation: progressmove 2s linear infinite;
+
+ -webkit-transform: translateZ(0);
+}
+
+@-webkit-keyframes progressmove {
+ 0% {
+ background-position: 0 0;
+ }
+ 100% {
+ background-position: 17px 0;
+ }
+}
+
+@-moz-keyframes progressmove {
+ 0% {
+ background-position: 0 0;
+ }
+ 100% {
+ background-position: 17px 0;
+ }
+}
+
+@keyframes progressmove {
+ 0% {
+ background-position: 0 0;
+ }
+ 100% {
+ background-position: 17px 0;
+ }
+}
+
+#upload .filelist li p.imgWrap {
+ position: relative;
+ z-index: 2;
+ line-height: 113px;
+ vertical-align: middle;
+ overflow: hidden;
+ width: 113px;
+ height: 113px;
+
+ -webkit-transform-origin: 50% 50%;
+ -moz-transform-origin: 50% 50%;
+ -o-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+
+ -webit-transition: 200ms ease-out;
+ -moz-transition: 200ms ease-out;
+ -o-transition: 200ms ease-out;
+ -ms-transition: 200ms ease-out;
+ transition: 200ms ease-out;
+}
+#upload .filelist li p.imgWrap.notimage {
+ margin-top: 0;
+ width: 111px;
+ height: 111px;
+ border: 1px #eeeeee solid;
+}
+#upload .filelist li p.imgWrap.notimage i.file-preview {
+ margin-top: 15px;
+}
+
+#upload .filelist li img {
+ width: 100%;
+}
+
+#upload .filelist li p.error {
+ background: #f43838;
+ color: #fff;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ height: 28px;
+ line-height: 28px;
+ width: 100%;
+ z-index: 100;
+ display:none;
+}
+
+#upload .filelist li .success {
+ display: block;
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ height: 40px;
+ width: 100%;
+ z-index: 200;
+ background: url(./images/success.png) no-repeat right bottom;
+ background-image: url(./images/success.gif) \9;
+}
+
+#upload .filelist li.filePickerBlock {
+ width: 113px;
+ height: 113px;
+ background: url(./images/image.png) no-repeat center 12px;
+ border: 1px solid #eeeeee;
+ border-radius: 0;
+}
+#upload .filelist li.filePickerBlock div.webuploader-pick {
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ opacity: 0;
+ background: none;
+ font-size: 0;
+}
+
+#upload .filelist div.file-panel {
+ position: absolute;
+ height: 0;
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
+ background: rgba(0, 0, 0, 0.5);
+ width: 100%;
+ top: 0;
+ left: 0;
+ overflow: hidden;
+ z-index: 300;
+}
+
+#upload .filelist div.file-panel span {
+ width: 24px;
+ height: 24px;
+ display: inline;
+ float: right;
+ text-indent: -9999px;
+ overflow: hidden;
+ background: url(./images/icons.png) no-repeat;
+ background: url(./images/icons.gif) no-repeat \9;
+ margin: 5px 1px 1px;
+ cursor: pointer;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+#upload .filelist div.file-panel span.rotateLeft {
+ display:none;
+ background-position: 0 -24px;
+}
+
+#upload .filelist div.file-panel span.rotateLeft:hover {
+ background-position: 0 0;
+}
+
+#upload .filelist div.file-panel span.rotateRight {
+ display:none;
+ background-position: -24px -24px;
+}
+
+#upload .filelist div.file-panel span.rotateRight:hover {
+ background-position: -24px 0;
+}
+
+#upload .filelist div.file-panel span.cancel {
+ background-position: -48px -24px;
+}
+
+#upload .filelist div.file-panel span.cancel:hover {
+ background-position: -48px 0;
+}
+
+#upload .statusBar {
+ height: 45px;
+ border-bottom: 1px solid #dadada;
+ margin: 0 10px;
+ padding: 0;
+ line-height: 45px;
+ vertical-align: middle;
+ position: relative;
+}
+
+#upload .statusBar .progress {
+ border: 1px solid #1483d8;
+ width: 198px;
+ background: #fff;
+ height: 18px;
+ position: absolute;
+ top: 12px;
+ display: none;
+ text-align: center;
+ line-height: 18px;
+ color: #6dbfff;
+ margin: 0 10px 0 0;
+}
+#upload .statusBar .progress span.percentage {
+ width: 0;
+ height: 100%;
+ left: 0;
+ top: 0;
+ background: #1483d8;
+ position: absolute;
+}
+#upload .statusBar .progress span.text {
+ position: relative;
+ z-index: 10;
+}
+
+#upload .statusBar .info {
+ display: inline-block;
+ font-size: 14px;
+ color: #666666;
+}
+
+#upload .statusBar .btns {
+ position: absolute;
+ top: 7px;
+ right: 0;
+ line-height: 30px;
+}
+
+#filePickerBtn {
+ display: inline-block;
+ float: left;
+}
+#upload .statusBar .btns .webuploader-pick,
+#upload .statusBar .btns .uploadBtn,
+#upload .statusBar .btns .uploadBtn.state-uploading,
+#upload .statusBar .btns .uploadBtn.state-paused {
+ background: #ffffff;
+ border: 1px solid #cfcfcf;
+ color: #565656;
+ padding: 0 18px;
+ display: inline-block;
+ border-radius: 3px;
+ margin-left: 10px;
+ cursor: pointer;
+ font-size: 14px;
+ float: left;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+#upload .statusBar .btns .webuploader-pick-hover,
+#upload .statusBar .btns .uploadBtn:hover,
+#upload .statusBar .btns .uploadBtn.state-uploading:hover,
+#upload .statusBar .btns .uploadBtn.state-paused:hover {
+ background: #f0f0f0;
+}
+
+#upload .statusBar .btns .uploadBtn,
+#upload .statusBar .btns .uploadBtn.state-paused{
+ background: #00b7ee;
+ color: #fff;
+ border-color: transparent;
+}
+#upload .statusBar .btns .uploadBtn:hover,
+#upload .statusBar .btns .uploadBtn.state-paused:hover{
+ background: #00a2d4;
+}
+
+#upload .statusBar .btns .uploadBtn.disabled {
+ pointer-events: none;
+ filter:alpha(opacity=60);
+ -moz-opacity:0.6;
+ -khtml-opacity: 0.6;
+ opacity: 0.6;
+}
+
+
+
+/* 图片管理样式 */
+#online {
+ width: 100%;
+ height: 336px;
+ padding: 10px 0 0 0;
+}
+#online #fileList{
+ width: 100%;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ position: relative;
+}
+#online ul {
+ display: block;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+#online li {
+ float: left;
+ display: block;
+ list-style: none;
+ padding: 0;
+ width: 113px;
+ height: 113px;
+ margin: 0 0 9px 9px;
+ *margin: 0 0 6px 6px;
+ background-color: #eee;
+ overflow: hidden;
+ cursor: pointer;
+ position: relative;
+}
+#online li.clearFloat {
+ float: none;
+ clear: both;
+ display: block;
+ width:0;
+ height:0;
+ margin: 0;
+ padding: 0;
+}
+#online li img {
+ cursor: pointer;
+}
+#online li div.file-wrapper {
+ cursor: pointer;
+ position: absolute;
+ display: block;
+ width: 111px;
+ height: 111px;
+ border: 1px solid #eee;
+ background: url("./images/bg.png") repeat;
+}
+#online li div span.file-title{
+ display: block;
+ padding: 0 3px;
+ margin: 3px 0 0 0;
+ font-size: 12px;
+ height: 13px;
+ color: #555555;
+ text-align: center;
+ width: 107px;
+ white-space: nowrap;
+ word-break: break-all;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+#online li .icon {
+ cursor: pointer;
+ width: 113px;
+ height: 113px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 2;
+ border: 0;
+ background-repeat: no-repeat;
+}
+#online li .icon:hover {
+ width: 107px;
+ height: 107px;
+ border: 3px solid #1094fa;
+}
+#online li.selected .icon {
+ background-image: url(images/success.png);
+ background-image: url(images/success.gif) \9;
+ background-position: 75px 75px;
+}
+#online li.selected .icon:hover {
+ width: 107px;
+ height: 107px;
+ border: 3px solid #1094fa;
+ background-position: 72px 72px;
+}
+
+
+/* 在线文件的文件预览图标 */
+i.file-preview {
+ display: block;
+ margin: 10px auto;
+ width: 70px;
+ height: 70px;
+ background-image: url("./images/file-icons.png");
+ background-image: url("./images/file-icons.gif") \9;
+ background-position: -140px center;
+ background-repeat: no-repeat;
+}
+i.file-preview.file-type-dir{
+ background-position: 0 center;
+}
+i.file-preview.file-type-file{
+ background-position: -140px center;
+}
+i.file-preview.file-type-filelist{
+ background-position: -210px center;
+}
+i.file-preview.file-type-zip,
+i.file-preview.file-type-rar,
+i.file-preview.file-type-7z,
+i.file-preview.file-type-tar,
+i.file-preview.file-type-gz,
+i.file-preview.file-type-bz2{
+ background-position: -280px center;
+}
+i.file-preview.file-type-xls,
+i.file-preview.file-type-xlsx{
+ background-position: -350px center;
+}
+i.file-preview.file-type-doc,
+i.file-preview.file-type-docx{
+ background-position: -420px center;
+}
+i.file-preview.file-type-ppt,
+i.file-preview.file-type-pptx{
+ background-position: -490px center;
+}
+i.file-preview.file-type-vsd{
+ background-position: -560px center;
+}
+i.file-preview.file-type-pdf{
+ background-position: -630px center;
+}
+i.file-preview.file-type-txt,
+i.file-preview.file-type-md,
+i.file-preview.file-type-json,
+i.file-preview.file-type-htm,
+i.file-preview.file-type-xml,
+i.file-preview.file-type-html,
+i.file-preview.file-type-js,
+i.file-preview.file-type-css,
+i.file-preview.file-type-php,
+i.file-preview.file-type-jsp,
+i.file-preview.file-type-asp{
+ background-position: -700px center;
+}
+i.file-preview.file-type-apk{
+ background-position: -770px center;
+}
+i.file-preview.file-type-exe{
+ background-position: -840px center;
+}
+i.file-preview.file-type-ipa{
+ background-position: -910px center;
+}
+i.file-preview.file-type-mp4,
+i.file-preview.file-type-swf,
+i.file-preview.file-type-mkv,
+i.file-preview.file-type-avi,
+i.file-preview.file-type-flv,
+i.file-preview.file-type-mov,
+i.file-preview.file-type-mpg,
+i.file-preview.file-type-mpeg,
+i.file-preview.file-type-ogv,
+i.file-preview.file-type-webm,
+i.file-preview.file-type-rm,
+i.file-preview.file-type-rmvb{
+ background-position: -980px center;
+}
+i.file-preview.file-type-ogg,
+i.file-preview.file-type-wav,
+i.file-preview.file-type-wmv,
+i.file-preview.file-type-mid,
+i.file-preview.file-type-mp3{
+ background-position: -1050px center;
+}
+i.file-preview.file-type-jpg,
+i.file-preview.file-type-jpeg,
+i.file-preview.file-type-gif,
+i.file-preview.file-type-bmp,
+i.file-preview.file-type-png,
+i.file-preview.file-type-psd{
+ background-position: -140px center;
+}
\ No newline at end of file
diff --git a/public/UEditor/dialogs/attachment/attachment.html b/public/UEditor/dialogs/attachment/attachment.html
new file mode 100644
index 0000000..2ae9282
--- /dev/null
+++ b/public/UEditor/dialogs/attachment/attachment.html
@@ -0,0 +1,60 @@
+
+
+
+
+ ueditor图片对话框
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/UEditor/dialogs/attachment/attachment.js b/public/UEditor/dialogs/attachment/attachment.js
new file mode 100644
index 0000000..bb2557f
--- /dev/null
+++ b/public/UEditor/dialogs/attachment/attachment.js
@@ -0,0 +1,760 @@
+/**
+ * User: Jinqn
+ * Date: 14-04-08
+ * Time: 下午16:34
+ * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片
+ */
+
+(function () {
+
+ var uploadFile,
+ onlineFile;
+
+ window.onload = function () {
+ initTabs();
+ initButtons();
+ };
+
+ /* 初始化tab标签 */
+ function initTabs() {
+ var tabs = $G('tabhead').children;
+ for (var i = 0; i < tabs.length; i++) {
+ domUtils.on(tabs[i], "click", function (e) {
+ var target = e.target || e.srcElement;
+ setTabFocus(target.getAttribute('data-content-id'));
+ });
+ }
+
+ setTabFocus('upload');
+ }
+
+ /* 初始化tabbody */
+ function setTabFocus(id) {
+ if(!id) return;
+ var i, bodyId, tabs = $G('tabhead').children;
+ for (i = 0; i < tabs.length; i++) {
+ bodyId = tabs[i].getAttribute('data-content-id')
+ if (bodyId == id) {
+ domUtils.addClass(tabs[i], 'focus');
+ domUtils.addClass($G(bodyId), 'focus');
+ } else {
+ domUtils.removeClasses(tabs[i], 'focus');
+ domUtils.removeClasses($G(bodyId), 'focus');
+ }
+ }
+ switch (id) {
+ case 'upload':
+ uploadFile = uploadFile || new UploadFile('queueList');
+ break;
+ case 'online':
+ onlineFile = onlineFile || new OnlineFile('fileList');
+ break;
+ }
+ }
+
+ /* 初始化onok事件 */
+ function initButtons() {
+
+ dialog.onok = function () {
+ var list = [], id, tabs = $G('tabhead').children;
+ for (var i = 0; i < tabs.length; i++) {
+ if (domUtils.hasClass(tabs[i], 'focus')) {
+ id = tabs[i].getAttribute('data-content-id');
+ break;
+ }
+ }
+
+ switch (id) {
+ case 'upload':
+ list = uploadFile.getInsertList();
+ var count = uploadFile.getQueueCount();
+ if (count) {
+ $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + '');
+ return false;
+ }
+ break;
+ case 'online':
+ list = onlineFile.getInsertList();
+ break;
+ }
+
+ editor.execCommand('insertfile', list);
+ };
+ }
+
+
+ /* 上传附件 */
+ function UploadFile(target) {
+ this.$wrap = target.constructor == String ? $('#' + target) : $(target);
+ this.init();
+ }
+ UploadFile.prototype = {
+ init: function () {
+ this.fileList = [];
+ this.initContainer();
+ this.initUploader();
+ },
+ initContainer: function () {
+ this.$queue = this.$wrap.find('.filelist');
+ },
+ /* 初始化容器 */
+ initUploader: function () {
+ var _this = this,
+ $ = jQuery, // just in case. Make sure it's not an other libaray.
+ $wrap = _this.$wrap,
+ // 图片容器
+ $queue = $wrap.find('.filelist'),
+ // 状态栏,包括进度和控制按钮
+ $statusBar = $wrap.find('.statusBar'),
+ // 文件总体选择信息。
+ $info = $statusBar.find('.info'),
+ // 上传按钮
+ $upload = $wrap.find('.uploadBtn'),
+ // 上传按钮
+ $filePickerBtn = $wrap.find('.filePickerBtn'),
+ // 上传按钮
+ $filePickerBlock = $wrap.find('.filePickerBlock'),
+ // 没选择文件之前的内容。
+ $placeHolder = $wrap.find('.placeholder'),
+ // 总体进度条
+ $progress = $statusBar.find('.progress').hide(),
+ // 添加的文件数量
+ fileCount = 0,
+ // 添加的文件总大小
+ fileSize = 0,
+ // 优化retina, 在retina下这个值是2
+ ratio = window.devicePixelRatio || 1,
+ // 缩略图大小
+ thumbnailWidth = 113 * ratio,
+ thumbnailHeight = 113 * ratio,
+ // 可能有pedding, ready, uploading, confirm, done.
+ state = '',
+ // 所有文件的进度信息,key为file id
+ percentages = {},
+ supportTransition = (function () {
+ var s = document.createElement('p').style,
+ r = 'transition' in s ||
+ 'WebkitTransition' in s ||
+ 'MozTransition' in s ||
+ 'msTransition' in s ||
+ 'OTransition' in s;
+ s = null;
+ return r;
+ })(),
+ // WebUploader实例
+ uploader,
+ actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')),
+ fileMaxSize = editor.getOpt('fileMaxSize'),
+ acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');;
+
+ if (!WebUploader.Uploader.support()) {
+ $('#filePickerReady').after($('').html(lang.errorNotSupport)).hide();
+ return;
+ } else if (!editor.getOpt('fileActionName')) {
+ $('#filePickerReady').after($('
').html(lang.errorLoadConfig)).hide();
+ return;
+ }
+
+ uploader = _this.uploader = WebUploader.create({
+ pick: {
+ id: '#filePickerReady',
+ label: lang.uploadSelectFile
+ },
+ swf: '../../third-party/webuploader/Uploader.swf',
+ server: actionUrl,
+ fileVal: editor.getOpt('fileFieldName'),
+ duplicate: true,
+ fileSingleSizeLimit: fileMaxSize,
+ compress: false
+ });
+ uploader.addButton({
+ id: '#filePickerBlock'
+ });
+ uploader.addButton({
+ id: '#filePickerBtn',
+ label: lang.uploadAddFile
+ });
+
+ setState('pedding');
+
+ // 当有文件添加进来时执行,负责view的创建
+ function addFile(file) {
+ var $li = $('
' +
+ '' + file.name + '
' +
+ '' +
+ '
' +
+ ''),
+
+ $btns = $('
' +
+ '' + lang.uploadDelete + '' +
+ '' + lang.uploadTurnRight + '' +
+ '' + lang.uploadTurnLeft + '
').appendTo($li),
+ $prgress = $li.find('p.progress span'),
+ $wrap = $li.find('p.imgWrap'),
+ $info = $('
').hide().appendTo($li),
+
+ showError = function (code) {
+ switch (code) {
+ case 'exceed_size':
+ text = lang.errorExceedSize;
+ break;
+ case 'interrupt':
+ text = lang.errorInterrupt;
+ break;
+ case 'http':
+ text = lang.errorHttp;
+ break;
+ case 'not_allow_type':
+ text = lang.errorFileType;
+ break;
+ default:
+ text = lang.errorUploadRetry;
+ break;
+ }
+ $info.text(text).show();
+ };
+
+ if (file.getStatus() === 'invalid') {
+ showError(file.statusText);
+ } else {
+ $wrap.text(lang.uploadPreview);
+ if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) {
+ $wrap.empty().addClass('notimage').append('
' +
+ '
' + file.name + '');
+ } else {
+ if (browser.ie && browser.version <= 7) {
+ $wrap.text(lang.uploadNoPreview);
+ } else {
+ uploader.makeThumb(file, function (error, src) {
+ if (error || !src) {
+ $wrap.text(lang.uploadNoPreview);
+ } else {
+ var $img = $('

');
+ $wrap.empty().append($img);
+ $img.on('error', function () {
+ $wrap.text(lang.uploadNoPreview);
+ });
+ }
+ }, thumbnailWidth, thumbnailHeight);
+ }
+ }
+ percentages[ file.id ] = [ file.size, 0 ];
+ file.rotation = 0;
+
+ /* 检查文件格式 */
+ if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
+ showError('not_allow_type');
+ uploader.removeFile(file);
+ }
+ }
+
+ file.on('statuschange', function (cur, prev) {
+ if (prev === 'progress') {
+ $prgress.hide().width(0);
+ } else if (prev === 'queued') {
+ $li.off('mouseenter mouseleave');
+ $btns.remove();
+ }
+ // 成功
+ if (cur === 'error' || cur === 'invalid') {
+ showError(file.statusText);
+ percentages[ file.id ][ 1 ] = 1;
+ } else if (cur === 'interrupt') {
+ showError('interrupt');
+ } else if (cur === 'queued') {
+ percentages[ file.id ][ 1 ] = 0;
+ } else if (cur === 'progress') {
+ $info.hide();
+ $prgress.css('display', 'block');
+ } else if (cur === 'complete') {
+ }
+
+ $li.removeClass('state-' + prev).addClass('state-' + cur);
+ });
+
+ $li.on('mouseenter', function () {
+ $btns.stop().animate({height: 30});
+ });
+ $li.on('mouseleave', function () {
+ $btns.stop().animate({height: 0});
+ });
+
+ $btns.on('click', 'span', function () {
+ var index = $(this).index(),
+ deg;
+
+ switch (index) {
+ case 0:
+ uploader.removeFile(file);
+ return;
+ case 1:
+ file.rotation += 90;
+ break;
+ case 2:
+ file.rotation -= 90;
+ break;
+ }
+
+ if (supportTransition) {
+ deg = 'rotate(' + file.rotation + 'deg)';
+ $wrap.css({
+ '-webkit-transform': deg,
+ '-mos-transform': deg,
+ '-o-transform': deg,
+ 'transform': deg
+ });
+ } else {
+ $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
+ }
+
+ });
+
+ $li.insertBefore($filePickerBlock);
+ }
+
+ // 负责view的销毁
+ function removeFile(file) {
+ var $li = $('#' + file.id);
+ delete percentages[ file.id ];
+ updateTotalProgress();
+ $li.off().find('.file-panel').off().end().remove();
+ }
+
+ function updateTotalProgress() {
+ var loaded = 0,
+ total = 0,
+ spans = $progress.children(),
+ percent;
+
+ $.each(percentages, function (k, v) {
+ total += v[ 0 ];
+ loaded += v[ 0 ] * v[ 1 ];
+ });
+
+ percent = total ? loaded / total : 0;
+
+ spans.eq(0).text(Math.round(percent * 100) + '%');
+ spans.eq(1).css('width', Math.round(percent * 100) + '%');
+ updateStatus();
+ }
+
+ function setState(val, files) {
+
+ if (val != state) {
+
+ var stats = uploader.getStats();
+
+ $upload.removeClass('state-' + state);
+ $upload.addClass('state-' + val);
+
+ switch (val) {
+
+ /* 未选择文件 */
+ case 'pedding':
+ $queue.addClass('element-invisible');
+ $statusBar.addClass('element-invisible');
+ $placeHolder.removeClass('element-invisible');
+ $progress.hide(); $info.hide();
+ uploader.refresh();
+ break;
+
+ /* 可以开始上传 */
+ case 'ready':
+ $placeHolder.addClass('element-invisible');
+ $queue.removeClass('element-invisible');
+ $statusBar.removeClass('element-invisible');
+ $progress.hide(); $info.show();
+ $upload.text(lang.uploadStart);
+ uploader.refresh();
+ break;
+
+ /* 上传中 */
+ case 'uploading':
+ $progress.show(); $info.hide();
+ $upload.text(lang.uploadPause);
+ break;
+
+ /* 暂停上传 */
+ case 'paused':
+ $progress.show(); $info.hide();
+ $upload.text(lang.uploadContinue);
+ break;
+
+ case 'confirm':
+ $progress.show(); $info.hide();
+ $upload.text(lang.uploadStart);
+
+ stats = uploader.getStats();
+ if (stats.successNum && !stats.uploadFailNum) {
+ setState('finish');
+ return;
+ }
+ break;
+
+ case 'finish':
+ $progress.hide(); $info.show();
+ if (stats.uploadFailNum) {
+ $upload.text(lang.uploadRetry);
+ } else {
+ $upload.text(lang.uploadStart);
+ }
+ break;
+ }
+
+ state = val;
+ updateStatus();
+
+ }
+
+ if (!_this.getQueueCount()) {
+ $upload.addClass('disabled')
+ } else {
+ $upload.removeClass('disabled')
+ }
+
+ }
+
+ function updateStatus() {
+ var text = '', stats;
+
+ if (state === 'ready') {
+ text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
+ } else if (state === 'confirm') {
+ stats = uploader.getStats();
+ if (stats.uploadFailNum) {
+ text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
+ }
+ } else {
+ stats = uploader.getStats();
+ text = lang.updateStatusFinish.replace('_', fileCount).
+ replace('_KB', WebUploader.formatSize(fileSize)).
+ replace('_', stats.successNum);
+
+ if (stats.uploadFailNum) {
+ text += lang.updateStatusError.replace('_', stats.uploadFailNum);
+ }
+ }
+
+ $info.html(text);
+ }
+
+ uploader.on('fileQueued', function (file) {
+ fileCount++;
+ fileSize += file.size;
+
+ if (fileCount === 1) {
+ $placeHolder.addClass('element-invisible');
+ $statusBar.show();
+ }
+
+ addFile(file);
+ });
+
+ uploader.on('fileDequeued', function (file) {
+ fileCount--;
+ fileSize -= file.size;
+
+ removeFile(file);
+ updateTotalProgress();
+ });
+
+ uploader.on('filesQueued', function (file) {
+ if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
+ setState('ready');
+ }
+ updateTotalProgress();
+ });
+
+ uploader.on('all', function (type, files) {
+ switch (type) {
+ case 'uploadFinished':
+ setState('confirm', files);
+ break;
+ case 'startUpload':
+ /* 添加额外的GET参数 */
+ var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
+ url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params);
+ uploader.option('server', url);
+ setState('uploading', files);
+ break;
+ case 'stopUpload':
+ setState('paused', files);
+ break;
+ }
+ });
+
+ uploader.on('uploadBeforeSend', function (file, data, header) {
+ //这里可以通过data对象添加POST参数
+ header['X_Requested_With'] = 'XMLHttpRequest';
+ // HaoChuan9421
+ if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){
+ for(var key in editor.options.headers){
+ header[key] = editor.options.headers[key]
+ }
+ }
+ });
+
+ uploader.on('uploadProgress', function (file, percentage) {
+ var $li = $('#' + file.id),
+ $percent = $li.find('.progress span');
+
+ $percent.css('width', percentage * 100 + '%');
+ percentages[ file.id ][ 1 ] = percentage;
+ updateTotalProgress();
+ });
+
+ uploader.on('uploadSuccess', function (file, ret) {
+ var $file = $('#' + file.id);
+ try {
+ var responseText = (ret._raw || ret),
+ json = utils.str2json(responseText);
+ if (json.state == 'SUCCESS') {
+ _this.fileList.push(json);
+ $file.append('
');
+ } else {
+ $file.find('.error').text(json.state).show();
+ }
+ } catch (e) {
+ $file.find('.error').text(lang.errorServerUpload).show();
+ }
+ });
+
+ uploader.on('uploadError', function (file, code) {
+ });
+ uploader.on('error', function (code, file) {
+ if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
+ addFile(file);
+ }
+ });
+ uploader.on('uploadComplete', function (file, ret) {
+ });
+
+ $upload.on('click', function () {
+ if ($(this).hasClass('disabled')) {
+ return false;
+ }
+
+ if (state === 'ready') {
+ uploader.upload();
+ } else if (state === 'paused') {
+ uploader.upload();
+ } else if (state === 'uploading') {
+ uploader.stop();
+ }
+ });
+
+ $upload.addClass('state-' + state);
+ updateTotalProgress();
+ },
+ getQueueCount: function () {
+ var file, i, status, readyFile = 0, files = this.uploader.getFiles();
+ for (i = 0; file = files[i++]; ) {
+ status = file.getStatus();
+ if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
+ }
+ return readyFile;
+ },
+ getInsertList: function () {
+ var i, link, data, list = [],
+ prefix = editor.getOpt('fileUrlPrefix');
+ for (i = 0; i < this.fileList.length; i++) {
+ data = this.fileList[i];
+ link = data.url;
+ list.push({
+ title: data.original || link.substr(link.lastIndexOf('/') + 1),
+ url: prefix + link
+ });
+ }
+ return list;
+ }
+ };
+
+
+ /* 在线附件 */
+ function OnlineFile(target) {
+ this.container = utils.isString(target) ? document.getElementById(target) : target;
+ this.init();
+ }
+ OnlineFile.prototype = {
+ init: function () {
+ this.initContainer();
+ this.initEvents();
+ this.initData();
+ },
+ /* 初始化容器 */
+ initContainer: function () {
+ this.container.innerHTML = '';
+ this.list = document.createElement('ul');
+ this.clearFloat = document.createElement('li');
+
+ domUtils.addClass(this.list, 'list');
+ domUtils.addClass(this.clearFloat, 'clearFloat');
+
+ this.list.appendChild(this.clearFloat);
+ this.container.appendChild(this.list);
+ },
+ /* 初始化滚动事件,滚动到地步自动拉取数据 */
+ initEvents: function () {
+ var _this = this;
+
+ /* 滚动拉取图片 */
+ domUtils.on($G('fileList'), 'scroll', function(e){
+ var panel = this;
+ if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
+ _this.getFileData();
+ }
+ });
+ /* 选中图片 */
+ domUtils.on(this.list, 'click', function (e) {
+ var target = e.target || e.srcElement,
+ li = target.parentNode;
+
+ if (li.tagName.toLowerCase() == 'li') {
+ if (domUtils.hasClass(li, 'selected')) {
+ domUtils.removeClasses(li, 'selected');
+ } else {
+ domUtils.addClass(li, 'selected');
+ }
+ }
+ });
+ },
+ /* 初始化第一次的数据 */
+ initData: function () {
+
+ /* 拉取数据需要使用的值 */
+ this.state = 0;
+ this.listSize = editor.getOpt('fileManagerListSize');
+ this.listIndex = 0;
+ this.listEnd = false;
+
+ /* 第一次拉取数据 */
+ this.getFileData();
+ },
+ /* 向后台拉取图片列表数据 */
+ getFileData: function () {
+ var _this = this;
+
+ if(!_this.listEnd && !this.isLoadingData) {
+ this.isLoadingData = true;
+ ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), {
+ timeout: 100000,
+ data: utils.extend({
+ start: this.listIndex,
+ size: this.listSize
+ }, editor.queryCommandValue('serverparam')),
+ method: 'get',
+ onsuccess: function (r) {
+ try {
+ var json = eval('(' + r.responseText + ')');
+ if (json.state == 'SUCCESS') {
+ _this.pushData(json.list);
+ _this.listIndex = parseInt(json.start) + parseInt(json.list.length);
+ if(_this.listIndex >= json.total) {
+ _this.listEnd = true;
+ }
+ _this.isLoadingData = false;
+ }
+ } catch (e) {
+ if(r.responseText.indexOf('ue_separate_ue') != -1) {
+ var list = r.responseText.split(r.responseText);
+ _this.pushData(list);
+ _this.listIndex = parseInt(list.length);
+ _this.listEnd = true;
+ _this.isLoadingData = false;
+ }
+ }
+ },
+ onerror: function () {
+ _this.isLoadingData = false;
+ }
+ });
+ }
+ },
+ /* 添加图片到列表界面上 */
+ pushData: function (list) {
+ var i, item, img, filetype, preview, icon, _this = this,
+ urlPrefix = editor.getOpt('fileManagerUrlPrefix');
+ for (i = 0; i < list.length; i++) {
+ if(list[i] && list[i].url) {
+ item = document.createElement('li');
+ icon = document.createElement('span');
+ filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1);
+
+ if ( "png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1 ) {
+ preview = document.createElement('img');
+ domUtils.on(preview, 'load', (function(image){
+ return function(){
+ _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
+ };
+ })(preview));
+ preview.width = 113;
+ preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) );
+ } else {
+ var ic = document.createElement('i'),
+ textSpan = document.createElement('span');
+ textSpan.innerHTML = list[i].url.substr(list[i].url.lastIndexOf('/') + 1);
+ preview = document.createElement('div');
+ preview.appendChild(ic);
+ preview.appendChild(textSpan);
+ domUtils.addClass(preview, 'file-wrapper');
+ domUtils.addClass(textSpan, 'file-title');
+ domUtils.addClass(ic, 'file-type-' + filetype);
+ domUtils.addClass(ic, 'file-preview');
+ }
+ domUtils.addClass(icon, 'icon');
+ item.setAttribute('data-url', urlPrefix + list[i].url);
+ if (list[i].original) {
+ item.setAttribute('data-title', list[i].original);
+ }
+
+ item.appendChild(preview);
+ item.appendChild(icon);
+ this.list.insertBefore(item, this.clearFloat);
+ }
+ }
+ },
+ /* 改变图片大小 */
+ scale: function (img, w, h, type) {
+ var ow = img.width,
+ oh = img.height;
+
+ if (type == 'justify') {
+ if (ow >= oh) {
+ img.width = w;
+ img.height = h * oh / ow;
+ img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
+ } else {
+ img.width = w * ow / oh;
+ img.height = h;
+ img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
+ }
+ } else {
+ if (ow >= oh) {
+ img.width = w * ow / oh;
+ img.height = h;
+ img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
+ } else {
+ img.width = w;
+ img.height = h * oh / ow;
+ img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
+ }
+ }
+ },
+ getInsertList: function () {
+ var i, lis = this.list.children, list = [];
+ for (i = 0; i < lis.length; i++) {
+ if (domUtils.hasClass(lis[i], 'selected')) {
+ var url = lis[i].getAttribute('data-url');
+ var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1);
+ list.push({
+ title: title,
+ url: url
+ });
+ }
+ }
+ return list;
+ }
+ };
+
+
+})();
\ No newline at end of file
diff --git a/public/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif b/public/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9ca4fb6a23c7ed528374426575c3e7f67730cfb7
GIT binary patch
literal 923
zcmcJOy=xR;49270U`4Q~ICz36hzbru@Ut$0C
6wO|E|nVb+VhLPxFEtyI^j`FqLyNd0EWpleq^){o+_2ylTHaqGF
zO<^H5(sh%@qktPU&w(pp9-3Gs((CnPZEbBZ81Rip*?#=*AAA0G)`@(VL$#^?6S8qi
z-Vg0MaQMyXC!K9~zh3K)&rGar-!b{?e)rh3&E1`oQ)AtaFLu8>vh-!*#^>7|90SDQAhmyv(gsfKv~
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/fileTypeImages/icon_default.png b/public/UEditor/dialogs/attachment/fileTypeImages/icon_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..50ac1cb1654c147225f6c99f98fa820d8b1d47d3
GIT binary patch
literal 841
zcmV-P1GfB$P)co5FHFQKPb3$yKB3yz3uJ2{(i*w{Y&32Y&5pHX#fNS%^lB?7Jx7e!!R@$
zW0V*MWri^ri!cCJuK&9D^Ig~)02-}VrVlRsat{^*C5gDx3qnV6$+=~+!PF21FkmZ@
z8b~H%=~Nv3aQ@;fylx>sluRWqyg8GMN5*##@7VOdNHQ%N3Cf&vJG&}(BO_
z0GI~5dh^d~zu)gPH#)1!5T+sR()iww-#)pz`cI)Sn%1`>N($3(G-m*$wuS~`$(U{O
z3G;I(
z%j~rr>P1P%W??GsP=NTpKmX&MwYt}DZ~eRS;O_04GsmW;j~~@ibUGeLsHM{BJj|YC8%N`o7<+Z@C+_!oGc#1Cx`LO0hUGI$B7llhKIN?RNhM@52iI
TG@H!B00000NkvXXu0mjfSaX$T
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif b/public/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif
new file mode 100644
index 0000000000000000000000000000000000000000..206fede4ee7495c3d4fa8dbbb76425e23566e9cc
GIT binary patch
literal 1012
zcmW+#T};hk7=Mn8YGYk-BW7+*XP!uF(_J6BXv?Neo2k~53o+@FE|ATt^)Y4hQe0@P
zSYMk?afGon-bF^G(&-43w{{O_}gnhA@5fnj7M8-aCj50=y
zVPnWvS{tp57Ngl{vQ4FpQbvhUY!um9(MFUJF~Ua3uCg|)42xklOh7WE4Jkunhz+3t
zHlTrpWlWRhu}^6&TC>(YQGFd~m#uKGjDYE`Ri%LWZD&tI*hU=i4-s$()c}KNsKh9AfEd_-1{T@mY#TKmi;xWx{y>Y0S(uP3>_P>aLM((F
zku(B;E{r2+xJ8u612VCVIG_oJ;Sj0;2GQ7rEa(6+umMf>M0Of&)Odu8AxQWGEh;Aa
zaoAj)d)uaSLL0Ml6+7z$ZBuu$v#U-V_6Uwci{yy5H*s`WUt=M+p
zn)~SevRiXicW3`B{d+b3x9iEs+fRYf&nr{kgLA)De=Y{eT~yySb+dP(rDxFpb)})X
z_j>E&!pg?wKmecq_T{xM7^R)ifIlLFD0GNA!!9O99O)|$T@5?_qRt;vFf&kn_)FW?
z_`GnRYjoh$4o~IE$IRoKH*V=YJ>#wBrOt`{dF~IT+>(|Pf8s;e(6dXaz8IS9e|j*t
z=3Q*=kAlHxo(+-b@~2-GW_ZFWttoKza)`U8q34AEw<{?<%ICf3>%N_l-tOzE_U8}Q
z7oYS!sEM2(ic1;U<#{}~=FT^Xy5lXG?+$z3UwdQvQQ7pP6mQ9-w=|Y>&o0$8Wu0G{
isn`^mx;yvvmFWdDjr#c
zLa{?BIQR=Hso)@-gFi5$h(?e?1}9O3!1?a`KX}6zj=OvJ-n-BDNC6L6Km!tBLTo}4
zi^J?j?#VEBbr*N!T4rW$>LzYT7A&f{s;jsnNwHVVMP0-N6NB+4N|K{}~ZKoJoX!9fm}
zBM(~o#KEm(O)!!sOVVPE
zi-}EWVsRKLD07CIi5XHK*D_Nz6;q^KvS3lvL`*>SB*k8X8pJ?(^n)}xO*^QcB&d+A
z2}aUn$yV~Ua!;X@Eadx`Qv~8*!H*R
z1Jb}XTM)URaq3M_BZ+<>;dB>fia`oDqncq{}&s`b$QtO-@+w}C?
z;Nq!~gPU6~Dz(9{-TvCj!(Htg`{x(uCg+CR6V+R1T7A<43$vfP-MtrguipE)w!F3Z
LqusxL9gh72jO~@^
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif b/public/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b351a1f2a294cd0f8e145e20c2c455a38cad2001
GIT binary patch
literal 986
zcmW+#OGuPa6h7I6wK1usMoI`3X2DsMWI-EEY2_v@7Zr3CQ7Q#xDA5CHkz|Fbmn^6$
zdu+7Vn5dzZIN3$9%xdyg;HxyPQD@YdxqbJ)yTdu>d!7H!$V}gndN`J1DL`cG)5a)c
z#27Y)Y^Al)%4ji~jV9Yv+9+j|7{x}BofU0F84)9FgzPG7!^*H2X2S#|L)wrsB!<`!
z3Sa{oSXjn1Sswe8)}l3QO_mmwQd)^ttQA=mXo}JzT38ENQJ7_=Sv0d|f<~-rQkp~)
zYXU1&0}P^}60*<(F|Yv*EG&~XWNSQ8ij^Yk545O6l&})AcA)}I7R9WX;2xqdt4I{F
zBG^M7kcn-?0sjyIhfobLh=xjxLI;R}4QODIP0qGaFXe8ekBOO~`@{5Ca>~WKU$L(MF9&xEO+jKhUCL
zvLA=d)w#EAIw!O-J6Ex@PS7@WCp)|9#9@!%IJ8KPXnPY!hXr<^@j2j12oIh>6$*ux
zmKHCUe`={p)
zzwLH7IG43C5ubkIf@>L!QZh8)kBB8&*+5TM#qX_8Xe$_MO>#wd-P&_}=vih>^_H5o
zg)25>S3JtEd6gfXvF(myC5ih_CjpcNI+~
z1pOIXrw&{QB)mA-kn*SH)JW$*yOgGMLYik+JFZE
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif b/public/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif
new file mode 100644
index 0000000000000000000000000000000000000000..26019b099d96b382a549fa383bd81315cd6d295c
GIT binary patch
literal 1001
zcmW+#TS!$=5S_p%q=$ihRGNrTSo%=|Wl4e&+5@B?2{ojLOjtg`N-j#~hfj#Gq+|;c
z1QiB~BHGowB$g7jg(4^`Me}B48Di?a>h-!?`^?{*nOU>entf7Fq$C_VA4Xy1Co(p)
zG0GS*hK(VcX>GJJT8w6+$rhD1N*N_au~B4uMH^8@#0VQ9JIdOyGAxGKFagPsHlz%R
zAvS~r*nkEWhS5!Sj}4`@Xw6!aU5iX9twbx?{nprb}BStkT
zO`?f4VJlbz45Yylv{1uhU;`Rh7$z&o<_J-Wl_IMTYmtd4VI^ecf(42!idiv1JxHNf
zktkwCkOx0N6VtE*`auE;!5Uy74VGvH4=e^Ypn*l!Ia@}KU=gxLLLb&5V-_a(3b|l`
zq7VzgM>q`wzzgj#8fsxB`~Xc%!wztQU?>D@fPpk7K?^*v7}$U&dm`J7GI9jrVlWc=
zuofAUeH_+T=iavHoY30rT*dY}MqAe%@9d~!hdqL$&>}gc?M)mW7TAHtbHJ5g9yDRq
z>S{0;TyY}M*Vot6)8lr#T`pI4`I8-K72A??<5Dl2EUe#KI(V?&yF0V`db_uxXX^Rz
z{QI%#(Z9>f%S*wPz|x|BVSa9Ic6KEYSoHh-KA&&Fe)u^#IX*TvFficpcse>dT3TA_
z>guYhs_^uqmqOM+D8+#T{)jN5^@G%z>rH7pmwaOa4-`fm
zE=u|sx$)W6D9^QNYQOk2Ei$$y(D*5)bJOYc8&k)--#thlPjXH4*Z#?Ajc?BX_V%)O
z-Hhrk`u?>s=KkG>N6UP#n-Uv}+Y;`Tt<9{xw0UQ5$-=Lp($B3;TPuST`-(SY?4K+P
X4d%*-doJfz=*#Bpp_0z7a!ULUk{Ai+
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif b/public/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bbb65c837dea9a6c28d6209ca1b1140a37988423
GIT binary patch
literal 996
zcmW+#OGuPa6h47kZE6CejXiWDMGNUrrnSm4q(vaKDU@n)7n&%QMHv`Ts}dJNaY1Jm
z1%)xttY%cue2lg@;j0pL1`5YVHoj^e%{0#KyZ>4JhjY$%zVAEtzgSgyy6lFFT$Cg-
zHpCchj53CeA)AR9(MFUJHbSmT8mbqSu|M|C@L*ViDFS?Nuiguuo7lr0!NGr
zX(1)VLf8t{00U{T1TECC7}$UY7KX_RvN=L&&03SyhqcI*(u%brD;F$KWTlxk6V!tg
zdNnCctO@eq2WVm%c0fN!Kp|KI45Yylt>A&hzy>t1$U0}s$Pug*StFqjYmqT4Cin`u
zV1c3{Rs;3ry4U%$;nF-
zrBbn2EEn{ief)z6-Jp;EBfd`ky_8jVeTK&hz2O8aFtv^S73*9B2zWtF;HMPE?f}2k=uA(oM
PSLc_Xzst?bp)>yhr3M#0
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif b/public/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ccb26fbebdff5521eab7418d22e99fbae6c1d08c
GIT binary patch
literal 1001
zcmW+#TS$~q5FViig{X~sv5e>~C`M52PqY*C`39biRR&OdL%%zX2G-<*@4v2#=EF&o(^Or%XH
zt)_scWI{;6Qjn1g7AUfi%#sP}
zK?=Q+gd~;(dGG@?F%3JQA0(gc0k$hWT1#y8Q>U^EiJ(_cNaAO=Ed9XQ}e*ob1A$rqR0<`46gx0%!XIm#cEx9b24x9#1v-6J4L2;{%(Yx0E;vP_|dsDD=Bqr6K
zlHm7+$8t;U2TSW-{OnCS>CRfYv7yHk`q$jys&5*5AI!X%Ro!^Ls4C>TvM3?g5=?S;
dtLf~)4_`YgyED9bxo14v@(;Dvr3@ER+J8}<4t)Rs
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif b/public/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2e8743a2705b98b9c546c28c97fe724dd4668b16
GIT binary patch
literal 1009
zcmW+#T}V|y5FX8kBEk#Si<*%J5ovK9!7{1n!IT1pEV7cg5JRb%rl^$FgQNr{MG-7&
zA`xU1A_`tmEGaW%)l9|mH^r2+ydDOkN^7H)(PA_kO}44DQOYPWij5*WE82)MB1YH<*;Uqtm0>Z=h6zZ9v>|0k46z{;
zzy>t1u#9Q4JoYKAMQhfYEG;Ufv=XgYE3zuk6s1M9uokkSFw07_XlBg>jab#BG>InG
z1Xid97(_!QWT6LQU;`RhSSD-8)_9^6D@E2HXiU9wr2Ei%NyMkpF_J&`0YLK7n!ypd%%@ko>=}l@3A-fW=Hs`+liI4{u!_R
zJ@o-MCR`=o!|wiwC~n{V@aK+;)v;~|ifp4t6BC)6X
zNY-$)^uNy?@fJ-lrA;-xIvblk5|a^9wr8sK+EnAE)Y`6)xT`ZQ_lBpVDtf99_0~L{
z=}wQmmDtrA(ebGEQ;{!hVQw(_Nqo)eoe7sa%4^;g4K8%`{k=aLSLzy1U$>H7*_tKo
z?hDH)jF-g$H!2(mEu+l^ml1h9)R3{_R
zN+{4&BvL7dheA~CWs)UwOqF5B!RW`y}SP8Q*0ZGURX(1)VLMVU@
zXkcL((`0$<)5a)c*ch_3sI)d(8O=tMRe`3`Mk%A%D6*n3%i6Fq%!UaXv1&*gQij+N
zSfLtV5Dk@(g&v534QOCtnXDmO<0-9KYqI`8i%Kc2SSzx2p#n`-nprc!Jw#zvlhVYR
zU=MjfCbkg={6hpBLN&l38Y(dg9Uulapn*j;Ion2!$4Ze668=DoidiusSJ;ILG!?NT
z`cdZNvdhFbs!K4KRqtCS*Yeh=C1gvL~|BXrsm>Tns_NA81iA
z*^k5K>fGBlofF!aovYYcCup0xlbv04;;=_>99kqtw7rR=!vZ_d_#AL0ga=QcT3T8<
z<=R-i>3I9ihKoM2lSwUuoqZ$2BQrmK#>X8XzYq$FpIcabGw!|J+&@0~jgD6Rn*IHD
zYU*J_gIA>EUC-4U*8(b%5;IQ(N3L1D-lx5b+S*z!r;vBaQ?%dj<&*o3m6bEy-Cgzd
z%gf7Nuh;E%eU|NsNa*$rtBcF|
zyk*2Qx4ovf+`S`nruXcsh=cR3xoPb?(_#u%q!dP%WtCUfMD^y5?XF6Her}@Ud*@JN
zR#JAj$JM;zL)wdit+9jteY2rawR5d!2K?9E8$Mq`ciulptVrE=A*%YMZ*gr`TuJ|{
z(z2$eFL}wMSGG+Dq$lSUuPlpR9NA3ywWC9IrH}KT<}duqn4ccJzBi_D;`Bu5K{D
fCG|aHcXv(r_tkz(O&z%O$G&ybF0xCVru0xy
zLa>Ldm34nuFN?9hw?M?7)Rv5bKzH}sb=_Uxp7)#Ed^7XR^E~r@SFc?;bGE0MnyE}=
zT^MWCTCtX`C6^gvjanntur=h0YOJbNvC3A-^@_2gR>TThAvem#vRW3)Y?**$$yicL
zVu>vw0XCq4g<*7)+v7rw5o6dGa%+*P8Wp2#lpG5bMU99NHbRaRdRYyNVKz+Qh*3jo
zNDQ$dYz1q8fizfx7HU`wY(N7G!{h|H93iT#N=_fvA`?+z6>@UH0!0>ORwk$iDfB9d
z5-UL-`~Xc%!w%>N2`B_>fPpkvq7^)_7}$UY7CGl!899PQ$QcQJSc{BVnBXhqf(42~
zECe6nGz
zR(E#l^?I#Vt4>c($K&x>EH*eeSSXZoxnJ}13)SlO_I9OSt5&wk<&sy(Z+eA7F`uuY
zP^nb5w(z-JDwRCXD;765Hda?wve|4VlS!x3sZ=VNOePYEXf!%8F%gMG!r^c*7{t>*
zQrW!=Lg@rJ;E!k~Y8)rqpWD-SyM1VBq23t_FUFtz{Mx?sD0C|jZ2C9Sbm)4^Oz+y?
z)NEU5?fiq>-2Lw#Pj*iB{YZA*d>J~N?LXc*G#V&$2YN3)-Dis(c-P&AvG|vcl}Pm7
ha8EkcUOioGJ2wXc!R{Rj722e<$L
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif b/public/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e86c1c6631b34ecd605b655baf3d7b1ae643d014
GIT binary patch
literal 1005
zcmW+#Sx8n<5S~OS9}KaFd{U%W$zY07N%BQgM2kWK39;Zvw5XMcSs{ptw3ukd!DvAW
zOUSa^MRP$(k0NGD>TjW9qHS6!zy3LW=bpD=X1;Cijg5;r5T52w{na(1=w-+K@8DhQJEd
z0E1|#ge>$x3~WFH3(I5;*&0u2&03T72U=80X~kNRwF?z!veL|&3GN{ZvznA9)&zUV
z12VCVIN%>5;1H?-2GLN7QRo0MumKG$vdP&tYCKkoY>@B=T2#!63Aw^9RG_Jd6(L6?
zjR2qv;|LmV5he0~Ol%_#Xo6ulgld36G&Ug%IzS9;K$AU@okklq9^qmL68=DoiphQ)
zHdp7~w&|SE#_U|h&N@Nc)Sc|?suPDjg5%I4Iil@N932+efyU>6D&6#&)VjN>|V
zv-8~R>nCf{GTvkb-3s1$HZb}{bVgT3@w?(fB~dl5>apdK*}q@9UF`{1qs)Bgsw~gR
z=r5V~h#Q}Nh}(M$j8Z5x;E(Vp+SX66eUHZ;aWxlg`{dh`oKe|bG})HBk$k7J>&nXF
znW?~}na0bDp}hrOKKbvIaHygA>osR74c^g{8LV9&?8bPWVl?=6FUHC(Dw~C1%a`M-0X^
zUTDZ(=qbF}x@WkhBY(X3Lqp?a*Tv5PRVfK4D#P2o2A&MKE9$~CZ}>dh(HH(8{nF#G
b^xlfyQ$tzRM+;I8wp1>Sze?TeO_BcrMy(F|
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/images/alignicon.gif b/public/UEditor/dialogs/attachment/images/alignicon.gif
new file mode 100644
index 0000000000000000000000000000000000000000..005a5ac65a3ddc9cdac037abdb5fe92267155a0d
GIT binary patch
literal 1051
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
literal 0
HcmV?d00001
diff --git a/public/UEditor/dialogs/attachment/images/file-icons.png b/public/UEditor/dialogs/attachment/images/file-icons.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ff82c8c488f53a7aff67fbe39742e3321183eca
GIT binary patch
literal 44070
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