فهرست منبع

增加用户登录

Rorschach 6 سال پیش
والد
کامیت
8c8033bcf2
100فایلهای تغییر یافته به همراه15072 افزوده شده و 0 حذف شده
  1. 30 0
      .history/src/api/costTeamApi_20190318173111.js
  2. 33 0
      .history/src/api/costTeamApi_20190321150058.js
  3. 30 0
      .history/src/api/costTypeApi_20190314094846.js
  4. 33 0
      .history/src/api/costTypeApi_20190321145827.js
  5. 77 0
      .history/src/api/manageApi_20190318173111.js
  6. 78 0
      .history/src/api/manageApi_20190321114634.js
  7. 79 0
      .history/src/api/manageApi_20190321114901.js
  8. 79 0
      .history/src/api/manageApi_20190321114915.js
  9. 79 0
      .history/src/api/manageApi_20190321114952.js
  10. 79 0
      .history/src/api/manageApi_20190321115014.js
  11. 80 0
      .history/src/api/manageApi_20190321115448.js
  12. 81 0
      .history/src/api/manageApi_20190321140611.js
  13. 86 0
      .history/src/api/manageApi_20190321140819.js
  14. 30 0
      .history/src/api/productApi_20190314094846.js
  15. 34 0
      .history/src/api/productApi_20190321143805.js
  16. 30 0
      .history/src/api/projectApi_20190314094846.js
  17. 34 0
      .history/src/api/projectApi_20190321144113.js
  18. 39 0
      .history/src/api/teamApi_20190318173111.js
  19. 39 0
      .history/src/api/teamApi_20190321114411.js
  20. 39 0
      .history/src/api/teamApi_20190321114534.js
  21. 44 0
      .history/src/api/teamApi_20190321144113.js
  22. 44 0
      .history/src/api/teamApi_20190321150453.js
  23. 44 0
      .history/src/api/teamApi_20190321150507.js
  24. 44 0
      .history/src/api/teamApi_20190321150607.js
  25. 44 0
      .history/src/api/teamApi_20190321150703.js
  26. 184 0
      .history/src/pages/costTeam/index_20190318173111.vue
  27. 184 0
      .history/src/pages/costTeam/index_20190321144258.vue
  28. 183 0
      .history/src/pages/costType/index_20190318173111.vue
  29. 185 0
      .history/src/pages/costType/index_20190321111340.vue
  30. 185 0
      .history/src/pages/costType/index_20190321155911.vue
  31. 99 0
      .history/src/pages/layout/nav/Nav_20190320113408.vue
  32. 99 0
      .history/src/pages/layout/nav/Nav_20190320171958.vue
  33. 99 0
      .history/src/pages/layout/nav/Nav_20190321104058.vue
  34. 100 0
      .history/src/pages/layout/nav/Nav_20190321162812.vue
  35. 103 0
      .history/src/pages/layout/nav/Nav_20190321163021.vue
  36. 105 0
      .history/src/pages/layout/nav/Nav_20190321163112.vue
  37. 105 0
      .history/src/pages/layout/nav/Nav_20190321163623.vue
  38. 93 0
      .history/src/pages/login/index_20190320161059.vue
  39. 93 0
      .history/src/pages/login/index_20190320163704.vue
  40. 93 0
      .history/src/pages/login/index_20190320163722.vue
  41. 93 0
      .history/src/pages/login/index_20190320164037.vue
  42. 93 0
      .history/src/pages/login/index_20190320164334.vue
  43. 91 0
      .history/src/pages/login/index_20190320164347.vue
  44. 91 0
      .history/src/pages/login/index_20190320164412.vue
  45. 91 0
      .history/src/pages/login/index_20190320164508.vue
  46. 91 0
      .history/src/pages/login/index_20190320164527.vue
  47. 91 0
      .history/src/pages/login/index_20190320164641.vue
  48. 90 0
      .history/src/pages/login/index_20190320164644.vue
  49. 91 0
      .history/src/pages/login/index_20190320164710.vue
  50. 91 0
      .history/src/pages/login/index_20190320164722.vue
  51. 91 0
      .history/src/pages/login/index_20190320164733.vue
  52. 91 0
      .history/src/pages/login/index_20190320164943.vue
  53. 91 0
      .history/src/pages/login/index_20190320165109.vue
  54. 91 0
      .history/src/pages/login/index_20190320165131.vue
  55. 91 0
      .history/src/pages/login/index_20190320165402.vue
  56. 92 0
      .history/src/pages/login/index_20190320165609.vue
  57. 92 0
      .history/src/pages/login/index_20190320165651.vue
  58. 92 0
      .history/src/pages/login/index_20190320165749.vue
  59. 92 0
      .history/src/pages/login/index_20190320165838.vue
  60. 92 0
      .history/src/pages/login/index_20190320165906.vue
  61. 92 0
      .history/src/pages/login/index_20190320165937.vue
  62. 92 0
      .history/src/pages/login/index_20190320170429.vue
  63. 92 0
      .history/src/pages/login/index_20190320170450.vue
  64. 92 0
      .history/src/pages/login/index_20190320171134.vue
  65. 92 0
      .history/src/pages/login/index_20190320171610.vue
  66. 94 0
      .history/src/pages/login/index_20190320171829.vue
  67. 102 0
      .history/src/pages/login/index_20190320172537.vue
  68. 102 0
      .history/src/pages/login/index_20190320172915.vue
  69. 100 0
      .history/src/pages/login/index_20190320172957.vue
  70. 102 0
      .history/src/pages/login/index_20190320173113.vue
  71. 102 0
      .history/src/pages/login/index_20190320182208.vue
  72. 103 0
      .history/src/pages/login/index_20190321162627.vue
  73. 103 0
      .history/src/pages/login/index_20190321163212.vue
  74. 103 0
      .history/src/pages/login/index_20190321163254.vue
  75. 349 0
      .history/src/pages/manage/cost_20190320101455.vue
  76. 349 0
      .history/src/pages/manage/cost_20190321141143.vue
  77. 349 0
      .history/src/pages/manage/cost_20190321152759.vue
  78. 355 0
      .history/src/pages/manage/cost_20190321164633.vue
  79. 364 0
      .history/src/pages/manage/index_20190320101455.vue
  80. 365 0
      .history/src/pages/manage/index_20190320103057.vue
  81. 364 0
      .history/src/pages/manage/index_20190320103231.vue
  82. 364 0
      .history/src/pages/manage/index_20190321115216.vue
  83. 365 0
      .history/src/pages/manage/index_20190321115227.vue
  84. 365 0
      .history/src/pages/manage/index_20190321115251.vue
  85. 365 0
      .history/src/pages/manage/index_20190321115324.vue
  86. 363 0
      .history/src/pages/manage/index_20190321115341.vue
  87. 363 0
      .history/src/pages/manage/index_20190321115448.vue
  88. 363 0
      .history/src/pages/manage/index_20190321140921.vue
  89. 363 0
      .history/src/pages/manage/index_20190321145037.vue
  90. 364 0
      .history/src/pages/manage/index_20190321145058.vue
  91. 364 0
      .history/src/pages/manage/index_20190321145304.vue
  92. 363 0
      .history/src/pages/manage/index_20190321145323.vue
  93. 364 0
      .history/src/pages/manage/index_20190321163918.vue
  94. 369 0
      .history/src/pages/manage/index_20190321164411.vue
  95. 369 0
      .history/src/pages/manage/index_20190321164441.vue
  96. 369 0
      .history/src/pages/manage/index_20190321164538.vue
  97. 229 0
      .history/src/pages/manage/query_20190320103231.vue
  98. 228 0
      .history/src/pages/manage/query_20190320103236.vue
  99. 229 0
      .history/src/pages/manage/query_20190320103403.vue
  100. 0 0
      .history/src/pages/manage/query_20190320103443.vue

+ 30 - 0
.history/src/api/costTeamApi_20190318173111.js

@@ -0,0 +1,30 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+
+//获取收入支出类型信息
+export function getCostTeamList () {
+  return request({
+    url: baseApi + 'manageBase/company',
+    method: 'get',
+    // params: {
+    //   status: 'NORMAL'
+    // }
+  })
+}
+
+//新增收入支出类型
+export function addCostTeam (data) {
+  return request({
+    url: baseApi + 'manageBase/company',
+    method: 'post',
+    data,
+  })
+}
+//修改收入支出类型
+export function setCostTeam (data) {
+  return request({
+    url: baseApi + 'manageBase/company',
+    method: 'put',
+    data,
+  })
+}

+ 33 - 0
.history/src/api/costTeamApi_20190321150058.js

@@ -0,0 +1,33 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+import {fetch,post,put} from 'utils/http';
+//获取收入支出类型信息
+export function getCostTeamList () {
+  return fetch('manageBase/company')
+  // return request({
+  //   url: baseApi + 'manageBase/company',
+  //   method: 'get',
+  //   // params: {
+  //   //   status: 'NORMAL'
+  //   // }
+  // })
+}
+
+//新增收入支出类型
+export function addCostTeam (data) {
+  return post('manageBase/company',data)
+  // return request({
+  //   url: baseApi + 'manageBase/company',
+  //   method: 'post',
+  //   data,
+  // })
+}
+//修改收入支出类型
+export function setCostTeam (data) {
+  return put('manageBase/company',data)
+  // return request({
+  //   url: baseApi + 'manageBase/company',
+  //   method: 'put',
+  //   data,
+  // })
+}

+ 30 - 0
.history/src/api/costTypeApi_20190314094846.js

@@ -0,0 +1,30 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+
+//获取收入支出部门信息
+export function getCostTypeList () {
+  return request({
+    url: baseApi + 'manageBase/costType',
+    method: 'get',
+    // params: {
+    //   status: 'NORMAL'
+    // }
+  })
+}
+
+//新增收入支出部门
+export function addCostType (data) {
+  return request({
+    url: baseApi + 'manageBase/costType',
+    method: 'post',
+    data,
+  })
+}
+//修改收入支出部门
+export function setCostType (data) {
+  return request({
+    url: baseApi + 'manageBase/costType',
+    method: 'put',
+    data,
+  })
+}

+ 33 - 0
.history/src/api/costTypeApi_20190321145827.js

@@ -0,0 +1,33 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+import {fetch,post,put} from 'utils/http';
+//获取收入支出部门信息
+export function getCostTypeList () {
+  return fetch('manageBase/costType')
+  return request({
+    url: baseApi + 'manageBase/costType',
+    method: 'get',
+    // params: {
+    //   status: 'NORMAL'
+    // }
+  })
+}
+
+//新增收入支出部门
+export function addCostType (data) {
+  return post('manageBase/costType',data)
+  // return request({
+  //   url: baseApi + 'manageBase/costType',
+  //   method: 'post',
+  //   data,
+  // })
+}
+//修改收入支出部门
+export function setCostType (data) {
+  return put('manageBase/costType',data)
+  // return request({
+  //   url: baseApi + 'manageBase/costType',
+  //   method: 'put',
+  //   data,
+  // })
+}

+ 77 - 0
.history/src/api/manageApi_20190318173111.js

@@ -0,0 +1,77 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+
+//获取部门下拉
+export function getTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/dept/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取项目下拉
+export function getProjectSelect () {
+  return request({
+    url: baseApi + 'manageBase/project/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取产品下拉
+export function getProductSelect () {
+  return request({
+    url: baseApi + 'manageBase/product/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本单位下拉
+export function getCostTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/company/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本类型下拉
+export function getCostTypeSelect () {
+  return request({
+    url: baseApi + 'manageBase/costType/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//查询经营列表
+export function getManageList (params) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'get',
+    params,
+  })
+}
+//增加经营数据
+export function addManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'post',
+    data
+  })
+}
+// 更新经营数据
+export function setManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'put',
+    data
+  })
+}

+ 78 - 0
.history/src/api/manageApi_20190321114634.js

@@ -0,0 +1,78 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+
+//获取部门下拉
+export function getTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/dept/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取项目下拉
+export function getProjectSelect () {
+  return request({
+    url: baseApi + 'manageBase/project/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取产品下拉
+export function getProductSelect () {
+  return request({
+    url: baseApi + 'manageBase/product/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本单位下拉
+export function getCostTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/company/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本类型下拉
+export function getCostTypeSelect () {
+  return request({
+    url: baseApi + 'manageBase/costType/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//查询经营列表
+export function getManageList (params) {
+  return this.$fetch('manageBase/manage')
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'get',
+  //   params,
+  // })
+}
+//增加经营数据
+export function addManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'post',
+    data
+  })
+}
+// 更新经营数据
+export function setManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'put',
+    data
+  })
+}

+ 79 - 0
.history/src/api/manageApi_20190321114901.js

@@ -0,0 +1,79 @@
+import request from 'utils/request';
+import {$fetch,$post} from 'Vue';
+import { baseApi } from 'utils/config' 
+
+//获取部门下拉
+export function getTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/dept/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取项目下拉
+export function getProjectSelect () {
+  return request({
+    url: baseApi + 'manageBase/project/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取产品下拉
+export function getProductSelect () {
+  return request({
+    url: baseApi + 'manageBase/product/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本单位下拉
+export function getCostTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/company/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本类型下拉
+export function getCostTypeSelect () {
+  return request({
+    url: baseApi + 'manageBase/costType/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//查询经营列表
+export function getManageList (params) {
+  return this.$fetch('manageBase/manage')
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'get',
+  //   params,
+  // })
+}
+//增加经营数据
+export function addManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'post',
+    data
+  })
+}
+// 更新经营数据
+export function setManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'put',
+    data
+  })
+}

+ 79 - 0
.history/src/api/manageApi_20190321114915.js

@@ -0,0 +1,79 @@
+import request from 'utils/request';
+import {$fetch,$post} from 'Vue';
+import { baseApi } from 'utils/config' 
+
+//获取部门下拉
+export function getTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/dept/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取项目下拉
+export function getProjectSelect () {
+  return request({
+    url: baseApi + 'manageBase/project/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取产品下拉
+export function getProductSelect () {
+  return request({
+    url: baseApi + 'manageBase/product/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本单位下拉
+export function getCostTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/company/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本类型下拉
+export function getCostTypeSelect () {
+  return request({
+    url: baseApi + 'manageBase/costType/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//查询经营列表
+export function getManageList (params) {
+  return $fetch('manageBase/manage')
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'get',
+  //   params,
+  // })
+}
+//增加经营数据
+export function addManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'post',
+    data
+  })
+}
+// 更新经营数据
+export function setManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'put',
+    data
+  })
+}

+ 79 - 0
.history/src/api/manageApi_20190321114952.js

@@ -0,0 +1,79 @@
+import request from 'utils/request';
+import {fetch,post} from 'utils/http';
+import { baseApi } from 'utils/config' 
+
+//获取部门下拉
+export function getTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/dept/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取项目下拉
+export function getProjectSelect () {
+  return request({
+    url: baseApi + 'manageBase/project/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取产品下拉
+export function getProductSelect () {
+  return request({
+    url: baseApi + 'manageBase/product/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本单位下拉
+export function getCostTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/company/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本类型下拉
+export function getCostTypeSelect () {
+  return request({
+    url: baseApi + 'manageBase/costType/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//查询经营列表
+export function getManageList (params) {
+  return fetch('manageBase/manage')
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'get',
+  //   params,
+  // })
+}
+//增加经营数据
+export function addManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'post',
+    data
+  })
+}
+// 更新经营数据
+export function setManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'put',
+    data
+  })
+}

+ 79 - 0
.history/src/api/manageApi_20190321115014.js

@@ -0,0 +1,79 @@
+import request from 'utils/request';
+import {fetch,post} from 'utils/http';
+import { baseApi } from 'utils/config' 
+
+//获取部门下拉
+export function getTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/dept/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取项目下拉
+export function getProjectSelect () {
+  return request({
+    url: baseApi + 'manageBase/project/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取产品下拉
+export function getProductSelect () {
+  return request({
+    url: baseApi + 'manageBase/product/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本单位下拉
+export function getCostTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/company/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本类型下拉
+export function getCostTypeSelect () {
+  return request({
+    url: baseApi + 'manageBase/costType/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//查询经营列表
+export function getManageList (params) {
+  return fetch('manageBase/manage', params)
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'get',
+  //   params,
+  // })
+}
+//增加经营数据
+export function addManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'post',
+    data
+  })
+}
+// 更新经营数据
+export function setManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'put',
+    data
+  })
+}

+ 80 - 0
.history/src/api/manageApi_20190321115448.js

@@ -0,0 +1,80 @@
+import request from 'utils/request';
+import {fetch,post} from 'utils/http';
+import { baseApi } from 'utils/config' 
+
+//获取部门下拉
+export function getTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/dept/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取项目下拉
+export function getProjectSelect () {
+  return request({
+    url: baseApi + 'manageBase/project/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取产品下拉
+export function getProductSelect () {
+  return request({
+    url: baseApi + 'manageBase/product/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本单位下拉
+export function getCostTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/company/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本类型下拉
+export function getCostTypeSelect () {
+  return request({
+    url: baseApi + 'manageBase/costType/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//查询经营列表
+export function getManageList (params) {
+  return fetch('manageBase/manage', params)
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'get',
+  //   params,
+  // })
+}
+//增加经营数据
+export function addManage (data) {
+  return post('manageBase/manage',data)
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'post',
+  //   data
+  // })
+}
+// 更新经营数据
+export function setManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'put',
+    data
+  })
+}

+ 81 - 0
.history/src/api/manageApi_20190321140611.js

@@ -0,0 +1,81 @@
+import request from 'utils/request';
+import {fetch,post} from 'utils/http';
+import { baseApi } from 'utils/config' 
+
+//获取部门下拉
+export function getTeamSelect () {
+  return fetch('manageBase/dept/select',{deptId: 0})
+  // return request({
+  //   url: baseApi + 'manageBase/dept/select',
+  //   method: 'get',
+  //   params: {
+  //     deptId: 0
+  //   }
+  // })
+}
+//获取项目下拉
+export function getProjectSelect () {
+  return request({
+    url: baseApi + 'manageBase/project/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取产品下拉
+export function getProductSelect () {
+  return request({
+    url: baseApi + 'manageBase/product/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本单位下拉
+export function getCostTeamSelect () {
+  return request({
+    url: baseApi + 'manageBase/company/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//获取成本类型下拉
+export function getCostTypeSelect () {
+  return request({
+    url: baseApi + 'manageBase/costType/select',
+    method: 'get',
+    params: {
+      deptId: 0
+    }
+  })
+}
+//查询经营列表
+export function getManageList (params) {
+  return fetch('manageBase/manage', params)
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'get',
+  //   params,
+  // })
+}
+//增加经营数据
+export function addManage (data) {
+  return post('manageBase/manage',data)
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'post',
+  //   data
+  // })
+}
+// 更新经营数据
+export function setManage (data) {
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'put',
+    data
+  })
+}

+ 86 - 0
.history/src/api/manageApi_20190321140819.js

@@ -0,0 +1,86 @@
+import request from 'utils/request';
+import {fetch,post,put} from 'utils/http';
+import { baseApi } from 'utils/config' 
+
+//获取部门下拉
+export function getTeamSelect () {
+  return fetch('manageBase/dept/select',{deptId: 0})
+  // return request({
+  //   url: baseApi + 'manageBase/dept/select',
+  //   method: 'get',
+  //   params: {
+  //     deptId: 0
+  //   }
+  // })
+}
+//获取项目下拉
+export function getProjectSelect () {
+  return fetch('manageBase/project/select',{deptId: 0})
+  // return request({
+  //   url: baseApi + 'manageBase/project/select',
+  //   method: 'get',
+  //   params: {
+  //     deptId: 0
+  //   }
+  // })
+}
+//获取产品下拉
+export function getProductSelect () {
+  return fetch('manageBase/product/select',{deptId: 0})
+  // return request({
+  //   url: baseApi + 'manageBase/product/select',
+  //   method: 'get',
+  //   params: {
+  //     deptId: 0
+  //   }
+  // })
+}
+//获取成本单位下拉
+export function getCostTeamSelect () {
+  return fetch('manageBase/company/select',{deptId: 0})
+  // return request({
+  //   url: baseApi + 'manageBase/company/select',
+  //   method: 'get',
+  //   params: {
+  //     deptId: 0
+  //   }
+  // })
+}
+//获取成本类型下拉
+export function getCostTypeSelect () {
+  return fetch('manageBase/costType/select',{deptId: 0})
+  // return request({
+  //   url: baseApi + 'manageBase/costType/select',
+  //   method: 'get',
+  //   params: {
+  //     deptId: 0
+  //   }
+  // })
+}
+//查询经营列表
+export function getManageList (params) {
+  return fetch('manageBase/manage', params)
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'get',
+  //   params,
+  // })
+}
+//增加经营数据
+export function addManage (data) {
+  return post('manageBase/manage',data)
+  // return request({
+  //   url: baseApi + 'manageBase/manage',
+  //   method: 'post',
+  //   data
+  // })
+}
+// 更新经营数据
+export function setManage (data) {
+  return put('manageBase/manage',data)
+  return request({
+    url: baseApi + 'manageBase/manage',
+    method: 'put',
+    data
+  })
+}

+ 30 - 0
.history/src/api/productApi_20190314094846.js

@@ -0,0 +1,30 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+
+//获取产品信息
+export function getProductList () {
+  return request({
+    url: baseApi + 'manageBase/product',
+    method: 'get',
+    // params: {
+    //   status: 'NORMAL'
+    // }
+  })
+}
+
+//新增产品
+export function addProduct (data) {
+  return request({
+    url: baseApi + 'manageBase/product',
+    method: 'post',
+    data,
+  })
+}
+//修改产品
+export function setProduct (data) {
+  return request({
+    url: baseApi + 'manageBase/product',
+    method: 'put',
+    data,
+  })
+}

+ 34 - 0
.history/src/api/productApi_20190321143805.js

@@ -0,0 +1,34 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+import {fetch,post,put} from 'utils/http';
+
+//获取产品信息
+export function getProductList () {
+  return fetch('manageBase/product')
+  // return request({
+  //   url: baseApi + 'manageBase/product',
+  //   method: 'get',
+  //   // params: {
+  //   //   status: 'NORMAL'
+  //   // }
+  // })
+}
+
+//新增产品
+export function addProduct (data) {
+  return post('manageBase/product',data)
+  // return request({
+  //   url: baseApi + 'manageBase/product',
+  //   method: 'post',
+  //   data,
+  // })
+}
+//修改产品
+export function setProduct (data) {
+  return put('manageBase/product',data)
+  // return request({
+  //   url: baseApi + 'manageBase/product',
+  //   method: 'put',
+  //   data,
+  // })
+}

+ 30 - 0
.history/src/api/projectApi_20190314094846.js

@@ -0,0 +1,30 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+
+//获取项目信息
+export function getProjectList () {
+  return request({
+    url: baseApi + 'manageBase/project',
+    method: 'get',
+    // params: {
+    //   status: 'NORMAL'
+    // }
+  })
+}
+
+//新增项目
+export function addProject (data) {
+  return request({
+    url: baseApi + 'manageBase/project',
+    method: 'post',
+    data,
+  })
+}
+//修改项目
+export function setProject (data) {
+  return request({
+    url: baseApi + 'manageBase/project',
+    method: 'put',
+    data,
+  })
+}

+ 34 - 0
.history/src/api/projectApi_20190321144113.js

@@ -0,0 +1,34 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+import {fetch,post,put} from 'utils/http';
+
+//获取项目信息
+export function getProjectList () {
+  return fetch('manageBase/project')
+  // return request({
+  //   url: baseApi + 'manageBase/project',
+  //   method: 'get',
+  //   // params: {
+  //   //   status: 'NORMAL'
+  //   // }
+  // })
+}
+
+//新增项目
+export function addProject (data) {
+  return post('manageBase/project',data)
+  // return request({
+  //   url: baseApi + 'manageBase/project',
+  //   method: 'post',
+  //   data,
+  // })
+}
+//修改项目
+export function setProject (data) {
+  return put('manageBase/project',data)
+  // return request({
+  //   url: baseApi + 'manageBase/project',
+  //   method: 'put',
+  //   data,
+  // })
+}

+ 39 - 0
.history/src/api/teamApi_20190318173111.js

@@ -0,0 +1,39 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+
+//获取部门信息
+export function getTeamList (deptId) {
+  return request({
+    url: baseApi + 'manageBase/dept/tree',
+    method: 'get',
+    params: {
+      deptId: 12345
+    }
+  })
+}
+//获取子部门信息
+export function getTeamChildList (deptId) {
+  return request({
+    url: baseApi + 'manageBase/dept/child',
+    method: 'get',
+    params: {
+      deptId
+    }
+  })
+}
+//新增部门
+export function addTeam (data) {
+  return request({
+    url: baseApi + 'manageBase/dept',
+    method: 'post',
+    data,
+  })
+}
+//修改部门
+export function setTeam (data) {
+  return request({
+    url: baseApi + 'manageBase/dept',
+    method: 'put',
+    data,
+  })
+}

+ 39 - 0
.history/src/api/teamApi_20190321114411.js

@@ -0,0 +1,39 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+
+//获取部门信息
+export function getTeamList (deptId) {
+  return request({
+    url: baseApi + 'manageBase/dept/tree',
+    method: 'get',
+    params: {
+      deptId
+    }
+  })
+}
+//获取子部门信息
+export function getTeamChildList (deptId) {
+  return request({
+    url: baseApi + 'manageBase/dept/child',
+    method: 'get',
+    params: {
+      deptId
+    }
+  })
+}
+//新增部门
+export function addTeam (data) {
+  return request({
+    url: baseApi + 'manageBase/dept',
+    method: 'post',
+    data,
+  })
+}
+//修改部门
+export function setTeam (data) {
+  return request({
+    url: baseApi + 'manageBase/dept',
+    method: 'put',
+    data,
+  })
+}

+ 39 - 0
.history/src/api/teamApi_20190321114534.js

@@ -0,0 +1,39 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+
+//获取部门信息
+export function getTeamList (deptId) {
+  return request({
+    url: baseApi + 'manageBase/dept/tree',
+    method: 'get',
+    params: {
+      deptId
+    }
+  })
+}
+//获取子部门信息
+export function getTeamChildList (deptId) {
+  return request({
+    url: baseApi + 'manageBase/dept/child',
+    method: 'get',
+    params: {
+      deptId
+    }
+  })
+}
+//新增部门
+export function addTeam (data) {
+  return request({
+    url: baseApi + 'manageBase/dept',
+    method: 'post',
+    data,
+  })
+}
+//修改部门
+export function setTeam (data) {
+  return request({
+    url: baseApi + 'manageBase/dept',
+    method: 'put',
+    data,
+  })
+}

+ 44 - 0
.history/src/api/teamApi_20190321144113.js

@@ -0,0 +1,44 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+import {fetch,post,put} from 'utils/http';
+
+//获取部门信息
+export function getTeamList (deptId) {
+  return fetch('manageBase/dept/tree',deptId)
+  // return request({
+  //   url: baseApi + 'manageBase/dept/tree',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//获取子部门信息
+export function getTeamChildList (deptId) {
+  return fetch('manageBase/dept/child',deptId)
+  // return request({
+  //   url: baseApi + 'manageBase/dept/child',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//新增部门
+export function addTeam (data) {
+  return post('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'post',
+  //   data,
+  // })
+}
+//修改部门
+export function setTeam (data) {
+  return put('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'put',
+  //   data,
+  // })
+}

+ 44 - 0
.history/src/api/teamApi_20190321150453.js

@@ -0,0 +1,44 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+import {fetch,post,put} from 'utils/http';
+
+//获取部门信息
+export function getTeamList (deptId) {
+  return fetch('manageBase/dept/tree',{deptId})
+  // return request({
+  //   url: baseApi + 'manageBase/dept/tree',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//获取子部门信息
+export function getTeamChildList (deptId) {
+  return fetch('manageBase/dept/child',deptId)
+  // return request({
+  //   url: baseApi + 'manageBase/dept/child',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//新增部门
+export function addTeam (data) {
+  return post('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'post',
+  //   data,
+  // })
+}
+//修改部门
+export function setTeam (data) {
+  return put('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'put',
+  //   data,
+  // })
+}

+ 44 - 0
.history/src/api/teamApi_20190321150507.js

@@ -0,0 +1,44 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+import {fetch,post,put} from 'utils/http';
+
+//获取部门信息
+export function getTeamList (deptId) {
+  return fetch('manageBase/dept/tree',{deptId: deptId})
+  // return request({
+  //   url: baseApi + 'manageBase/dept/tree',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//获取子部门信息
+export function getTeamChildList (deptId) {
+  return fetch('manageBase/dept/child',deptId)
+  // return request({
+  //   url: baseApi + 'manageBase/dept/child',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//新增部门
+export function addTeam (data) {
+  return post('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'post',
+  //   data,
+  // })
+}
+//修改部门
+export function setTeam (data) {
+  return put('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'put',
+  //   data,
+  // })
+}

+ 44 - 0
.history/src/api/teamApi_20190321150607.js

@@ -0,0 +1,44 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+import {fetch,post,put} from 'utils/http';
+
+//获取部门信息
+export function getTeamList (deptId) {
+  return fetch('manageBase/dept/tree',{deptId: 12345})
+  // return request({
+  //   url: baseApi + 'manageBase/dept/tree',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//获取子部门信息
+export function getTeamChildList (deptId) {
+  return fetch('manageBase/dept/child',deptId)
+  // return request({
+  //   url: baseApi + 'manageBase/dept/child',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//新增部门
+export function addTeam (data) {
+  return post('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'post',
+  //   data,
+  // })
+}
+//修改部门
+export function setTeam (data) {
+  return put('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'put',
+  //   data,
+  // })
+}

+ 44 - 0
.history/src/api/teamApi_20190321150703.js

@@ -0,0 +1,44 @@
+import request from 'utils/request'
+import { baseApi } from 'utils/config' 
+import {fetch,post,put} from 'utils/http';
+
+//获取部门信息
+export function getTeamList (deptId) {
+  return fetch('manageBase/dept/tree',{deptId: 12345})
+  // return request({
+  //   url: baseApi + 'manageBase/dept/tree',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//获取子部门信息
+export function getTeamChildList (deptId) {
+  return fetch('manageBase/dept/child',{deptId: deptId})
+  // return request({
+  //   url: baseApi + 'manageBase/dept/child',
+  //   method: 'get',
+  //   params: {
+  //     deptId
+  //   }
+  // })
+}
+//新增部门
+export function addTeam (data) {
+  return post('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'post',
+  //   data,
+  // })
+}
+//修改部门
+export function setTeam (data) {
+  return put('manageBase/dept',data)
+  // return request({
+  //   url: baseApi + 'manageBase/dept',
+  //   method: 'put',
+  //   data,
+  // })
+}

+ 184 - 0
.history/src/pages/costTeam/index_20190318173111.vue

@@ -0,0 +1,184 @@
+<template>
+  <div class="cost-team">
+    <el-button type="primary" class="add" @click="append">增加收入部门</el-button>
+    <el-card class="right-card">
+      <el-table
+      :data="costTeamData"
+      style="width: 100%">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="收入部门名称">
+                <span>{{ props.row.name }}</span>
+              </el-form-item>
+              <el-form-item label="收入部门 ID">
+                <span>{{ props.row.id }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="收入部门编号"
+          prop="code">
+        </el-table-column>
+        <el-table-column
+          label="收入部门名称"
+          prop="name">
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+              <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+              -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog title="新增收入部门" :visible.sync="dialogFormVisible">     
+      <el-form :model="form" ref="form">
+        <el-form-item label="收入部门编码" prop="code" :label-width="formLabelWidth" :rules="[{ required: true, message: '编码不能为空'}]">
+          <el-input v-model="form.code" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="收入部门名称" prop="name" :label-width="formLabelWidth" :rules="[{ required: true, message: '名称不能为空'}]">
+          <el-input v-model="form.name" autocomplete="off"></el-input>
+        </el-form-item>
+        <!--
+        <el-form-item label="收入部门状态" prop="status" :label-width="formLabelWidth" :rules="[{ required: true, message: '状态不能为空'}]">
+          <el-select v-model="form.status" placeholder="请选择状态值">
+            <el-option label="正常" value="NORMAL"></el-option>
+            <el-option label="已删除" value="DEL"></el-option>
+          </el-select>
+        </el-form-item>
+        -->
+        <el-form-item label="收入部门排序" prop="sort" :label-width="formLabelWidth" >
+          <el-input v-model.number="form.sort" autocomplete="off"></el-input>
+        </el-form-item>             
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>    
+  </div>
+</template>
+<script scoped>
+import { getCostTeamList, addCostTeam, setCostTeam } from '@/api/costTeamApi'
+export default {
+  data () {
+    return {
+      costTeamData: [],
+      dialogFormVisible: false,
+      addFlag: false,
+      id: '',
+      form: {
+        code: '',
+        name: '',
+        status: 'NORMAL',
+        sort: ''
+      },
+      formLabelWidth: '120px',
+      index: ''      
+    }
+  },
+  created () {
+    getCostTeamList().then(res => {
+      this.costTeamData = res.data.data
+    });
+  },
+  methods: {
+    // 新增收入部门
+    append() {
+      this.addFlag = true;
+      this.dialogFormVisible = true;
+    },
+    // 编辑收入部门
+    handleEdit(index, row) {
+      this.form.code = row.code;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.id = row.id;
+      this.index = index;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    //删除收入部门
+    handleDelete(index, row) {
+      console.log(index, row);
+      setCostTeam({
+        id: row.id,
+        status: 'DEL'
+      }).then(res => {
+        console.log(res);
+      })
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          console.log(this.form);
+          if(this.addFlag) {
+            addCostTeam(this.form).then(res => {
+              this.costTeamData.unshift(res.data.data)
+              this.$refs[formName].resetFields();
+            })
+          } else {
+            this.form.id = this.id;
+            setCostTeam(this.form).then(res => {
+              console.log(res);
+              console.log(this.index)
+              this.costTeamData.splice(this.index, 1, res.data.data)
+              this.$refs[formName].resetFields();
+            })
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm (formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }    
+  }, 
+}
+</script>
+<style scope>
+  .cost-team {
+    padding: 20px;
+    box-sizing: border-box;
+  }
+  .add {
+    float: right;
+    margin-bottom: 20px;
+  }
+  .right-card {
+    width: 100%;
+    margin: 0 auto;
+  }
+  .demo-table-expand {
+    font-size: 0;
+  }
+  .demo-table-expand label {
+    width: 90px;
+    color: #99a9bf;
+  }
+  .demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+    width: 50%;
+  }
+</style>
+
+
+
+

+ 184 - 0
.history/src/pages/costTeam/index_20190321144258.vue

@@ -0,0 +1,184 @@
+<template>
+  <div class="cost-team">
+    <el-button type="primary" class="add" @click="append">增加收入部门</el-button>
+    <el-card class="right-card">
+      <el-table
+      :data="costTeamData"
+      style="width: 100%">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="收入部门名称">
+                <span>{{ props.row.name }}</span>
+              </el-form-item>
+              <el-form-item label="收入部门 ID">
+                <span>{{ props.row.id }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="收入部门编号"
+          prop="code">
+        </el-table-column>
+        <el-table-column
+          label="收入部门名称"
+          prop="name">
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+              <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+              -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog title="新增收入部门" :visible.sync="dialogFormVisible">     
+      <el-form :model="form" ref="form">
+        <el-form-item label="收入部门编码" prop="code" :label-width="formLabelWidth" :rules="[{ required: true, message: '编码不能为空'}]">
+          <el-input v-model="form.code" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="收入部门名称" prop="name" :label-width="formLabelWidth" :rules="[{ required: true, message: '名称不能为空'}]">
+          <el-input v-model="form.name" autocomplete="off"></el-input>
+        </el-form-item>
+        <!--
+        <el-form-item label="收入部门状态" prop="status" :label-width="formLabelWidth" :rules="[{ required: true, message: '状态不能为空'}]">
+          <el-select v-model="form.status" placeholder="请选择状态值">
+            <el-option label="正常" value="NORMAL"></el-option>
+            <el-option label="已删除" value="DEL"></el-option>
+          </el-select>
+        </el-form-item>
+        -->
+        <el-form-item label="收入部门排序" prop="sort" :label-width="formLabelWidth" >
+          <el-input v-model.number="form.sort" autocomplete="off"></el-input>
+        </el-form-item>             
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>    
+  </div>
+</template>
+<script scoped>
+import { getCostTeamList, addCostTeam, setCostTeam } from '@/api/costTeamApi'
+export default {
+  data () {
+    return {
+      costTeamData: [],
+      dialogFormVisible: false,
+      addFlag: false,
+      id: '',
+      form: {
+        code: '',
+        name: '',
+        status: 'NORMAL',
+        sort: ''
+      },
+      formLabelWidth: '120px',
+      index: ''      
+    }
+  },
+  created () {
+    getCostTeamList().then(res => {
+      this.costTeamData = res.data
+    });
+  },
+  methods: {
+    // 新增收入部门
+    append() {
+      this.addFlag = true;
+      this.dialogFormVisible = true;
+    },
+    // 编辑收入部门
+    handleEdit(index, row) {
+      this.form.code = row.code;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.id = row.id;
+      this.index = index;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    //删除收入部门
+    handleDelete(index, row) {
+      console.log(index, row);
+      setCostTeam({
+        id: row.id,
+        status: 'DEL'
+      }).then(res => {
+        console.log(res);
+      })
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          console.log(this.form);
+          if(this.addFlag) {
+            addCostTeam(this.form).then(res => {
+              this.costTeamData.unshift(res.data)
+              this.$refs[formName].resetFields();
+            })
+          } else {
+            this.form.id = this.id;
+            setCostTeam(this.form).then(res => {
+              console.log(res);
+              console.log(this.index)
+              this.costTeamData.splice(this.index, 1, res.data)
+              this.$refs[formName].resetFields();
+            })
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm (formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }    
+  }, 
+}
+</script>
+<style scope>
+  .cost-team {
+    padding: 20px;
+    box-sizing: border-box;
+  }
+  .add {
+    float: right;
+    margin-bottom: 20px;
+  }
+  .right-card {
+    width: 100%;
+    margin: 0 auto;
+  }
+  .demo-table-expand {
+    font-size: 0;
+  }
+  .demo-table-expand label {
+    width: 90px;
+    color: #99a9bf;
+  }
+  .demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+    width: 50%;
+  }
+</style>
+
+
+
+

+ 183 - 0
.history/src/pages/costType/index_20190318173111.vue

@@ -0,0 +1,183 @@
+<template>
+  <div class="cost-type">
+    <el-button type="primary" class="add" @click="append">增加类型</el-button>
+    <el-card class="right-card">
+      <el-table
+      :data="costTypeData"
+      style="width: 100%">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="类型名称">
+                <span>{{ props.row.name }}</span>
+              </el-form-item>
+              <el-form-item label="类型 ID">
+                <span>{{ props.row.id }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="类型编号"
+          prop="code">
+        </el-table-column>
+        <el-table-column
+          label="类型名称"
+          prop="name">
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+              <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+              -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog title="新增类型" :visible.sync="dialogFormVisible">     
+      <el-form :model="form" ref="form">
+        <el-form-item label="类型编码" prop="code" :label-width="formLabelWidth" :rules="[{ required: true, message: '编码不能为空'}]">
+          <el-input v-model="form.code" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="类型名称" prop="name" :label-width="formLabelWidth" :rules="[{ required: true, message: '名称不能为空'}]">
+          <el-input v-model="form.name" autocomplete="off"></el-input>
+        </el-form-item>
+        <!--
+        <el-form-item label="类型状态" prop="status" :label-width="formLabelWidth" :rules="[{ required: true, message: '状态不能为空'}]">
+          <el-select v-model="form.status" placeholder="请选择状态值">
+            <el-option label="正常" value="NORMAL"></el-option>
+            <el-option label="已删除" value="DEL"></el-option>
+          </el-select>
+        </el-form-item>
+        -->
+        <el-form-item label="类型排序" prop="sort" :label-width="formLabelWidth">
+          <el-input v-model.number="form.sort" autocomplete="off"></el-input>
+        </el-form-item>             
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>    
+  </div>
+</template>
+<script scoped>
+import { getCostTypeList, addCostType, setCostType } from '@/api/costTypeApi'
+export default {
+  data () {
+    return {
+      costTypeData: [],
+      dialogFormVisible: false,
+      addFlag: false,
+      id: '',
+      form: {
+        code: '',
+        name: '',
+        status: 'NORMAL',
+        sort: ''
+      },
+      formLabelWidth: '120px',
+      index: ''      
+    }
+  },
+  created () {
+    getCostTypeList().then(res => {
+      this.costTypeData = res.data.data
+    });
+  },
+  methods: {
+    // 新增类型
+    append() {
+      this.addFlag = true;
+      this.dialogFormVisible = true;
+    },
+    // 编辑类型
+    handleEdit(index, row) {
+      this.form.code = row.code;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.id = row.id;
+      this.index = index;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    //删除类型
+    // handleDelete(index, row) {
+    //   console.log(index, row);
+    //   setCostType({
+    //     id: row.id,
+    //     status: 'DEL'
+    //   }).then(res => {
+    //     console.log(res);
+    //   })
+    // },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          console.log(this.form);
+          if(this.addFlag) {
+            addCostType(this.form).then(res => {
+              this.costTypeData.unshift(res.data.data)
+              this.$refs[formName].resetFields();
+            })
+          } else {
+            this.form.id = this.id;
+            setCostType(this.form).then(res => {
+              console.log(res);
+              console.log(this.index)
+              this.costTypeData.splice(this.index, 1, res.data.data)
+              this.$refs[formName].resetFields();
+            })
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm (formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }  
+  }, 
+}
+</script>
+<style scope>
+  .cost-type {
+    padding: 20px;
+    box-sizing: border-box;
+  }
+  .add {
+    float: right;
+    margin-bottom: 20px;
+  }
+  .right-card {
+    width: 100%;
+    margin: 0 auto;
+  }
+  .demo-table-expand {
+    font-size: 0;
+  }
+  .demo-table-expand label {
+    width: 90px;
+    color: #99a9bf;
+  }
+  .demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+    width: 50%;
+  }
+</style>
+
+
+

+ 185 - 0
.history/src/pages/costType/index_20190321111340.vue

@@ -0,0 +1,185 @@
+<template>
+  <div class="cost-type">
+    <el-button type="primary" class="add" @click="append">增加类型</el-button>
+    <el-card class="right-card">
+      <el-table
+      :data="costTypeData"
+      :default-sort = "{prop: 'code', order: 'ascending'}"
+      style="width: 100%">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="类型名称">
+                <span>{{ props.row.name }}</span>
+              </el-form-item>
+              <el-form-item label="类型 ID">
+                <span>{{ props.row.id }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="类型编号"
+          sortable
+          prop="code">
+        </el-table-column>
+        <el-table-column
+          label="类型名称"
+          prop="name">
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+              <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+              -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog title="新增类型" :visible.sync="dialogFormVisible">     
+      <el-form :model="form" ref="form">
+        <el-form-item label="类型编码" prop="code" :label-width="formLabelWidth" :rules="[{ required: true, message: '编码不能为空'}]">
+          <el-input v-model="form.code" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="类型名称" prop="name" :label-width="formLabelWidth" :rules="[{ required: true, message: '名称不能为空'}]">
+          <el-input v-model="form.name" autocomplete="off"></el-input>
+        </el-form-item>
+        <!--
+        <el-form-item label="类型状态" prop="status" :label-width="formLabelWidth" :rules="[{ required: true, message: '状态不能为空'}]">
+          <el-select v-model="form.status" placeholder="请选择状态值">
+            <el-option label="正常" value="NORMAL"></el-option>
+            <el-option label="已删除" value="DEL"></el-option>
+          </el-select>
+        </el-form-item>
+        -->
+        <el-form-item label="类型排序" prop="sort" :label-width="formLabelWidth">
+          <el-input v-model.number="form.sort" autocomplete="off"></el-input>
+        </el-form-item>             
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>    
+  </div>
+</template>
+<script scoped>
+import { getCostTypeList, addCostType, setCostType } from '@/api/costTypeApi'
+export default {
+  data () {
+    return {
+      costTypeData: [],
+      dialogFormVisible: false,
+      addFlag: false,
+      id: '',
+      form: {
+        code: '',
+        name: '',
+        status: 'NORMAL',
+        sort: ''
+      },
+      formLabelWidth: '120px',
+      index: ''      
+    }
+  },
+  created () {
+    getCostTypeList().then(res => {
+      this.costTypeData = res.data.data
+    });
+  },
+  methods: {
+    // 新增类型
+    append() {
+      this.addFlag = true;
+      this.dialogFormVisible = true;
+    },
+    // 编辑类型
+    handleEdit(index, row) {
+      this.form.code = row.code;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.id = row.id;
+      this.index = index;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    //删除类型
+    // handleDelete(index, row) {
+    //   console.log(index, row);
+    //   setCostType({
+    //     id: row.id,
+    //     status: 'DEL'
+    //   }).then(res => {
+    //     console.log(res);
+    //   })
+    // },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          console.log(this.form);
+          if(this.addFlag) {
+            addCostType(this.form).then(res => {
+              this.costTypeData.unshift(res.data.data)
+              this.$refs[formName].resetFields();
+            })
+          } else {
+            this.form.id = this.id;
+            setCostType(this.form).then(res => {
+              console.log(res);
+              console.log(this.index)
+              this.costTypeData.splice(this.index, 1, res.data.data)
+              this.$refs[formName].resetFields();
+            })
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm (formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }  
+  }, 
+}
+</script>
+<style scope>
+  .cost-type {
+    padding: 20px;
+    box-sizing: border-box;
+  }
+  .add {
+    float: right;
+    margin-bottom: 20px;
+  }
+  .right-card {
+    width: 100%;
+    margin: 0 auto;
+  }
+  .demo-table-expand {
+    font-size: 0;
+  }
+  .demo-table-expand label {
+    width: 90px;
+    color: #99a9bf;
+  }
+  .demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+    width: 50%;
+  }
+</style>
+
+
+

+ 185 - 0
.history/src/pages/costType/index_20190321155911.vue

@@ -0,0 +1,185 @@
+<template>
+  <div class="cost-type">
+    <el-button type="primary" class="add" @click="append">增加类型</el-button>
+    <el-card class="right-card">
+      <el-table
+      :data="costTypeData"
+      :default-sort = "{prop: 'code', order: 'ascending'}"
+      style="width: 100%">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="类型名称">
+                <span>{{ props.row.name }}</span>
+              </el-form-item>
+              <el-form-item label="类型 ID">
+                <span>{{ props.row.id }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="类型编号"
+          sortable
+          prop="code">
+        </el-table-column>
+        <el-table-column
+          label="类型名称"
+          prop="name">
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+              <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+              -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog title="新增类型" :visible.sync="dialogFormVisible">     
+      <el-form :model="form" ref="form">
+        <el-form-item label="类型编码" prop="code" :label-width="formLabelWidth" :rules="[{ required: true, message: '编码不能为空'}]">
+          <el-input v-model="form.code" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="类型名称" prop="name" :label-width="formLabelWidth" :rules="[{ required: true, message: '名称不能为空'}]">
+          <el-input v-model="form.name" autocomplete="off"></el-input>
+        </el-form-item>
+        <!--
+        <el-form-item label="类型状态" prop="status" :label-width="formLabelWidth" :rules="[{ required: true, message: '状态不能为空'}]">
+          <el-select v-model="form.status" placeholder="请选择状态值">
+            <el-option label="正常" value="NORMAL"></el-option>
+            <el-option label="已删除" value="DEL"></el-option>
+          </el-select>
+        </el-form-item>
+        -->
+        <el-form-item label="类型排序" prop="sort" :label-width="formLabelWidth">
+          <el-input v-model.number="form.sort" autocomplete="off"></el-input>
+        </el-form-item>             
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>    
+  </div>
+</template>
+<script scoped>
+import { getCostTypeList, addCostType, setCostType } from '@/api/costTypeApi'
+export default {
+  data () {
+    return {
+      costTypeData: [],
+      dialogFormVisible: false,
+      addFlag: false,
+      id: '',
+      form: {
+        code: '',
+        name: '',
+        status: 'NORMAL',
+        sort: ''
+      },
+      formLabelWidth: '120px',
+      index: ''      
+    }
+  },
+  created () {
+    getCostTypeList().then(res => {
+      this.costTypeData = res.data
+    });
+  },
+  methods: {
+    // 新增类型
+    append() {
+      this.addFlag = true;
+      this.dialogFormVisible = true;
+    },
+    // 编辑类型
+    handleEdit(index, row) {
+      this.form.code = row.code;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.id = row.id;
+      this.index = index;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    //删除类型
+    // handleDelete(index, row) {
+    //   console.log(index, row);
+    //   setCostType({
+    //     id: row.id,
+    //     status: 'DEL'
+    //   }).then(res => {
+    //     console.log(res);
+    //   })
+    // },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          console.log(this.form);
+          if(this.addFlag) {
+            addCostType(this.form).then(res => {
+              this.costTypeData.unshift(res.data)
+              this.$refs[formName].resetFields();
+            })
+          } else {
+            this.form.id = this.id;
+            setCostType(this.form).then(res => {
+              console.log(res);
+              console.log(this.index)
+              this.costTypeData.splice(this.index, 1, res.data)
+              this.$refs[formName].resetFields();
+            })
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm (formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }  
+  }, 
+}
+</script>
+<style scope>
+  .cost-type {
+    padding: 20px;
+    box-sizing: border-box;
+  }
+  .add {
+    float: right;
+    margin-bottom: 20px;
+  }
+  .right-card {
+    width: 100%;
+    margin: 0 auto;
+  }
+  .demo-table-expand {
+    font-size: 0;
+  }
+  .demo-table-expand label {
+    width: 90px;
+    color: #99a9bf;
+  }
+  .demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+    width: 50%;
+  }
+</style>
+
+
+

+ 99 - 0
.history/src/pages/layout/nav/Nav_20190320113408.vue

@@ -0,0 +1,99 @@
+<template>
+  <div class="nav">
+    <!-- <el-button v-if="!isCollapse" icon="el-icon-arrow-left" circle @click="open"></el-button> -->
+    <!-- <el-button v-if="isCollapse" icon="el-icon-arrow-right" circle @click="open"></el-button> -->
+    <!-- <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;">
+      <el-radio-button :label="false">展开</el-radio-button>
+      <el-radio-button :label="true">收起</el-radio-button>
+    </el-radio-group> -->
+    <el-menu
+      default-active="1-4-1"
+      :collapse="isCollapse"
+      class="el-menu-vertical-demo"
+      background-color="#545c64"
+      text-color="#fff"
+      active-text-color="#ffd04b"
+      :router="true"
+    >
+      <el-menu-item index="/manage/query">
+        <i class="el-icon-search"></i>
+        <span slot="title">经营数据查询</span>
+      </el-menu-item>
+
+      <el-menu-item index="/manage/cost">
+        <i style="font-style:normal">成本</i>
+        <span slot="title">经营数据成本</span>
+      </el-menu-item>
+      <el-menu-item index="/manage/index">
+        <i style="font-style:normal">收入</i>
+        <span slot="title">经营数据收入</span>
+      </el-menu-item>
+      <el-menu-item index="/team/index">
+        <i style="font-style:normal">部门</i>
+        <span slot="title">部门管理</span>
+      </el-menu-item>
+      <el-menu-item index="/project/index">
+        <i style="font-style:normal">项目</i>
+        <span slot="title">项目管理</span>
+      </el-menu-item>
+      <el-menu-item index="/product/index">
+        <i style="font-style:normal">产品</i>
+        <span slot="title">产品管理</span>
+      </el-menu-item>
+      <el-menu-item index="/costType/index">
+        <i style="font-style:normal">类型</i>
+        <span slot="title">成本类型管理</span>
+      </el-menu-item>
+       <el-menu-item index="/user/login">
+        <i style="font-style:normal">用户</i>
+        <span slot="title">用户管理</span>
+      </el-menu-item>
+      <!--
+        <el-menu-item index="/costTeam/index">
+            <span slot="title">成本部门/单位/人管理</span>
+        </el-menu-item>
+      -->
+    </el-menu>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      isCollapse: true
+    };
+  },
+  methods: {
+    open() {
+      this.isCollapse = !this.isCollapse;
+    },
+    // handleSelect(key, keyPath) {
+    //     console.log(key, keyPath);
+    //     switch(key){
+    //         case '/manage/query':
+    //             this.prototype.$navTitle = '经营数据查询'
+    //         break;
+    //     }
+    // }
+  }
+};
+</script>
+<style>
+.nav {
+  transition: width 0.28s;
+  width: 180px !important;
+  height: 100%;
+  position: fixed;
+  font-size: 0px;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1001;
+  overflow: hidden;
+}
+.el-menu {
+  height: 100%;
+}
+</style>
+
+

+ 99 - 0
.history/src/pages/layout/nav/Nav_20190320171958.vue

@@ -0,0 +1,99 @@
+<template>
+  <div class="nav">
+    <!-- <el-button v-if="!isCollapse" icon="el-icon-arrow-left" circle @click="open"></el-button> -->
+    <!-- <el-button v-if="isCollapse" icon="el-icon-arrow-right" circle @click="open"></el-button> -->
+    <!-- <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;">
+      <el-radio-button :label="false">展开</el-radio-button>
+      <el-radio-button :label="true">收起</el-radio-button>
+    </el-radio-group> -->
+    <el-menu
+      default-active="1-4-1"
+      :collapse="isCollapse"
+      class="el-menu-vertical-demo"
+      background-color="#545c64"
+      text-color="#fff"
+      active-text-color="#ffd04b"
+      :router="true"
+    >
+      <el-menu-item index="/manage/query">
+        <i class="el-icon-search"></i>
+        <span slot="title">经营数据查询</span>
+      </el-menu-item>
+
+      <el-menu-item index="/manage/cost">
+        <i style="font-style:normal">成本</i>
+        <span slot="title">经营数据成本</span>
+      </el-menu-item>
+      <el-menu-item index="/manage/index">
+        <i style="font-style:normal">收入</i>
+        <span slot="title">经营数据收入</span>
+      </el-menu-item>
+      <el-menu-item index="/team/index">
+        <i style="font-style:normal">部门</i>
+        <span slot="title">部门管理</span>
+      </el-menu-item>
+      <el-menu-item index="/project/index">
+        <i style="font-style:normal">项目</i>
+        <span slot="title">项目管理</span>
+      </el-menu-item>
+      <el-menu-item index="/product/index">
+        <i style="font-style:normal">产品</i>
+        <span slot="title">产品管理</span>
+      </el-menu-item>
+      <el-menu-item index="/costType/index">
+        <i style="font-style:normal">类型</i>
+        <span slot="title">成本类型管理</span>
+      </el-menu-item>
+       <el-menu-item index="/user/index">
+        <i style="font-style:normal">用户</i>
+        <span slot="title">用户管理</span>
+      </el-menu-item>
+      <!--
+        <el-menu-item index="/costTeam/index">
+            <span slot="title">成本部门/单位/人管理</span>
+        </el-menu-item>
+      -->
+    </el-menu>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      isCollapse: true
+    };
+  },
+  methods: {
+    open() {
+      this.isCollapse = !this.isCollapse;
+    },
+    // handleSelect(key, keyPath) {
+    //     console.log(key, keyPath);
+    //     switch(key){
+    //         case '/manage/query':
+    //             this.prototype.$navTitle = '经营数据查询'
+    //         break;
+    //     }
+    // }
+  }
+};
+</script>
+<style>
+.nav {
+  transition: width 0.28s;
+  width: 180px !important;
+  height: 100%;
+  position: fixed;
+  font-size: 0px;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1001;
+  overflow: hidden;
+}
+.el-menu {
+  height: 100%;
+}
+</style>
+
+

+ 99 - 0
.history/src/pages/layout/nav/Nav_20190321104058.vue

@@ -0,0 +1,99 @@
+<template>
+  <div class="nav">
+    <!-- <el-button v-if="!isCollapse" icon="el-icon-arrow-left" circle @click="open"></el-button> -->
+    <!-- <el-button v-if="isCollapse" icon="el-icon-arrow-right" circle @click="open"></el-button> -->
+    <!-- <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;">
+      <el-radio-button :label="false">展开</el-radio-button>
+      <el-radio-button :label="true">收起</el-radio-button>
+    </el-radio-group> -->
+    <el-menu
+      default-active="1-4-1"
+      :collapse="isCollapse"
+      class="el-menu-vertical-demo"
+      background-color="#545c64"
+      text-color="#fff"
+      active-text-color="#ffd04b"
+      :router="true"
+    >
+      <el-menu-item index="/manage/query">
+        <i class="el-icon-search"></i>
+        <span slot="title">经营数据查询</span>
+      </el-menu-item>
+
+      <el-menu-item index="/manage/cost">
+        <i style="font-style:normal">成本</i>
+        <span slot="title">经营数据成本</span>
+      </el-menu-item>
+      <el-menu-item index="/manage/index">
+        <i style="font-style:normal">收入</i>
+        <span slot="title">经营数据收入</span>
+      </el-menu-item>
+      <el-menu-item index="/team/index">
+        <i style="font-style:normal">部门</i>
+        <span slot="title">部门管理</span>
+      </el-menu-item>
+      <el-menu-item index="/project/index">
+        <i style="font-style:normal">项目</i>
+        <span slot="title">项目管理</span>
+      </el-menu-item>
+      <el-menu-item index="/product/index">
+        <i style="font-style:normal">产品</i>
+        <span slot="title">产品管理</span>
+      </el-menu-item>
+      <el-menu-item index="/costType/index">
+        <i style="font-style:normal">类型</i>
+        <span slot="title">成本类型管理</span>
+      </el-menu-item>
+       <!-- <el-menu-item index="/user/index">
+        <i style="font-style:normal">用户</i>
+        <span slot="title">用户管理</span>
+      </el-menu-item> -->
+      <!--
+        <el-menu-item index="/costTeam/index">
+            <span slot="title">成本部门/单位/人管理</span>
+        </el-menu-item>
+      -->
+    </el-menu>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      isCollapse: true
+    };
+  },
+  methods: {
+    open() {
+      this.isCollapse = !this.isCollapse;
+    },
+    // handleSelect(key, keyPath) {
+    //     console.log(key, keyPath);
+    //     switch(key){
+    //         case '/manage/query':
+    //             this.prototype.$navTitle = '经营数据查询'
+    //         break;
+    //     }
+    // }
+  }
+};
+</script>
+<style>
+.nav {
+  transition: width 0.28s;
+  width: 180px !important;
+  height: 100%;
+  position: fixed;
+  font-size: 0px;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1001;
+  overflow: hidden;
+}
+.el-menu {
+  height: 100%;
+}
+</style>
+
+

+ 100 - 0
.history/src/pages/layout/nav/Nav_20190321162812.vue

@@ -0,0 +1,100 @@
+<template>
+  <div class="nav">
+    <!-- <el-button v-if="!isCollapse" icon="el-icon-arrow-left" circle @click="open"></el-button> -->
+    <!-- <el-button v-if="isCollapse" icon="el-icon-arrow-right" circle @click="open"></el-button> -->
+    <!-- <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;">
+      <el-radio-button :label="false">展开</el-radio-button>
+      <el-radio-button :label="true">收起</el-radio-button>
+    </el-radio-group> -->
+    <el-menu
+      default-active="1-4-1"
+      :collapse="isCollapse"
+      class="el-menu-vertical-demo"
+      background-color="#545c64"
+      text-color="#fff"
+      active-text-color="#ffd04b"
+      :router="true"
+    >
+      <el-menu-item index="/manage/query">
+        <i class="el-icon-search"></i>
+        <span slot="title">经营数据查询</span>
+      </el-menu-item>
+
+      <el-menu-item index="/manage/cost">
+        <i style="font-style:normal">成本</i>
+        <span slot="title">经营数据成本</span>
+      </el-menu-item>
+      <el-menu-item index="/manage/index">
+        <i style="font-style:normal">收入</i>
+        <span slot="title">经营数据收入</span>
+      </el-menu-item>
+      <el-menu-item index="/team/index">
+        <i style="font-style:normal">部门</i>
+        <span slot="title">部门管理</span>
+      </el-menu-item>
+      <el-menu-item index="/project/index">
+        <i style="font-style:normal">项目</i>
+        <span slot="title">项目管理</span>
+      </el-menu-item>
+      <el-menu-item index="/product/index">
+        <i style="font-style:normal">产品</i>
+        <span slot="title">产品管理</span>
+      </el-menu-item>
+      <el-menu-item index="/costType/index">
+        <i style="font-style:normal">类型</i>
+        <span slot="title">成本类型管理</span>
+      </el-menu-item>
+       <el-menu-item index="/user/index">
+        <i style="font-style:normal">{{nickName}}</i>
+        <span slot="title">用户管理</span>
+      </el-menu-item>
+      <!--
+        <el-menu-item index="/costTeam/index">
+            <span slot="title">成本部门/单位/人管理</span>
+        </el-menu-item>
+      -->
+    </el-menu>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      isCollapse: true,
+      nickName: localStorage.getItem('nickName')
+    };
+  },
+  methods: {
+    open() {
+      this.isCollapse = !this.isCollapse;
+    },
+    // handleSelect(key, keyPath) {
+    //     console.log(key, keyPath);
+    //     switch(key){
+    //         case '/manage/query':
+    //             this.prototype.$navTitle = '经营数据查询'
+    //         break;
+    //     }
+    // }
+  }
+};
+</script>
+<style>
+.nav {
+  transition: width 0.28s;
+  width: 180px !important;
+  height: 100%;
+  position: fixed;
+  font-size: 0px;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1001;
+  overflow: hidden;
+}
+.el-menu {
+  height: 100%;
+}
+</style>
+
+

+ 103 - 0
.history/src/pages/layout/nav/Nav_20190321163021.vue

@@ -0,0 +1,103 @@
+<template>
+  <div class="nav">
+    <!-- <el-button v-if="!isCollapse" icon="el-icon-arrow-left" circle @click="open"></el-button> -->
+    <!-- <el-button v-if="isCollapse" icon="el-icon-arrow-right" circle @click="open"></el-button> -->
+    <!-- <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;">
+      <el-radio-button :label="false">展开</el-radio-button>
+      <el-radio-button :label="true">收起</el-radio-button>
+    </el-radio-group> -->
+    <el-menu
+      default-active="1-4-1"
+      :collapse="isCollapse"
+      class="el-menu-vertical-demo"
+      background-color="#545c64"
+      text-color="#fff"
+      active-text-color="#ffd04b"
+      :router="true"
+    >
+      <el-menu-item index="/manage/query">
+        <i class="el-icon-search"></i>
+        <span slot="title">经营数据查询</span>
+      </el-menu-item>
+
+      <el-menu-item index="/manage/cost">
+        <i style="font-style:normal">成本</i>
+        <span slot="title">经营数据成本</span>
+      </el-menu-item>
+      <el-menu-item index="/manage/index">
+        <i style="font-style:normal">收入</i>
+        <span slot="title">经营数据收入</span>
+      </el-menu-item>
+      <el-menu-item index="/team/index">
+        <i style="font-style:normal">部门</i>
+        <span slot="title">部门管理</span>
+      </el-menu-item>
+      <el-menu-item index="/project/index">
+        <i style="font-style:normal">项目</i>
+        <span slot="title">项目管理</span>
+      </el-menu-item>
+      <el-menu-item index="/product/index">
+        <i style="font-style:normal">产品</i>
+        <span slot="title">产品管理</span>
+      </el-menu-item>
+      <el-menu-item index="/costType/index">
+        <i style="font-style:normal">类型</i>
+        <span slot="title">成本类型管理</span>
+      </el-menu-item>
+       <el-menu-item index="/user/index">
+        <i style="font-style:normal">{{nickName}}</i>
+        <span slot="title">用户管理</span>
+      </el-menu-item>
+      <!--
+        <el-menu-item index="/costTeam/index">
+            <span slot="title">成本部门/单位/人管理</span>
+        </el-menu-item>
+      -->
+    </el-menu>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      isCollapse: true,
+      nickName: ''
+    };
+  },
+  created(){
+    this.nickName = localStorage.getItem('nickName')
+  },
+  methods: {
+    open() {
+      this.isCollapse = !this.isCollapse;
+    },
+    // handleSelect(key, keyPath) {
+    //     console.log(key, keyPath);
+    //     switch(key){
+    //         case '/manage/query':
+    //             this.prototype.$navTitle = '经营数据查询'
+    //         break;
+    //     }
+    // }
+  }
+};
+</script>
+<style>
+.nav {
+  transition: width 0.28s;
+  width: 180px !important;
+  height: 100%;
+  position: fixed;
+  font-size: 0px;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1001;
+  overflow: hidden;
+}
+.el-menu {
+  height: 100%;
+}
+</style>
+
+

+ 105 - 0
.history/src/pages/layout/nav/Nav_20190321163112.vue

@@ -0,0 +1,105 @@
+<template>
+  <div class="nav">
+    <!-- <el-button v-if="!isCollapse" icon="el-icon-arrow-left" circle @click="open"></el-button> -->
+    <!-- <el-button v-if="isCollapse" icon="el-icon-arrow-right" circle @click="open"></el-button> -->
+    <!-- <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;">
+      <el-radio-button :label="false">展开</el-radio-button>
+      <el-radio-button :label="true">收起</el-radio-button>
+    </el-radio-group> -->
+    <el-menu
+      default-active="1-4-1"
+      :collapse="isCollapse"
+      class="el-menu-vertical-demo"
+      background-color="#545c64"
+      text-color="#fff"
+      active-text-color="#ffd04b"
+      :router="true"
+    >
+      <el-menu-item index="/manage/query">
+        <i class="el-icon-search"></i>
+        <span slot="title">经营数据查询</span>
+      </el-menu-item>
+
+      <el-menu-item index="/manage/cost">
+        <i style="font-style:normal">成本</i>
+        <span slot="title">经营数据成本</span>
+      </el-menu-item>
+      <el-menu-item index="/manage/index">
+        <i style="font-style:normal">收入</i>
+        <span slot="title">经营数据收入</span>
+      </el-menu-item>
+      <el-menu-item index="/team/index">
+        <i style="font-style:normal">部门</i>
+        <span slot="title">部门管理</span>
+      </el-menu-item>
+      <el-menu-item index="/project/index">
+        <i style="font-style:normal">项目</i>
+        <span slot="title">项目管理</span>
+      </el-menu-item>
+      <el-menu-item index="/product/index">
+        <i style="font-style:normal">产品</i>
+        <span slot="title">产品管理</span>
+      </el-menu-item>
+      <el-menu-item index="/costType/index">
+        <i style="font-style:normal">类型</i>
+        <span slot="title">成本类型管理</span>
+      </el-menu-item>
+       <el-menu-item index="/user/index">
+        <i style="font-style:normal">{{nickName}}</i>
+        <span slot="title">用户管理</span>
+      </el-menu-item>
+      <!--
+        <el-menu-item index="/costTeam/index">
+            <span slot="title">成本部门/单位/人管理</span>
+        </el-menu-item>
+      -->
+    </el-menu>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      isCollapse: true,
+      nickName: ''
+    };
+  },
+  created(){
+    this.nickName = localStorage.getItem('nickName');
+    console.log(this.nickName)
+    console.log('nickname',localStorage.getItem('nickName'))
+  },
+  methods: {
+    open() {
+      this.isCollapse = !this.isCollapse;
+    },
+    // handleSelect(key, keyPath) {
+    //     console.log(key, keyPath);
+    //     switch(key){
+    //         case '/manage/query':
+    //             this.prototype.$navTitle = '经营数据查询'
+    //         break;
+    //     }
+    // }
+  }
+};
+</script>
+<style>
+.nav {
+  transition: width 0.28s;
+  width: 180px !important;
+  height: 100%;
+  position: fixed;
+  font-size: 0px;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1001;
+  overflow: hidden;
+}
+.el-menu {
+  height: 100%;
+}
+</style>
+
+

+ 105 - 0
.history/src/pages/layout/nav/Nav_20190321163623.vue

@@ -0,0 +1,105 @@
+<template>
+  <div class="nav">
+    <!-- <el-button v-if="!isCollapse" icon="el-icon-arrow-left" circle @click="open"></el-button> -->
+    <!-- <el-button v-if="isCollapse" icon="el-icon-arrow-right" circle @click="open"></el-button> -->
+    <!-- <el-radio-group v-model="isCollapse" style="margin-bottom: 20px;">
+      <el-radio-button :label="false">展开</el-radio-button>
+      <el-radio-button :label="true">收起</el-radio-button>
+    </el-radio-group> -->
+    <el-menu
+      default-active="1-4-1"
+      :collapse="isCollapse"
+      class="el-menu-vertical-demo"
+      background-color="#545c64"
+      text-color="#fff"
+      active-text-color="#ffd04b"
+      :router="true"
+    >
+      <el-menu-item index="/manage/query">
+        <i class="el-icon-search"></i>
+        <span slot="title">经营数据查询</span>
+      </el-menu-item>
+
+      <el-menu-item index="/manage/cost">
+        <i style="font-style:normal">成本</i>
+        <span slot="title">经营数据成本</span>
+      </el-menu-item>
+      <el-menu-item index="/manage/index">
+        <i style="font-style:normal">收入</i>
+        <span slot="title">经营数据收入</span>
+      </el-menu-item>
+      <el-menu-item index="/team/index">
+        <i style="font-style:normal">部门</i>
+        <span slot="title">部门管理</span>
+      </el-menu-item>
+      <el-menu-item index="/project/index">
+        <i style="font-style:normal">项目</i>
+        <span slot="title">项目管理</span>
+      </el-menu-item>
+      <el-menu-item index="/product/index">
+        <i style="font-style:normal">产品</i>
+        <span slot="title">产品管理</span>
+      </el-menu-item>
+      <el-menu-item index="/costType/index">
+        <i style="font-style:normal">类型</i>
+        <span slot="title">成本类型管理</span>
+      </el-menu-item>
+       <el-menu-item >
+        <i style="font-style:normal">{{nickName}}</i>
+        <span slot="title">当前登陆用户</span>
+      </el-menu-item>
+      <!--
+        <el-menu-item index="/costTeam/index">
+            <span slot="title">成本部门/单位/人管理</span>
+        </el-menu-item>
+      -->
+    </el-menu>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      isCollapse: true,
+      nickName: ''
+    };
+  },
+  created(){
+    this.nickName = localStorage.getItem('nickName');
+    console.log(this.nickName)
+    console.log('nickname',localStorage.getItem('nickName'))
+  },
+  methods: {
+    open() {
+      this.isCollapse = !this.isCollapse;
+    },
+    // handleSelect(key, keyPath) {
+    //     console.log(key, keyPath);
+    //     switch(key){
+    //         case '/manage/query':
+    //             this.prototype.$navTitle = '经营数据查询'
+    //         break;
+    //     }
+    // }
+  }
+};
+</script>
+<style>
+.nav {
+  transition: width 0.28s;
+  width: 180px !important;
+  height: 100%;
+  position: fixed;
+  font-size: 0px;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1001;
+  overflow: hidden;
+}
+.el-menu {
+  height: 100%;
+}
+</style>
+
+

+ 93 - 0
.history/src/pages/login/index_20190320161059.vue

@@ -0,0 +1,93 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">系统登录</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button>
+      <el-button
+        type="primary"
+        style="width:48%;"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      this.$api
+        .login(JSON.stringify(userInfo))
+        .then(res => {
+          Cookies.set("token", res.data.token); // 放置token到Cookie
+          sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.login-container {
+  -webkit-border-radius: 5px;
+  border-radius: 5px;
+  -moz-border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+  .title {
+    margin: 0px auto 40px auto;
+    text-align: center;
+    color: #505458;
+  }
+  .remember {
+    margin: 0px 0px 35px 0px;
+  }
+}
+</style>
+
+

+ 93 - 0
.history/src/pages/login/index_20190320163704.vue

@@ -0,0 +1,93 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">系统登录</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button>
+      <el-button
+        type="primary"
+        style="width:48%;"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      this.$api
+        .login(JSON.stringify(userInfo))
+        .then(res => {
+          Cookies.set("token", res.data.token); // 放置token到Cookie
+          sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+// .login-container {
+//   -webkit-border-radius: 5px;
+//   border-radius: 5px;
+//   -moz-border-radius: 5px;
+//   background-clip: padding-box;
+//   margin: 180px auto;
+//   width: 350px;
+//   padding: 35px 35px 15px 35px;
+//   background: #fff;
+//   border: 1px solid #eaeaea;
+//   box-shadow: 0 0 25px #cac6c6;
+//   .title {
+//     margin: 0px auto 40px auto;
+//     text-align: center;
+//     color: #505458;
+//   }
+//   .remember {
+//     margin: 0px 0px 35px 0px;
+//   }
+}
+</style>
+
+

+ 93 - 0
.history/src/pages/login/index_20190320163722.vue

@@ -0,0 +1,93 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">系统登录</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button>
+      <el-button
+        type="primary"
+        style="width:48%;"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      this.$api
+        .login(JSON.stringify(userInfo))
+        .then(res => {
+          Cookies.set("token", res.data.token); // 放置token到Cookie
+          sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+// .login-container {
+//   -webkit-border-radius: 5px;
+//   border-radius: 5px;
+//   -moz-border-radius: 5px;
+//   background-clip: padding-box;
+//   margin: 180px auto;
+//   width: 350px;
+//   padding: 35px 35px 15px 35px;
+//   background: #fff;
+//   border: 1px solid #eaeaea;
+//   box-shadow: 0 0 25px #cac6c6;
+//   .title {
+//     margin: 0px auto 40px auto;
+//     text-align: center;
+//     color: #505458;
+//   }
+//   .remember {
+//     margin: 0px 0px 35px 0px;
+//   }
+// }
+</style>
+
+

+ 93 - 0
.history/src/pages/login/index_20190320164037.vue

@@ -0,0 +1,93 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">系统登录</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button>
+      <el-button
+        type="primary"
+        style="width:48%;"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+// .login-container {
+//   -webkit-border-radius: 5px;
+//   border-radius: 5px;
+//   -moz-border-radius: 5px;
+//   background-clip: padding-box;
+//   margin: 180px auto;
+//   width: 350px;
+//   padding: 35px 35px 15px 35px;
+//   background: #fff;
+//   border: 1px solid #eaeaea;
+//   box-shadow: 0 0 25px #cac6c6;
+//   .title {
+//     margin: 0px auto 40px auto;
+//     text-align: center;
+//     color: #505458;
+//   }
+//   .remember {
+//     margin: 0px 0px 35px 0px;
+//   }
+// }
+</style>
+
+

+ 93 - 0
.history/src/pages/login/index_20190320164334.vue

@@ -0,0 +1,93 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">系统登录</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button>
+      <el-button
+        type="primary"
+        style="width:48%;"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.login-container {
+  -webkit-border-radius: 5px;
+  border-radius: 5px;
+  -moz-border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+  .title {
+    margin: 0px auto 40px auto;
+    text-align: center;
+    color: #505458;
+  }
+  .remember {
+    margin: 0px 0px 35px 0px;
+  }
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320164347.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">系统登录</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button>
+      <el-button
+        type="primary"
+        style="width:48%;"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+  .title {
+    margin: 0px auto 40px auto;
+    text-align: center;
+    color: #505458;
+  }
+  .remember {
+    margin: 0px 0px 35px 0px;
+  }
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320164412.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">系统登录</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button>
+      <el-button
+        type="primary"
+        style="width:48%;"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320164508.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">系统登录</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320164527.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">系统登录</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 auto;"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320164641.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        <!-- style="width:48%;margin:0 auto;" -->
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 90 - 0
.history/src/pages/login/index_20190320164644.vue

@@ -0,0 +1,90 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320164710.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 50%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320164722.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      // this.$fetch
+      //   .login(JSON.stringify(userInfo))
+      //   .then(res => {
+      //     Cookies.set("token", res.data.token); // 放置token到Cookie
+      //     sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+      //     this.$router.push("/"); // 登录成功,跳转到主页
+      //   })
+      //   .catch(function(res) {
+      //     alert(res);
+      //   });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320164733.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      this.$fetch
+        .login(JSON.stringify(userInfo))
+        .then(res => {
+          Cookies.set("token", res.data.token); // 放置token到Cookie
+          sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320164943.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        account: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        account: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        account: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      this.$post('manageBase/user/login',userInfo)
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320165109.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="account">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.account,
+        password: this.loginForm.password
+      };
+      this.$post('manageBase/user/login',userInfo)
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320165131.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      this.$post('manageBase/user/login',userInfo)
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 91 - 0
.history/src/pages/login/index_20190320165402.vue

@@ -0,0 +1,91 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      this.$post('manageBase/user/login',JSON.parse(userInfo))
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320165609.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      let jUserInfo = JSON.parse(userInfo)
+      this.$post('manageBase/user/login',jUserInfo)
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320165651.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',JSON.parse(userInfo))
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320165749.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',JSON.stringify(userInfo))
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320165838.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        "userName": this.loginForm.userName,
+        "password": this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',JSON.parse(userInfo))
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320165906.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',JSON.stringify(userInfo))
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320165937.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',userInfo)
+        .then(response => {
+          console.log(response)
+          // Cookies.set("token", res.data.token); // 放置token到Cookie
+          // sessionStorage.setItem("user", userInfo.account); // 保存用户到本地会话
+          // this.$router.push("/"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320170429.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',userInfo)
+        .then(response => {
+          console.log(response.data)
+          Cookies.set("token", response.data.token); // 放置token到Cookie
+          sessionStorage.setItem("user", response.data); // 保存用户到本地会话
+          this.$router.push("/team"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320170450.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',userInfo)
+        .then(response => {
+          console.log(response.data)
+          Cookies.set("token", response.data.token); // 放置token到Cookie
+          sessionStorage.setItem("user", response.data); // 保存用户到本地会话
+          this.$router.push("/manage/query"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320171134.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: "admin",
+        password: "123456"
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',userInfo)
+        .then(response => {
+          console.log(response.data)
+          // Cookies.set("token", response.data.token); // 放置token到Cookie
+          sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+          this.$router.push("/manage/query"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 92 - 0
.history/src/pages/login/index_20190320171610.vue

@@ -0,0 +1,92 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem('userName') ? localStorage.getItem('userName') : '',
+        password: localStorage.getItem('password') ? localStorage.getItem('password') : ''
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',userInfo)
+        .then(response => {
+          console.log(response.data)
+          // Cookies.set("token", response.data.token); // 放置token到Cookie
+          sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+          this.$router.push("/manage/query"); // 登录成功,跳转到主页
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 94 - 0
.history/src/pages/login/index_20190320171829.vue

@@ -0,0 +1,94 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem('userName') ? localStorage.getItem('userName') : '',
+        password: localStorage.getItem('password') ? localStorage.getItem('password') : ''
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo)
+      this.$post('manageBase/user/login',userInfo)
+        .then(response => {
+          console.log(response.data)
+          // Cookies.set("token", response.data.token); // 放置token到Cookie
+          sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+          this.$router.push("/manage/query"); // 登录成功,跳转到主页
+          localStorage.setItem('userName',this.loginForm.userName)
+          localStorage.setItem('password',this.loginForm.password)
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 102 - 0
.history/src/pages/login/index_20190320172537.vue

@@ -0,0 +1,102 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem("userName")
+          ? localStorage.getItem("userName")
+          : "",
+        password: localStorage.getItem("password")
+          ? localStorage.getItem("password")
+          : ""
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo);
+      this.$post("manageBase/user/login", userInfo)
+        .then(response => {
+          if (response.code === 200) {
+            console.log(response.data);
+            // Cookies.set("token", response.data.token); // 放置token到Cookie
+            sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+            this.$router.push("/manage/query"); // 登录成功,跳转到主页
+            localStorage.setItem("userName", this.loginForm.userName);
+            localStorage.setItem("password", this.loginForm.password);
+          } else {
+            alert(response);
+          }
+        })
+        .catch(function(res) {
+          alert(response);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 102 - 0
.history/src/pages/login/index_20190320172915.vue

@@ -0,0 +1,102 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem("userName")
+          ? localStorage.getItem("userName")
+          : "",
+        password: localStorage.getItem("password")
+          ? localStorage.getItem("password")
+          : ""
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo);
+      this.$post("manageBase/user/login", userInfo)
+        .then(response => {
+          // if (response.code === 200) {
+            console.log(response.data);
+            // Cookies.set("token", response.data.token); // 放置token到Cookie
+            sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+            this.$router.push("/manage/query"); // 登录成功,跳转到主页
+            localStorage.setItem("userName", this.loginForm.userName);
+            localStorage.setItem("password", this.loginForm.password);
+          // } else {
+          //   alert(response);
+          // }
+        })
+        .catch(function(res) {
+          alert(response);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 100 - 0
.history/src/pages/login/index_20190320172957.vue

@@ -0,0 +1,100 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem("userName")
+          ? localStorage.getItem("userName")
+          : "",
+        password: localStorage.getItem("password")
+          ? localStorage.getItem("password")
+          : ""
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo);
+      this.$post("manageBase/user/login", userInfo)
+        .then(response => {
+          if (response.success) {
+            console.log(response.data);
+            // Cookies.set("token", response.data.token); // 放置token到Cookie
+            sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+            this.$router.push("/manage/query"); // 登录成功,跳转到主页
+            localStorage.setItem("userName", this.loginForm.userName);
+            localStorage.setItem("password", this.loginForm.password);
+          } 
+        })
+        .catch(function(res) {
+          alert(response);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 102 - 0
.history/src/pages/login/index_20190320173113.vue

@@ -0,0 +1,102 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem("userName")
+          ? localStorage.getItem("userName")
+          : "",
+        password: localStorage.getItem("password")
+          ? localStorage.getItem("password")
+          : ""
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo);
+      this.$post("manageBase/user/login", userInfo)
+        .then(response => {
+          if (response.success) {
+            console.log(response.data);
+            // Cookies.set("token", response.data.token); // 放置token到Cookie
+            sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+            this.$router.push("/manage/query"); // 登录成功,跳转到主页
+            localStorage.setItem("userName", this.loginForm.userName);
+            localStorage.setItem("password", this.loginForm.password);
+          } else {
+            alert(response.message)
+          }
+        })
+        .catch(function(res) {
+          alert(response);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 102 - 0
.history/src/pages/login/index_20190320182208.vue

@@ -0,0 +1,102 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem("userName")
+          ? localStorage.getItem("userName")
+          : "",
+        password: localStorage.getItem("password")
+          ? localStorage.getItem("password")
+          : ""
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo);
+      this.$post("manageBase/user/login", userInfo)
+        .then(response => {
+          if (response.success) {
+            console.log(response.data);
+            // Cookies.set("token", response.data.token); // 放置token到Cookie
+            sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+            this.$router.push("/manage/query"); // 登录成功,跳转到主页
+            localStorage.setItem("userName", this.loginForm.userName);
+            localStorage.setItem("password", this.loginForm.password);
+          } else {
+            alert(response.message)
+          }
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 103 - 0
.history/src/pages/login/index_20190321162627.vue

@@ -0,0 +1,103 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem("userName")
+          ? localStorage.getItem("userName")
+          : "",
+        password: localStorage.getItem("password")
+          ? localStorage.getItem("password")
+          : ""
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo);
+      this.$post("manageBase/user/login", userInfo)
+        .then(response => {
+          if (response.success) {
+            console.log(response.data);
+            // Cookies.set("token", response.data.token); // 放置token到Cookie
+            sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+            this.$router.push("/manage/query"); // 登录成功,跳转到主页
+            localStorage.setItem("userName", this.loginForm.userName);
+            localStorage.setItem("password", this.loginForm.password);
+            localStorage.setItem("nickName", this.loginForm.nickName);
+          } else {
+            alert(response.message)
+          }
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 103 - 0
.history/src/pages/login/index_20190321163212.vue

@@ -0,0 +1,103 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem("userName")
+          ? localStorage.getItem("userName")
+          : "",
+        password: localStorage.getItem("password")
+          ? localStorage.getItem("password")
+          : ""
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo);
+      this.$post("manageBase/user/login", userInfo)
+        .then(response => {
+          if (response.success) {
+            console.log(response.data);
+            // Cookies.set("token", response.data.token); // 放置token到Cookie
+            sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+            this.$router.push("/manage/query"); // 登录成功,跳转到主页
+            localStorage.setItem("userName", this.loginForm.userName);
+            localStorage.setItem("password", this.loginForm.password);
+            localStorage.setItem("nickName", tresponse.data.nickName);
+          } else {
+            alert(response.message)
+          }
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 103 - 0
.history/src/pages/login/index_20190321163254.vue

@@ -0,0 +1,103 @@
+<template>
+  <el-form
+    :model="loginForm"
+    :rules="fieldRules"
+    ref="loginForm"
+    label-position="left"
+    label-width="0px"
+    class="demo-ruleForm login-container"
+  >
+    <h3 class="title">义方经营数据管理系统</h3>
+    <el-form-item prop="userName">
+      <el-input type="text" v-model="loginForm.userName" auto-complete="off" placeholder="账号"></el-input>
+    </el-form-item>
+    <el-form-item prop="password">
+      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
+    </el-form-item>
+    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
+    <el-form-item style="width:100%;">
+      <!-- <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button> -->
+      <el-button
+        type="primary"
+        style="width:48%;margin:0 0 0 25%"
+        @click.native.prevent="login"
+        :loading="logining"
+      >登 录</el-button>
+    </el-form-item>
+  </el-form>
+</template>
+<script>
+// import Cookies from "js-cookie";
+export default {
+  name: "Login",
+  data() {
+    return {
+      logining: false,
+      loginForm: {
+        userName: localStorage.getItem("userName")
+          ? localStorage.getItem("userName")
+          : "",
+        password: localStorage.getItem("password")
+          ? localStorage.getItem("password")
+          : ""
+      },
+      fieldRules: {
+        userName: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }]
+      },
+      checked: true
+    };
+  },
+  methods: {
+    login() {
+      let userInfo = {
+        userName: this.loginForm.userName,
+        password: this.loginForm.password
+      };
+      console.log(userInfo);
+      this.$post("manageBase/user/login", userInfo)
+        .then(response => {
+          if (response.success) {
+            console.log(response.data);
+            // Cookies.set("token", response.data.token); // 放置token到Cookie
+            sessionStorage.setItem("uid", response.data.id); // 保存用户到本地会话
+            this.$router.push("/manage/query"); // 登录成功,跳转到主页
+            localStorage.setItem("userName", this.loginForm.userName);
+            localStorage.setItem("password", this.loginForm.password);
+            localStorage.setItem("nickName", response.data.nickName);
+          } else {
+            alert(response.message)
+          }
+        })
+        .catch(function(res) {
+          alert(res);
+        });
+    },
+    reset() {
+      this.$refs.loginForm.resetFields();
+    }
+  }
+};
+</script>
+<style scoped>
+.login-container {
+  border-radius: 5px;
+  background-clip: padding-box;
+  margin: 180px auto;
+  width: 350px;
+  padding: 35px 35px 15px 35px;
+  background: #fff;
+  border: 1px solid #eaeaea;
+  box-shadow: 0 0 25px #cac6c6;
+}
+.title {
+  margin: 0px auto 40px auto;
+  text-align: center;
+  color: #505458;
+}
+.remember {
+  margin: 0px 0px 35px 0px;
+}
+</style>
+
+

+ 349 - 0
.history/src/pages/manage/cost_20190320101455.vue

@@ -0,0 +1,349 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="成本管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('COST')">增加成本</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无'  }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无'  }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column>-->
+        <el-table-column label="成本类型" prop="costType.name"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="接收日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+        { required: true, message: '编码不能为空'}, 
+        // { type: 'number', message: '排序必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35% " v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+
+        <el-form-item
+          label="成本类型"
+          prop="costTypeId"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.costTypeId" placeholder="请选择类型">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in costTypeSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="接收部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="接收项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "COST"
+    }).then(res => {
+      this.manageData = res.data.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      this.form.toDeptId = row.toDeptId;
+      this.form.toProjectId = row.toProjectId;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "COST"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "COST"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+  /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 349 - 0
.history/src/pages/manage/cost_20190321141143.vue

@@ -0,0 +1,349 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="成本管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('COST')">增加成本</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无'  }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无'  }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column>-->
+        <el-table-column label="成本类型" prop="costType.name"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="接收日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+        { required: true, message: '编码不能为空'}, 
+        // { type: 'number', message: '排序必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35% " v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+
+        <el-form-item
+          label="成本类型"
+          prop="costTypeId"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.costTypeId" placeholder="请选择类型">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in costTypeSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="接收部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="接收项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "COST"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      this.form.toDeptId = row.toDeptId;
+      this.form.toProjectId = row.toProjectId;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "COST"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "COST"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+  /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 349 - 0
.history/src/pages/manage/cost_20190321152759.vue

@@ -0,0 +1,349 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="成本管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('COST')">增加成本</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无'  }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无'  }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column>-->
+        <el-table-column label="成本类型" prop="costType.name"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="接收日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+        { required: true, message: '编码不能为空'}, 
+        // { type: 'number', message: '排序必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35% " v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+
+        <el-form-item
+          label="成本类型"
+          prop="costTypeId"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.costTypeId" placeholder="请选择类型">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in costTypeSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="接收部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="接收项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "COST"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department ? row.department.id: '';
+      this.form.projectId =row.project ? row.project.id : '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      this.form.toDeptId = row.toDeptId;
+      this.form.toProjectId = row.toProjectId;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "COST"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "COST"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+  /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 355 - 0
.history/src/pages/manage/cost_20190321164633.vue

@@ -0,0 +1,355 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="成本管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('COST')">增加成本</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无'  }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无'  }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column>-->
+        <el-table-column label="成本类型" prop="costType.name"></el-table-column>
+        <el-table-column label="发生时间" sortable :formatter="dateFormat" prop="happenTime"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="接收日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+        { required: true, message: '编码不能为空'}, 
+        // { type: 'number', message: '排序必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35% " v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+
+        <el-form-item
+          label="成本类型"
+          prop="costTypeId"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.costTypeId" placeholder="请选择类型">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in costTypeSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="接收部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="接收项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+import {formatTime} from '../../utils/common';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "COST"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department ? row.department.id: '';
+      this.form.projectId =row.project ? row.project.id : '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      this.form.toDeptId = row.toDeptId;
+      this.form.toProjectId = row.toProjectId;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "COST"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "COST"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    },
+    // 格式化时间
+    dateFormat(row, column) {
+      return formatTime(row.happenTime)
+    },
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+  /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 364 - 0
.history/src/pages/manage/index_20190320101455.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data.data;
+      console.log(res.data.data)
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 365 - 0
.history/src/pages/manage/index_20190320103057.vue

@@ -0,0 +1,365 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data.data;
+      console.log(res.data.data)
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row)
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 364 - 0
.history/src/pages/manage/index_20190320103231.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data.data;
+      console.log(res.data.data)
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 364 - 0
.history/src/pages/manage/index_20190321115216.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(response => {
+      this.productSelectData = response.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data.data;
+      console.log(res.data.data)
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 365 - 0
.history/src/pages/manage/index_20190321115227.vue

@@ -0,0 +1,365 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(response => {
+      console.log(response)
+      this.productSelectData = response.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data.data;
+      console.log(res.data.data)
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 365 - 0
.history/src/pages/manage/index_20190321115251.vue

@@ -0,0 +1,365 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(response => {
+      console.log('1231213123123',response)
+      this.productSelectData = response.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data.data;
+      console.log(res.data.data)
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 365 - 0
.history/src/pages/manage/index_20190321115324.vue

@@ -0,0 +1,365 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      console.log('1231213123123',res)
+      this.manageData = res.data.data;
+      console.log(res.data.data)
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 363 - 0
.history/src/pages/manage/index_20190321115341.vue

@@ -0,0 +1,363 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 363 - 0
.history/src/pages/manage/index_20190321115448.vue

@@ -0,0 +1,363 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 363 - 0
.history/src/pages/manage/index_20190321140921.vue

@@ -0,0 +1,363 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id;
+      this.form.projectId = row.project.id;
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 363 - 0
.history/src/pages/manage/index_20190321145037.vue

@@ -0,0 +1,363 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department.id || '';
+      this.form.projectId = row.project.id || '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 364 - 0
.history/src/pages/manage/index_20190321145058.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      debugger;
+      this.type = row.type;
+      this.form.deptId = row.department.id || '';
+      this.form.projectId = row.project.id || '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 364 - 0
.history/src/pages/manage/index_20190321145304.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      debugger;
+      this.type = row.type;
+      this.form.deptId = row.department ? row.department.id: '';
+      this.form.projectId = row.project ? row.project.id : '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 363 - 0
.history/src/pages/manage/index_20190321145323.vue

@@ -0,0 +1,363 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department ? row.department.id: '';
+      this.form.projectId = row.project ? row.project.id : '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 364 - 0
.history/src/pages/manage/index_20190321163918.vue

@@ -0,0 +1,364 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="发生时间" prop="happenTime"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department ? row.department.id: '';
+      this.form.projectId = row.project ? row.project.id : '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 369 - 0
.history/src/pages/manage/index_20190321164411.vue

@@ -0,0 +1,369 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="发生时间" :formatter="dateFormat" prop="happenTime"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+import {formatTime} from '../../utils/common';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department ? row.department.id: '';
+      this.form.projectId = row.project ? row.project.id : '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    },
+    // 格式化时间
+    dateFormat(row, column) {
+      return formatTime(row.happenTime)
+    },
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 369 - 0
.history/src/pages/manage/index_20190321164441.vue

@@ -0,0 +1,369 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="发生时间" sortable :formatter="dateFormat" prop="happenTime"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额" sortable>
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+import {formatTime} from '../../utils/common';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department ? row.department.id: '';
+      this.form.projectId = row.project ? row.project.id : '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    },
+    // 格式化时间
+    dateFormat(row, column) {
+      return formatTime(row.happenTime)
+    },
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 369 - 0
.history/src/pages/manage/index_20190321164538.vue

@@ -0,0 +1,369 @@
+<template>
+  <div class="manage">
+    <!-- <TitleBar propTitle="收入管理" /> -->
+    <div class="add-container">
+      <el-button type="primary" @click="append('INCOME')">增加收入</el-button>
+    </div>
+    <el-card class="right-card">
+      <el-table :data="manageData" style="width: 100%" :row-class-name="tableRowClassName">
+        <!-- <el-table-column type="expand">
+          <template slot-scope="props">
+            <el-form label-position="left" inline class="demo-table-expand">
+              <el-form-item label="备注">
+                <span>{{ props.row.remark ? props.row.remark : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接收部门">
+                <span>{{ props.row.toDepartment.name ? props.row.toDepartment.name : '无' }}</span>
+              </el-form-item>
+              <el-form-item label="接受项目">
+                <span>{{ props.row.toProject.name ? props.row.toProject.name : '无' }}</span>
+              </el-form-item>
+            </el-form>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="发生时间" sortable :formatter="dateFormat" prop="happenTime"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+        <el-table-column label="接受项目" prop="toProject.name"></el-table-column>
+        <el-table-column label="备注" prop="remark"></el-table-column>
+        <el-table-column label="金额">
+          <template slot-scope="props">
+            <span>{{ props.row.type == 'COST' ? '-' + props.row.amount : '+' + props.row.amount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="80">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <!--
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            -->
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
+      <el-form :model="form" ref="form">
+        <el-form-item
+          label="发生时间"
+          prop="happenTime"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '名称不能为空'}]"
+        >
+          <!--<el-input v-model="form.happenTime" autocomplete="off" placeholder="请输入格式2019/00/00"></el-input>-->
+          <el-date-picker v-model="form.happenTime" type="date" placeholder="选择日期"></el-date-picker>
+        </el-form-item>
+        <el-form-item
+          label="金额"
+          prop="amount"
+          :label-width="formLabelWidth"
+          :rules="[
+          { required: true, message: '编码不能为空'}, 
+          // { type: 'float', message: '金额必须为数字值'}
+        ]"
+        >
+          <el-input style="width: 35%;" v-model="form.amount" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="收入状态"
+          prop="incomeStatus"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '状态不能为空'}]"
+        >
+          <el-select v-model="form.incomeStatus" placeholder="请选择状态值">
+            <el-option key label="无" value></el-option>
+            <el-option label="开票/应收" value="INVOICE"></el-option>
+            <el-option label="到账" value="ARRIVAL"></el-option>
+            <el-option label="内部核算" value="INTERNAL"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+          <el-select v-model="form.productId" placeholder="请选择产品">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in productSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+          <el-select v-model="form.projectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+          <el-select v-model="form.toDeptId" placeholder="请选择部门">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+          <el-select v-model="form.toProjectId" placeholder="请选择项目">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in projectSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+          <el-select v-model="form.deptId" placeholder="请选择部门" ref="select" @change="getName">
+            <el-option key label="无" value></el-option>
+            <el-option
+              v-for="item in teamSelectData"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="添加备注" prop="remark" :label-width="formLabelWidth">
+          <el-input type="textarea" :rows="2" v-model="form.remark" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="resetForm('form')">取 消</el-button>
+        <el-button type="primary" @click="submitForm('form')">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from '../layout/titleBar/TitleBar.vue';
+import {formatTime} from '../../utils/common';
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      form: {
+        deptId: "",
+        projectId: "",
+        costTypeId: "",
+        companyId: "",
+        companyType: "",
+        happenTime: "",
+        incomeStatus: "",
+        productId: "",
+        toProjectId: "",
+        remark: "",
+        amount: "",
+        toDeptId: "",
+        deptName: "",
+        code: "",
+        name: "",
+        status: "NORMAL",
+        sort: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 编辑
+    handleEdit(index, row) {
+      console.log(row);
+      //回显赋值
+      this.type = row.type;
+      this.form.deptId = row.department ? row.department.id: '';
+      this.form.projectId = row.project ? row.project.id : '';
+      this.form.code = row.code;
+      this.form.happenTime = row.happenTime;
+      this.form.incomeStatus = row.incomeStatus;
+      this.form.productId = row.productId;
+      this.form.remark = row.remark;
+      this.form.amount = row.amount;
+      this.form.name = row.name;
+      // this.form.status = row.status;
+      this.form.sort = row.sort;
+      this.form.costTypeId = row.costTypeId;
+      this.form.companyId = row.companyId;
+      this.form.companyType = row.companyType;
+      this.id = row.id;
+      this.dialogFormVisible = true;
+      this.addFlag = false;
+    },
+    // 提交新增
+    submitForm(formName) {
+      //验证表单
+      this.$refs[formName].validate((valid, value) => {
+        if (valid) {
+          this.form.happenTime = new Date(this.form.happenTime) * 1;
+          this.form.type = this.type;
+          if (this.addFlag) {
+            addManage(this.form).then(res => {
+              console.log(res);
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          } else {
+            this.form.id = this.id;
+            setManage(this.form).then(res => {
+              //获取经营列表
+              getManageList({
+                type: "INCOME"
+              }).then(res => {
+                this.manageData = res.data;
+              });
+              this.$refs[formName].resetFields();
+            });
+          }
+          this.dialogFormVisible = false;
+        } else {
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.dialogFormVisible = false;
+    },
+    // 格式化时间
+    dateFormat(row, column) {
+      return formatTime(row.happenTime)
+    },
+  }
+};
+</script>
+
+<style scope>
+.manage {
+  padding: 20px;
+   /* padding-top: 0; */
+  box-sizing: border-box;
+}
+.add-container {
+  float: right;
+  margin-bottom: 20px;
+}
+.right-card {
+  width: 100%;
+  margin: 0 auto;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+.demo-table-expand label {
+  width: 90px;
+  color: #99a9bf;
+}
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+  width: 50%;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>
+

+ 229 - 0
.history/src/pages/manage/query_20190320103231.vue

@@ -0,0 +1,229 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :inline="true" :model="form" ref="form" class="marginTop"  :row-class-name="tableRowClassName">
+      <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+        <el-select v-model="form.productId" placeholder="请选择产品">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in productSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+        <el-select v-model="form.projectId" placeholder="请选择项目">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in projectSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+        <el-select v-model="form.toDeptId" placeholder="请选择部门">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in teamSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+        <el-select v-model="form.toProjectId" placeholder="请选择项目">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in projectSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+        <el-select v-model="form.deptId" placeholder="请选择部门" ref="select">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in teamSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group v-model="form.type" placeholder="请选择类别" size="medium">
+          <el-radio border label="ICOME">收入</el-radio>
+          <el-radio border label="COST">费用</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="状态" :label-width="formLabelWidth">
+        <el-radio-group v-model="form.incomeStatus" placeholder="请选择状态值" size="medium">
+          <el-radio border label="INVOICE">开票/应收</el-radio>
+          <el-radio border label="ARRIVAL">到账</el-radio>
+          <el-radio border label="INTERNAL">内部核算</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table :data="searchResult" style="width: 100%;margin-top:50px;">
+      <el-table-column fixed prop="happenTime" :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column fixed prop="deptName" label="部门"></el-table-column>
+      <el-table-column label="类型">
+        <template slot-scope="props">
+          <span>{{ props.row.type == 'INCOME' ? '收入' : 成本/费用 }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="product.name" label="产品"></el-table-column>
+      <el-table-column prop="amount" label="金额"></el-table-column>
+      <el-table-column label="状态">
+        <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="project.name" label="发生人/部门/单位"></el-table-column>
+    </el-table>
+  </div>
+</template>
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from "../layout/titleBar/TitleBar.vue";
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data.data;
+      console.log(res.data.data);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    onSubmit() {
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data;
+      });
+    },
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 格式化时间
+    dateFormat(row, column) {
+      console.log(row.happenTime);
+      let date = new Date(row.happenTime);
+      let Y = date.getFullYear() + "-";
+      let M =
+        (date.getMonth() + 1 < 10
+          ? "0" + (date.getMonth() + 1)
+          : date.getMonth() + 1) + "-";
+      let D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return Y + M + D;
+      // return new Date(row.happenTime);
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>

+ 228 - 0
.history/src/pages/manage/query_20190320103236.vue

@@ -0,0 +1,228 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :inline="true" :model="form" ref="form" class="marginTop"  :row-class-name="tableRowClassName">
+      <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+        <el-select v-model="form.productId" placeholder="请选择产品">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in productSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+        <el-select v-model="form.projectId" placeholder="请选择项目">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in projectSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+        <el-select v-model="form.toDeptId" placeholder="请选择部门">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in teamSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+        <el-select v-model="form.toProjectId" placeholder="请选择项目">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in projectSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+        <el-select v-model="form.deptId" placeholder="请选择部门" ref="select">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in teamSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group v-model="form.type" placeholder="请选择类别" size="medium">
+          <el-radio border label="ICOME">收入</el-radio>
+          <el-radio border label="COST">费用</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="状态" :label-width="formLabelWidth">
+        <el-radio-group v-model="form.incomeStatus" placeholder="请选择状态值" size="medium">
+          <el-radio border label="INVOICE">开票/应收</el-radio>
+          <el-radio border label="ARRIVAL">到账</el-radio>
+          <el-radio border label="INTERNAL">内部核算</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table :data="searchResult" style="width: 100%;margin-top:50px;">
+      <el-table-column fixed prop="happenTime" :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column fixed prop="deptName" label="部门"></el-table-column>
+      <el-table-column label="类型">
+        <template slot-scope="props">
+          <span>{{ props.row.type == 'INCOME' ? '收入' : 成本/费用 }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="product.name" label="产品"></el-table-column>
+      <el-table-column prop="amount" label="金额"></el-table-column>
+      <el-table-column label="状态">
+        <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="project.name" label="发生人/部门/单位"></el-table-column>
+    </el-table>
+  </div>
+</template>
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from "../layout/titleBar/TitleBar.vue";
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data.data;
+      console.log(res.data.data);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    onSubmit() {
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data;
+      });
+    },
+    tableRowClassName({ row, rowIndex }) {
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 格式化时间
+    dateFormat(row, column) {
+      let date = new Date(row.happenTime);
+      let Y = date.getFullYear() + "-";
+      let M =
+        (date.getMonth() + 1 < 10
+          ? "0" + (date.getMonth() + 1)
+          : date.getMonth() + 1) + "-";
+      let D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return Y + M + D;
+      // return new Date(row.happenTime);
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row {
+  color: green;
+}
+
+.el-table .income-row {
+  color: red;
+}
+</style>

+ 229 - 0
.history/src/pages/manage/query_20190320103403.vue

@@ -0,0 +1,229 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :inline="true" :model="form" ref="form" class="marginTop"  :row-class-name="tableRowClassName">
+      <el-form-item label="归属产品" prop="productId" :label-width="formLabelWidth">
+        <el-select v-model="form.productId" placeholder="请选择产品">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in productSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="归属项目" prop="projectId" :label-width="formLabelWidth">
+        <el-select v-model="form.projectId" placeholder="请选择项目">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in projectSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="来源部门" prop="toDeptId" :label-width="formLabelWidth">
+        <el-select v-model="form.toDeptId" placeholder="请选择部门">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in teamSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="来源项目" prop="toProjectId" :label-width="formLabelWidth">
+        <el-select v-model="form.toProjectId" placeholder="请选择项目">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in projectSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="归属部门" prop="deptId" :label-width="formLabelWidth">
+        <el-select v-model="form.deptId" placeholder="请选择部门" ref="select">
+          <el-option key label="不选" value></el-option>
+          <el-option
+            v-for="item in teamSelectData"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group v-model="form.type" placeholder="请选择类别" size="medium">
+          <el-radio border label="ICOME">收入</el-radio>
+          <el-radio border label="COST">费用</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="状态" :label-width="formLabelWidth">
+        <el-radio-group v-model="form.incomeStatus" placeholder="请选择状态值" size="medium">
+          <el-radio border label="INVOICE">开票/应收</el-radio>
+          <el-radio border label="ARRIVAL">到账</el-radio>
+          <el-radio border label="INTERNAL">内部核算</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table :data="searchResult" style="width: 100%;margin-top:50px;">
+      <el-table-column fixed prop="happenTime" :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column fixed prop="deptName" label="部门"></el-table-column>
+      <el-table-column label="类型">
+        <template slot-scope="props">
+          <span>{{ props.row.type == 'INCOME' ? '收入' : 成本/费用 }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="product.name" label="产品"></el-table-column>
+      <el-table-column prop="amount" label="金额"></el-table-column>
+      <el-table-column label="状态">
+        <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="project.name" label="发生人/部门/单位"></el-table-column>
+    </el-table>
+  </div>
+</template>
+<script>
+import {
+  getTeamSelect,
+  getProjectSelect,
+  getProductSelect,
+  getCostTeamSelect,
+  getCostTypeSelect,
+  addManage,
+  getManageList,
+  setManage
+} from "@/api/manageApi";
+import TitleBar from "../layout/titleBar/TitleBar.vue";
+export default {
+  components: {
+    TitleBar
+  },
+  data() {
+    return {
+      type: "",
+      dialogFormVisible: false,
+      addFlag: false,
+      id: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: ""
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: []
+    };
+  },
+  created() {
+    // 获取部门下拉框
+    getTeamSelect().then(res => {
+      this.teamSelectData = res.data.data;
+    });
+    // 获取项目下拉框
+    getProjectSelect().then(res => {
+      this.projectSelectData = res.data.data;
+    });
+    //获取产品下拉框
+    getProductSelect().then(res => {
+      this.productSelectData = res.data.data;
+    });
+    //获取经营列表
+    getManageList({
+      type: "INCOME"
+    }).then(res => {
+      this.manageData = res.data.data;
+      console.log(res.data.data);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data.data;
+    });
+  },
+  methods: {
+    onSubmit() {
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data;
+      });
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row)
+      if (row.type === "COST") {
+        return "cost-row";
+      } else {
+        return "income-row";
+      }
+      return "";
+    },
+    //获取部门名称
+    getName(val) {
+      let obj = {};
+      obj = this.teamSelectData.find(item => {
+        return item.id === val;
+      });
+      let getName = "";
+      this.form.deptName = obj.name;
+    },
+    // 添加
+    append(type) {
+      this.type = type;
+      this.dialogFormVisible = true;
+      this.addFlag = true;
+    },
+    // 格式化时间
+    dateFormat(row, column) {
+      let date = new Date(row.happenTime);
+      let Y = date.getFullYear() + "-";
+      let M =
+        (date.getMonth() + 1 < 10
+          ? "0" + (date.getMonth() + 1)
+          : date.getMonth() + 1) + "-";
+      let D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return Y + M + D;
+      // return new Date(row.happenTime);
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.cost-row {
+  color: green;
+}
+
+.income-row {
+  color: red;
+}
+</style>

+ 0 - 0
.history/src/pages/manage/query_20190320103443.vue


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است