Rorschach hace 6 años
padre
commit
eacf7c5b6b
Se han modificado 56 ficheros con 20485 adiciones y 10 borrados
  1. 368 0
      .history/src/pages/manage/cost_20190325100545.vue
  2. 372 0
      .history/src/pages/manage/cost_20190325100856.vue
  3. 372 0
      .history/src/pages/manage/cost_20190325100904.vue
  4. 372 0
      .history/src/pages/manage/cost_20190325101012.vue
  5. 380 0
      .history/src/pages/manage/cost_20190325101952.vue
  6. 380 0
      .history/src/pages/manage/cost_20190325102253.vue
  7. 380 0
      .history/src/pages/manage/cost_20190325102531.vue
  8. 381 0
      .history/src/pages/manage/cost_20190325102935.vue
  9. 381 0
      .history/src/pages/manage/cost_20190325103005.vue
  10. 381 0
      .history/src/pages/manage/cost_20190325103052.vue
  11. 382 0
      .history/src/pages/manage/cost_20190325103125.vue
  12. 388 0
      .history/src/pages/manage/cost_20190325103502.vue
  13. 388 0
      .history/src/pages/manage/cost_20190325103913.vue
  14. 388 0
      .history/src/pages/manage/cost_20190325104237.vue
  15. 388 0
      .history/src/pages/manage/cost_20190325104257.vue
  16. 388 0
      .history/src/pages/manage/cost_20190325104414.vue
  17. 388 0
      .history/src/pages/manage/cost_20190325104430.vue
  18. 386 0
      .history/src/pages/manage/cost_20190325104547.vue
  19. 386 0
      .history/src/pages/manage/cost_20190325104624.vue
  20. 387 0
      .history/src/pages/manage/cost_20190325104719.vue
  21. 387 0
      .history/src/pages/manage/cost_20190325104823.vue
  22. 387 0
      .history/src/pages/manage/cost_20190325105538.vue
  23. 387 0
      .history/src/pages/manage/cost_20190325113024.vue
  24. 387 0
      .history/src/pages/manage/cost_20190325113220.vue
  25. 387 0
      .history/src/pages/manage/cost_20190325113303.vue
  26. 387 0
      .history/src/pages/manage/cost_20190325113346.vue
  27. 387 0
      .history/src/pages/manage/cost_20190325113433.vue
  28. 387 0
      .history/src/pages/manage/cost_20190325113511.vue
  29. 403 0
      .history/src/pages/manage/index_20190325105029.vue
  30. 403 0
      .history/src/pages/manage/index_20190325105057.vue
  31. 403 0
      .history/src/pages/manage/index_20190325105538.vue
  32. 403 0
      .history/src/pages/manage/index_20190325113555.vue
  33. 393 0
      .history/src/pages/manage/query_20190325105224.vue
  34. 400 0
      .history/src/pages/manage/query_20190325105409.vue
  35. 401 0
      .history/src/pages/manage/query_20190325105538.vue
  36. 401 0
      .history/src/pages/manage/query_20190325105626.vue
  37. 402 0
      .history/src/pages/manage/query_20190325105714.vue
  38. 402 0
      .history/src/pages/manage/query_20190325105740.vue
  39. 413 0
      .history/src/pages/manage/query_20190325110044.vue
  40. 413 0
      .history/src/pages/manage/query_20190325110232.vue
  41. 407 0
      .history/src/pages/manage/query_20190325111555.vue
  42. 407 0
      .history/src/pages/manage/query_20190325111640.vue
  43. 416 0
      .history/src/pages/manage/query_20190325111826.vue
  44. 417 0
      .history/src/pages/manage/query_20190325112111.vue
  45. 417 0
      .history/src/pages/manage/query_20190325112145.vue
  46. 416 0
      .history/src/pages/manage/query_20190325112150.vue
  47. 416 0
      .history/src/pages/manage/query_20190325112203.vue
  48. 416 0
      .history/src/pages/manage/query_20190325112207.vue
  49. 416 0
      .history/src/pages/manage/query_20190325112226.vue
  50. 416 0
      .history/src/pages/manage/query_20190325113915.vue
  51. 418 0
      .history/src/pages/manage/query_20190325114156.vue
  52. 135 0
      .history/src/utils/http_20190325112350.js
  53. 135 0
      .history/src/utils/http_20190325114028.js
  54. 24 5
      src/pages/manage/cost.vue
  55. 25 2
      src/pages/manage/index.vue
  56. 35 3
      src/pages/manage/query.vue

+ 368 - 0
.history/src/pages/manage/cost_20190325100545.vue

@@ -0,0 +1,368 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background layout="prev, pager, next" :total="totalSize"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 1,
+      totalSize: 2,
+      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",
+      pageNo: 1,
+      pageSize: 500
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    //获取单位下拉
+    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",
+                pageNo: 1,
+                pageSize: 500
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 372 - 0
.history/src/pages/manage/cost_20190325100856.vue

@@ -0,0 +1,372 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="totalSize"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 1,
+      totalSize: 2,
+      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",
+      pageNo: 1,
+      pageSize: 500
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+    },
+    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",
+                pageNo: 1,
+                pageSize: 500
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 372 - 0
.history/src/pages/manage/cost_20190325100904.vue

@@ -0,0 +1,372 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="totalSize"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 2,
+      totalSize: 3,
+      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",
+      pageNo: 1,
+      pageSize: 500
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+    },
+    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",
+                pageNo: 1,
+                pageSize: 500
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 372 - 0
.history/src/pages/manage/cost_20190325101012.vue

@@ -0,0 +1,372 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="123"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 2,
+      totalSize: 3,
+      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",
+      pageNo: 1,
+      pageSize: 500
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+    },
+    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",
+                pageNo: 1,
+                pageSize: 500
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 380 - 0
.history/src/pages/manage/cost_20190325101952.vue

@@ -0,0 +1,380 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="123"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 2,
+      totalSize: 3,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.pageSize = res.data.
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+      getManageList({
+      type: "COST",
+      pageNo: val,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 380 - 0
.history/src/pages/manage/cost_20190325102253.vue

@@ -0,0 +1,380 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="123"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 2,
+      totalSize: 3,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.pageSize = res.data.totalPages;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+      getManageList({
+      type: "COST",
+      pageNo: val,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 380 - 0
.history/src/pages/manage/cost_20190325102531.vue

@@ -0,0 +1,380 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="pageSize"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 2,
+      totalSize: 3,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.pageSize = res.data.totalPages;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+      getManageList({
+      type: "COST",
+      pageNo: val,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 381 - 0
.history/src/pages/manage/cost_20190325102935.vue

@@ -0,0 +1,381 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="pageSize"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 2,
+      totalSize: 3,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages)
+      this.pageSize = res.data.totalPages;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+      getManageList({
+      type: "COST",
+      pageNo: val,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 381 - 0
.history/src/pages/manage/cost_20190325103005.vue

@@ -0,0 +1,381 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="pageSize"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 2,
+      totalSize: '',
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages)
+      this.pageSize = res.data.totalPages;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+      getManageList({
+      type: "COST",
+      pageNo: val,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 381 - 0
.history/src/pages/manage/cost_20190325103052.vue

@@ -0,0 +1,381 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="totalSize"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalSize: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages)
+      this.totalSize = res.data.totalPages;
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+      getManageList({
+      type: "COST",
+      pageNo: val,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 382 - 0
.history/src/pages/manage/cost_20190325103125.vue

@@ -0,0 +1,382 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination background  @current-change="handlePageChange" layout="prev, pager, next" :total="totalSize"></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalSize: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages)
+      this.totalSize = res.data.totalPages;
+      console.log(this.totalSize)
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val){
+      console.log('val',val)
+      getManageList({
+      type: "COST",
+      pageNo: val,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+    });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 388 - 0
.history/src/pages/manage/cost_20190325103502.vue

@@ -0,0 +1,388 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        layout="prev, pager, next"
+        :total="totalSize"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalSize: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages);
+      this.totalSize = res.data.totalPages;
+      console.log(this.totalSize);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      console.log("val", val);
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 388 - 0
.history/src/pages/manage/cost_20190325103913.vue

@@ -0,0 +1,388 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        layout="prev, pager, next"
+        :total="totalSize"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalSize: 10,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages);
+      this.totalSize = res.data.totalPages;
+      console.log(this.totalSize);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      console.log("val", val);
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 388 - 0
.history/src/pages/manage/cost_20190325104237.vue

@@ -0,0 +1,388 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        layout="prev, pager, next"
+        :total="totalSize"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalSize: 123,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages);
+      this.totalSize = res.data.totalPages;
+      console.log(this.totalSize);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      console.log("val", val);
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 388 - 0
.history/src/pages/manage/cost_20190325104257.vue

@@ -0,0 +1,388 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        layout="prev, pager, next"
+        :total="totalSize"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalSize: 123,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages);
+      this.totalSize = parseInt(res.data.totalPages);
+      console.log(this.totalSize);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      console.log("val", val);
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 388 - 0
.history/src/pages/manage/cost_20190325104414.vue

@@ -0,0 +1,388 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        layout="prev, pager, next"
+        :total="totalSize"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalSize: 123,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages);
+      // this.totalSize = parseInt(res.data.totalPages);
+      // console.log(this.totalSize);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      console.log("val", val);
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 388 - 0
.history/src/pages/manage/cost_20190325104430.vue

@@ -0,0 +1,388 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        layout="prev, pager, next"
+        :total="totalSize"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalSize: 15,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      console.log(res.data.totalPages);
+      // this.totalSize = parseInt(res.data.totalPages);
+      // console.log(this.totalSize);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      console.log("val", val);
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 386 - 0
.history/src/pages/manage/cost_20190325104547.vue

@@ -0,0 +1,386 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 15,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      console.log("val", val);
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 386 - 0
.history/src/pages/manage/cost_20190325104624.vue

@@ -0,0 +1,386 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      console.log("val", val);
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 387 - 0
.history/src/pages/manage/cost_20190325104719.vue

@@ -0,0 +1,387 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        page-size= "50"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      console.log("val", val);
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 387 - 0
.history/src/pages/manage/cost_20190325104823.vue

@@ -0,0 +1,387 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        page-size= "50"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 387 - 0
.history/src/pages/manage/cost_20190325105538.vue

@@ -0,0 +1,387 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        page-size= "50"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 387 - 0
.history/src/pages/manage/cost_20190325113024.vue

@@ -0,0 +1,387 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        page-size= 50
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 387 - 0
.history/src/pages/manage/cost_20190325113220.vue

@@ -0,0 +1,387 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        page-size= "pageSize"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: this.pageSize
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: this.pageSize
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: this.totalPages
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 387 - 0
.history/src/pages/manage/cost_20190325113303.vue

@@ -0,0 +1,387 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        page-size= "pageSize"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: "50",
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: this.pageSize
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: this.pageSize
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: this.totalPages
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 387 - 0
.history/src/pages/manage/cost_20190325113346.vue

@@ -0,0 +1,387 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        page-size= "1"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: "50",
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: this.pageSize
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: this.pageSize
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: this.pageSize
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 387 - 0
.history/src/pages/manage/cost_20190325113433.vue

@@ -0,0 +1,387 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        :page-size= "50"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: "50",
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: this.pageSize
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: this.pageSize
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: this.pageSize
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 387 - 0
.history/src/pages/manage/cost_20190325113511.vue

@@ -0,0 +1,387 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="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="toProject.name"></el-table-column>
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+        background
+        @current-change="handlePageChange"
+        :page-size= "50"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
+    </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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 403 - 0
.history/src/pages/manage/index_20190325105029.vue

@@ -0,0 +1,403 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+    <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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+     // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 403 - 0
.history/src/pages/manage/index_20190325105057.vue

@@ -0,0 +1,403 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+    <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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+     // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "INCOME",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalSize = res.data.totalPages;
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 403 - 0
.history/src/pages/manage/index_20190325105538.vue

@@ -0,0 +1,403 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+    <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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+     // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "INCOME",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 403 - 0
.history/src/pages/manage/index_20190325113555.vue

@@ -0,0 +1,403 @@
+<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" border 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="发生日期" sortable :formatter="dateFormat" prop="happenTime"></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="收入状态">
+          <template slot-scope="props">
+            <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="产品" prop="product.name"></el-table-column>
+        <el-table-column label="归属项目" prop="project.name"></el-table-column>
+        <el-table-column label="归属部门" prop="department.name"></el-table-column>
+        <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+
+        <el-table-column label="接收部门" prop="toDepartment.name"></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-pagination
+      background
+      @current-change="handlePageChange"
+      :page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+    <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: ""
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      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",
+      pageNo: 1,
+      pageSize: 50
+    }).then(res => {
+      this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
+    });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+     // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "INCOME",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
+    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",
+                pageNo: 1,
+                pageSize: 50
+              }).then(res => {
+                this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
+              });
+              this.$refs[formName].resetFields();
+              this.$message({
+                message: "添加成功",
+                type: "success"
+              });
+            });
+          } 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>
+

+ 393 - 0
.history/src/pages/manage/query_20190325105224.vue

@@ -0,0 +1,393 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 500
+      },
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    onSubmit() {
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 400 - 0
.history/src/pages/manage/query_20190325105409.vue

@@ -0,0 +1,400 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.onSubmit()
+    },
+    onSubmit() {
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 401 - 0
.history/src/pages/manage/query_20190325105538.vue

@@ -0,0 +1,401 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.onSubmit()
+    },
+    onSubmit() {
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 401 - 0
.history/src/pages/manage/query_20190325105626.vue

@@ -0,0 +1,401 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.onSubmit()
+    },
+    onSubmit() {
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 402 - 0
.history/src/pages/manage/query_20190325105714.vue

@@ -0,0 +1,402 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.onSubmit()
+    },
+    onSubmit() {
+      this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 402 - 0
.history/src/pages/manage/query_20190325105740.vue

@@ -0,0 +1,402 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.onSubmit()
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 413 - 0
.history/src/pages/manage/query_20190325110044.vue

@@ -0,0 +1,413 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    <!-- 收入分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      v-if="tableType === 'INCOME'"
+      :total="totalNumber"
+    ></el-pagination>
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 成本分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      v-if="tableType === 'COST'"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.onSubmit()
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 413 - 0
.history/src/pages/manage/query_20190325110232.vue

@@ -0,0 +1,413 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    <!-- 收入分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      v-if="tableType === 'INCOME'"
+      :total="totalNumber"
+    ></el-pagination>
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 成本分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      layout="prev, pager, next"
+      v-if="tableType === 'COST'"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.onSubmit()
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = this.pageNo;
+      this.form.pageSize = 50
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 407 - 0
.history/src/pages/manage/query_20190325111555.vue

@@ -0,0 +1,407 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 成本分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      :current-page="pageNo"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.onSubmit()
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 407 - 0
.history/src/pages/manage/query_20190325111640.vue

@@ -0,0 +1,407 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      :current-page.sync="pageNo"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.onSubmit()
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 416 - 0
.history/src/pages/manage/query_20190325111826.vue

@@ -0,0 +1,416 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      :current-page.sync="pageNo"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = 1;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 417 - 0
.history/src/pages/manage/query_20190325112111.vue

@@ -0,0 +1,417 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      :current-page.sync="pageNo"
+      v:if="tableType !== ''"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = 1;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 417 - 0
.history/src/pages/manage/query_20190325112145.vue

@@ -0,0 +1,417 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      :current-page.sync="pageNo"
+      style="margin:20px auto 0"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = 1;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 416 - 0
.history/src/pages/manage/query_20190325112150.vue

@@ -0,0 +1,416 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      :current-page.sync="pageNo"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = 1;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 416 - 0
.history/src/pages/manage/query_20190325112203.vue

@@ -0,0 +1,416 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      <!-- :current-page.sync="pageNo" -->
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = 1;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 416 - 0
.history/src/pages/manage/query_20190325112207.vue

@@ -0,0 +1,416 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = 1;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 416 - 0
.history/src/pages/manage/query_20190325112226.vue

@@ -0,0 +1,416 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      page-size="50"
+      :current-page.sync="pageNo"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = 1;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 416 - 0
.history/src/pages/manage/query_20190325113915.vue

@@ -0,0 +1,416 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      :page-size="50"
+      :current-page.sync="pageNo"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = 1;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  background: #f0f9eb;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  background: rgba(248, 181, 172, 0.267);
+  /* color: #f0f9eb; */
+}
+</style>

+ 418 - 0
.history/src/pages/manage/query_20190325114156.vue

@@ -0,0 +1,418 @@
+<template>
+  <div>
+    <!-- <TitleBar propTitle="经营数据查询" /> -->
+    <el-form :model="form" ref="form" class="marginTop">
+      <el-form-item label="类别" :label-width="formLabelWidth">
+        <el-radio-group
+          v-model="form.type"
+          placeholder="请选择类别"
+          size="medium"
+          
+          :rules="[{ required: true, message: '必选'}]"
+          style="width:100%"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="INCOME">收入</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio border style="width:100%;" label="COST">成本</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="时间范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-date-picker placeholder="起始时间" style="width:100%" v-model="form.startTime"></el-date-picker>
+          </el-col>
+          <el-col :span="4">
+            <el-date-picker placeholder="结束时间" style="width:100%" v-model="form.endTime"></el-date-picker>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item label="金额范围" v-if="form.type!==''" :label-width="formLabelWidth">
+        <el-row :gutter="10">
+          <el-col :span="4">
+            <el-input placeholder="起始金额" style="width:100%" v-model="form.minAmount" clearable></el-input>
+          </el-col>
+          <el-col :span="4">
+            <el-input placeholder="结束金额" style="width:100%" v-model="form.maxAmount" clearable></el-input>
+          </el-col>
+        </el-row>
+      </el-form-item>
+      <el-form-item
+        label="成本类型"
+        v-if="form.type==='COST'"
+        prop="costTypeId"
+        style="display:inline-block;"
+        :label-width="formLabelWidth"
+      >
+        <el-select v-model="form.costTypeId" placeholder="请选择支出类型" ref="select">
+          <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="收入状态" v-if="form.type==='INCOME'" :label-width="formLabelWidth">
+        <el-radio-group
+          style="width:100%"
+          v-model="form.incomeStatus"
+          placeholder="请选择状态值"
+          size="medium"
+        >
+          <el-row :gutter="10">
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INVOICE">开票/应收</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="ARRIVAL">到账</el-radio>
+            </el-col>
+            <el-col :span="4">
+              <el-radio style="width:100%;" border label="INTERNAL">内部核算</el-radio>
+            </el-col>
+          </el-row>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item
+        label="归属项目"
+        v-if="form.type!==''"
+        style="display:inline-block;"
+        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="归属产品"
+        v-if="form.type==='INCOME'"
+        prop="productId"
+        style="display:inline-block;"
+        :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="来源项目"
+        style="display:inline-block;"
+        prop="toProjectId"
+        v-if="form.type!==''"
+        :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="toDeptId"
+        style="display:inline-block;"
+        v-if="form.type!==''"
+        :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="归属部门"
+        style="display:inline-block;"
+        prop="deptId"
+        v-if="form.type!==''"
+        :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
+        style="position: absolute; width:23%; display:block; margin:0 auto; left: 0; right: 0;"
+      >
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button type="info" @click="onReset">重置</el-button>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-button type="info" @click="reset">重置</el-button>
+      </el-form-item>-->
+    </el-form>
+    <!-- 查询结果收入表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'INCOME'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="发生日期"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></el-table-column>
+      <el-table-column label="收入状态" prop="incomeStatus" :formatter="incomeTypeFormat">
+        <!-- <template slot-scope="props">
+          <span>{{ props.row.incomeStatus == 'INVOICE' ? '开票/应收' : props.row.incomeStatus == 'ARRIVAL' ? '到账' : '内部核算' }}</span>
+        </template>-->
+      </el-table-column>
+      <el-table-column label="产品" prop="product.name"></el-table-column>
+      <el-table-column label="归属项目" prop="project.name"></el-table-column>
+      <el-table-column label="归属部门" prop="department.name"></el-table-column>
+      <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
+      <el-table-column prop="remark" label="备注"></el-table-column>
+    </el-table>
+    
+    <!-- 查询结果成本表 -->
+    <el-table
+      :data="searchResult"
+      style="width: 100%;margin-top:80px;"
+      :row-class-name="tableRowClassName"
+      show-summary
+      v-if="tableType === 'COST'"
+      border
+    >
+      <el-table-column prop="happenTime" sortable :formatter="dateFormat" label="时间"></el-table-column>
+      <el-table-column prop="amount" sortable label="金额"></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="toProject.name"></el-table-column>
+      <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
+      <el-table-column label="备注" prop="remark"></el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      :page-size="50"
+      :current-page.sync="pageNo"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
+  </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: "",
+      searchResult: [],
+      form: {
+        type: "",
+        productId: "",
+        projectId: "",
+        toDeptId: "",
+        toProjectId: "",
+        deptId: "",
+        incomeStatus: "",
+        status: "NORMAL",
+        costTypeId: "",
+        startTime: "",
+        endTime: "",
+        minAmount: "",
+        maxAmount: "",
+        pageNo: 1,
+        pageSize: 50
+      },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
+      formLabelWidth: "120px",
+      teamSelectData: [],
+      projectSelectData: [],
+      productSelectData: [],
+      costTeamSelectData: [],
+      costTypeSelectData: [],
+      manageData: [],
+      companyData: [],
+      tableType: ""
+    };
+  },
+  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;
+    //   console.log(res.data);
+    // });
+    //获取单位下拉
+    getCostTeamSelect().then(res => {
+      this.costTeamSelectData = res.data;
+    });
+    //获取成本类型下拉
+    getCostTypeSelect().then(res => {
+      this.costTypeSelectData = res.data;
+    });
+  },
+  methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onSubmit() {
+      // this.totalNumber = 0;
+      this.searchResult = [];
+      if (this.form.type === "INCOME") {
+        this.form.costTypeId = "";
+        this.tableType = "INCOME";
+      }
+      if (this.form.type === "COST") {
+        this.form.incomeStatus = "";
+        this.form.productId = "";
+        this.tableType = "COST";
+      }
+      this.form.pageNo = 1;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
+    onReset() {
+      this.form.type = "";
+      this.form.costTypeId = "";
+      this.tableType = "";
+      this.$refs.form.resetFields();
+    },
+    tableRowClassName({ row, rowIndex }) {
+      console.log(row.type);
+      if (row.type === "COST") {
+        return "cost-row-search";
+      } else {
+        return "income-row-search";
+      }
+      // 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) {
+      return formatTime(row.happenTime);
+    },
+    incomeTypeFormat(row) {
+      return row.incomeStatus == "INVOICE"
+        ? "开票/应收"
+        : row.incomeStatus == "ARRIVAL"
+        ? "到账"
+        : "内部核算";
+    },
+    moneyFormat(row) {
+      if (row.type == "COST") {
+        return "-" + row.amount;
+      } else {
+        return row.amount;
+      }
+    }
+  }
+};
+</script>
+
+<style scope>
+.marginTop {
+  margin-top: 20px;
+}
+.el-table .cost-row-search {
+  /* color: green; */
+  /* background: #f0f9eb; */
+  color: green;
+}
+
+.el-table .income-row-search {
+  /* color: red; */
+  /* background: rgba(248, 181, 172, 0.267); */
+  color: red;
+  /* color: #f0f9eb; */
+}
+</style>

+ 135 - 0
.history/src/utils/http_20190325112350.js

@@ -0,0 +1,135 @@
+import axios from 'axios';
+// import Cookies from "js-cookie";
+import {
+    Message
+} from 'element-ui';
+
+axios.defaults.timeout = 5000;
+axios.defaults.baseURL = 'http://whiteboardtest.ai160.com/';
+
+/*** 
+ * 
+ * 复制于 https://www.cnblogs.com/ldlx-mars/p/7908950.html
+ * 
+*/
+
+//http request 拦截器
+axios.interceptors.request.use(
+    config => {
+        // const token = Cookies('token'); //注意使用的时候需要引入cookie方法,推荐js-cookie
+        config.data = JSON.stringify(config.data);
+        console.log(sessionStorage.getItem('uid'))
+        const uid = sessionStorage.getItem('uid') ? sessionStorage.getItem('uid') : '';
+        config.headers = {
+            'Content-Type': 'application/json',
+            'uid': uid,
+        }
+        // if(token){
+        //   config.params = {'X-Token':token}
+        // }
+        return config;
+    },
+    error => {
+        return Promise.reject(err);
+    }
+);
+
+//http response 拦截器 暂时不用
+axios.interceptors.response.use(
+    response => {
+        console.log('response',response)
+        if (response.data.code == 402) {
+            // router.push({
+            //     path: "/login",
+            //     // querry: {
+            //     //     redirect: Router.currentRoute.fullPath
+            //     // } //从哪个页面跳转
+            // })
+            Message.warning({
+                message: '请登录',
+                type: 'warning'
+              });
+            window.location.href = '/manageWeb/'
+        }
+        return response;
+    },
+    error => {
+        return Promise.reject(error)
+    }
+)
+
+/**
+ * 封装get方法
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function fetch(url, params = {}) {
+    return new Promise((resolve, reject) => {
+        axios.get(url, {
+                params: params
+            })
+            .then(response => {
+                resolve(response.data);
+            })
+            .catch(err => {
+                reject(err)
+            })
+    })
+}
+
+/**
+ * 封装post请求
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function post(url, data = {}) {
+    console.log(data)
+    return new Promise((resolve, reject) => {
+        axios.post(url, data)
+            .then(response => {
+                resolve(response.data);
+            }, err => {
+                reject(err)
+            })
+    })
+}
+
+/**
+ * 封装patch请求
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function patch(url, data = {}) {
+    return new Promise((resolve, reject) => {
+        axios.patch(url, data)
+            .then(response => {
+                resolve(response.data);
+            }, err => {
+                reject(err)
+            })
+    })
+}
+
+/**
+ * 封装put请求
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function put(url, data = {}) {
+    return new Promise((resolve, reject) => {
+        axios.put(url, data)
+            .then(response => {
+                resolve(response.data);
+            }, err => {
+                reject(err)
+            })
+    })
+}

+ 135 - 0
.history/src/utils/http_20190325114028.js

@@ -0,0 +1,135 @@
+import axios from 'axios';
+// import Cookies from "js-cookie";
+import {
+    Message
+} from 'element-ui';
+
+axios.defaults.timeout = 5000;
+axios.defaults.baseURL = 'http://manage.ai160.com/';
+
+/*** 
+ * 
+ * 复制于 https://www.cnblogs.com/ldlx-mars/p/7908950.html
+ * 
+*/
+
+//http request 拦截器
+axios.interceptors.request.use(
+    config => {
+        // const token = Cookies('token'); //注意使用的时候需要引入cookie方法,推荐js-cookie
+        config.data = JSON.stringify(config.data);
+        console.log(sessionStorage.getItem('uid'))
+        const uid = sessionStorage.getItem('uid') ? sessionStorage.getItem('uid') : '';
+        config.headers = {
+            'Content-Type': 'application/json',
+            'uid': uid,
+        }
+        // if(token){
+        //   config.params = {'X-Token':token}
+        // }
+        return config;
+    },
+    error => {
+        return Promise.reject(err);
+    }
+);
+
+//http response 拦截器 暂时不用
+axios.interceptors.response.use(
+    response => {
+        console.log('response',response)
+        if (response.data.code == 402) {
+            // router.push({
+            //     path: "/login",
+            //     // querry: {
+            //     //     redirect: Router.currentRoute.fullPath
+            //     // } //从哪个页面跳转
+            // })
+            Message.warning({
+                message: '请登录',
+                type: 'warning'
+              });
+            window.location.href = '/manageWeb/'
+        }
+        return response;
+    },
+    error => {
+        return Promise.reject(error)
+    }
+)
+
+/**
+ * 封装get方法
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function fetch(url, params = {}) {
+    return new Promise((resolve, reject) => {
+        axios.get(url, {
+                params: params
+            })
+            .then(response => {
+                resolve(response.data);
+            })
+            .catch(err => {
+                reject(err)
+            })
+    })
+}
+
+/**
+ * 封装post请求
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function post(url, data = {}) {
+    console.log(data)
+    return new Promise((resolve, reject) => {
+        axios.post(url, data)
+            .then(response => {
+                resolve(response.data);
+            }, err => {
+                reject(err)
+            })
+    })
+}
+
+/**
+ * 封装patch请求
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function patch(url, data = {}) {
+    return new Promise((resolve, reject) => {
+        axios.patch(url, data)
+            .then(response => {
+                resolve(response.data);
+            }, err => {
+                reject(err)
+            })
+    })
+}
+
+/**
+ * 封装put请求
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function put(url, data = {}) {
+    return new Promise((resolve, reject) => {
+        axios.put(url, data)
+            .then(response => {
+                resolve(response.data);
+            }, err => {
+                reject(err)
+            })
+    })
+}

+ 24 - 5
src/pages/manage/cost.vue

@@ -46,7 +46,13 @@
           </template>
         </el-table-column>
       </el-table>
-      <!-- <el-pagination background layout="prev, pager, next" :total="totalSize"></el-pagination> -->
+      <el-pagination
+        background
+        @current-change="handlePageChange"
+        :page-size= "50"
+        layout="prev, pager, next"
+        :total="totalNumber"
+      ></el-pagination>
     </el-card>
     <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
       <el-form :model="form" ref="form">
@@ -187,8 +193,8 @@ export default {
         sort: ""
       },
       pageNo: 1,
-      pageSize: 1,
-      totalSize: 2,
+      pageSize: 50,
+      totalNumber: 0,
       formLabelWidth: "120px",
       teamSelectData: [],
       projectSelectData: [],
@@ -216,9 +222,10 @@ export default {
     getManageList({
       type: "COST",
       pageNo: 1,
-      pageSize: 500
+      pageSize: 50
     }).then(res => {
       this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
     });
     //获取单位下拉
     getCostTeamSelect().then(res => {
@@ -230,6 +237,17 @@ export default {
     });
   },
   methods: {
+    // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "COST",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
     tableRowClassName({ row, rowIndex }) {
       if (row.type === "COST") {
         return "cost-row";
@@ -290,9 +308,10 @@ export default {
               getManageList({
                 type: "COST",
                 pageNo: 1,
-                pageSize: 500
+                pageSize: 50
               }).then(res => {
                 this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
               });
               this.$refs[formName].resetFields();
               this.$message({

+ 25 - 2
src/pages/manage/index.vue

@@ -54,6 +54,13 @@
         </el-table-column>
       </el-table>
     </el-card>
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      :page-size="50"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
     <el-dialog :title="type == 'INCOME' ? '收入' : '成本'" :visible.sync="dialogFormVisible">
       <el-form :model="form" ref="form">
         <el-form-item
@@ -201,6 +208,9 @@ export default {
         status: "NORMAL",
         sort: ""
       },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
       formLabelWidth: "120px",
       teamSelectData: [],
       projectSelectData: [],
@@ -228,9 +238,10 @@ export default {
     getManageList({
       type: "INCOME",
       pageNo: 1,
-      pageSize: 500
+      pageSize: 50
     }).then(res => {
       this.manageData = res.data.content;
+      this.totalNumber = parseInt(res.data.totalElements);
     });
     //获取单位下拉
     getCostTeamSelect().then(res => {
@@ -242,6 +253,17 @@ export default {
     });
   },
   methods: {
+     // 切换页码
+    handlePageChange(val) {
+      getManageList({
+        type: "INCOME",
+        pageNo: val,
+        pageSize: 50
+      }).then(res => {
+        this.manageData = res.data.content;
+        this.totalNumber = parseInt(res.data.totalElements);
+      });
+    },
     tableRowClassName({ row, rowIndex }) {
       if (row.type === "COST") {
         return "cost-row";
@@ -302,9 +324,10 @@ export default {
               getManageList({
                 type: "INCOME",
                 pageNo: 1,
-                pageSize: 500
+                pageSize: 50
               }).then(res => {
                 this.manageData = res.data.content;
+                this.totalSize = res.data.totalPages;
               });
               this.$refs[formName].resetFields();
               this.$message({

+ 35 - 3
src/pages/manage/query.vue

@@ -7,6 +7,7 @@
           v-model="form.type"
           placeholder="请选择类别"
           size="medium"
+          
           :rules="[{ required: true, message: '必选'}]"
           style="width:100%"
         >
@@ -196,6 +197,7 @@
       <el-table-column label="接收项目" prop="toProject.name"></el-table-column>
       <el-table-column prop="remark" label="备注"></el-table-column>
     </el-table>
+    
     <!-- 查询结果成本表 -->
     <el-table
       :data="searchResult"
@@ -214,6 +216,15 @@
       <el-table-column label="接收部门" prop="toDepartment.name"></el-table-column>
       <el-table-column label="备注" prop="remark"></el-table-column>
     </el-table>
+    <!-- 分页 -->
+    <el-pagination
+      background
+      @current-change="handlePageChange"
+      :page-size="50"
+      :current-page.sync="pageNo"
+      layout="prev, pager, next"
+      :total="totalNumber"
+    ></el-pagination>
   </div>
 </template>
 <script>
@@ -255,8 +266,11 @@ export default {
         minAmount: "",
         maxAmount: "",
         pageNo: 1,
-        pageSize: 500
+        pageSize: 50
       },
+      pageNo: 1,
+      pageSize: 50,
+      totalNumber: 0,
       formLabelWidth: "120px",
       teamSelectData: [],
       projectSelectData: [],
@@ -298,7 +312,20 @@ export default {
     });
   },
   methods: {
+    handlePageChange(val) {
+      this.form.pageNo = val;
+      this.$fetch("manageBase/manage", this.form).then(response => {
+        console.log(response);
+        this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
+        if (response.data && response.data.content.length == 0) {
+          this.$message("未找到相应数据");
+        }
+      });
+    },
     onSubmit() {
+      // this.totalNumber = 0;
       this.searchResult = [];
       if (this.form.type === "INCOME") {
         this.form.costTypeId = "";
@@ -309,9 +336,12 @@ export default {
         this.form.productId = "";
         this.tableType = "COST";
       }
+      this.form.pageNo = 1;
       this.$fetch("manageBase/manage", this.form).then(response => {
         console.log(response);
         this.searchResult = response.data.content;
+        this.totalNumber = parseInt(response.data.totalElements);
+        this.pageNo = parseInt(response.data.number) + 1;
         if (response.data && response.data.content.length == 0) {
           this.$message("未找到相应数据");
         }
@@ -375,12 +405,14 @@ export default {
 }
 .el-table .cost-row-search {
   /* color: green; */
-  background: #f0f9eb;
+  /* background: #f0f9eb; */
+  color: green;
 }
 
 .el-table .income-row-search {
   /* color: red; */
-  background: rgba(248, 181, 172, 0.267);
+  /* background: rgba(248, 181, 172, 0.267); */
+  color: red;
   /* color: #f0f9eb; */
 }
 </style>