sunlupeng před 1 rokem
rodič
revize
c3481a55ce

+ 4 - 0
.env.dev

@@ -5,8 +5,12 @@ ENV = 'development'
 VUE_APP_TITLE = 爱思系统
 
 # 爱思系统/开发环境
+# 赵培清
 # VUE_APP_BASE_API = 'http://192.168.100.213:48080'
+# 王东坡
 VUE_APP_BASE_API = 'http://192.168.100.64:48081'
+# 测试
+# VUE_APP_BASE_API = 'http://47.103.79.143:48081'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 17 - 0
src/api/oa/expense.js

@@ -1,5 +1,22 @@
 import request from '@/utils/request'
 
+// 报销类型信息列表
+export function typeList(query) {
+  return request({
+    url: '/expense/type/list',
+    method: 'get',
+    params: query
+  })
+}
+//获得报销费用项目信息列表
+export function listByExpenseTypeId(query) {
+  return request({
+    url: '/expense/type/item/list-by-expense-type-id',
+    method: 'get',
+    params: query
+  })
+}
+
 // 创建流程
 export function create(data) {
   return request({

+ 1 - 1
src/mayout/index.vue

@@ -167,7 +167,7 @@ export default {
             
           }
           else {
-            joinTenant({ tenantId: this.form.tenantId }).then(response => {
+            joinTenant({ corpId: this.form.tenantId }).then(response => {
               this.$modal.msgSuccess("加入成功");
               this.loading = false;
               this.joinOrCreateVisible = false;

+ 12 - 2
src/views/oa/expense/DataList.vue

@@ -21,7 +21,7 @@
       </el-form-item>
       <el-form-item label="报销类型" prop="expenseTypeId">
         <el-select v-model="queryParams.expenseTypeId" placeholder="请选择" style="width: 250px">
-          <el-option v-for="item in posOptions" :key="item.value" :label="item.label" :value="item.value">
+          <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
           </el-option>
         </el-select>
       </el-form-item>
@@ -87,7 +87,7 @@
 </template>
 
 <script>
-import { getListData, exportList } from "@/api/oa/expense"
+import { typeList,getListData, exportList } from "@/api/oa/expense"
 import detail from "./detail.vue";
 import edit from "./edit.vue";
 import Treeselect from "@riophae/vue-treeselect";
@@ -104,6 +104,7 @@ export default {
   data() {
     return {
       detailLoading: false,
+      typeList:[],
       posOptions: [],
       id: '',
       // 遮罩层
@@ -137,8 +138,17 @@ export default {
   created() {
     this.getList();
     this.getListDept();
+    this.getTypeList();
   },
   methods: {
+    // 报销类型信息列表
+    getTypeList(){
+      typeList().then(
+        response => {
+          this.typeList = response.data;
+        }
+      );
+    },
     /** 查询部门列表 */
     getListDept() {
       listDept().then(response => {

+ 1 - 1
src/views/oa/expense/detail.vue

@@ -57,7 +57,7 @@
           <div class="field-name">领用清单</div>
         </div> -->
         <el-table border :header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }"
-          :data="form.oaExpenseObj" ref="table" style="width: 100%">
+          :data="form.oaExpenseObjs" ref="table" style="width: 100%">
           <el-table-column label="费用项目" prop="expenseItemName" width="300"/>
           <el-table-column label="金额(元)" prop="money" />
           <el-table-column label="开始日期" prop="startDate" width="200" />

+ 50 - 30
src/views/oa/expense/edit.vue

@@ -14,9 +14,9 @@
         <el-input v-model="form.employeePhone" disabled></el-input>
       </el-form-item>
       <el-form-item label="报销类型" prop="expenseTypeId">
-        <el-select v-model="form.expenseTypeId" placeholder="请选择" style="width: 100%;">
-          <el-option v-for="item in posOptions" :key="item.value" :label="item.label"
-            :value="item.value">
+        <el-select v-model="form.expenseTypeId" placeholder="请选择" style="width: 100%;" @change="getListByExpenseTypeId()">
+          <el-option v-for="item in typeList" :key="item.id" :label="item.name"
+            :value="item.id">
           </el-option>
         </el-select>
       </el-form-item>
@@ -28,17 +28,17 @@
       <el-button style="margin-bottom: 10px;" type="success" size="small" @click="addRow">新增</el-button>
       <!--表格里面嵌套表单-->
       <el-table border :header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }"
-        :data="form.oaExpenseObj" ref="table" style="width: 100%">
+        :data="form.oaExpenseObjs" ref="table" style="width: 100%">
 
        
 
         <el-table-column label="费用项目" width="300">
           <template slot-scope="scope">
-            <el-form-item  :prop="'oaExpenseObj.' + scope.$index + '.expenseItemId'"
+            <el-form-item  :prop="'oaExpenseObjs.' + scope.$index + '.expenseItemId'"
               :rules="{ required: true, message: '费用项目不能为空', trigger: 'blur' }">
-              <el-select v-model="form.oaExpenseObj[scope.$index].expenseItemId" placeholder="请选择费用项目" style="width: 100%;" size="small">
-                <el-option v-for="item in posOptions" :key="item.value" :label="item.label"
-                  :value="item.value">
+              <el-select v-model="form.oaExpenseObjs[scope.$index].expenseItemId" placeholder="请选择费用项目" style="width: 100%;" size="small">
+                <el-option v-for="item in listByExpenseType" :key="item.id" :label="item.name"
+                  :value="item.id">
                 </el-option>
               </el-select>
             </el-form-item>
@@ -46,18 +46,18 @@
         </el-table-column>
         <el-table-column label="金额(元)" width="200">
           <template slot-scope="scope">
-            <el-form-item  :prop="'oaExpenseObj.' + scope.$index + '.money'"
+            <el-form-item  :prop="'oaExpenseObjs.' + scope.$index + '.money'"
               :rules="{ required: true, message: '金额不能为空', trigger: 'blur' }">
-              <el-input v-model="form.oaExpenseObj[scope.$index].money" autocomplete="off" size="small"
+              <el-input v-model="form.oaExpenseObjs[scope.$index].money" autocomplete="off" size="small"
                 placeholder="金额" oninput="value=value.match(/\d+\.?\d{0,2}/,'')"  @input="changeMoney(scope.$index)"></el-input>
             </el-form-item>
           </template>
         </el-table-column>
         <el-table-column label="开始日期" width="200">
           <template slot-scope="scope">
-            <el-form-item  :prop="'oaExpenseObj.' + scope.$index + '.startDate'"
+            <el-form-item  :prop="'oaExpenseObjs.' + scope.$index + '.startDate'"
               :rules="{ required: true, message: '开始日期不能为空', trigger: 'blur' }">
-              <el-date-picker value-format="yyyy-MM-dd" v-model="form.oaExpenseObj[scope.$index].startDate" type="date" placeholder="选择日期"
+              <el-date-picker value-format="yyyy-MM-dd" v-model="form.oaExpenseObjs[scope.$index].startDate" type="date" placeholder="选择日期"
                 style="width: 100%;">
               </el-date-picker>
             </el-form-item>
@@ -65,9 +65,9 @@
         </el-table-column>
         <el-table-column label="结束日期" width="200">
           <template slot-scope="scope">
-            <el-form-item  :prop="'oaExpenseObj.' + scope.$index + '.endDate'"
+            <el-form-item  :prop="'oaExpenseObjs.' + scope.$index + '.endDate'"
               :rules="{ required: true, message: '结束日期不能为空', trigger: 'blur' }">
-              <el-date-picker value-format="yyyy-MM-dd" v-model="form.oaExpenseObj[scope.$index].endDate" type="date" placeholder="选择日期"
+              <el-date-picker value-format="yyyy-MM-dd" v-model="form.oaExpenseObjs[scope.$index].endDate" type="date" placeholder="选择日期"
                 style="width: 100%;">
               </el-date-picker>
             </el-form-item>
@@ -75,16 +75,16 @@
         </el-table-column>
         <el-table-column label="说明" width="500">
           <template slot-scope="scope">
-            <el-form-item  :prop="'oaExpenseObj.' + scope.$index + '.remarks'"
+            <el-form-item  :prop="'oaExpenseObjs.' + scope.$index + '.remarks'"
               :rules="{ required: true, message: '说明不能为空', trigger: 'blur' }">
-              <el-input maxlength="20" v-model="form.oaExpenseObj[scope.$index].remarks" autocomplete="off" size="small"
+              <el-input maxlength="20" v-model="form.oaExpenseObjs[scope.$index].remarks" autocomplete="off" size="small"
                 placeholder="说明名称"></el-input>
             </el-form-item>
           </template>
         </el-table-column>
         <el-table-column fixed="right" label="操作" width="80">
           <template slot-scope="scope">
-            <el-button :disabled="form.oaExpenseObj.length > 1 ? false : true" style="margin-bottom: 22px;" @click="handleDeleteRow(scope.$index)"
+            <el-button :disabled="form.oaExpenseObjs.length > 1 ? false : true" style="margin-bottom: 22px;" @click="handleDeleteRow(scope.$index)"
               type="text" size="small">删除</el-button>
           </template>
         </el-table-column>
@@ -162,7 +162,7 @@
 </template>
 
 <script>
-import { getDetail, create, reCommit, save, deleteById, closeById } from "@/api/oa/expense"
+import {typeList,listByExpenseTypeId, getDetail, create, reCommit, save, deleteById, closeById } from "@/api/oa/expense"
 import { getDate } from "@/utils/dateUtils";
 import { getUserProfile } from "@/api/system/user";
 import { listDept } from "@/api/system/dept";
@@ -198,7 +198,8 @@ export default {
       fileUrl: process.env.VUE_APP_BASE_API + '/admin-api/infra/file/uploaData',
       // fileUrl: 'http://192.168.100.249:48080/admin-api/infra/file/uploaData',
       // 部门树选项
-      posOptions: [],
+      typeList: [],
+      listByExpenseType: [],
       deptOptions: [],
       nikeNamelist: [],
       form: {
@@ -208,7 +209,7 @@ export default {
         employeePhone: undefined,
         expenseTypeId: undefined,
         expenseMonth: undefined,
-        oaExpenseObj: [],
+        oaExpenseObjs: [],
         totalMoney: undefined,
         fileIdList: undefined,
         remarks: undefined,
@@ -241,7 +242,8 @@ export default {
   },
 
   created() {
-    this.getDeptList();
+    this.getTypeList();
+    // this.getDeptList();
   },
   watch: {
     id: {
@@ -257,11 +259,28 @@ export default {
     }
   },
   methods: {
+    // 报销类型信息列表
+    getTypeList(){
+      typeList().then(
+        response => {
+          this.typeList = response.data;
+        }
+      );
+    },
+    //获得报销费用项目信息列表
+
+    getListByExpenseTypeId(){
+      listByExpenseTypeId({expenseTypeId:this.form.expenseTypeId}).then(
+        response => {
+          this.listByExpenseType = response.data;
+        }
+      );
+    },
     changeMoney(index){
-      if(this.form.oaExpenseObj[index].money){
-        let money = this.form.oaExpenseObj[index].money;
-        this.form.oaExpenseObj[index].money = money;
-        let arr = this.form.oaExpenseObj;
+      if(this.form.oaExpenseObjs[index].money){
+        let money = this.form.oaExpenseObjs[index].money;
+        this.form.oaExpenseObjs[index].money = money;
+        let arr = this.form.oaExpenseObjs;
         this.form.totalMoney = this.sum(arr);
       }
     },
@@ -275,7 +294,7 @@ export default {
   * 新增行
   */
     addRow() {
-      this.form.oaExpenseObj.push({
+      this.form.oaExpenseObjs.push({
         expenseItemId: '',
         money: '',
         startDate: '',
@@ -289,8 +308,8 @@ export default {
      * @param row
      */
     handleDeleteRow(index) {
-      this.form.oaExpenseObj.splice(index, 1);
-      let arr = this.form.oaExpenseObj;
+      this.form.oaExpenseObjs.splice(index, 1);
+      let arr = this.form.oaExpenseObjs;
       this.form.totalMoney = this.sum(arr);
     },
     getDateStar(ms) {
@@ -348,6 +367,9 @@ export default {
       getDetail(val).then(response => {
         this.$parent.$parent.detailLoading = false;
         this.form = response.data;
+        if(response.data.expenseTypeId){
+          this.getListByExpenseTypeId();
+        }
         let files = response.data.fileList;
         if (files) {
           this.files = [];
@@ -363,7 +385,6 @@ export default {
             });
           }
         }
-
         if (response.data.auditUserList) {
           let auditUserList = response.data.auditUserList;
           let peopleList = [];
@@ -379,7 +400,6 @@ export default {
           this.nikeNamelist = [];
         }
         this.tasks = response.data.auditRecordList ? response.data.auditRecordList : [];
-
       });
     },
     /** 查询部门列表 */