xiaodai2022 2 년 전
부모
커밋
6b0c2bd765
100개의 변경된 파일69개의 추가작업 그리고 4736개의 파일을 삭제
  1. 8 42
      src/apis/axios.js
  2. 0 6
      src/apis/components/abnormal-cause.js
  3. 0 6
      src/apis/components/addr-add-edit-modal.js
  4. 0 7
      src/apis/components/all-organize.js
  5. 0 7
      src/apis/components/goods-class.js
  6. 0 7
      src/apis/components/process-time-line.js
  7. 0 7
      src/apis/components/search-account.js
  8. 0 9
      src/apis/components/search-brand.js
  9. 0 7
      src/apis/components/search-company-type.js
  10. 0 7
      src/apis/components/search-customer.js
  11. 0 6
      src/apis/components/search-exclusive.js
  12. 0 7
      src/apis/components/search-express.js
  13. 0 9
      src/apis/components/search-good-modal.js
  14. 0 9
      src/apis/components/search-good-online-modal.js
  15. 0 9
      src/apis/components/search-metal-kind.js
  16. 0 7
      src/apis/components/search-sort.js
  17. 0 7
      src/apis/components/search-spec.js
  18. 0 6
      src/apis/components/search-stock-good-modal.js
  19. 0 9
      src/apis/components/search-stock.js
  20. 0 7
      src/apis/components/search-supplier.js
  21. 0 9
      src/apis/components/search-tax.js
  22. 0 7
      src/apis/components/search-terrace.js
  23. 0 7
      src/apis/components/search-unit.js
  24. 0 6
      src/apis/components/search-work-company.js
  25. 0 10
      src/apis/components/select-area.js
  26. 0 7
      src/apis/components/show-good-data-modal.js
  27. 0 10
      src/apis/components/show-goods-data-table.js
  28. 0 7
      src/apis/components/show-voucher-model.js
  29. 61 0
      src/apis/index.js
  30. 0 30
      src/apis/service/good-share/index.js
  31. 0 12
      src/apis/url-config.js
  32. 0 81
      src/apis/user/axios.js
  33. 0 45
      src/apis/user/index.js
  34. 0 101
      src/apis/userAxios.js
  35. 0 78
      src/components/Breadcrumb/index.vue
  36. 0 44
      src/components/Hamburger/index.vue
  37. 0 62
      src/components/SvgIcon/index.vue
  38. 0 197
      src/components/abnormal-condition-modal/index.vue
  39. 0 0
      src/components/abnormal-condition-modal/异常情况弹窗
  40. 0 338
      src/components/addr-add-edit-modal/index.vue
  41. 0 0
      src/components/addr-add-edit-modal/收货地址新建OR编辑
  42. 0 2
      src/components/globalComponents/Breadcrumb/index.js
  43. 0 93
      src/components/globalComponents/Breadcrumb/main.vue
  44. 0 34
      src/components/globalComponents/Hamburger/main.vue
  45. 0 2
      src/components/globalComponents/Screenfull/index.js
  46. 0 66
      src/components/globalComponents/Screenfull/main.vue
  47. 0 0
      src/components/globalComponents/Screenfull/全屏
  48. 0 2
      src/components/globalComponents/abnormal-cause/index.js
  49. 0 139
      src/components/globalComponents/abnormal-cause/main.vue
  50. 0 0
      src/components/globalComponents/abnormal-cause/异常原因选择组件
  51. 0 2
      src/components/globalComponents/all-organize/index.js
  52. 0 105
      src/components/globalComponents/all-organize/main.vue
  53. 0 0
      src/components/globalComponents/all-organize/组织架构选择框
  54. 0 2
      src/components/globalComponents/class-tree/index.js
  55. 0 108
      src/components/globalComponents/class-tree/main.vue
  56. 0 0
      src/components/globalComponents/class-tree/商品-item
  57. 0 2
      src/components/globalComponents/digital-input/index.js
  58. 0 121
      src/components/globalComponents/digital-input/main.vue
  59. 0 0
      src/components/globalComponents/digital-input/数字输入框
  60. 0 2
      src/components/globalComponents/download-addr/index.js
  61. 0 67
      src/components/globalComponents/download-addr/main.vue
  62. 0 2
      src/components/globalComponents/editor-shy/index.js
  63. 0 278
      src/components/globalComponents/editor-shy/main.vue
  64. 0 2
      src/components/globalComponents/ex-table/index.js
  65. 0 445
      src/components/globalComponents/ex-table/main.vue
  66. 0 0
      src/components/globalComponents/ex-table/表格+分页
  67. 0 2
      src/components/globalComponents/exam-form/index.js
  68. 0 203
      src/components/globalComponents/exam-form/main.vue
  69. 0 0
      src/components/globalComponents/exam-form/审核表单
  70. 0 2
      src/components/globalComponents/file-upload-pdf/index.js
  71. 0 137
      src/components/globalComponents/file-upload-pdf/main.vue
  72. 0 0
      src/components/globalComponents/file-upload-pdf/文件上传
  73. 0 2
      src/components/globalComponents/file-upload/index.js
  74. 0 132
      src/components/globalComponents/file-upload/main.vue
  75. 0 0
      src/components/globalComponents/file-upload/文件上传
  76. 0 2
      src/components/globalComponents/goodClass/index.js
  77. 0 123
      src/components/globalComponents/goodClass/main.vue
  78. 0 0
      src/components/globalComponents/goodClass/商品分类
  79. 0 2
      src/components/globalComponents/goodsClass-tree/index.js
  80. 0 204
      src/components/globalComponents/goodsClass-tree/main.vue
  81. 0 0
      src/components/globalComponents/goodsClass-tree/商品分类-item
  82. 0 358
      src/components/globalComponents/icon-list/elIcon.js
  83. 0 2
      src/components/globalComponents/icon-list/index.js
  84. 0 220
      src/components/globalComponents/icon-list/main.vue
  85. 0 0
      src/components/globalComponents/icon-list/菜单图标选择
  86. 0 24
      src/components/globalComponents/index.js
  87. 0 2
      src/components/globalComponents/main-menu/index.js
  88. 0 79
      src/components/globalComponents/main-menu/main.vue
  89. 0 2
      src/components/globalComponents/no-auth/index.js
  90. 0 88
      src/components/globalComponents/no-auth/main.vue
  91. 0 0
      src/components/globalComponents/no-auth/暂无权限
  92. 0 2
      src/components/globalComponents/number-range/index.js
  93. 0 110
      src/components/globalComponents/number-range/main.vue
  94. 0 0
      src/components/globalComponents/number-range/数字区间框
  95. 0 2
      src/components/globalComponents/organize-tree/index.js
  96. 0 182
      src/components/globalComponents/organize-tree/main.vue
  97. 0 0
      src/components/globalComponents/organize-tree/组织部门-item
  98. 0 2
      src/components/globalComponents/pan-thumb/index.js
  99. 0 146
      src/components/globalComponents/pan-thumb/main.vue
  100. 0 2
      src/components/globalComponents/period-date-picker/index.js

+ 8 - 42
src/apis/axios.js

@@ -1,11 +1,8 @@
 // import axios from 'axios'
 // import Router from '@/router/index'
 // import store from '@/store'
-import urlConfig from '@/apis/url-config'
-import {
-  getToken, removeMenu,
-  removeBtn, removeToken
-} from '@/utils/auth'
+
+
 const header = {
   // "X-Requested-With": "XMLHttpRequest",
   // "X-Frame-Options": "DENY", // 告诉浏览器不要(DENY)把这个网页放在iFrame内,通常的目的就是要帮助用户对抗点击劫持。
@@ -20,22 +17,13 @@ export default async (
   headers = header,
   onUploadProgress
 ) => {
-  type = type.toLowerCase()
-  let stagIndex = hash.indexOf('#/test-good-share?id=')
-  let prodIndex = hash.indexOf('#/good-share?id=')
-  let urlConfigBaseURL = ""
-  if (stagIndex !== -1) {
-    urlConfigBaseURL = "http://stock.test241.wanyuhengtong.com/"
-  } else if (prodIndex !== -1) {
-    urlConfigBaseURL = "http://stock.api.wanyuhengtong.com/"
-  } else {
-    urlConfigBaseURL=urlConfig.baseURL
-  }
+  type = url.method.toLowerCase()
+  // console.log(url)
   const obj = {
     method: type,
     baseURL: '',
-    url:  urlConfigBaseURL + url,
-    data,
+    url: url.url,
+    data: url.data,
     params,
     // // `onUploadProgress` 允许为上传处理进度事件
     // onUploadProgress: function(progressEvent) {
@@ -57,19 +45,9 @@ export default async (
   if (onUploadProgress && typeof onUploadProgress === 'function') {
     obj.onUploadProgress = onUploadProgress
   }
-  // return await axios(obj)
-  //   .then(response => {
-  //     return response;
-  //   })
-  //   .catch(res => {
-  //     return res;
-  //   });
   // 请求拦截器
   axios.interceptors.request.use(
     config => {
-      if (!config.data.token) {
-        config.data.token = getToken()
-      }
       return config
     },
     error => {
@@ -80,14 +58,6 @@ export default async (
   // 添加响应拦截器
   axios.interceptors.response.use(
     async response => {
-      if (response.status === 200) {
-        const code = response.data.code
-        if (code >= 100 && code <= 104) {
-          removeToken()
-          removeMenu()
-          removeBtn()
-        }
-      }
       return response
     },
     error => {
@@ -100,11 +70,7 @@ export default async (
         resolve(response.data)
       })
       .catch(res => {
-        if (res.response && res.response.data) {
-          reject(res.response.data);
-        } else {
-          reject(res);
-        }
-      });
+        reject(res)
+      })
   })
 }

+ 0 - 6
src/apis/components/abnormal-cause.js

@@ -1,6 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "resultlist", data, "post", params),
-};

+ 0 - 6
src/apis/components/addr-add-edit-modal.js

@@ -1,6 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 区编码获取省市区汉字
-  addrall: (data, params) => http(api + "addrall", data, "post", params),
-};

+ 0 - 7
src/apis/components/all-organize.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "query", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/goods-class.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "cattitle", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/process-time-line.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "process", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/search-account.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "userlist", data, "post", params),
-};
-   

+ 0 - 9
src/apis/components/search-brand.js

@@ -1,9 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "brandlist", data, "post", params),
-  //  // 获取仓库  供应商仓/自建仓
-  //  warequery: (data, params) => http(api + "warequery", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/search-company-type.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "businesstitle", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/search-customer.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "infolist", data, "post", params),
-};
-   

+ 0 - 6
src/apis/components/search-exclusive.js

@@ -1,6 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "excluquery", data, "post", params),
-};

+ 0 - 7
src/apis/components/search-express.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-    // 快递列表
-    list: (data, params) => http(api + "express", data, "post", params),
-
-};

+ 0 - 9
src/apis/components/search-good-modal.js

@@ -1,9 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "gooduplist", data, "post", params),
-  // 供应商列表
-  supplierList: (data, params) => http(api + "supplierlist", data, "post", params),
-
-};

+ 0 - 9
src/apis/components/search-good-online-modal.js

@@ -1,9 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "goodlist", data, "post", params),
-  // 供应商列表
-  supplierList: (data, params) => http(api + "supplierlist", data, "post", params),
-
-};

+ 0 - 9
src/apis/components/search-metal-kind.js

@@ -1,9 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "goldlinst", data, "post", params),
-   // 获取当前金价
-   get_price: (data, params) => http(api + "golpricelast", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/search-sort.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "catwlist", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/search-spec.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "specstitle", data, "post", params),
-};
-   

+ 0 - 6
src/apis/components/search-stock-good-modal.js

@@ -1,6 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "checkflist", data, "post", params),
-};

+ 0 - 9
src/apis/components/search-stock.js

@@ -1,9 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "warelist", data, "post", params),
-  //  // 获取仓库  供应商仓/自建仓
-  //  warequery: (data, params) => http(api + "warequery", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/search-supplier.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "supplierlist", data, "post", params),
-};
-   

+ 0 - 9
src/apis/components/search-tax.js

@@ -1,9 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "goldratelist", data, "post", params),
-  //  // 获取仓库  供应商仓/自建仓
-  //  warequery: (data, params) => http(api + "warequery", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/search-terrace.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "platformlist", data, "post", params),
-};
-   

+ 0 - 7
src/apis/components/search-unit.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "unitlist", data, "post", params),
-};
-   

+ 0 - 6
src/apis/components/search-work-company.js

@@ -1,6 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "businesslist", data, "post", params),
-};

+ 0 - 10
src/apis/components/select-area.js

@@ -1,10 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-    //省份列表
-    provinceList: (data, params) => http(api + "province", data, "post", params),
-    // 城市列表
-    cityList: (data, params) => http(api + "city", data, "post", params),
-    // 县级区级列表
-    areaList: (data, params) => http(api + "area", data, "post", params),
-};

+ 0 - 7
src/apis/components/show-good-data-modal.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 上线商品详情
-  detail: (data, params) => http(api + "goodinfo", data, "post", params),
-
-};

+ 0 - 10
src/apis/components/show-goods-data-table.js

@@ -1,10 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-    // 上线商品详情
-    online_detail: (data, params) => http(api + "goodinfo", data, "post", params),
-    // 采返商品详情
-    re_detail: (data, params) => http(api + "goodzxinfo", data, "post", params),
-    //商品成本详情
-    cost_detail: (data, params) => http(api + "goodupinfo", data, "post", params),
-};

+ 0 - 7
src/apis/components/show-voucher-model.js

@@ -1,7 +0,0 @@
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 列表
-  list: (data, params) => http(api + "goodproof", data, "post", params),
-
-};

+ 61 - 0
src/apis/index.js

@@ -0,0 +1,61 @@
+import http from '@/apis/axios'
+let testURL = "http://stock.test241.wanyuhengtong.com/"
+let prodURL = "http://stock.api.wanyuhengtong.com/"
+// 登录
+export function detail(data) {
+  let model = JSON.parse(JSON.stringify(data))
+  const { full } = model
+  delete model['full']
+  return http({
+    url: `${full == 'good-share' ? prodURL : testURL}admin/projectshare`,
+    method: 'post',
+    data: model
+  })
+}
+// 项目返回商品分页查询
+export function back_good_list(data) {
+  let model = JSON.parse(JSON.stringify(data))
+  const { full } = model
+  delete model['full']
+  return http({
+    url: `${full == 'good-share' ? prodURL : testURL}admin/projectsharelist`,
+    method: 'post',
+    data: model
+  })
+}
+// 反馈商品选择
+export function back_good_submit(data) {
+  let model = JSON.parse(JSON.stringify(data))
+  const { full } = model
+  delete model['full']
+  return http({
+    url: `${full == 'good-share' ? prodURL : testURL}admin/projectsharecheck`,
+    method: 'post',
+    data: model
+  })
+}
+// 查询方案列表
+export function get_project_plan(data) {
+  let model = JSON.parse(JSON.stringify(data))
+  const { full } = model
+  delete model['full']
+  return http({
+    url: `${full == 'good-share' ? prodURL : testURL}admin/projectshareplan`,
+    method: 'post',
+    data: model
+  })
+}
+// 获取账号业务设置
+export function change_project_plan(data) {
+  let model = JSON.parse(JSON.stringify(data))
+  const { full } = model
+  delete model['full']
+  return http({
+    url: `${full == 'good-share' ? prodURL : testURL}admin/plancheck`,
+    method: 'post',
+    data: model
+  })
+}
+
+
+

+ 0 - 30
src/apis/service/good-share/index.js

@@ -1,30 +0,0 @@
-// 物业管理员
-import http from "@/apis/axios";
-const api = "admin/";
-export default {
-  // 添加
-  add: (data, params) => http(api + "projectcreate", data, "post", params),
-  // 删除
-  delete: (data, params) => http(api + "Consultdel", data, "post", params),
-  // 分页查询
-  list: (data, params) => http(api + "projectlist", data, "post", params),
-  // 详情
-  detail: (data, params) => http(api + "projectshare", data, "post", params),
-  // 更新
-  update: (data, params) => http(api + "update", data, "post", params),
-  // 修改状态
-  status: (data, params) => http(api + "accountstatus", data, "post", params),
-  // 分类详情
-  catinfo: (data, params) => http(api + "catinfo", data, "post", params),
-
-  // 毛利率修改
-  rateEdit: (data, params) => http(api + "projectrate", data, "post", params),
-  // 项目返回商品分页查询
-  back_good_list: (data, params) => http(api + "projectsharelist", data, "post", params),
-  // 反馈商品选择
-  back_good_submit: (data, params) => http(api + "projectsharecheck", data, "post", params),
-  // 查询方案列表
-  get_project_plan: (data, params) => http(api + "projectshareplan", data, "post", params),
-  // 选定方案
-  change_project_plan: (data, params) => http(api + "plancheck", data, "post", params),
-};

+ 0 - 12
src/apis/url-config.js

@@ -1,12 +0,0 @@
-import { api, ding } from '@/config'
-export default {
-  //后端user接口url
-  userURL: api.userApi,
-  //后端接口url
-  baseURL: api.baseApi,
-  //企业id
-  corpId: ding.CorpId,
-  //应用凭证
-  agentId: ding.AgentId,
-  // tableURL: api.tableApi,
-}

+ 0 - 81
src/apis/user/axios.js

@@ -1,81 +0,0 @@
-// import axios from 'axios'
-// import Router from '@/router/index'
-// import store from '@/store'
-
-import {
-  getToken
-} from '@/utils/auth'
-const header = {
-  // "X-Requested-With": "XMLHttpRequest",
-  // "X-Frame-Options": "DENY", // 告诉浏览器不要(DENY)把这个网页放在iFrame内,通常的目的就是要帮助用户对抗点击劫持。
-  // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
-}
-window.ajaxTimeout = 20000
-export default async (
-  url = '',
-  data = {},
-  type = 'GET',
-  params = {},
-  headers = header,
-  onUploadProgress
-) => {
-  type = url.method.toLowerCase()
-  // console.log(url)
-  const obj = {
-    method: type,
-    baseURL: '',
-    url: url.url,
-    data: url.data,
-    params,
-    // // `onUploadProgress` 允许为上传处理进度事件
-    // onUploadProgress: function(progressEvent) {
-    //   // 对原生进度事件的处理
-    // },
-    // // `onDownloadProgress` 允许为下载处理进度事件
-    // onDownloadProgress: function(progressEvent) {
-    //   // 对原生进度事件的处理
-    // },
-    // `cancelToken` 指定用于取消请求的 cancel token
-    // (查看后面的 Cancellation 这节了解更多)
-    // cancelToken: new CancelToken(function (cancel) {
-    // }),
-    processData: true, // 告诉axios不要去处理发送的数据(重要参数)
-    timeout: window.ajaxTimeout,
-    headers,
-    onUploadProgress
-  }
-  if (onUploadProgress && typeof onUploadProgress === 'function') {
-    obj.onUploadProgress = onUploadProgress
-  }
-  // 请求拦截器
-  axios.interceptors.request.use(
-    config => {
-      if (!config.data.token) {
-        config.data.token = getToken()
-      }
-      return config
-    },
-    error => {
-      // 错误抛到业务代码
-      return Promise.reject(new Error('服务器异常,请联系管理员!'))
-    }
-  )
-  // 添加响应拦截器
-  axios.interceptors.response.use(
-    async response => {
-      return response
-    },
-    error => {
-      return Promise.reject(error.response.data)
-    }
-  )
-  return new Promise((resolve, reject) => {
-    axios(obj)
-      .then(response => {
-        resolve(response.data)
-      })
-      .catch(res => {
-        reject(res)
-      })
-  })
-}

+ 0 - 45
src/apis/user/index.js

@@ -1,45 +0,0 @@
-import http from '@/apis/user/axios'
-import urlConfig from '@/apis/url-config'
-// 登录
-export function login(data) {
-  return http({
-    url: `${urlConfig.userURL}Api/login`,
-    method: 'post',
-    data
-  })
-}
-// 获取个人信息
-export function userinfo(data) {
-  return http({
-    url: `${urlConfig.baseURL}admin/userinfo`,
-    method: 'post',
-    data
-  })
-}
-// 获取用户权限导航列表
-export function menuList(data) {
-  return http({
-    url: `${urlConfig.baseURL}admin/menu`,
-    method: 'post',
-    data
-  })
-}
-// 钉钉获取用户信息
-export function dingdingdetail(data) {
-  return http({
-    url: `${urlConfig.userURL}Api/dintalk`,
-    method: 'post',
-    data
-  })
-}
-// 获取账号业务设置
-export function usergetinfo(data) {
-  return http({
-    url:  `${urlConfig.baseURL}admin/usergetinfo`,
-    method: 'post',
-    data
-  })
-}
-
-
-

+ 0 - 101
src/apis/userAxios.js

@@ -1,101 +0,0 @@
-// import axios from 'axios'
-import Router from '@/router/index'
-// import store from '@/store'
-import urlConfig from '@/apis/url-config'
-import {
-  getToken, removeMenu,
-  removeBtn, removeToken
-} from '@/utils/auth'
-const header = {
-  // "X-Requested-With": "XMLHttpRequest",
-  // "X-Frame-Options": "DENY", // 告诉浏览器不要(DENY)把这个网页放在iFrame内,通常的目的就是要帮助用户对抗点击劫持。
-  // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
-}
-window.ajaxTimeout = 20000
-export default async (
-  url = '',
-  data = {},
-  type = 'GET',
-  params = {},
-  headers = header,
-  onUploadProgress
-) => {
-  type = type.toLowerCase()
-  console.log(headers)
-  const obj = {
-    method: type,
-    baseURL: '',
-    url: urlConfig.userURL + url,
-    data,
-    params,
-    // // `onUploadProgress` 允许为上传处理进度事件
-    // onUploadProgress: function(progressEvent) {
-    //   // 对原生进度事件的处理
-    // },
-    // // `onDownloadProgress` 允许为下载处理进度事件
-    // onDownloadProgress: function(progressEvent) {
-    //   // 对原生进度事件的处理
-    // },
-    // `cancelToken` 指定用于取消请求的 cancel token
-    // (查看后面的 Cancellation 这节了解更多)
-    // cancelToken: new CancelToken(function (cancel) {
-    // }),
-    processData: true, // 告诉axios不要去处理发送的数据(重要参数)
-    timeout: window.ajaxTimeout,
-    headers,
-    onUploadProgress
-  }
-  if (onUploadProgress && typeof onUploadProgress === 'function') {
-    obj.onUploadProgress = onUploadProgress
-  }
-  // return await axios(obj)
-  //   .then(response => {
-  //     return response;
-  //   })
-  //   .catch(res => {
-  //     return res;
-  //   });
-  // 请求拦截器
-  axios.interceptors.request.use(
-    config => {
-      if (!config.data.token) {
-        config.data.token = getToken()
-      }
-      return config
-    },
-    error => {
-      // 错误抛到业务代码
-      return Promise.reject(new Error('服务器异常,请联系管理员!'))
-    }
-  )
-  // 添加响应拦截器
-  axios.interceptors.response.use(
-    async response => {
-      if (response.status === 200) {
-        const code = response.data.code
-        if (code >= 100 && code <= 104) {
-          removeToken()
-          removeMenu()
-          removeBtn()
-        }
-      }
-      return response
-    },
-    error => {
-      return Promise.reject(error.response.data)
-    }
-  )
-  return new Promise((resolve, reject) => {
-    axios(obj)
-      .then(response => {
-        resolve(response.data)
-      })
-      .catch(res => {
-        if (res.response && res.response.data) {
-          reject(res.response.data);
-        } else {
-          reject(res);
-        }
-      });
-  })
-}

+ 0 - 78
src/components/Breadcrumb/index.vue

@@ -1,78 +0,0 @@
-<template>
-  <el-breadcrumb class="app-breadcrumb" separator="/">
-    <transition-group name="breadcrumb">
-      <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
-        <span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
-        <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
-      </el-breadcrumb-item>
-    </transition-group>
-  </el-breadcrumb>
-</template>
-
-<script>
-import pathToRegexp from 'path-to-regexp'
-
-export default {
-  data() {
-    return {
-      levelList: null
-    }
-  },
-  watch: {
-    $route() {
-      this.getBreadcrumb()
-    }
-  },
-  created() {
-    this.getBreadcrumb()
-  },
-  methods: {
-    getBreadcrumb() {
-      // only show routes with meta.title
-      let matched = this.$route.matched.filter(item => item.meta && item.meta.title)
-      const first = matched[0]
-
-      if (!this.isDashboard(first)) {
-        matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched)
-      }
-
-      this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
-    },
-    isDashboard(route) {
-      const name = route && route.name
-      if (!name) {
-        return false
-      }
-      return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()
-    },
-    pathCompile(path) {
-      // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
-      const { params } = this.$route
-      var toPath = pathToRegexp.compile(path)
-      return toPath(params)
-    },
-    handleLink(item) {
-      const { redirect, path } = item
-      if (redirect) {
-        this.$router.push(redirect)
-        return
-      }
-      this.$router.push(this.pathCompile(path))
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.app-breadcrumb.el-breadcrumb {
-  display: inline-block;
-  font-size: 14px;
-  line-height: 50px;
-  margin-left: 8px;
-
-  .no-redirect {
-    color: #97a8be;
-    cursor: text;
-  }
-}
-</style>

+ 0 - 44
src/components/Hamburger/index.vue

@@ -1,44 +0,0 @@
-<template>
-  <div style="padding: 0 15px;" @click="toggleClick">
-    <svg
-      :class="{'is-active':isActive}"
-      class="hamburger"
-      viewBox="0 0 1024 1024"
-      xmlns="http://www.w3.org/2000/svg"
-      width="64"
-      height="64"
-    >
-      <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" />
-    </svg>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'Hamburger',
-  props: {
-    isActive: {
-      type: Boolean,
-      default: false
-    }
-  },
-  methods: {
-    toggleClick() {
-      this.$emit('toggleClick')
-    }
-  }
-}
-</script>
-
-<style scoped>
-.hamburger {
-  display: inline-block;
-  vertical-align: middle;
-  width: 20px;
-  height: 20px;
-}
-
-.hamburger.is-active {
-  transform: rotate(180deg);
-}
-</style>

+ 0 - 62
src/components/SvgIcon/index.vue

@@ -1,62 +0,0 @@
-<template>
-  <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" />
-  <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners">
-    <use :xlink:href="iconName" />
-  </svg>
-</template>
-
-<script>
-// doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage
-import { isExternal } from '@/utils/validate'
-
-export default {
-  name: 'SvgIcon',
-  props: {
-    iconClass: {
-      type: String,
-      required: true
-    },
-    className: {
-      type: String,
-      default: ''
-    }
-  },
-  computed: {
-    isExternal() {
-      return isExternal(this.iconClass)
-    },
-    iconName() {
-      return `#icon-${this.iconClass}`
-    },
-    svgClass() {
-      if (this.className) {
-        return 'svg-icon ' + this.className
-      } else {
-        return 'svg-icon'
-      }
-    },
-    styleExternalIcon() {
-      return {
-        mask: `url(${this.iconClass}) no-repeat 50% 50%`,
-        '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`
-      }
-    }
-  }
-}
-</script>
-
-<style scoped>
-.svg-icon {
-  width: 1em;
-  height: 1em;
-  vertical-align: -0.15em;
-  fill: currentColor;
-  overflow: hidden;
-}
-
-.svg-external-icon {
-  background-color: currentColor;
-  mask-size: cover!important;
-  display: inline-block;
-}
-</style>

+ 0 - 197
src/components/abnormal-condition-modal/index.vue

@@ -1,197 +0,0 @@
-<template>
-  <el-dialog
-    :title="title"
-    :center="true"
-    align="left"
-    top="15vh"
-    width="600px"
-    @close="showModelThis = false"
-    :close-on-click-modal="false"
-    :visible.sync="showModelThis"
-    v-loading="loading"
-    element-loading-text="拼命加载中"
-    element-loading-spinner="el-icon-loading"
-    element-loading-background="rgba(0, 0, 0, 0.8)"
-  >
-    <el-card style="margin: -20px 0 0 0">
-      <el-row :gutter="10">
-        <el-col :span="24">
-          <el-form
-            :model="ruleForm"
-            status-icon
-            :rules="rulesThis"
-            ref="ruleForm"
-            label-width="80px"
-            class="demo-ruleForm"
-          >
-            <el-row>
-              <el-col :span="24">
-                <el-form-item label="异常数量" prop="error_num">
-                  <el-input
-                    v-model="ruleForm.error_num"
-                    placeholder="请输入异常数量"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item label="异常原因" prop="error_code">
-                  <abnormal-cause
-                    :value="ruleForm.error_code"
-                    :placeholder="'请选择异常原因'"
-                    :disabled="false"
-                    @searchChange="select_change"
-                  />
-                </el-form-item>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item label="异常备注" prop="error_remark">
-                  <el-input
-                    type="textarea"
-                    :rows="3"
-                    placeholder="请输入异常备注"
-                    v-model="ruleForm.error_remark"
-                    maxlength="250"
-                    show-word-limit
-                  />
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </el-col>
-        <el-col :span="24" style="text-align: right">
-          <el-button type="primary" @click="submitForm">保 存 </el-button>
-          <el-button @click="showModelThis = false">关 闭</el-button>
-        </el-col>
-      </el-row>
-    </el-card>
-  </el-dialog>
-</template>
-   <script>
-import resToken from "@/mixins/resToken";
-import { isnumber } from "@/utils/validate";
-export default {
-  name: "returnOrder",
-  props: ["showModel", "index", "sitem"],
-  mixins: [resToken],
-  data() {
-    const validateerror_num = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("异常数量不能为空!"));
-      } else {
-        if (!isnumber(value)) {
-          callback(new Error("异常数量必须为数字"));
-        } else {
-          callback();
-        }
-      }
-    };
-    return {
-      loading: false,
-      title: "",
-      showModelThis: this.showModel,
-      ruleForm: {
-        error_num: "", //异常数量
-        error_code: "", //异常原因
-        error_remark: "", //异常备注
-        error_code_name: "",
-        id: "",
-      },
-      rulesThis: this.rules,
-      rules: {
-        error_num: [
-          {
-            required: true,
-            validator: validateerror_num,
-            trigger: "blur",
-          },
-        ],
-        error_code: [
-          {
-            required: true,
-            message: "请输入异常原因",
-            trigger: "change",
-          },
-        ],
-        error_remark: [
-          {
-            required: true,
-            message: "请填写异常原因备注",
-            trigger: "blur",
-          },
-        ],
-      },
-    };
-  },
-  watch: {
-    showModel: function (val) {
-      this.showModelThis = val;
-      if (val) {
-        this.initForm();
-      }
-    },
-    showModelThis(val) {
-      if (!val) {
-        this.$emit("cancel");
-      }
-    },
-  },
-
-  methods: {
-    async initForm() {
-      this.loading = true;
-      this.rulesThis = this.rules;
-      if (this.index === -1) {
-        this.title = "添加异常情况";
-      } else {
-        this.title = "编辑异常情况";
-      }
-      await this.resetForm();
-      this.loading = false;
-    },
-    async resetForm() {
-      // 重置
-      await this.$nextTick(() => {
-        if (this.$refs.ruleForm) {
-          this.$refs.ruleForm.resetFields();
-          this.$refs.ruleForm.clearValidate();
-          const { error_num, error_code, error_remark, error_code_name, id } =
-            this.sitem;
-          this.ruleForm = {
-            id: id || "",
-            error_num: error_num || "", //异常数量
-            error_code: error_code || "", //异常原因
-            error_remark: error_remark || "", //异常备注
-            error_code_name: error_code_name || "",
-          };
-        }
-      });
-    },
-
-    async submitForm() {
-      await this.$refs.ruleForm.validate(async (valid) => {
-        if (valid) {
-          this.showModelThis = false;
-          this.$emit("refresh", {
-            index: this.index,
-            item: JSON.parse(JSON.stringify(this.ruleForm)),
-          });
-        } else {
-          console.log("error submit!!");
-          return false;
-        }
-      });
-    },
-
-    select_change(e) {
-      this.ruleForm.error_code = e && e.code ? e.code : "";
-      this.ruleForm.error_code_name = e && e.code ? e.label : "";
-      this.$refs.ruleForm.validateField("error_code_name");
-      this.$refs.ruleForm.validateField("error_code");
-    },
-  },
-};
-</script>
-
-   <style lang="scss" scoped>
-</style>
-   

+ 0 - 0
src/components/abnormal-condition-modal/异常情况弹窗


+ 0 - 338
src/components/addr-add-edit-modal/index.vue

@@ -1,338 +0,0 @@
-<template>
-  <el-dialog
-    :title="title"
-    :center="true"
-    align="left"
-    top="8vh"
-    width="600px"
-    @close="showModelThis = false"
-    :close-on-click-modal="false"
-    :visible.sync="showModelThis"
-    v-loading="loading"
-    element-loading-text="拼命加载中"
-    element-loading-spinner="el-icon-loading"
-    element-loading-background="rgba(0, 0, 0, 0.8)"
-    append-to-body
-  >
-    <el-card style="margin-top: -20px">
-      <el-form
-        ref="ruleForm"
-        :model="ruleForm"
-        status-icon
-        :rules="rulesThis"
-        label-width="135px"
-        class="demo-ruleForm"
-      >
-        <el-form-item label="收货总数" prop="receipt_quantity">
-          <el-input
-            v-model="ruleForm.receipt_quantity"
-            placeholder="收货总数"
-          />
-        </el-form-item>
-        <el-form-item label="收货联系人" prop="contactor">
-          <el-input
-            v-model="ruleForm.contactor"
-            maxlength="250"
-            placeholder="收货联系人"
-          />
-        </el-form-item>
-
-        <el-form-item label="收货联系电话" prop="mobile">
-          <el-input v-model="ruleForm.mobile" placeholder="收货联系电话" />
-        </el-form-item>
-        <el-form-item
-          v-if="type == '1'"
-          label="省市区(文件导入)"
-          prop="in_addr"
-        >
-          <el-input
-            v-model="ruleForm.in_addr"
-            disabled
-            placeholder="省市区(文件导入)"
-          />
-        </el-form-item>
-        <el-form-item
-          :label="type == '1' ? '省市区(系统解析)' : '收货省市区'"
-          prop="addr_code"
-        >
-          <select-area
-            :value="ruleForm.addr_code"
-            placeholder="收货省市区"
-            @selectChange="select_area_change($event)"
-          />
-        </el-form-item>
-        <el-form-item label="详细地址" prop="addr">
-          <el-input
-            v-model="ruleForm.addr"
-            maxlength="250"
-            placeholder="详细地址"
-          />
-        </el-form-item>
-        <div style="text-align: right">
-          <el-button type="primary" @click="submitForm">保 存 </el-button>
-          <el-button @click="showModelThis = false">{{
-            isDetail ? "关 闭" : "取 消"
-          }}</el-button>
-        </div>
-      </el-form>
-    </el-card>
-  </el-dialog>
-</template>
-
-<script>
-import { isnumber, isMobile } from "@/utils/validate";
-import { province_list, city_list, county_list } from "@/assets/js/area-data";
-import asyncRequest from "@/apis/components/addr-add-edit-modal";
-export default {
-  name: "AddrAddEditModal",
-  props: ["showModel", "index", "sitem", "type"],
-  data() {
-    const validateWeight = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("不能为空!"));
-      } else {
-        if (!isnumber(value)) {
-          callback(new Error("仅支持整数!"));
-        } else {
-          callback();
-        }
-      }
-    };
-    const validatemobile = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("手机号不能为空!"));
-      } else {
-        if (!isMobile(value)) {
-          callback(new Error("手机号格式不正确!"));
-        } else {
-          callback();
-        }
-      }
-    };
-    return {
-      roleList: [],
-      loading: false,
-      title: "",
-      organizeList: [],
-      pickerOptions: {
-        disabledDate: (time) => {
-          return time.getTime() < new Date().valueOf();
-        },
-      },
-      showModelThis: this.showModel,
-      ruleForm: {
-        receipt_quantity: "",
-        contactor: "",
-        mobile: "",
-        addr_code: [],
-        addr: "",
-        id: "",
-      },
-      rulesThis: this.rules,
-      rules: {
-        receipt_quantity: [
-          {
-            required: true,
-            validator: validateWeight,
-            trigger: "blur",
-          },
-        ],
-
-        contactor: [
-          {
-            required: true,
-            trigger: "blur",
-            message: "联系人不能为空",
-          },
-        ],
-        mobile: [
-          {
-            required: true,
-            validator: validatemobile,
-            trigger: "blur",
-          },
-        ],
-
-        addr_code: [
-          {
-            type: "array",
-            required: true,
-            message: "收货省市区不能为空",
-            trigger: "change",
-          },
-        ],
-        addr: [
-          {
-            required: true,
-            message: "详细地址不能为空",
-            trigger: "blur",
-          },
-        ],
-      },
-    };
-  },
-  watch: {
-    showModel: function (val) {
-      this.showModelThis = val;
-      if (val) {
-        this.initForm();
-      }
-    },
-    showModelThis(val) {
-      if (!val) {
-        this.$emit("cancel");
-      }
-    },
-  },
-  methods: {
-    itemidChange(e) {
-      this.ruleForm.itemid = e;
-      this.$refs.ruleForm.validateField("itemid");
-    },
-    async initForm() {
-      this.loading = true;
-
-      if (this.index === -1) {
-        this.title = "添加收货地址";
-      } else {
-        this.title = "修改收货地址";
-      }
-      this.rulesThis = this.rules;
-      await this.resetForm();
-      this.loading = false;
-    },
-
-    async resetForm() {
-      // 重置
-      await this.$nextTick(() => {
-        if (this.$refs.ruleForm) {
-          this.$refs.ruleForm.resetFields();
-          this.$refs.ruleForm.clearValidate();
-          const {
-            receipt_quantity,
-            contactor,
-            mobile,
-            addr_code,
-            addr_code_name,
-            addr,
-            in_addr,
-            id,
-          } = this.sitem;
-          this.ruleForm = {
-            receipt_quantity,
-            contactor,
-            mobile,
-            in_addr: in_addr || "",
-            addr_code: addr_code && addr_code.length === 3 ? addr_code : [],
-            addr_code_name: addr_code_name || "",
-            addr,
-            id: id || "",
-          };
-        }
-      });
-    },
-    async submitForm() {
-      await this.$refs.ruleForm.validate(async (valid) => {
-        if (valid) {
-          this.showModelThis = false;
-          //addr_code_name
-          this.$emit("refresh", {
-            index: this.index,
-            item: JSON.parse(JSON.stringify(this.ruleForm)),
-          });
-        } else {
-          console.log("error submit!!");
-          return false;
-        }
-      });
-    },
-    //省市区选择
-    async select_area_change(e) {
-      this.ruleForm.addr_code = e;
-      this.$refs.ruleForm.validateField("addr_code");
-
-      const { addr_code } = this.ruleForm;
-      if (addr_code && addr_code.length === 3) {
-        let arrCode = addr_code[addr_code.length - 1];
-        // console.log(model);
-        let { code, data, message } = await asyncRequest.addrall({
-          code: arrCode,
-        });
-        if (code === 0) {
-          const { province, city, area } = data;
-          let province_name = province && province.name ? province.name : "";
-          let city_name = city && city.name ? city.name : "";
-          let area_name = area && area.name ? area.name : "";
-          this.addrForm.addr_code_name =
-            province_name && city_name && area_name
-              ? `${province_name}/${city_name}/${area_name}`
-              : "";
-        } else if (code >= 100 && code <= 104) {
-          await this.logout();
-        } else {
-          this.$message.warning(message);
-        }
-      } else {
-        this.addrForm.addr_code_name = "";
-      }
-    },
-    get_code(name1, name2, name3) {
-      let name = "",
-        code = [];
-      if (name1 && name2 && name3) {
-        for (let x in province_list) {
-          if (name1 === province_list[x]) {
-            code.push(x);
-            name += province_list[x];
-            break;
-          }
-        }
-        if (code.length === 1) {
-          for (let y in city_list) {
-            if (name2 === city_list[y]) {
-              code.push(y);
-              name += "/" + city_list[y];
-              break;
-            }
-          }
-        }
-        if (code.length === 2) {
-          for (let z in county_list) {
-            if (name3 === county_list[z]) {
-              code.push(z);
-              name += "/" + county_list[z];
-              break;
-            }
-          }
-        }
-
-        if (code.length === 3) {
-          let str1 = "",
-            str2 = "",
-            isok = false;
-          str1 = code[0].slice(0, 2);
-          str2 = code[1].slice(2, 4);
-          if (
-            code[1].indexOf(str1) === 0 &&
-            code[2].indexOf(str1) === 0 &&
-            code[2].indexOf(str2) == 2
-          ) {
-            isok = true;
-          }
-          if (!isok) {
-            name = "";
-            code = [];
-          }
-        } else {
-          name = "";
-          code = [];
-        }
-      }
-      return { name: name, code: code };
-    },
-  },
-};
-</script>
-
-  <style>
-</style>

+ 0 - 0
src/components/addr-add-edit-modal/收货地址新建OR编辑


+ 0 - 2
src/components/globalComponents/Breadcrumb/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 93
src/components/globalComponents/Breadcrumb/main.vue

@@ -1,93 +0,0 @@
-<template>
-  <el-breadcrumb class="app-breadcrumb" separator="/">
-    <transition-group name="breadcrumb">
-      <el-breadcrumb-item v-for="(item, index) in levelList" :key="item.path">
-        <span
-          v-if="item.redirect === 'noRedirect' || index >0"
-          class="no-redirect"
-        >{{ item.meta.title }}</span>
-        <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
-      </el-breadcrumb-item>
-    </transition-group>
-  </el-breadcrumb>
-</template>
-
-<script>
-import pathToRegexp from 'path-to-regexp'
-
-export default {
-  name:'Breadcrumb',
-  data() {
-    return {
-      levelList: null
-    }
-  },
-  watch: {
-    $route(route) {
-      // if you go to the redirect page, do not update the breadcrumbs
-      if (route.path.startsWith('/redirect/')) {
-        return
-      }
-      this.getBreadcrumb()
-    }
-  },
-  created() {
-    this.getBreadcrumb()
-  },
-  methods: {
-    getBreadcrumb() {
-      // only show routes with meta.title
-      let matched = this.$route.matched.filter(
-        item => item.meta && item.meta.title
-      )
-      const first = matched[0]
-
-      if (!this.isDashboard(first)) {
-        matched = [{ path: '/welcome/dashboard', meta: { title: '首页' }}].concat(
-          matched
-        )
-      }
-
-      this.levelList = matched.filter(
-        item => item.meta && item.meta.title && item.meta.breadcrumb !== false
-      )
-    },
-    isDashboard(route) {
-      const name = route && route.name
-      if (!name) {
-        return false
-      }
-      return (
-        name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()
-      )
-    },
-    pathCompile(path) {
-      const { params } = this.$route
-      var toPath = pathToRegexp.compile(path)
-      return toPath(params)
-    },
-    handleLink(item) {
-      const { redirect, path } = item
-      if (redirect) {
-        window.vm.$router.push(redirect)
-        return
-      }
-      window.vm.$router.push(this.pathCompile(path))
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.app-breadcrumb.el-breadcrumb {
-  display: inline-block;
-  font-size: 14px;
-  line-height: 50px;
-  margin-left: 18px;
-
-  .no-redirect {
-    color: #97a8be;
-    cursor: text;
-  }
-}
-</style>

+ 0 - 34
src/components/globalComponents/Hamburger/main.vue

@@ -1,34 +0,0 @@
-<template>
-  <div style="padding: 0 15px;" @click="toggleClick">
-  <i :class="{'el-icon-s-fold':!isActive,'el-icon-s-unfold':isActive}" class="hamburger"></i>
-  
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'Hamburger',
-  props: {
-    isActive: {
-      type: Boolean,
-      default: false
-    }
-  },
-  methods: {
-    toggleClick() {
-      this.$emit('toggleClick')
-    }
-  }
-}
-</script>
-
-<style scoped>
-.hamburger {
-  display: inline-block;
-  vertical-align: middle;
-  font-size: 22px;
-
-}
-
-
-</style>

+ 0 - 2
src/components/globalComponents/Screenfull/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 66
src/components/globalComponents/Screenfull/main.vue

@@ -1,66 +0,0 @@
-<template>
-  <div>
-    <i
-      :class="{
-        'el-icon-full-screen rt1': isFullscreen,
-        'el-icon-rank rt2': !isFullscreen,
-      }"
-      @click="click"
-    ></i>
-  </div>
-</template>
-
-<script>
-import screenfull from "screenfull";
-
-export default {
-  name: "Screenfull",
-  data() {
-    return {
-      isFullscreen: false,
-    };
-  },
-  mounted() {
-    this.init();
-  },
-  beforeDestroy() {
-    this.destroy();
-  },
-  methods: {
-    click() {
-      if (!screenfull.enabled) {
-        this.$message({
-          message: "you browser can not work",
-          type: "warning",
-        });
-        return false;
-      }
-      screenfull.toggle();
-    },
-    change() {
-      this.isFullscreen = screenfull.isFullscreen;
-    },
-    init() {
-      if (screenfull.enabled) {
-        screenfull.on("change", this.change);
-      }
-    },
-    destroy() {
-      if (screenfull.enabled) {
-        screenfull.off("change", this.change);
-      }
-    },
-  },
-};
-</script>
-
-<style scoped>
-.screenfull-svg {
-  display: inline-block;
-  cursor: pointer;
-  fill: #5a5e66;
-  width: 20px;
-  height: 20px;
-  vertical-align: 10px;
-}
-</style>

+ 0 - 0
src/components/globalComponents/Screenfull/全屏


+ 0 - 2
src/components/globalComponents/abnormal-cause/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 139
src/components/globalComponents/abnormal-cause/main.vue

@@ -1,139 +0,0 @@
-<template>
-  <el-select
-    v-model="value"
-    :size="size || 'medium'"
-    style="width: 100%"
-    :placeholder="placeholder || ''"
-    :disabled="disabled"
-    @change="selectChange"
-  >
-    <el-option
-      v-for="item in options"
-      :key="item.result_code"
-      :label="item.result"
-      :value="item.result_code"
-      :disabled="item.status==='0'"
-    >
-    </el-option>
-  </el-select>
-  <!-- <el-select
-    v-model="value"
-    multiple
-    filterable
-    remote
-    :multiple-limit="1"
-    reserve-keyword
-    :size="size || 'medium'"
-    style="width: 100%"
-    :placeholder="placeholder||''"
-    :disabled="disabled"
-    :remote-method="getList"
-    :loading="selectLoading"
-    @change="selectChange"
-  >
-    <el-option
-      v-for="(item, index) in options"
-      :key="item.id + index"
-      :label="item.name"
-      :value="item.code+''"
-      :disabled="item.status!=='1'"
-    >
-    </el-option>
-  </el-select> -->
-</template>
-
-<script>
-import asyncRequest from "@/apis/components/abnormal-cause";
-import resToken from "@/mixins/resToken";
-export default {
-  name: "abnormalCause",
-  mixins: [resToken],
-  props: [
-    "size",
-    "value",
-    "placeholder",
-    "isDetail",
-    "disabled",
-    "names",
-    "type",
-  ],
-  /**
-   * 属性集合
-   * @param {String}        size             : 组件大小            非必填
-   * @param {String}        value            : 选中值              必填
-   * @param {String}        placeholder      : 提示信息            非必填
-   * @param {Boolean}       isDetail          : 是否是详情逻辑       必填
-   * @param {Boolean}       disabled         : 是否禁用            必填
-   * @param {String}        names            : 选中值label         展示详情必填
-   * @param {String}        type             : 数据类型            非必填 1是平台供应商0非平台供应商
-   */
-  /**
-   * 事件集合
-   * @searchChange             : 选中值变化调用   抛出选中数据
-   */
-  data() {
-    return {
-      options: [],
-      selectLoading: false,
-      searchName: "",
-    };
-  },
-  watch: {
-    names: function (val, old) {
-      // console.log(val, old);
-      this.searchName = val;
-      if (this.isDetail && this.searchName) {
-        this.getList(this.searchName);
-      }
-    },
-  },
-  mounted() {
-    this.options = [];
-    this.selectLoading = false;
-    this.getList()
-  },
-  methods: {
-    async selectChange(e) {
-      if (e) {
-        let index = this.options.findIndex((v) => v.result_code === e);
-        if (index !== -1) {
-          let model = {
-            id: this.options[index].id,
-            code: this.options[index].result_code,
-            label: this.options[index].result,
-          };
-          this.$emit("searchChange", model);
-        } else {
-          this.$emit("searchChange", {});
-        }
-      } else {
-        this.$emit("searchChange", {});
-      }
-    },
-    async getList() {
-      this.selectLoading = true;
-      this.options = [];
-      let formValue = {
-        type: this.type || "1",
-        page: 1,
-        size: 500,
-      };
-
-      let res = await asyncRequest.list(formValue);
-      if (res && res.code === 0 && res.data) {
-        const { list } = res.data;
-        this.options = list;
-      } else if (res && res.code >= 100 && res.code <= 104) {
-        await this.logout();
-      } else {
-        this.$message.warning(res.message);
-      }
-
-      this.selectLoading = false;
-    },
-  },
-};
-</script>
-
-<style>
-</style>

+ 0 - 0
src/components/globalComponents/abnormal-cause/异常原因选择组件


+ 0 - 2
src/components/globalComponents/all-organize/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 105
src/components/globalComponents/all-organize/main.vue

@@ -1,105 +0,0 @@
-<template>
-  <el-cascader
-    style="width: 100%"
-    :disabled="disabled"
-    :placeholder="placeholder"
-    v-model="value"
-    :options="options"
-    :size="size || 'medium'"
-    @change="selectChange"
-    :props="{
-      expandTrigger: 'hover',
-      children: 'child',
-      multiple: multiple,
-      checkStrictly: checkStrictly,
-    }"
-  ></el-cascader>
-</template>
-
-<script>
-import asyncRequest from "@/apis/components/all-organize";
-import resToken from "@/mixins/resToken";
-export default {
-  name: "AllOrganize",
-  mixins: [resToken],
-  props: [
-    "size",
-    "value",
-    "placeholder",
-    "isDetail",
-    "disabled",
-    "names",
-    "multiple",
-    "checkStrictly",
-  ],
-  /**
-   * 属性集合
-   * @param {String}        size             : 组件大小            非必填
-   * @param {Array}         value            : 选中值              必填
-   * @param {String}        placeholder      : 提示信息            非必填
-   * @param {Boolean}       isDetail          : 是否是详情逻辑       必填
-   * @param {Boolean}       disabled         : 是否禁用            必填
-   * @param {Boolean}       multiple         : 是否多选            必填
-   * @param {Boolean}       checkStrictly    : 是否选择任意一项     必填
-   *
-   */
-  /**
-   * 事件集合
-   * @searchChange             : 选中值变化调用   抛出选中数据
-   */
-  data() {
-    return {
-      options: [],
-      code: [],
-      selectLoading: false,
-      searchName: "",
-    };
-  },
-  watch: {
-    isDetail: function (val, old) {
-      if (this.isDetail !== val) {
-        this.options = [];
-        this.selectLoading = false;
-        this.getList();
-      }
-    },
-  },
-  mounted() {
-    this.options = [];
-    this.selectLoading = false;
-    this.getList();
-  },
-  methods: {
-    async selectChange(e) {
-      this.$emit("searchChange", e);
-    },
-    async getList() {
-      this.options = [];
-      const res = await asyncRequest.list({});
-      if (res && res.code === 0 && res.data) {
-        this.options = res.data;
-        this.recursion(this.options);
-      } else {
-        this.options = [];
-      }
-    },
-    recursion(list) {
-      list.map((v) => {
-        if (v && Array.isArray(v.child)) {
-          v.value = v.id + "";
-          v.label = v.name;
-          if (v.child.length === 0) {
-            delete v["child"];
-          } else {
-            this.recursion(v.child);
-          }
-        }
-        return v;
-      });
-    },
-  },
-};
-</script>
-
-<style>
-</style>

+ 0 - 0
src/components/globalComponents/all-organize/组织架构选择框


+ 0 - 2
src/components/globalComponents/class-tree/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 108
src/components/globalComponents/class-tree/main.vue

@@ -1,108 +0,0 @@
-<template>
-  <div class="staff-tree">
-    <div v-if="list && list.length > 0">
-      <div class="staff" v-for="(item, index) in list" :key="'user' + index">
-        <i class="el-icon-s-custom user-box"></i>
-        <span class="staff-name">{{ item.nickname }}</span>
-        <span class="btn-list" @click="(e) => e.stopPropagation()">
-          <el-button
-            v-if="powers.some((item) => item == '005')"
-            :type="item.position === '1' ? 'primary' : 'info'"
-            size="mini"
-            @click="setUpEdit($event, item.id, item.position)"
-          >
-            设为负责人
-          </el-button></span
-        >
-      </div>
-    </div>
-  </div>
-</template>
-<script>
-export default {
-  name: "goodsTree",
-  components: {},
-  props: ["list", "level"],
-  computed: {
-    powers() {
-      let tran =
-        this.$store.getters.btnList.find(
-          (item) => item.menu_route == "goodsTree"
-        ) || {};
-      if (tran && tran.action && tran.action.length > 0) {
-        return tran.action;
-      } else {
-        return [];
-      }
-    },
-  },
-  data() {
-    return {
-      newlist: "",
-      index: 0, // icon 箭头
-    };
-  },
-  methods: {
-    setUpEdit(e, id, position) {
-      this.$emit("setUpEdit", id, position);
-    },
-  },
-};
-</script>
-<style lang="scss" >
-.staff-tree {
-  margin-left: 18px;
-  cursor: pointer;
-  // border: 1px solid #ccc;
-  // border-radius: 6px;
-  .no-data {
-    text-align: center;
-    line-height: 50px;
-    color: #666;
-    border: 1px solid #ccc;
-    border-radius: 6px;
-  }
-  .el-button--mini {
-    padding: 6px 10px;
-    margin-top: 5px;
-  }
-  .staff-tree-node:nth-of-type(odd) {
-    background: rgba(75, 157, 177, 0.1);
-  }
-  .staff-tree-node:nth-of-type(even) {
-    background: rgba(249, 168, 110, 0.1);
-  }
-
-  .staff {
-    // padding:0 0 0 5px;
-    // background: #eee;
-    .btn-list {
-      display: block;
-      float: right;
-    }
-    .user-box {
-      display: inline-block;
-      vertical-align: top;
-      width: 25px;
-      height: 25px;
-      line-height: 25px;
-      font-size: 15px;
-      text-align: center;
-      border-radius: 50%;
-      overflow: hidden;
-      background: #63cbe7;
-      color: #fff;
-      margin: 6px 5px 0 3px;
-      small {
-        font-size: 8px;
-      }
-    }
-    .staff-name {
-      display: inline-block;
-      height: 38px;
-      line-height: 38px;
-      vertical-align: top;
-    }
-  }
-}
-</style>

+ 0 - 0
src/components/globalComponents/class-tree/商品-item


+ 0 - 2
src/components/globalComponents/digital-input/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 121
src/components/globalComponents/digital-input/main.vue

@@ -1,121 +0,0 @@
-<template>
-  <div class="digitalInput">
-    <el-input-number
-      v-model="num"
-      :name="name"
-      class="fl"
-      :class="{ appendInput: append }"
-      @change="handleChange"
-      @blur="handleChange"
-      :precision="precision"
-      :step="step"
-      :min="min"
-      :max="max"
-      :disabled="disabled"
-      :size="size || 'medium'"
-      :placeholder="placeholder"
-      :controls-position="position"
-    />
-    <!-- step-strictly -->
-    <div
-      class="my-append fl"
-      :class="{
-        'my-append-mini': size === 'mini',
-        'my-append-small': size === 'small',
-      }"
-      v-if="append"
-    >
-      {{ append }}
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  name: "digitalInput",
-  props: [
-    "values",
-    "min",
-    "max",
-    "step",
-    "precision",
-    "size",
-    "append",
-    "name",
-    "disabled",
-    "controls",
-    "newTime",
-    "placeholder",
-    "position",
-  ],
-  watch: {
-    values: function (val) {
-      // console.log(this.name + "=" + val);
-      this.num = val;
-    },
-    newTime: function (val) {
-      // console.log(this.name + "=" + this.values);
-      this.num = this.values;
-    },
-  },
-  data() {
-    return {
-      num: 0,
-      loading: false,
-    };
-  },
-  methods: {
-    handleChange(value) {
-      this.$emit("reschange", this.num);
-      // console.log(value);
-    },
-  },
-};
-</script>
-<style lang="scss" scoped>
-.digitalInput {
-  width: 100%;
-  /deep/ .el-input-number.is-controls-right .el-input__inner {
-    padding-right: 15px !important;
-    text-align: left !important;
-  }
-  /deep/.el-input-number.is-controls-right .el-input-number__decrease {
-    display: none !important;
-  }
-  /deep/.el-input-number.is-controls-right .el-input-number__increase {
-    display: none !important;
-  }
-  /deep/.el-input-number {
-    width: 100% !important;
-    &.appendInput {
-      width: calc(100% - 40px) !important;
-      .el-input__inner {
-        border-top-right-radius: 0px !important;
-        border-bottom-right-radius: 0px !important;
-      }
-    }
-  }
-  .my-append {
-    width: 40px;
-    height: 40px;
-    line-height: 40px;
-    box-sizing: border-box;
-    text-align: center;
-    background-color: #f5f7fa;
-    color: #909399;
-    position: relative;
-    border: 1px solid #dcdfe6;
-    border-left: 0;
-    border-top-right-radius: 4px;
-    border-bottom-right-radius: 4px;
-    &.my-append-small {
-      height: 32px !important;
-      line-height: 32px !important;
-    }
-    &.my-append-mini {
-      height: 28px !important;
-      line-height: 28px !important;
-    }
-  }
-}
-</style>

+ 0 - 0
src/components/globalComponents/digital-input/数字输入框


+ 0 - 2
src/components/globalComponents/download-addr/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 67
src/components/globalComponents/download-addr/main.vue

@@ -1,67 +0,0 @@
-<template>
-  <a class="downloadAddr" href="./static/收货地址模板.xlsx">
-    下载收货地址模板
-  </a>
-</template>
-
-<script>
-export default {
-  name: "downloadAddr",
-  data() {
-    return {
-      loading: false,
-    };
-  },
-  mounted() {},
-  methods: {
-    DownloadTemplate() {
-      if (!this.loading) {
-        this.loading = true;
-        const bloc = dataURLtoBlob(fileUrl);
-        const blob = new Blob([bloc], {
-          type: "application/vnd.ms-excel",
-        });
-        const downLoadEle = document.createElement("a");
-        // 通过返回的二进制数据来创建一个对象URL.
-        const href = URL.createObjectURL(blob);
-        downLoadEle.href = href;
-        // 信息表为自定义文件名
-        downLoadEle.download = "信息表";
-        document.body.appendChild(downLoadEle);
-        downLoadEle.click();
-        document.body.removeChild(downLoadEle);
-        // 当加载完成后释放对象URL.
-        window.URL.revokeObjectURL(href);
-        // window.open(fileUrl, "_blank");
-        this.loading = false;
-      }
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.downloadAddr {
-  display: inline-block;
-  line-height: 1;
-  white-space: nowrap;
-  cursor: pointer;
-  background: #ffffff;
-  border: 1px solid #63cbe7;
-  font-size: 12px;
-  background-color: #63cbe7;
-  border-color: #dcdfe6;
-  // -webkit-appearance: none;
-  text-align: center;
-  color: #ffffff;
-  -webkit-box-sizing: border-box;
-  box-sizing: border-box;
-  outline: none;
-  margin: 0;
-  -webkit-transition: 0.1s;
-  transition: 0.1s;
-  // font-weight: 400;
-  padding: 7px 15px;
-  border-radius: 4px;
-}
-</style>

+ 0 - 2
src/components/globalComponents/editor-shy/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 278
src/components/globalComponents/editor-shy/main.vue

@@ -1,278 +0,0 @@
-<template>
-  <div ref="editorBox">
-    <file-upload
-      ref="uploadImg"
-      img-url=""
-      index=""
-      btn-name=""
-      async-key="uploadFile"
-      style="float: left;display:none;"
-      @event="getImgUrl"
-    />
-    <!-- 图片上传组件辅助-->
-    <!-- <el-upload
-      class="avatar-uploader"
-      :action="serverUrl"
-      name="img"
-      :headers="header"
-      :show-file-list="false"
-      :on-success="uploadSuccess"
-      :on-error="uploadError"
-      :before-upload="beforeUpload"
-    >
-    </el-upload> -->
-
-    <quill-editor
-      ref="myQuillEditor"
-      v-model="content"
-      class="editor"
-      :options="editorOption"
-      @blur="onEditorBlur($event)"
-      @focus="onEditorFocus($event)"
-      @change="onEditorChange($event)"
-    />
-  </div>
-</template>
-<script>
-// 工具栏配置
-const toolbarOptions = [
-  ['bold', 'italic', 'underline', 'strike'], // 加粗 斜体 下划线 删除线
-  ['blockquote', 'code-block'], // 引用  代码块
-  [{ header: 1 }, { header: 2 }], // 1、2 级标题
-  [{ list: 'ordered' }, { list: 'bullet' }], // 有序、无序列表
-  [{ script: 'sub' }, { script: 'super' }], // 上标/下标
-  [{ indent: '-1' }, { indent: '+1' }], // 缩进
-  // [{'direction': 'rtl'}],                         // 文本方向
-  [{ size: ['small', false, 'large', 'huge'] }], // 字体大小
-  [{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
-  [{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色
-  [{ font: [] }], // 字体种类
-  [{ align: [] }], // 对齐方式
-  ['clean'], // 清除文本格式
-  ['link', 'image', 'video'] // 链接、图片、视频
-]
-
-import { quillEditor } from 'vue-quill-editor'
-import 'quill/dist/quill.core.css'
-import 'quill/dist/quill.snow.css'
-import 'quill/dist/quill.bubble.css'
-
-export default {
-  name: 'EditorShy',
-  components: {
-    quillEditor
-  },
-  props: {
-    /* 编辑器的内容*/
-    value: {
-      type: String
-    },
-    /* 图片大小*/
-    maxSize: {
-      type: Number,
-      default: 3000 // kb
-    }
-  },
-  data() {
-    return {
-      content: this.value,
-      // quillUpdateImg: false, // 根据图片上传状态来确定是否显示loading动画,刚开始是false,不显示
-      editorOption: {
-        theme: 'snow', // or 'bubble'
-        placeholder: '您想说点什么?',
-        modules: {
-          toolbar: {
-            container: toolbarOptions,
-            // container: "#toolbar",
-            handlers: {
-              image: value => {
-                const that = this.$refs.myQuillEditor
-                if (value) {
-                  // 触发input框选择图片文件
-                  // document.querySelector(".avatar-uploader input").click();
-                  // console.dir(this.$refs.uploadImg);
-                  // console.dir(this.$refs.uploadImg.$el.childNodes[0]);
-                  // this.$refs.uploadImg.$el.childNodes[0]
-                  //   .querySelector(".el-upload__input")
-                  //   .click();
-                  this.$refs.uploadImg.$el.childNodes[0].click()
-                } else {
-                  that.quill.format('image', false)
-                }
-              }
-              // link: function(value) {
-              //   if (value) {
-              //     var href = prompt('请输入url');
-              //     this.quill.format("link", href);
-              //   } else {
-              //     this.quill.format("link", false);
-              //   }
-              // },
-            }
-          }
-        }
-      }
-      // serverUrl: "/v1/blog/imgUpload", // 这里写你要上传的图片服务器地址
-      // header: {
-      //   // token: sessionStorage.token
-      // } // 有的图片服务器要求请求头需要有token
-    }
-  },
-  watch: {
-    value(newVal) {
-      this.content = newVal
-    }
-  },
-  mounted() {
-    this.$nextTick(() => {
-      // this.$refs.editorBox
-      // console.dir(this.$refs.myQuillEditor);
-      try {
-        let arr = this.$refs.myQuillEditor.$el.children
-        arr = Array.prototype.slice.call(arr)
-        let height = 0
-        arr.forEach(val => {
-          height += val.offsetHeight
-        })
-        this.$refs.editorBox.style.height = height + 'px'
-      } catch (error) {
-        console.error(error)
-      }
-    })
-  },
-  methods: {
-    onEditorBlur() {
-      // 失去焦点事件
-    },
-    onEditorFocus() {
-      // 获得焦点事件
-    },
-    onEditorChange() {
-      // 内容改变事件
-      this.$emit('input', this.content)
-    },
-    getImgUrl(res) {
-      // res为图片服务器返回的数据
-      // 获取富文本组件实例
-      const quill = this.$refs.myQuillEditor.quill
-      // 获取光标所在位置
-      const length = quill.getSelection().index
-      // 插入图片  res.url为服务器返回的图片地址
-      quill.insertEmbed(length, 'image', res)
-      this.$message({
-        message: '图片请设置左对齐',
-        type: 'warning'
-      })
-      // 调整光标到最后
-      quill.setSelection(length + 1)
-    }
-    // 富文本图片上传前
-    // beforeUpload() {
-    //   // 显示loading动画
-    //   this.quillUpdateImg = true;
-    // },
-    // uploadSuccess(res, file) {
-    //   // res为图片服务器返回的数据
-    //   // 获取富文本组件实例
-    //   let quill = this.$refs.myQuillEditor.quill;
-    //   // 如果上传成功
-    //   if (res.code === 0) {
-    //     // 获取光标所在位置
-    //     let length = quill.getSelection().index;
-    //     // 插入图片  res.url为服务器返回的图片地址
-    //     quill.insertEmbed(length, "image", res.url);
-    //     // 调整光标到最后
-    //     quill.setSelection(length + 1);
-    //   } else {
-    //     this.$message.error("图片插入失败");
-    //   }
-    //   // loading动画消失
-    //   this.quillUpdateImg = false;
-    // },
-    // 富文本图片上传失败
-    // uploadError() {
-    //   // loading动画消失
-    //   this.quillUpdateImg = false;
-    //   this.$message.error("图片插入失败");
-    // }
-  }
-}
-</script>
-
-<style>
-.editor {
-  line-height: normal !important;
-  height: 400px;
-}
-.ql-snow .ql-tooltip[data-mode="link"]::before {
-  content: "请输入链接地址:";
-}
-.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
-  border-right: 0px;
-  content: "保存";
-  padding-right: 0px;
-}
-
-.ql-snow .ql-tooltip[data-mode="video"]::before {
-  content: "请输入视频地址:";
-}
-
-.ql-snow .ql-picker.ql-size .ql-picker-label::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item::before {
-  content: "14px";
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
-  content: "10px";
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
-  content: "18px";
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
-  content: "32px";
-}
-
-.ql-snow .ql-picker.ql-header .ql-picker-label::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item::before {
-  content: "文本";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
-  content: "标题1";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
-  content: "标题2";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
-  content: "标题3";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
-  content: "标题4";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
-  content: "标题5";
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
-  content: "标题6";
-}
-
-.ql-snow .ql-picker.ql-font .ql-picker-label::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item::before {
-  content: "标准字体";
-}
-.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
-  content: "衬线字体";
-}
-.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
-  content: "等宽字体";
-}
-</style>

+ 0 - 2
src/components/globalComponents/ex-table/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 445
src/components/globalComponents/ex-table/main.vue

@@ -1,445 +0,0 @@
-<template>
-  <div>
-    <div class="table-header">
-      <template v-for="(item, index) in table._defaultHeader_">
-        <el-dropdown
-          v-if="item == 'setcol'"
-          placement="bottom-end"
-          trigger="click"
-          class="setcol-table-lie"
-          :hide-on-click="false"
-          :key="index"
-        >
-          <el-button size="mini">列设置</el-button>
-          <el-dropdown-menu slot="dropdown" :class="'ex-table-setcol-dropdown'">
-            <template v-for="(column, index) in setColumns">
-              <el-dropdown-item
-                v-if="!column._noset_"
-                :key="'setColumns' + index"
-              >
-                <el-switch
-                  v-model="column._hidden_"
-                  :active-text="column.label"
-                  :active-value="false"
-                  :inactive-value="true"
-                ></el-switch>
-              </el-dropdown-item>
-            </template>
-          </el-dropdown-menu>
-        </el-dropdown>
-      </template>
-      <slot
-        name="table-header"
-        :selection="tableSelection"
-        :alldata="data"
-      ></slot>
-    </div>
-    <el-table
-      ref="elTable"
-      :data="data"
-      v-bind="table"
-      :size="size"
-      v-on="$listeners"
-      @selection-change="handleSelectionChange"
-      :span-method="arraySpanMethod"
-      style="width: 100%"
-    >
-      <template v-for="(column, index) in columns">
-        <el-table-column
-          align="center"
-          v-if="!column._hidden_ && column.type && !column._slot_"
-          v-bind="column"
-          :key="index"
-          width="45px"
-        ></el-table-column>
-        <el-table-column
-          show-overflow-tooltip
-          v-else-if="!column._hidden_"
-          v-bind="column"
-          :key="index"
-        >
-          <template slot="header" slot-scope="scope">
-            <span>{{ column.label }}</span>
-            <span
-              v-if="column._screen_"
-              @click.stop="addConditionItemByCol(column, scope)"
-            >
-              <i
-                v-if="column._screen_tip_ === false"
-                :style="isHasScreenColumn(column) ? 'color:#3888e5;' : ''"
-                class="el-icon-connection"
-              />
-              <el-tooltip
-                v-else
-                :effect="column._screen_tip_effect_ || 'dark'"
-                :content="column._screen_tip_ || '筛选'"
-                :placement="column._screen_tip_placement_ || 'top'"
-              >
-                <i
-                  :style="isHasScreenColumn(column) ? 'color:#3888e5;' : ''"
-                  class="el-icon-connection"
-                />
-              </el-tooltip>
-            </span>
-          </template>
-          <slot
-            v-if="column._slot_"
-            slot-scope="scope"
-            :name="column._slot_"
-            :scope="scope"
-          ></slot>
-          <template v-else-if="column._render_" slot-scope="scope">
-            <ex-slot
-              :column="column"
-              :render="column._render_"
-              :scope="scope"
-            ></ex-slot>
-          </template>
-          <template v-else slot-scope="scope">
-            <span>{{
-              column._format_
-                ? column._format_(scope.row)
-                : getObjPrototype(scope.row, column.prop)
-            }}</span>
-          </template>
-        </el-table-column>
-      </template>
-    </el-table>
-    <!-- <el-pagination
-      v-if="page !== false && data && data.length > 0"
-      :current-page="page.curr"
-      :page-sizes="[10, 20, 50, 100]"
-      :total="page.total"
-      layout="total, sizes, prev, pager, next, jumper"
-      style="text-align: right"
-      class="fu-page"
-      @current-change="$emit('page-curr-change', $event)"
-      @size-change="$emit('page-size-change', $event)"
-    />
-  -->
-    <div
-      v-if="page !== false && data && data.length > 0"
-      class="Pagination"
-      style="text-align: right; margin-top: 10px"
-    >
-      <el-pagination
-        :current-page="page.curr"
-        :page-sizes="[15, 50, 100]"
-        :page-size="page.size"
-        :size="searchSize"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="page.total"
-        @size-change="$emit('page-size-change', $event)"
-        @current-change="$emit('page-curr-change', $event)"
-      />
-    </div>
-  </div>
-</template>
-
-<script>
-import Sortable from "sortablejs";
-export default {
-  name: "ex-table",
-  components: {
-    "ex-slot": {
-      functional: true,
-      props: {
-        render: Function,
-        scope: {
-          type: Object,
-          default: null,
-        },
-        column: {
-          type: Object,
-          default: null,
-        },
-      },
-      render: (h, data) => {
-        if (data.props.column) data.props.scope.column = data.props.column;
-        return data.props.render(h, data.props.scope);
-      },
-    },
-  },
-  props: {
-    /**
-     * el-table 属性集合
-     * 自定义属性:
-     * @param {Array} _defaultHeader_  : 默认的表格头部,支持['setcol', 'screen'] setcol-列设置 screen-筛选
-     * 可使用插槽扩展表格头部:
-     * table-header - 具名插槽
-     * slotProps:selection - 表格选中的数据  alldata - 表格当前全部数据
-     * <template #table-header="slotProps">
-     *   <el-button size="small" @click="click(slotProps)">扩展1</el-button>
-     * </template>
-     */
-    table: {
-      type: Object,
-      default: () => {},
-    },
-    // el-table 表格数据 对应data字段
-    data: {
-      type: Array,
-      default: () => [],
-    },
-    /**
-     * el-table-column 表格列属性集合
-     * 自定义属性:
-     * @param {String}       _filter_       : 是否不允许设置列
-     * @param {Boolean}       _noset_        : 是否不允许设置列
-     * @param {Boolean}        _screen_      : 是否允许筛选
-     * @param {Boolean}        _hidden_      : 是否隐藏列
-     * @param {String/Boolean} _screen_tip_  : 筛选按钮提示信息,为false不提示
-     * @param {String} _screen_tip_effect_   : 筛选按钮提示信息主题,dark/light
-     * @param {String} _screen_tip_placement_: 筛选按钮提示信息位置,top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end
-     * @param {Array}          _keys_        : 支持的筛选key
-     * @param {Array}      _select_options_  : 若需支持包含select的key,value的备选数据,示例:{_select_options_: [{id:'', label:''},...]}
-     * @param {Array}  _select_options_end_  : 若需支持包含select的key,value_end的备选数据,默认使用_select_options_,示例:{_select_options_: [{id:'', label:''},...]}
-     * @param {Array}          _keys_        : 支持的筛选key
-     * @param {String}         _slot_        : 使用具名插槽时的名称
-     * @param {Function}       _format_      : 数据格式化函数,支持返回html
-     * @param {Function}       _render_      : 自定义列,采用vue中的render函数,示例: { _render_:(h, scope) => { return h(...) } }
-     */
-    columns: {
-      type: Array,
-      default: () => [],
-    },
-    /**
-     * el-pagination
-     * @param {Boolean} page 是否开启表格分页,若不传或传false则不开启
-     * @param {Object} page {
-     *   size: '10'
-     *   total: '100'
-     *   curr: '1'
-     * }
-     * Event:
-     * page-curr-change  分页当前页改变
-     * page-size-change  分页大小改变
-     */
-    page: {
-      type: [Boolean, Object],
-      default: false,
-    },
-    /**
-     * 筛选条件集合
-     */
-    conditions: {
-      type: Array,
-      default: () => [],
-    },
-    /**
-     * 是否允许拖拽行
-     */
-    isRowDrop: {
-      type: Boolean,
-      default: false,
-    },
-    /**
-     * 是否允许拖拽列
-     */
-    isColDrop: {
-      type: Boolean,
-      default: false,
-    },
-    /**
-     * 表格大小
-     */
-    size: {
-      type: String,
-      default: "mini",
-    },
-  },
-  computed: {
-    // 允许筛选的列
-    screenColumns() {
-      return this.columns.filter((item) => item._screen_ === true);
-    },
-    // 允许设置的列
-    setColumns() {
-      return this.columns.filter((item) => !item._noset_);
-    },
-    // 筛选条件是否包含当前列
-    isHasScreenColumn() {
-      return function (col) {
-        return this.conditions.some((item) => item.prop === col.prop);
-      };
-    },
-  },
-  data() {
-    return {
-      // 表格选中项
-      tableSelection: [],
-    };
-  },
-  watch: {},
-  mounted() {
-    // 拖拽绑定
-    this.rowDrop();
-    this.columnDrop();
-  },
-  directives: {
-    // v-drap  可拖拽指令
-    drap: {
-      inserted: function (element, binding) {
-        element.onmousedown = function (e) {
-          let el = binding.modifiers.parent ? element.parentNode : element,
-            bodyWidth = document.body.offsetWidth,
-            bodyHeight = document.body.offsetHeight,
-            elWidth = el.offsetWidth,
-            elHeight = el.offsetHeight;
-          // 开始拖动,记录左上角坐标点
-          let disX = e.clientX - el.offsetLeft;
-          let disY = e.clientY - el.offsetTop;
-          document.onmousemove = function (e) {
-            // 拖动中,修改dom的左上角坐标点
-            let l = e.clientX - disX;
-            let t = e.clientY - disY;
-            if (binding.modifiers.limit) {
-              l = l < 0 ? 0 : l;
-              t = t < 0 ? 0 : t;
-              l = l > bodyWidth - elWidth ? bodyWidth - elWidth : l;
-              t = t > bodyHeight - elHeight ? bodyHeight - elHeight : t;
-            }
-            el.style.left = l + "px";
-            el.style.top = t + "px";
-          };
-          document.onmouseup = function () {
-            // 结束拖动
-            document.onmousemove = null;
-          };
-        };
-      },
-    },
-  },
-  methods: {
-    //
-    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
-      // if (rowIndex % 2 === 0) {
-      //   if (columnIndex === 0) {
-      //     return [1, 2];
-      //   } else if (columnIndex === 1) {
-      //     return [0, 0];
-      //   }
-      // }
-    },
-    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
-      if (columnIndex === 0) {
-        if (rowIndex % 2 === 0) {
-          return {
-            rowspan: 2,
-            colspan: 1,
-          };
-        } else {
-          return {
-            rowspan: 0,
-            colspan: 0,
-          };
-        }
-      }
-    },
-    handleSelectionChange(val) {
-      this.tableSelection = val;
-      this.$emit("selection", { list: this.tableSelection });
-    },
-    //行拖拽
-    rowDrop() {
-      const tbody = document.querySelector(
-        ".el-table__body-wrapper > table > tbody"
-      );
-      Sortable.create(tbody, {
-        disabled: !this.isRowDrop,
-        ghostClass: "sortable-ghost",
-        animation: 180,
-        delay: 0,
-        onEndevt: (evt) => {
-          const currItem = this.data.splice(evt.oldIndex, 1)[0];
-          this.data.splice(evt.newIndex, 0, currItem);
-        },
-      });
-    },
-    //列拖拽
-    columnDrop() {
-      const wrapperTr = document.querySelector(".el-table__header-wrapper tr");
-      Sortable.create(wrapperTr, {
-        disabled: !this.isColDrop,
-        ghostClass: "sortable-ghost",
-        animation: 180,
-        delay: 0,
-        onEnd: (evt) => {
-          const currItem = this.columns.splice(evt.oldIndex, 1)[0];
-          this.columns.splice(evt.newIndex, 0, currItem);
-        },
-      });
-    },
-    // 获取对象的属性
-    getObjPrototype(o, a) {
-      let fn = Function;
-      return new fn("obj", `return obj.${a}`)(o);
-    },
-    /** 表格方法 传递给el-table,后续有需要可继续增加 **/
-    // 对 Table 进行重新布局。当 Table 或其祖先元素由隐藏切换为显示时,可能需要调用此方法
-    doLayout(...arg) {
-      this.$refs.elTable.doLayout(...arg);
-    },
-    // 用于多选表格,清空用户的选择
-    clearSelection(...arg) {
-      this.$refs.elTable.clearSelection(...arg);
-    },
-    // 用于多选表格,切换某一行的选中状态
-    toggleRowSelection(...arg) {
-      this.$refs.elTable.toggleRowSelection(...arg);
-    },
-    // 用于多选表格,切换所有行的选中状态
-    toggleAllSelection(...arg) {
-      this.$refs.elTable.toggleAllSelection(...arg);
-    },
-    // 用于单选表格,设定某一行为选中行
-    setCurrentRow(...arg) {
-      this.$refs.elTable.setCurrentRow(...arg);
-    },
-    // 用于可展开表格与树形表格,切换某一行的展开状态,如果使用了第二个参数,则是设置这一行展开与否(expanded 为 true 则展开)
-    toggleRowExpansion(...arg) {
-      this.$refs.elTable.toggleRowExpansion(...arg);
-    },
-  },
-};
-</script>
-
-<style lang="css">
-.el-switch__core {
-  flex-shrink: 0;
-}
-.el-switch,
-.el-switch__label {
-  height: auto;
-}
-
-.ex-table-setcol-dropdown {
-  max-width: 180px;
-  max-height: 280px;
-  overflow-y: auto;
-}
-</style>
-
-<style lang="scss" scoped>
-.table-header {
-  display: flex;
-  position: relative;
-  display: -webkit-flex;
-  // background-color: #f5f5f5;
-  padding: 0 0;
-
-  .setcol-table-lie {
-    position: absolute;
-    top: 0;
-    left: 0;
-    z-index: 7;
-  }
-}
-.table-header > * {
-  margin-top: 10px;
-  margin-bottom: 12px;
-}
-// .table-header :nth-child(n + 2) {
-//   margin-left: 10px;
-// }
-</style>

+ 0 - 0
src/components/globalComponents/ex-table/表格+分页


+ 0 - 2
src/components/globalComponents/exam-form/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 203
src/components/globalComponents/exam-form/main.vue

@@ -1,203 +0,0 @@
-<template>
-  <el-form
-    v-loading="loading"
-    ref="ruleForm"
-    :model="ruleForm"
-    status-icon
-    :rules="rulesThis"
-    :label-width="labelWidth || '100px'"
-    class="demo-ruleForm"
-    :size="size || 'medium'"
-  >
-    <el-row>
-      <el-col :span="12"
-        ><el-form-item label="审核状态" prop="state">
-          <el-radio-group
-            v-model="ruleForm.state"
-            placeholder="请选择审核状态"
-            style="width: 100%"
-            :size="size || 'medium'"
-            @change="stateChange"
-          >
-            <el-radio
-              v-for="item in stateList"
-              :key="item.value"
-              :label="item.value"
-              >{{ item.label }}</el-radio
-            >
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item
-          label="驳回节点"
-          v-if="ruleForm.state === '0' && isMust"
-          prop="rebut"
-        >
-          <el-select
-            v-model="ruleForm.rebut"
-            placeholder="请选择驳回节点"
-            style="width: 100%"
-            :disabled="disabled"
-          >
-            <el-option
-              v-for="item in statusList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-              :disabled="item.disabled"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item
-          label="审核备注"
-          v-if="ruleForm.state === '0'"
-          prop="remark"
-        >
-          <el-input
-            type="textarea"
-            placeholder="请输入审核备注"
-            v-model="ruleForm.remark"
-            :disabled="disabled"
-            maxlength="250"
-            :autosize="{ minRows: 3, maxRows: 3 }"
-            show-word-limit
-          />
-        </el-form-item>
-        <el-form-item class="fr">
-          <el-button
-            v-if="!isDetail"
-            :size="'mini'"
-            type="primary"
-            @click="submitForm"
-            >保 存
-          </el-button>
-        </el-form-item>
-      </el-col>
-    </el-row>
-  </el-form>
-</template>
-
-<script>
-export default {
-  name: "exam-form",
-  props: ["size", "statusList", "disabled", "isMust", "labelWidth"],
-  /**
-   * 属性集合
-   * @param {String}        size             : 组件大小             非必填
-   * @param {Array}         statusList       : 驳回至备选项          必填
-   * @param {Boolean}       disabled         : 是否禁用              必填
-   * @param {Boolean}       isMust           : 是否需要展示驳回节点   必填
-   *
-   *
-   */
-  /**
-   * 事件集合
-   * @searchChange             : 选中值变化调用   抛出选中数据
-   */
-  data() {
-    return {
-      loading: false,
-      stateList: [
-        {
-          value: "1",
-          label: "通过",
-        },
-        {
-          value: "0",
-          label: "驳回",
-        },
-      ],
-      showModelThis: this.showModel,
-      ruleForm: {
-        state: "1", // 通过or驳回
-        rebut: "", //驳回至
-        remark: "",
-      },
-      rulesThis: this.rules,
-      rules: {
-        state: [
-          {
-            required: true,
-            message: "请选择审核状态",
-            trigger: "change",
-          },
-        ],
-        rebut: [
-          {
-            required: true,
-            message: "请选择驳回节点",
-            trigger: "change",
-          },
-        ],
-        remark: [
-          { required: true, message: "请输入审核备注", trigger: "blur" },
-          {
-            min: 1,
-            max: 250,
-            message: "长度在 1 到 250 个字符",
-            trigger: "blur",
-          },
-        ],
-      },
-    };
-  },
-  watch: {
-    isDetail: function (val, old) {
-      if (this.isDetail !== val) {
-        this.options = [];
-        this.selectLoading = false;
-      }
-    },
-  },
-  mounted() {
-    this.initForm();
-  },
-  methods: {
-    async initForm() {
-      this.loading = true;
-      this.rulesThis = this.rules;
-      await this.resetForm();
-      this.stateChange();
-      this.loading = false;
-    },
-    stateChange() {
-      if (this.ruleForm.state === "1") {
-        this.rulesThis.rebut[0].required = false;
-        this.rulesThis.remark[0].required = false;
-      } else {
-        this.rulesThis.rebut[0].required = true;
-        this.rulesThis.remark[0].required = true;
-      }
-    },
-    async resetForm() {
-      // 重置
-      await this.$nextTick(() => {
-        if (this.$refs.ruleForm) {
-          this.$refs.ruleForm.resetFields();
-          this.$refs.ruleForm.clearValidate();
-          this.ruleForm = {
-            state: "1", // 通过or驳回
-            rebut: "", //驳回至
-            remark: "",
-          };
-        }
-      });
-    },
-    async submitForm() {
-      await this.$refs.ruleForm.validate(async (valid) => {
-        if (valid) {
-          this.$emit("searchChange", this.ruleForm);
-        } else {
-          console.log("error submit!!");
-          return false;
-        }
-      });
-    },
-  },
-};
-</script>
-
-<style>
-</style>

+ 0 - 0
src/components/globalComponents/exam-form/审核表单


+ 0 - 2
src/components/globalComponents/file-upload-pdf/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 137
src/components/globalComponents/file-upload-pdf/main.vue

@@ -1,137 +0,0 @@
-<template>
-  <div>
-    <input
-      ref="inputer"
-      :accept="accept"
-      :multiple="multiple"
-      class="fileUp"
-      :class="{ miniInput: size === 'mini' }"
-      type="file"
-      name="file"
-      :disabled="disabled"
-      @change="handleChange($event)"
-    />
-  </div>
-</template>
-
-<script>
-import urlConfig from "@/apis/url-config";
-import { getToken } from "@/utils/auth";
-//Uploadcondition 用于判断个性化文件 //返回 false 就不会上传文件
-//UploadErrorEvent 上传成功
-//UploadErrorEvent 上传失败
-
-export default {
-  name: "fileUploadPdf",
-  props: {
-    //@reject 默认值
-    accept: String, //上传文件类型
-    multiple: {
-      //是否可以上传多张图片
-      type: Boolean,
-      default: false,
-    },
-    size: {
-      type: String,
-      default: "mini",
-    },
-    disabled: {
-      //是否禁用
-      type: Boolean,
-      default: false,
-    },
-    uploadcondition: {
-      type: Function,
-      default: null,
-    },
-  },
-  data() {
-    return {
-      loading: false,
-      imgAPI: urlConfig.baseURL,
-    };
-  },
-  methods: {
-    async handleChange(event) {
-      let that = this;
-      let inputDOM1 = that.$refs.inputer;
-      const files = inputDOM1.files;
-      let length = files.length;
-      if (length === 0) return;
-      that.loading = that.$loading({
-        lock: true,
-        text: "Loading",
-        spinner: "el-icon-loading",
-        background: "rgba(0, 0, 0, 0.7)",
-      });
-      for (let i = 0; i <= length; i++) {
-        if (i === length) {
-          this.loading.close();
-          that.$refs.inputer.value = "";
-        } else {
-          let str = await that.httpupLoad(files, i);
-          if (str === "error") {
-            that.$emit("UploadErrorEvent", true);
-          } else if (str === "break") {
-            that.$emit("UploadErrorEvent", "break");
-          } else {
-            that.$emit("UploadSuccessEvent", str);
-          }
-        }
-      }
-    },
-    async httpupLoad(files, i) {
-      return new Promise((resolve, reject) => {
-        let that = this;
-        if (!this.uploadcondition(files[i])) {
-          resolve("break");
-        } else {
-          let form = new FormData();
-          form.append("files", files[i]);
-          form.append("token", getToken());
-          axios
-            .post(`${that.imgAPI}admin/uploadfile`, form)
-            .then((res) => {
-              const { status } = res;
-              if (status === 200) {
-                let item = res.data;
-                const { code, data } = item;
-                if (code === 0) {
-                  const { url, name } = data[0];
-                  resolve({
-                    url: `${that.imgAPI}storage/${url}`,
-                    name: name,
-                  });
-                } else {
-                  resolve({
-                    url: `noToken`,
-                    name: "",
-                  });
-                }
-              } else {
-                reject();
-              }
-            })
-            .catch((error) => {
-              reject();
-            });
-        }
-      });
-    },
-  },
-};
-</script>
-<style lang="scss" scoped>
-.fileUp {
-  opacity: 0;
-  width: 100%;
-  height: 100%;
-  outline: none;
-  position: absolute;
-  top: 0;
-  left: 0;
-  &:hover {
-    cursor: pointer;
-  }
-}
-</style>

+ 0 - 0
src/components/globalComponents/file-upload-pdf/文件上传


+ 0 - 2
src/components/globalComponents/file-upload/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 132
src/components/globalComponents/file-upload/main.vue

@@ -1,132 +0,0 @@
-<template>
-  <div>
-    <input
-      ref="inputer"
-      :accept="accept"
-      :multiple="multiple"
-      class="fileUp"
-      type="file"
-      :disabled="disabled"
-      name="file"
-      @change="handleChange($event)"
-    />
-  </div>
-</template>
-
-<script>
-import urlConfig from "@/apis/url-config";
-import { getToken } from "@/utils/auth";
-//Uploadcondition 用于判断个性化文件 //返回 false 就不会上传文件
-//UploadErrorEvent 上传成功
-//UploadErrorEvent 上传失败
-
-export default {
-  name: "fileUpload",
-  props: {
-    //@reject 默认值
-    accept: String, //上传文件类型
-    multiple: {
-      //是否可以上传多张图片
-      type: Boolean,
-      default: false,
-    },
-    disabled: {
-      //是否禁用
-      type: Boolean,
-      default: false,
-    },
-    uploadcondition: {
-      type: Function,
-      default: null,
-    },
-  },
-  data() {
-    return {
-      loading: false,
-      imgAPI: urlConfig.baseURL,
-    };
-  },
-  methods: {
-    async handleChange(event) {
-      let that = this;
-      let inputDOM1 = that.$refs.inputer;
-      const files = inputDOM1.files;
-      let length = files.length;
-      if (length === 0) return;
-      that.loading = that.$loading({
-        lock: true,
-        text: "Loading",
-        spinner: "el-icon-loading",
-        background: "rgba(0, 0, 0, 0.7)",
-      });
-      for (let i = 0; i <= length; i++) {
-        if (i === length) {
-          this.loading.close();
-          that.$refs.inputer.value = "";
-        } else {
-          let str = await that.httpupLoad(files, i);
-          if (str === "error") {
-            that.$emit("UploadErrorEvent");
-          } else if (str === "break") {
-            that.$emit("UploadErrorEvent", "break");
-          } else {
-            that.$emit("UploadSuccessEvent", str);
-          }
-        }
-      }
-    },
-    async httpupLoad(files, i) {
-      return new Promise((resolve, reject) => {
-        let that = this;
-        if (!this.uploadcondition(files[i])) {
-          resolve("break");
-        } else {
-          let form = new FormData();
-          form.append("image", files[i]);
-          form.append("token", getToken());
-          axios
-            .post(`${that.imgAPI}admin/uploadimg`, form)
-            .then((res) => {
-              const { status } = res;
-              if (status === 200) {
-                let item = res.data;
-                const { code, data } = item;
-                if (code === 0) {
-                  const { url, name } = data[0];
-                  resolve({
-                    url: `${that.imgAPI}storage/${url}`,
-                    name: name,
-                  });
-                } else {
-                  resolve({
-                    url: `noToken`,
-                    name: "",
-                  });
-                }
-              } else {
-                reject();
-              }
-            })
-            .catch((error) => {
-              reject();
-            });
-        }
-      });
-    },
-  },
-};
-</script>
-<style lang="scss" scoped>
-.fileUp {
-  opacity: 0;
-  width: 100%;
-  height: 100%;
-  outline: none;
-  position: absolute;
-  top: 0;
-  left: 0;
-  &:hover {
-    cursor: pointer;
-  }
-}
-</style>

+ 0 - 0
src/components/globalComponents/file-upload/文件上传


+ 0 - 2
src/components/globalComponents/goodClass/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 123
src/components/globalComponents/goodClass/main.vue

@@ -1,123 +0,0 @@
-<template>
-  <div class="select-goodsClass">
-    <el-cascader
-      v-if="!loading"
-      :size="size || 'medium'"
-      style="width: 100%"
-      filterable
-      clearable
-      v-model="value"
-      :placeholder="placeholder || ''"
-      :props="props"
-      :disabled="disabled"
-      @change="handleChange"
-    ></el-cascader>
-  </div>
-</template>
-
-<script>
-import asyncRequest from "@/apis/components/goods-class";
-import resToken from "@/mixins/resToken";
-export default {
-  name: "goodClass",
-  mixins: [resToken],
-  props: ["size", "value", "placeholder", "isDetail", "disabled"],
-  /**
-   * 属性集合
-   * @param {String}        size             : 组件大小            非必填
-   * @param {Array}         value            : 选中值              必填
-   * @param {String}        placeholder      : 提示信息            非必填
-   * @param {Boolean}       isDetail         : 是否是详情逻辑       必填
-   * @param {Boolean}       disabled         : 是否禁用            必填
-   */
-  /**
-   * 事件集合
-   * @searchChange             : 选中值变化调用   抛出选中数据
-   */
-  data() {
-    return {
-      loading: false,
-      props: {
-        checkStrictly: true,
-        expandTrigger: "hover",
-        lazy: true, //开启远程加载
-        async lazyLoad(node, resolve) {
-          // console.log(node);
-          const { level, value, root, loading } = node;
-          let model = {
-            cat_name: "",
-            pid: "",
-            status: "",
-          };
-          let list = [];
-          if (level === 0) {
-            model.pid = "0";
-          } else {
-            model.pid = value;
-          }
-          const res = await asyncRequest.list(model);
-          const { code, data } = res;
-          if (code === 0) {
-            data.forEach((v1) => {
-              let province = {
-                value: v1.id,
-                label: v1.cat_name,
-                leaf: level >= 2,
-                desc: v1.cat_desc,
-              };
-              list.push(province);
-            });
-            resolve(list);
-          } else {
-            resolve([]);
-          }
-        },
-      },
-    };
-  },
-  // watch: {
-  //   // value: function (val, old) {
-  //   //   if (val) {
-  //   //     this.loading = true;
-  //   //     setTimeout(() => {
-  //   //       this.loading = false;
-  //   //     }, 10);
-  //   //   }
-  //   // },
-  // },
-  mounted() {
-    this.options = [];
-    this.selectLoading = false;
-  },
-  methods: {
-    async handleChange(value) {
-      this.$emit("handleChange", value);
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.select-goodsClass {
-  .loading-input {
-    background-color: transparent;
-    border: 1px solid #dfe4ed;
-    color: #c0c4cc;
-    width: 100%;
-    height: 36px;
-    line-height: 36px;
-    padding: 0 30px 0 12px;
-    border-radius: 4px;
-    &.disabled {
-      background-color: #f5f7fa;
-    }
-    span {
-      font-size: 16px;
-      height: 36px;
-      line-height: 36px;
-      padding: 0 0 0 3px;
-      vertical-align: top;
-    }
-  }
-}
-</style>

+ 0 - 0
src/components/globalComponents/goodClass/商品分类


+ 0 - 2
src/components/globalComponents/goodsClass-tree/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 204
src/components/globalComponents/goodsClass-tree/main.vue

@@ -1,204 +0,0 @@
-<template>
-  <div class="organize-tree">
-    <div v-if="list && list.length > 0">
-      <div
-        v-for="item in list"
-        :key="item.updatetime"
-        class="organize-tree-node"
-        @click="openChildren($event, item)"
-      >
-        <div class="organize-box">
-          <span class="label">
-            {{ item.name }}
-          </span>
-          <i class="el-icon-arrow-right"></i>
-          <span class="btn-list" @click="(e) => e.stopPropagation()">
-            <el-button
-              v-if="powers.some((item) => item == '005')"
-              type="warning"
-              size="mini"
-              @click="
-                addEdit(
-                  $event,
-                  item.id,
-                  level === 3 ? item.menuid : item.pid,
-                  level,
-                  false,
-                  false,
-                  item
-                )
-              "
-            >
-              修改
-            </el-button>
-
-            <el-button
-              v-if="powers.some((item) => item == '004')"
-              :type="item.status === '1' ? 'primary' : 'info'"
-              size="mini"
-              @click="
-                status(
-                  $event,
-                  item.id,
-                  level === 3 ? item.menuid : item.pid,
-                  level,
-                  item.status
-                )
-              "
-            >
-              {{ item.status === "1" ? "禁用" : "启用" }}
-            </el-button>
-
-            <!-- <el-button
-              v-if="powers.some((item) => item == '006')"
-              type="danger"
-              size="mini"
-              @click="
-                detail(
-                  $event,
-                  item.id,
-                  level === 3 ? item.menuid : item.pid,
-                  level,
-                  item.status
-                )
-              "
-            >
-              详情
-            </el-button> -->
-          </span>
-        </div>
-      </div>
-    </div>
-    <!--  -->
-    <!-- vif{{ page }}--{{ page.total }}--{{}} -->
-    <div
-      class="Pagination"
-      style="text-align: right; margin-top: 10px"
-      v-if="page.total > 0"
-    >
-      <el-pagination
-        :current-page="page.curr"
-        :page-sizes="[15, 50, 100]"
-        :page-size="page.size"
-        :size="searchSize"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="page.total"
-        @size-change="$emit('page-size-change', $event)"
-        @current-change="$emit('page-curr-change', $event)"
-      />
-    </div>
-  </div>
-</template>
-<script>
-export default {
-  name: "goodsClassTree",
-  props: ["list", "level", "page"],
-  computed: {
-    powers() {
-      let tran =
-        this.$store.getters.btnList.find(
-          (item) => item.menu_route == "goodsClass"
-        ) || {};
-      if (tran && tran.action && tran.action.length > 0) {
-        return tran.action;
-      } else {
-        return [];
-      }
-    },
-  },
-  data() {
-    return {
-      newlist: "",
-      index: 0, // icon 箭头
-      // page: {
-      //   type: [Boolean, Object],
-      //   default: false,
-      // },
-    };
-  },
-  methods: {
-    addEdit(e, id, pid, level, isDetail, isAdd, formData) {
-      e.stopPropagation();
-      this.$emit("addEdit", id, pid, level, isDetail, isAdd, formData);
-    },
-    openChildren(e, item) {
-      e.stopPropagation();
-      this.$emit("openChildren", item);
-    },
-    status(e, id, pid, level, status) {
-      e.stopPropagation();
-      this.$emit("status", id, pid, level, status);
-    },
-    // detail(e, id, pid, level, status) {
-    //   e.stopPropagation();
-    //   this.$emit("detail", id, pid, level, status);
-    // },
-  },
-};
-</script>
-<style lang="scss" >
-.organize-tree {
-  margin-left: 18px;
-  cursor: pointer;
-  .el-button--mini {
-    padding: 6px 10px;
-    margin-top: 5px;
-  }
-  .organize-tree-node:nth-of-type(odd) {
-    background: rgba(75, 157, 177, 0.1);
-  }
-  .organize-tree-node:nth-of-type(even) {
-    background: rgba(249, 168, 110, 0.1);
-  }
-  .organize-tree-node {
-    display: block;
-    margin: 5px 0 5px 5px;
-    padding: 0 7px 2px 10px;
-    line-height: 35px;
-
-    .btn-list {
-      display: block;
-      float: right;
-    }
-    i.el-icon-arrow-right {
-      font-size: 16px;
-      width: 22px;
-      height: 35px;
-      line-height: 38px;
-      vertical-align: top;
-      margin: auto;
-    }
-    .label {
-      font-size: 16px;
-    }
-
-    .staff {
-      // padding:0 0 0 5px;
-      // background: #eee;
-      .user-box {
-        display: inline-block;
-        vertical-align: top;
-        width: 25px;
-        height: 25px;
-        line-height: 25px;
-        font-size: 15px;
-        text-align: center;
-        border-radius: 50%;
-        overflow: hidden;
-        background: #63cbe7;
-        color: #fff;
-        margin: 6px 5px 0 3px;
-        small {
-          font-size: 8px;
-        }
-      }
-      .staff-name {
-        display: inline-block;
-        height: 38px;
-        line-height: 38px;
-        vertical-align: top;
-      }
-    }
-  }
-}
-</style>

+ 0 - 0
src/components/globalComponents/goodsClass-tree/商品分类-item


+ 0 - 358
src/components/globalComponents/icon-list/elIcon.js

@@ -1,358 +0,0 @@
-// 新的
-const newList = [
-  'el-icon-platform-eleme',
-  'el-icon-eleme',
-  'el-icon-delete-solid',
-  'el-icon-delete',
-  'el-icon-s-tools',
-  'el-icon-setting',
-  'el-icon-user-solid',
-  'el-icon-user',
-  'el-icon-phone',
-  'el-icon-phone-outline',
-  'el-icon-more',
-  'el-icon-more-outline',
-  'el-icon-star-on',
-  'el-icon-star-off',
-  'el-icon-s-goods',
-  'el-icon-goods',
-  'el-icon-warning',
-  'el-icon-warning-outline',
-  'el-icon-question',
-  'el-icon-info',
-  'el-icon-remove',
-  'el-icon-circle-plus',
-  'el-icon-success',
-  'el-icon-error',
-  'el-icon-zoom-in',
-  'el-icon-zoom-out',
-  'el-icon-remove-outline',
-  'el-icon-circle-plus-outline',
-  'el-icon-circle-check',
-  'el-icon-circle-close',
-  'el-icon-s-help',
-  'el-icon-help',
-  'el-icon-minus',
-  'el-icon-plus',
-  'el-icon-check',
-  'el-icon-close',
-  'el-icon-picture',
-  'el-icon-picture-outline',
-  'el-icon-picture-outline-round',
-  'el-icon-upload',
-  'el-icon-upload2',
-  'el-icon-download',
-  'el-icon-camera-solid',
-  'el-icon-camera',
-  'el-icon-video-camera-solid',
-  'el-icon-video-camera',
-  'el-icon-message-solid',
-  'el-icon-bell',
-  'el-icon-s-cooperation',
-  'el-icon-s-order',
-  'el-icon-s-platform',
-  'el-icon-s-fold',
-  'el-icon-s-unfold',
-  'el-icon-s-operation',
-  'el-icon-s-promotion',
-  'el-icon-s-home',
-  'el-icon-s-release',
-  'el-icon-s-ticket',
-  'el-icon-s-management',
-  'el-icon-s-open',
-  'el-icon-s-shop',
-  'el-icon-s-marketing',
-  'el-icon-s-flag',
-  'el-icon-s-comment',
-  'el-icon-s-finance',
-  'el-icon-s-claim',
-  'el-icon-s-custom',
-  'el-icon-s-opportunity',
-  'el-icon-s-data',
-  'el-icon-s-check',
-  'el-icon-s-grid',
-  'el-icon-menu',
-  'el-icon-share',
-  'el-icon-d-caret',
-  'el-icon-caret-left',
-  'el-icon-caret-right',
-  'el-icon-caret-bottom',
-  'el-icon-caret-top',
-  'el-icon-bottom-left',
-  'el-icon-bottom-right',
-  'el-icon-back',
-  'el-icon-right',
-  'el-icon-bottom',
-  'el-icon-top',
-  'el-icon-top-left',
-  'el-icon-top-right',
-  'el-icon-arrow-left',
-  'el-icon-arrow-right',
-  'el-icon-arrow-down',
-  'el-icon-arrow-up',
-  'el-icon-d-arrow-left',
-  'el-icon-d-arrow-right',
-  'el-icon-video-pause',
-  'el-icon-video-play',
-  'el-icon-refresh',
-  'el-icon-refresh-right',
-  'el-icon-refresh-left',
-  'el-icon-finished',
-  'el-icon-sort',
-  'el-icon-sort-up',
-  'el-icon-sort-down',
-  'el-icon-rank',
-  'el-icon-loading',
-  'el-icon-view',
-  'el-icon-c-scale-to-original',
-  'el-icon-date',
-  'el-icon-edit',
-  'el-icon-edit-outline',
-  'el-icon-folder',
-  'el-icon-folder-opened',
-  'el-icon-folder-add',
-  'el-icon-folder-remove',
-  'el-icon-folder-delete',
-  'el-icon-folder-checked',
-  'el-icon-tickets',
-  'el-icon-document-remove',
-  'el-icon-document-delete',
-  'el-icon-document-copy',
-  'el-icon-document-checked',
-  'el-icon-document',
-  'el-icon-document-add',
-  'el-icon-printer',
-  'el-icon-paperclip',
-  'el-icon-takeaway-box',
-  'el-icon-search',
-  'el-icon-monitor',
-  'el-icon-attract',
-  'el-icon-mobile',
-  'el-icon-scissors',
-  'el-icon-umbrella',
-  'el-icon-headset',
-  'el-icon-brush',
-  'el-icon-mouse',
-  'el-icon-coordinate',
-  'el-icon-magic-stick',
-  'el-icon-reading',
-  'el-icon-data-line',
-  'el-icon-data-board',
-  'el-icon-pie-chart',
-  'el-icon-data-analysis',
-  'el-icon-collection-tag',
-  'el-icon-film',
-  'el-icon-suitcase',
-  'el-icon-suitcase-1',
-  'el-icon-receiving',
-  'el-icon-collection',
-  'el-icon-files',
-  'el-icon-notebook-1',
-  'el-icon-notebook-2',
-  'el-icon-toilet-paper',
-  'el-icon-office-building',
-  'el-icon-school',
-  'el-icon-table-lamp',
-  'el-icon-house',
-  'el-icon-no-smoking',
-  'el-icon-smoking',
-  'el-icon-shopping-cart-full',
-  'el-icon-shopping-cart-1',
-  'el-icon-shopping-cart-2',
-  'el-icon-shopping-bag-1',
-  'el-icon-shopping-bag-2',
-  'el-icon-sold-out',
-  'el-icon-sell',
-  'el-icon-present',
-  'el-icon-box',
-  'el-icon-bank-card',
-  'el-icon-money',
-  'el-icon-coin',
-  'el-icon-wallet',
-  'el-icon-discount',
-  'el-icon-price-tag',
-  'el-icon-news',
-  'el-icon-guide',
-  'el-icon-male',
-  'el-icon-female',
-  'el-icon-thumb',
-  'el-icon-cpu',
-  'el-icon-link',
-  'el-icon-connection',
-  'el-icon-open',
-  'el-icon-turn-off',
-  'el-icon-set-up',
-  'el-icon-chat-round',
-  'el-icon-chat-line-round',
-  'el-icon-chat-square',
-  'el-icon-chat-dot-round',
-  'el-icon-chat-dot-square',
-  'el-icon-chat-line-square',
-  'el-icon-message',
-  'el-icon-postcard',
-  'el-icon-position',
-  'el-icon-turn-off-microphone',
-  'el-icon-microphone',
-  'el-icon-close-notification',
-  'el-icon-bangzhu',
-  'el-icon-time',
-  'el-icon-odometer',
-  'el-icon-crop',
-  'el-icon-aim',
-  'el-icon-switch-button',
-  'el-icon-full-screen',
-  'el-icon-copy-document',
-  'el-icon-mic',
-  'el-icon-stopwatch',
-  'el-icon-medal-1',
-  'el-icon-medal',
-  'el-icon-trophy',
-  'el-icon-trophy-1',
-  'el-icon-first-aid-kit',
-  'el-icon-discover',
-  'el-icon-place',
-  'el-icon-location',
-  'el-icon-location-outline',
-  'el-icon-location-information',
-  'el-icon-add-location',
-  'el-icon-delete-location',
-  'el-icon-map-location',
-  'el-icon-alarm-clock',
-  'el-icon-timer',
-  'el-icon-watch-1',
-  'el-icon-watch',
-  'el-icon-lock',
-  'el-icon-unlock',
-  'el-icon-key',
-  'el-icon-service',
-  'el-icon-mobile-phone',
-  'el-icon-bicycle',
-  'el-icon-truck',
-  'el-icon-ship',
-  'el-icon-basketball',
-  'el-icon-football',
-  'el-icon-soccer',
-  'el-icon-baseball',
-  'el-icon-wind-power',
-  'el-icon-light-rain',
-  'el-icon-lightning',
-  'el-icon-heavy-rain',
-  'el-icon-sunrise',
-  'el-icon-sunrise-1',
-  'el-icon-sunset',
-  'el-icon-sunny',
-  'el-icon-cloudy',
-  'el-icon-partly-cloudy',
-  'el-icon-cloudy-and-sunny',
-  'el-icon-moon',
-  'el-icon-moon-night',
-  'el-icon-dish',
-  'el-icon-dish-1',
-  'el-icon-food',
-  'el-icon-chicken',
-  'el-icon-fork-spoon',
-  'el-icon-knife-fork',
-  'el-icon-burger',
-  'el-icon-tableware',
-  'el-icon-sugar',
-  'el-icon-dessert',
-  'el-icon-ice-cream',
-  'el-icon-hot-water',
-  'el-icon-water-cup',
-  'el-icon-coffee-cup',
-  'el-icon-cold-drink',
-  'el-icon-goblet',
-  'el-icon-goblet-full',
-  'el-icon-goblet-square',
-  'el-icon-goblet-square-full',
-  'el-icon-refrigerator',
-  'el-icon-grape',
-  'el-icon-watermelon',
-  'el-icon-cherry',
-  'el-icon-apple',
-  'el-icon-pear',
-  'el-icon-orange',
-  'el-icon-coffee',
-  'el-icon-ice-tea',
-  'el-icon-ice-drink',
-  'el-icon-milk-tea',
-  'el-icon-potato-strips',
-  'el-icon-lollipop',
-  'el-icon-ice-cream-square',
-  'el-icon-ice-cream-round'
-]
-// 原来的
-const oldList = [
-  'el-icon-info',
-  'el-icon-error',
-  'el-icon-success',
-  'el-icon-warning',
-  'el-icon-question',
-  'el-icon-back',
-  'el-icon-arrow-left',
-  'el-icon-arrow-down',
-  'el-icon-arrow-right',
-  'el-icon-arrow-up',
-  'el-icon-caret-left',
-  'el-icon-caret-bottom',
-  'el-icon-caret-top',
-  'el-icon-caret-right',
-  'el-icon-d-arrow-left',
-  'el-icon-d-arrow-right',
-  'el-icon-minus',
-  'el-icon-plus',
-  'el-icon-remove',
-  'el-icon-circle-plus',
-  'el-icon-remove-outline',
-  'el-icon-circle-plus-outline',
-  'el-icon-close',
-  'el-icon-check',
-  'el-icon-circle-close',
-  'el-icon-circle-check',
-  // "el-icon-circle-close-outline",
-  // "el-icon-circle-check-outline",
-  'el-icon-zoom-out',
-  'el-icon-zoom-in',
-  'el-icon-d-caret',
-  'el-icon-sort',
-  'el-icon-sort-down',
-  'el-icon-sort-up',
-  'el-icon-tickets',
-  'el-icon-document',
-  'el-icon-goods',
-  'el-icon-sold-out',
-  'el-icon-news',
-  'el-icon-message',
-  'el-icon-date',
-  'el-icon-printer',
-  'el-icon-time',
-  'el-icon-bell',
-  'el-icon-mobile-phone',
-  'el-icon-service',
-  'el-icon-view',
-  'el-icon-menu',
-  'el-icon-more',
-  'el-icon-more-outline',
-  'el-icon-star-on',
-  'el-icon-star-off',
-  'el-icon-location',
-  'el-icon-location-outline',
-  'el-icon-phone',
-  'el-icon-phone-outline',
-  'el-icon-picture',
-  'el-icon-picture-outline',
-  'el-icon-delete',
-  'el-icon-search',
-  'el-icon-edit',
-  'el-icon-edit-outline',
-  'el-icon-rank',
-  'el-icon-refresh',
-  'el-icon-share',
-  'el-icon-setting',
-  'el-icon-upload',
-  'el-icon-upload2',
-  'el-icon-download',
-  'el-icon-loading'
-]
-
-export default Array.from(new Set(newList.concat(oldList)))

+ 0 - 2
src/components/globalComponents/icon-list/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 220
src/components/globalComponents/icon-list/main.vue

@@ -1,220 +0,0 @@
-<template>
-  <div class="g-box">
-    <!-- <h4 class="g-h4">iconfont</h4> -->
-    <div
-      v-for="(item, index) in iconList"
-      :key="index"
-      class="g-block"
-      @click="changeVal('iconfont ' + item)"
-    >
-      <i class="iconfont" :class="item" />
-      <!-- <span>{{ '&lt;i class="iconfont ' + item + '"&gt;&lt;/i&gt;' }}</span> -->
-    </div>
-    <!-- <h4 class="g-h4">el-iconfont</h4> -->
-    <div
-      v-for="(item, index) in elList"
-      :key="index + '-el'"
-      class="g-block"
-      @click="changeVal(item)"
-    >
-      <i :class="item" />
-      <!-- <span>{{ '&lt;i class="' + item + '"&gt;&lt;/i&gt;' }}</span> -->
-    </div>
-  </div>
-</template>
-
-<script>
-import elList from './elIcon'
-export default {
-  name: 'IconList',
-  // 将子父组件的v-model打通
-  model: {
-    prop: 'value', // 要存在于props
-    event: 'change' // 当组件的值发生改变时要emit的事件名
-  },
-  props: ['value', 'disabled'],
-  data() {
-    return {
-      newValue: '',
-      elList,
-      iconList: []
-    }
-  },
-  watch: {
-    // 监测父组件值的变化
-    value: function(newVal) {
-      this.newValue = newVal
-    }
-  },
-  mounted() {
-    this.initFun()
-  },
-  methods: {
-    // 这里检测data中的值,一旦发生变化就提交事件到父组件
-    changeVal(newVal) {
-      this.$emit('change', newVal)
-    },
-    initFun() {
-      this.iconList = [
-        // "icon-dianji",
-        // "icon-yincang",
-        // "icon-dianpu1",
-        // "icon-mail",
-        // "icon-weizhi",
-        // "icon-iconc6",
-        // "icon-shangchuan",
-        // "icon-shendurenzheng",
-        // "icon-xiajiantou",
-        // "icon-xiugaimima",
-        // "icon-tuichu",
-        // "icon-07",
-        // "icon-jia",
-        // "icon-jian",
-        // "icon-fanhui",
-        // "icon-dian",
-        // "icon-piaoquan",
-        // "icon-jiantou2",
-        // "icon-right-2",
-        // "icon-huodong",
-        // "icon-shoujiyanzheng",
-        // "icon-location",
-        // "icon-yincang1",
-        // "icon-huiyishiqueren_huabanfuben",
-        // "icon-qizi",
-        // "icon-zhanghaoguanli",
-        // "icon-guanbi",
-        // "icon-renwu-tuandui",
-        // "icon-dashuju",
-        // "icon-chanyefuhua",
-        // "icon-jingdongwanxiang",
-        // "icon-jingdongjinrong",
-        // "icon-yunziyuan",
-        // "icon-wutongkongjian",
-        // "icon-wuliu",
-        // "icon-shangjiaruzhu2",
-        // "icon-yunshichang",
-        // "icon-jingdongdaxue2",
-        // "icon-jingdongdaxue",
-        // "icon-pinpaituiguang",
-        // "icon-gongyingshang",
-        // "icon-gengduo",
-        // "icon-dingdan",
-        // "icon-qiyejinrongfuwu",
-        // "icon-shangjiaruzhu",
-        // "icon-mima",
-        // "icon-dianhua",
-        // "icon-jiantouxia",
-        // "icon-dianpu",
-        // "icon-jiantou",
-        // "icon-sousuo",
-        // "icon-tixing",
-        // "icon-wujiaoxing",
-        // "icon-xiangqing",
-        // "icon-tishi",
-        // "icon-danwei",
-        // "icon-yue",
-        // "icon-yonghu",
-        // "icon-xiugai",
-        // "icon-xintong",
-        // "icon-xiaojiao",
-        // "icon-cuowu",
-        // "icon-jishu",
-        // "icon-shouye",
-        // "icon-shouji",
-        // "icon-xiaojia",
-        // "icon-guidang",
-        // "icon-jiameng",
-        // "icon-renzheng1",
-        // "icon-xiangqing1",
-        // "icon-choose",
-        // "icon-pinpaituiguang1",
-        // "icon-jingzhuntong",
-        // "icon-huiyi",
-        // "icon-jingdongshangzhi",
-        // "icon-tongxunlu",
-        // "icon-mingjing",
-        // "icon-yunying",
-        // "icon-tubiao-",
-        // "icon-jiantou1",
-        // "icon-dingweiweizhi",
-        // "icon-cuohao",
-        // "icon-duihao",
-        // "icon-tixing1",
-        // "icon-yincang2",
-        // "icon-shuaxin",
-        // "icon-up",
-        // "icon-zhubanfang",
-        // "icon-shijian",
-        // "icon-renshu",
-        // "icon-tubiaozhizuo-",
-        // "icon-zhihuan",
-        // "icon-bofang",
-        // "icon-up-copy",
-        // "icon-kaifayingyong",
-        // "icon-rongmeitiyun",
-        // "icon-qiyeshangyun",
-        // "icon-chanyedashuju",
-        // "icon-xiangmukeshihuaguanligongju",
-        // "icon-chanpinshanghangquantonglu",
-        // "icon-ziyuan",
-        // "icon-meitibaodao",
-        // "icon-wangzhanjianshe",
-        // "icon-APP",
-        // "icon-bianji",
-        // "icon-cai",
-        // "icon-caozuoshouce",
-        // "icon-pingtaijianjie",
-        // "icon-goumaifuwu",
-        // "icon-yonghudenglu",
-        // "icon-lianxiwomen",
-        // "icon-qiyerenzheng",
-        // "icon-remen",
-        // "icon-tuijianfuwu",
-        // "icon-yonghuzhuce",
-        // "icon-huodong1",
-        // "icon-zan",
-        // "icon-ziyuanshenqing",
-        // "icon-webshouye",
-        // "icon-changjianwenti",
-        // "icon-shiyongshouce",
-        // "icon-erweima",
-        // "icon-kefu"
-      ]
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.g-box {
-  text-align: left;
-  .g-h4 {
-    text-align: center;
-    font-size: 50px;
-  }
-  .g-block {
-    display: inline-block;
-    // width: 355px;
-    // height: 80px;
-    padding: 10px 5px;
-    text-align: center;
-    border: 1px #ccc dashed;
-    margin: 1px;
-    font-size: 0px;
-    cursor: pointer;
-    i {
-      font-size: 30px;
-      line-height: 30px;
-      display: block;
-      margin: 0 auto;
-      width: 30px;
-    }
-    span {
-      display: list-item;
-      font-size: 12px;
-      text-align: center;
-      line-height: 0.2rem;
-    }
-  }
-}
-</style>

+ 0 - 0
src/components/globalComponents/icon-list/菜单图标选择


+ 0 - 24
src/components/globalComponents/index.js

@@ -1,24 +0,0 @@
-// 自动化检测文件,获取然后全局注册
-const routerContext = require.context('./', true, /\.vue$/)
-const globalComponents = []
-routerContext.keys().forEach(route => {
-  const routerModule = routerContext(route)
-  // 如果是 gRegion.vue 不处理,应用时有问题
-  if (route.startsWith('./gRegion')) {
-    return
-  }
-  /**
-   * 兼容 import export 和 require module.export 两种规范
-   * import export 有 default 用 routerModule.default
-   */
-  globalComponents.push(routerModule.default || routerModule)
-})
-
-export default {
-  install(Vue) {
-    // 全局注册组件
-    globalComponents.forEach(item => {
-      Vue.component(item.name, item)
-    })
-  }
-}

+ 0 - 2
src/components/globalComponents/main-menu/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 79
src/components/globalComponents/main-menu/main.vue

@@ -1,79 +0,0 @@
-<template>
-  <div class="mainMenu">
-    <router-link
-      :class="{ activeLink: active === index }"
-      :to="item.child"
-      v-for="(item, index) in mainList"
-      :key="'mainMenu' + index"
-      >{{ item.meta.title }}</router-link
-    >
-  </div>
-</template>
-
-<script>
-import { mapGetters } from "vuex";
-export default {
-  name: "mainMenu",
-  data() {
-    return {
-      active: -1,
-      list: [],
-    };
-  },
-
-  computed: {
-    //组件SIZE设置
-    ...mapGetters(["mainList"]),
-  },
-  watch: {
-    $route(route) {
-      if (route.path.startsWith("/redirect/")) {
-        return;
-      }
-      this.getBreadcrumb();
-    },
-  },
-  mounted() {
-    this.getBreadcrumb();
-  },
-  methods: {
-    getBreadcrumb() {
-      let matched = this.$route.matched.filter(
-        (item) => item.meta && item.meta.title
-      );
-
-      let levelList = matched.filter(
-        (item) => item.meta && item.meta.title && item.meta.breadcrumb !== false
-      );
-      if (levelList[0] && levelList[0].path) {
-        this.active = this.mainList.findIndex(
-          (v1) => v1.path === levelList[0].path
-        );
-      } else {
-        this.active = -1;
-      }
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.mainMenu {
-  width: calc(100% - 200px);
-  padding: 5px 0 0 20px;
-  display: inline-block;
-  a {
-    display: inline-block;
-    padding: 0 20px;
-    height: 40px;
-    font-size: 15px;
-    line-height: 40px;
-    color: #232323;
-    font-weight:normal;
-    &.activeLink {
-      color: #63cbe7;
-      font-weight: bold;
-    }
-  }
-}
-</style>

+ 0 - 2
src/components/globalComponents/no-auth/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 88
src/components/globalComponents/no-auth/main.vue

@@ -1,88 +0,0 @@
-<template>
-  <div class="noAuth">
-    <el-row>
-      <el-col :span="10">
-        <h1 class="text-jumbo text-ginormous">哎呀!</h1>
-        <h2 style="padding: 30px 0 20px 0;">你无权限访问该数据!</h2>
-        <h4 style="padding: 15px 0 20px 3px">请联系领导解决</h4>
-        <ul class="list-unstyled">
-          <li>或者你可以去:</li>
-          <li class="link-type">
-            <span @click="back(1)"> 回首页 </span>
-          </li>
-          <li class="link-type">
-            <span @click="back"> 返回上一页 </span>
-          </li>
-        </ul>
-      </el-col>
-      <el-col :span="14">
-        <img
-          :src="errGif"
-          width="313"
-          height="428"
-          alt="那个女孩把冰淇淋掉了!"
-        >
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'NoAuth',
-  data() {
-    return {
-      errGif: require('@/assets/401_images/401.gif') + '?' + +new Date()
-    }
-  },
-  methods: {
-    back(type) {
-      if (type) {
-        window.vm.$router.push({ path: '/welcome/dashboard' })
-      } else {
-        if (this.$route.query.noGoBack) {
-         window.vm.$router.push({ path: '/welcome/dashboard' })
-        } else {
-          window.vm.$router.go(-1)
-        }
-      }
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.noAuth {
-  width: 800px;
-  max-width: 100%;
-  margin: 100px auto;
-  text-align: left;
-  .pan-back-btn {
-    background: #008489;
-    color: #fff;
-    border: none !important;
-  }
-  .pan-gif {
-    margin: 0 auto;
-    display: block;
-  }
-  .pan-img {
-    display: block;
-    margin: 0 auto;
-    width: 100%;
-  }
-  .text-jumbo {
-    font-size: 60px;
-    font-weight: 700;
-    color: #484848;
-    padding-top:45px;
-  }
-  .list-unstyled {
-    padding:0 0 0 4px;
-    font-size: 14px;
-    li {
-      line-height: 30px;
-    }
-  }
-}
-</style>

+ 0 - 0
src/components/globalComponents/no-auth/暂无权限


+ 0 - 2
src/components/globalComponents/number-range/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 110
src/components/globalComponents/number-range/main.vue

@@ -1,110 +0,0 @@
-<template>
-  <div class="fl ageInput">
-    <el-input
-      type="number"
-      :size="size || 'medium'"
-      :style="{ width: width || '170px' }"
-      v-model="lower"
-      @change="numChange()"
-      @input="accountInput($event, 1)"
-      :placeholder="title + '下限'"
-    /><samp style="padding: 0 3px; margin: 0">至</samp>
-    <el-input
-      type="number"
-      :size="size || 'medium'"
-      @input="accountInput($event, 2)"
-      :style="{ width: width || '170px' }"
-      v-model="online"
-      :placeholder="title + '上限'"
-      @change="numChange()"
-    />
-  </div>
-</template>
-
-<script>
-// 选择时间段(只有日期)组件
-// timeReturned 返回值{startTime: Number,endTime: Number}
-export default {
-  name: "numberRange",
-  props: ["title", "lower", "online", "disabled", "size", "width"],
-  // props: {
-  //   title: {
-  //     type: String,
-  //     default: "",
-  //   },
-  //   lower: {
-  //     type: String,
-  //     default: "",
-  //   },
-  //   online: {
-  //     type: String,
-  //     default: "",
-  //   },
-  //   disabled: {
-  //     type: Boolean,
-  //     default: false,
-  //   },
-  //   size: {
-  //     type: String,
-  //     default: "mini",
-  //   },
-  //   width: {
-  //     type: String,
-  //     default: "170px",
-  //   },
-  // },
-  data() {
-    return {};
-  },
-  mounted() {},
-  methods: {
-    accountInput(val, type) {
-      //账号的实时输入
-      //console.log(val);
-      let codeReg = new RegExp("[0-9]+"), //正则 英文+数字;
-        len = val.length,
-        str = "";
-      for (var i = 0; i < len; i++) {
-        if (codeReg.test(val[i])) {
-          str += val[i];
-        }
-      }
-      if (type === 1) {
-        this.lower = str;
-      } else {
-        this.online = str;
-      }
-    },
-    numChange() {
-      if (
-        this.lower !== "" &&
-        this.lower !== null &&
-        this.online !== "" &&
-        this.online !== null
-      ) {
-        if (parseInt(this.online) - parseInt(this.lower) <= 0) {
-          this.$message.error(`${this.title}上限应大于${this.title}下限!`);
-          this.lower = "";
-          this.online = "";
-          this.numReturned();
-        } else {
-          this.numReturned();
-        }
-      } else {
-        this.numReturned();
-      }
-    },
-    numReturned() {
-      this.$emit("numReturned", {
-        lower: this.lower == null ? "" : this.lower,
-        online: this.online == null ? "" : this.online,
-      });
-    },
-  },
-};
-</script>
-<style lang="scss">
-.ageInput.el-input {
-  // width: 150px !important;
-}
-</style>

+ 0 - 0
src/components/globalComponents/number-range/数字区间框


+ 0 - 2
src/components/globalComponents/organize-tree/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 182
src/components/globalComponents/organize-tree/main.vue

@@ -1,182 +0,0 @@
-<template>
-  <div class="organize-tree">
-    <div v-if="list && list.length > 0">
-      <div
-        v-for="item in list"
-        :key="item.updatetime"
-        class="organize-tree-node"
-        @click="openChildren($event, item)"
-      >
-        <div class="organize-box">
-          <span class="label">
-            {{ item.name }}
-          </span>
-          <i class="el-icon-arrow-right"></i>
-          <span class="btn-list" @click="(e) => e.stopPropagation()">
-            <el-button
-              v-if="powers.some((item) => item == '005')"
-              type="warning"
-              size="mini"
-              @click="
-                addEdit(
-                  $event,
-                  item.id,
-                  level === 3 ? item.menuid : item.pid,
-                  level,
-                  false,
-                  false,
-                  item
-                )
-              "
-            >
-              修改
-            </el-button>
-
-            <el-button
-              v-if="powers.some((item) => item == '004')"
-              :type="item.status === '1' ? 'primary' : 'info'"
-              size="mini"
-              @click="
-                status(
-                  $event,
-                  item.id,
-                  level === 3 ? item.menuid : item.pid,
-                  level,
-                  item.status
-                )
-              "
-            >
-              {{ item.status === "1" ? "禁用" : "启用" }}
-            </el-button>
-
-            <el-button
-              v-if="powers.some((item) => item == '006')"
-              type="danger"
-              size="mini"
-              @click="
-                del(
-                  $event,
-                  item.id,
-                  level === 3 ? item.menuid : item.pid,
-                  level,
-                  item.status
-                )
-              "
-            >
-              删除
-            </el-button>
-          </span>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-<script>
-export default {
-  name: "organizeTree",
-  props: ["list", "level"],
-  computed: {
-    powers() {
-      let tran =
-        this.$store.getters.btnList.find(
-          (item) => item.menu_route == "organize"
-        ) || {};
-      if (tran && tran.action && tran.action.length > 0) {
-        return tran.action;
-      } else {
-        return [];
-      }
-    },
-  },
-  data() {
-    return {
-      newlist: "",
-      index: 0, // icon 箭头
-    };
-  },
-  methods: {
-    addEdit(e, id, pid, level, isDetail, isAdd, formData) {
-      e.stopPropagation();
-      this.$emit("addEdit", id, pid, level, isDetail, isAdd, formData);
-    },
-    openChildren(e, item) {
-      e.stopPropagation();
-      this.$emit("openChildren", item);
-    },
-    status(e, id, pid, level, status) {
-      e.stopPropagation();
-      this.$emit("status", id, pid, level, status);
-    },
-    del(e, id, pid, level, status) {
-      e.stopPropagation();
-      this.$emit("del", id, pid, level, status);
-    },
-  },
-};
-</script>
-<style lang="scss" >
-.organize-tree {
-  margin-left: 18px;
-  cursor: pointer;
-  .el-button--mini {
-    padding: 6px 10px;
-    margin-top: 5px;
-  }
-  .organize-tree-node:nth-of-type(odd) {
-    background: rgba(75, 157, 177, 0.1);
-  }
-  .organize-tree-node:nth-of-type(even) {
-    background: rgba(249, 168, 110, 0.1);
-  }
-  .organize-tree-node {
-    display: block;
-    margin: 5px 0 5px 5px;
-    padding: 0 7px 2px 10px;
-    line-height: 35px;
-
-    .btn-list {
-      display: block;
-      float: right;
-    }
-    i.el-icon-arrow-right {
-      font-size: 16px;
-      width: 22px;
-      height: 35px;
-      line-height: 38px;
-      vertical-align: top;
-      margin: auto;
-    }
-    .label {
-      font-size: 16px;
-    }
-
-    .staff {
-      // padding:0 0 0 5px;
-      // background: #eee;
-      .user-box {
-        display: inline-block;
-        vertical-align: top;
-        width: 25px;
-        height: 25px;
-        line-height: 25px;
-        font-size: 15px;
-        text-align: center;
-        border-radius: 50%;
-        overflow: hidden;
-        background: #63cbe7;
-        color: #fff;
-        margin: 6px 5px 0 3px;
-        small {
-          font-size: 8px;
-        }
-      }
-      .staff-name {
-        display: inline-block;
-        height: 38px;
-        line-height: 38px;
-        vertical-align: top;
-      }
-    }
-  }
-}
-</style>

+ 0 - 0
src/components/globalComponents/organize-tree/组织部门-item


+ 0 - 2
src/components/globalComponents/pan-thumb/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

+ 0 - 146
src/components/globalComponents/pan-thumb/main.vue

@@ -1,146 +0,0 @@
-<template>
-  <div
-    :style="{ zIndex: zIndex, height: height, width: width }"
-    class="pan-item"
-  >
-    <div class="pan-info">
-      <div class="pan-info-roles-container">
-        <slot />
-      </div>
-    </div>
-    <!-- eslint-disable-next-line -->
-    <div :style="{ backgroundImage: `url(${image})` }" class="pan-thumb"></div>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'PanThumb',
-  props: {
-    image: {
-      type: String,
-      required: true
-    },
-    zIndex: {
-      type: Number,
-      default: 1
-    },
-    width: {
-      type: String,
-      default: '150px'
-    },
-    height: {
-      type: String,
-      default: '150px'
-    }
-  }
-}
-</script>
-
-<style scoped>
-.pan-item {
-  width: 200px;
-  height: 200px;
-  border-radius: 50%;
-  display: inline-block;
-  position: relative;
-  cursor: default;
-  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
-}
-
-.pan-info-roles-container {
-  padding: 20px;
-  text-align: center;
-}
-
-.pan-thumb {
-  width: 100%;
-  height: 100%;
-  background-position: center center;
-  background-size: cover;
-  border-radius: 50%;
-  overflow: hidden;
-  position: absolute;
-  transform-origin: 95% 40%;
-  transition: all 0.3s ease-in-out;
-}
-
-/* .pan-thumb:after {
-  content: '';
-  width: 8px;
-  height: 8px;
-  position: absolute;
-  border-radius: 50%;
-  top: 40%;
-  left: 95%;
-  margin: -4px 0 0 -4px;
-  background: radial-gradient(ellipse at center, rgba(14, 14, 14, 1) 0%, rgba(125, 126, 125, 1) 100%);
-  box-shadow: 0 0 1px rgba(255, 255, 255, 0.9);
-} */
-
-.pan-info {
-  position: absolute;
-  width: inherit;
-  height: inherit;
-  border-radius: 50%;
-  overflow: hidden;
-  box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.05);
-}
-
-.pan-info h3 {
-  color: #fff;
-  text-transform: uppercase;
-  position: relative;
-  letter-spacing: 2px;
-  font-size: 18px;
-  margin: 0 60px;
-  padding: 22px 0 0 0;
-  height: 85px;
-  font-family: "Open Sans", Arial, sans-serif;
-  text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
-}
-
-.pan-info p {
-  color: #fff;
-  padding: 10px 5px;
-  font-style: italic;
-  margin: 0 30px;
-  font-size: 12px;
-  border-top: 1px solid rgba(255, 255, 255, 0.5);
-}
-
-.pan-info p a {
-  display: block;
-  color: #333;
-  width: 80px;
-  height: 80px;
-  background: rgba(255, 255, 255, 0.3);
-  border-radius: 50%;
-  color: #fff;
-  font-style: normal;
-  font-weight: 700;
-  text-transform: uppercase;
-  font-size: 9px;
-  letter-spacing: 1px;
-  padding-top: 24px;
-  margin: 7px auto 0;
-  font-family: "Open Sans", Arial, sans-serif;
-  opacity: 0;
-  transition: transform 0.3s ease-in-out 0.2s, opacity 0.3s ease-in-out 0.2s,
-    background 0.2s linear 0s;
-  transform: translateX(60px) rotate(90deg);
-}
-
-.pan-info p a:hover {
-  background: rgba(255, 255, 255, 0.5);
-}
-
-.pan-item:hover .pan-thumb {
-  transform: rotate(-110deg);
-}
-
-.pan-item:hover .pan-info p a {
-  opacity: 1;
-  transform: translateX(0px) rotate(0deg);
-}
-</style>

+ 0 - 2
src/components/globalComponents/period-date-picker/index.js

@@ -1,2 +0,0 @@
-import Main from './main.vue'
-export default Main

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.