瀏覽代碼

报销类别及项目修改显示调整

sangwenwei 6 月之前
父節點
當前提交
a345a01c5a

+ 55 - 0
src/api/jy/JyReimbursementApprovalTypeService.js

@@ -0,0 +1,55 @@
+import request from '@/utils/httpRequest';
+import { PUBLIC_MODULES_PATH as prefix } from "../AppPath";
+
+export default class JyReimbursementApprovalTypeService {
+  list (param) {
+    return request({
+      url: prefix + '/jyReimbursementApproval/type/list',
+      method: 'get',
+      params: param
+    })
+  }
+  bxList (param) {
+    return request({
+      url: prefix + '/jyReimbursementApproval/type/bxList',
+      method: 'get',
+      params: param
+    })
+  }
+  cgList (param) {
+    return request({
+      url: prefix + '/jyReimbursementApproval/type/cgList',
+      method: 'get',
+      params: param
+    })
+  }
+  save (param) {
+    return request({
+      url: prefix + '/jyReimbursementApproval/type/save',
+      method: 'post',
+      data: param
+    })
+  }
+  findById (id) {
+    return request({
+      url: prefix + '/jyReimbursementApproval/type/findById',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+  remove (id) {
+    return request({
+      url: prefix + '/jyReimbursementApproval/type/deleteById',
+      method: 'get',
+      params: {id: id}
+    })
+  }
+
+findReimbursementTypeSingleSelectById (typeId) {
+	return request({
+		url: prefix +'/jyReimbursementApproval/type/findReimbursementTypeSingleSelectById',
+		method: 'get',
+		params: {typeId: typeId}
+	})
+}
+}

+ 2 - 1
src/views/jy/project/ProjectEdit.vue

@@ -485,7 +485,8 @@
 			waitForEach().then(() => {
 				this.inputForm.contractId = row.id // 合同id
 				this.inputForm.contractName = row.name // 合同名称
-				this.inputForm.clientName = row.clientName // 委托方名称
+				this.inputForm.primaryLinkman = row.primaryLinkman // 委托方名称
+				this.inputForm.contractNo = row.no // 合同金额
 				this.inputForm.contractType = row.contractType // 合同类型(小类)
 				this.inputForm.contractTypeFirst = row.contractTypeFirst // 合同类型(大类)
 				const wait = function () {

+ 1 - 1
src/views/jy/reimbursement/InfoForm.vue

@@ -449,7 +449,7 @@
 	import ReimbursementApprovalTypeService from '@/api/cw/reimbursementApproval/ReimbursementApprovalTypeService'
 	import UpLoadComponent from '@/views/common/UpLoadComponent'
 	import XEUtils from 'xe-utils'
-	import CwReimbursementTypePullForm from './CwReimbursementTypePullForm'
+	import CwReimbursementTypePullForm from '@/views/common/JyReimbursementTypePullForm'
 	import UserPullForm from '@/views/finance/invoice/UserPullForm'
 	import CommonApi from '@/api/cw/common/CommonApi'
 	import BorrowByUserIdForm from './BorrowByUserIdForm'

+ 2 - 2
src/views/jy/reimbursement/ReimbursementForm.vue

@@ -444,10 +444,10 @@
 <script>
 
 	import ReimbursementService from '@/api/jy/ReimbursementService'
-	import ReimbursementApprovalTypeService from '@/api/cw/reimbursementApproval/ReimbursementApprovalTypeService'
+	import ReimbursementApprovalTypeService from '@/api/pubmodules/JyReimbursementApprovalTypeService'
 	import UpLoadComponent from '@/views/common/UpLoadComponent'
 	import XEUtils from 'xe-utils'
-	import CwReimbursementTypePullForm from './CwReimbursementTypePullForm'
+	import CwReimbursementTypePullForm from '@/views/common/JyReimbursementTypePullForm'
 	import UserPullForm from '@/views/finance/invoice/UserPullForm'
 	import CommonApi from '@/api/cw/common/CommonApi'
 	import BorrowByUserIdForm from './BorrowByUserIdForm'

+ 182 - 0
src/views/jy/reimbursement/type/TypeForm.vue

@@ -0,0 +1,182 @@
+<template>
+  <div>
+    <el-dialog
+      :title="title"
+      :close-on-click-modal="false"
+	  draggable
+      width="500px"
+      @close="close"
+      append-to-body
+      @keyup.enter.native="doSubmit"
+      v-model="visible">
+      <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
+               label-width="100px" @submit.native.prevent>
+        <el-row  :gutter="15">
+          <el-col :span="21">
+            <el-form-item label="上级节点" prop="parentId">
+              <SelectTree
+                ref="areaTree"
+                :props="{
+                      value: 'id',             // ID字段名
+                      label: 'name',         // 显示名称
+                      children: 'children'    // 子级字段名
+                    }"
+                url="/public-modules-server/reimbursementApproval/type/treeData?type=3"
+                :value="inputForm.parentId"
+                :clearable="true"
+                :accordion="true"
+                @getValue="(value) => {inputForm.parentId=value}"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="21">
+            <el-form-item label="报销内容名称" prop="name"
+                          :rules="[
+                          {required: true, message:'报销内容名称不能为空', trigger:'blur'}
+                 ]">
+              <el-input v-model="inputForm.name" placeholder="请填写报销内容名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="21">
+            <el-form-item label="关联部门" prop="officeIdList">
+              <el-select v-model="inputForm.officeIdList" style="width:100%" multiple placeholder="请选择">
+                <el-option
+                  v-for="item in officeList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="21">
+            <el-form-item label="序号" prop="no">
+              <el-input v-model="inputForm.no" :disabled="true" show-word-limit></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+		<template #footer>
+			<span class="dialog-footer">
+			  <el-button @click="close()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+		</template>
+
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  // import ReimbursementTypeService from '@/api/sys/ReimbursementTypeService'
+  import ReimbursementApprovalTypeService from '@/api/jy/JyReimbursementApprovalTypeService'
+  import SelectTree from '@/components/treeSelect/treeSelect.vue'
+  import officeService from '@/api/sys/officeService'
+  export default {
+    data () {
+      return {
+        disabled: false,
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        officeList: [],
+        inputForm: {
+          businessType: '',
+          name: '',
+          no: '',
+          parentId: '',
+          officeIdList: []
+        }
+      }
+    },
+    // reimbursementTypeService: null,
+    reimbursementApprovalTypeService: null,
+    created () {
+      // this.reimbursementTypeService = new ReimbursementTypeService()
+      this.reimbursementApprovalTypeService = new ReimbursementApprovalTypeService()
+    },
+    components: {
+      SelectTree
+    },
+    methods: {
+      init (method, id, businessType) {
+        this.method = method
+        this.inputForm = {
+          businessType: '',
+          name: '',
+          no: '',
+          parentId: ''
+        }
+        if (method === 'add') {
+          this.title = `新建报销类型`
+        } else if (method === 'edit') {
+          this.inputForm.id = id
+          this.title = '修改报销类型'
+        } else if (method === 'view') {
+          this.inputForm.id = id
+          this.title = '查看报销类型'
+        } else if (method === 'addChild') {
+          this.title = '添加下级结构'
+          this.inputForm.parentId = id
+          this.inputForm.businessType = businessType
+        }
+        this.visible = true
+        this.loading = false
+        this.$nextTick(() => {
+          if (method === 'edit' || method === 'view') { // 修改或者查看
+            this.loading = true
+            this.$refs.inputForm.resetFields()
+            this.reimbursementApprovalTypeService.findById(this.inputForm.id).then((data) => {
+              this.inputForm = this.recover(this.inputForm, data)
+              this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+              this.loading = false
+            })
+            // this.reimbursementTypeService.findById(this.inputForm.id).then((data) => {
+            //   this.inputForm = this.recover(this.inputForm, data)
+            //   this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+            //   this.loading = false
+            // })
+          }
+          officeService.getSecondLevelData().then((data) => {
+            this.officeList = data
+          })
+        })
+      },
+      // 表单提交
+      doSubmit () {
+        this.$refs['inputForm'].validate((valid) => {
+          if (valid) {
+            this.loading = true
+            this.reimbursementApprovalTypeService.save(this.inputForm).then((data) => {
+              if (data === false) {
+                this.close()
+                this.$message.error('报销内容名重复,请重新填写')
+                this.$emit('refreshDataList')
+                this.loading = false
+              } else {
+                this.close()
+                this.$message.success(data)
+                this.$emit('refreshDataList')
+                this.loading = false
+              }
+            }).catch(() => {
+              this.loading = false
+            })
+            // this.reimbursementTypeService.save(this.inputForm).then((data) => {
+            //   this.close()
+            //   this.$message.success(data)
+            //   this.$emit('refreshDataList')
+            //   this.loading = false
+            // }).catch(() => {
+            //   this.loading = false
+            // })
+          }
+        })
+      },
+      close () {
+        this.$refs.inputForm.resetFields()
+        this.visible = false
+      }
+    }
+  }
+</script>

+ 158 - 0
src/views/jy/reimbursement/type/TypeList.vue

@@ -0,0 +1,158 @@
+<template>
+  <div class="page">
+    <el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+      <!-- 搜索框-->
+      <el-form-item label="报销内容名称" prop="name">
+        <el-input v-model="searchForm.name" placeholder="请输入报销内容名称" clearable></el-input>
+      </el-form-item>
+<!--      <el-form-item label="序号" prop="sort">-->
+<!--        <el-input size="small" v-model="searchForm.sort" placeholder="请输入序号" clearable></el-input>-->
+<!--      </el-form-item>-->
+
+      <el-form-item>
+        <el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+        <el-button @click="resetSearch()"  icon="el-icon-refresh-right">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <div class="jp-table top" style="">
+      <vxe-toolbar :refresh="{query: refreshList}" custom>
+        <template #buttons>
+          <el-button v-if="hasPermission('program:configuration:type:add')" type="primary"  icon="el-icon-plus" @click="add()">新建</el-button>
+<!--          <el-button v-if="hasPermission('program:configuration:type:del')" type="danger"   size="small" icon="el-icon-delete" @click="del()" :disabled="$refs.typeTable && $refs.typeTable.getCheckboxRecords().length === 0" plain>删除</el-button>-->
+        </template>
+      </vxe-toolbar>
+      <div style="height: calc(100% - 50px)">
+        <vxe-table
+          border="inner"
+          auto-resize
+          resizable
+          height="auto"
+          :loading="loading"
+          size="small"
+          ref="typeTable"
+          show-header-overflow
+          show-overflow
+          highlight-hover-row
+          :menu-config="{}"
+          :sort-config="{remote:true}"
+          :data="dataList"
+          :tree-config="{transform: true, rowField: 'id', parentField: 'parentId',expandAll: true}"
+          :checkbox-config="{}">
+          <vxe-column type="seq" width="60" title="序号"></vxe-column>
+          <vxe-column type="checkbox" width="60" ></vxe-column>
+          <vxe-column min-width="200" title="报销内容名称" field="name" align="left" tree-node></vxe-column>
+          <vxe-column min-width="200" title="关联部门" field="relateDepartment" align="center"></vxe-column>
+          <vxe-column min-width="100" title="序号" field="sort" align="center"></vxe-column>
+
+          <vxe-column title="操作" width="230px" fixed="right" align="center">
+            <template  #default="scope">
+              <el-button v-if="hasPermission('reimbursement:type:edit')&&(scope.row.level === '1' || scope.row.level === '2')" text type="primary" @click="addChild(scope.row.id,scope.row.businessType)">添加下级结构</el-button>
+              <el-button v-if="hasPermission('reimbursement:type:edit')" text type="primary" @click="edit(scope.row.id)">修改</el-button>
+              <el-button v-if="hasPermission('reimbursement:type:remove')" text type="primary" @click="del(scope.row.id)">删除</el-button>
+            </template>
+          </vxe-column>
+        </vxe-table>
+
+      </div>
+    </div>
+    <TypeForm  ref="typeForm" @refreshDataList="refreshList"></TypeForm>
+  </div>
+</template>
+
+<script>
+  // import ReimbursementTypeService from '@/api/sys/ReimbursementTypeService'
+  import ReimbursementApprovalTypeService from '@/api/jy/JyReimbursementApprovalTypeService'
+  import TypeForm from './TypeForm'
+  export default {
+    data () {
+      return {
+        searchForm: {
+          name: ''
+        },
+        dataList: [],
+        tablePage: {
+          total: 0,
+          currentPage: 1,
+          pageSize: 10,
+          orders: []
+        },
+        loading: false
+      }
+    },
+    // reimbursementTypeService: null,
+    reimbursementApprovalTypeService: null,
+    created () {
+      // this.reimbursementTypeService = new ReimbursementTypeService()
+      this.reimbursementApprovalTypeService = new ReimbursementApprovalTypeService()
+    },
+    components: {
+      TypeForm
+    },
+    mounted () {
+      this.refreshList()
+    },
+    methods: {
+      // 新增
+      add () {
+        this.$refs.typeForm.init('add', '')
+      },
+      addChild (id, businessType) {
+        this.$refs.typeForm.init('addChild', id, businessType)
+      },
+      // 修改
+      edit (id) {
+        id = id || this.$refs.typeTable.getCheckboxRecords().map(item => {
+          return item.id
+        })[0]
+        this.$refs.typeForm.init('edit', id)
+      },
+      // 查看
+      view (id) {
+        this.$refs.typeForm.init('view', id)
+      },
+      // 获取数据列表
+      refreshList () {
+        this.loading = true
+        this.reimbursementApprovalTypeService.list({...this.searchForm}).then((data) => {
+          this.dataList = data
+          this.loading = false
+          this.$nextTick(() => {
+            this.$refs.typeTable.setAllTreeExpand(true)
+          })
+        })
+        // this.reimbursementTypeService.list({...this.searchForm}).then((data) => {
+        //   this.dataList = data
+        //   this.loading = false
+        // })
+      },
+      // 删除
+      del (id) {
+        let ids = id || this.$refs.typeTable.getCheckboxRecords().map(item => {
+          return item.id
+        }).join(',')
+        this.$confirm(`确定删除所选项吗?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.loading = true
+          this.reimbursementApprovalTypeService.remove(ids).then((data) => {
+            this.$message.success(data)
+            this.refreshList()
+            this.loading = false
+          })
+          // this.reimbursementTypeService.remove(ids).then((data) => {
+          //   this.$message.success(data)
+          //   this.refreshList()
+          //   this.loading = false
+          // })
+        })
+      },
+      resetSearch () {
+        this.$refs.searchForm.resetFields()
+        this.refreshList()
+      }
+    }
+  }
+</script>