| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480 |
- <template>
- <section>
- <div class="sidebars" style="width: 250px">
- <h2><i class="iconfont firerock-iconcaiwu" style="padding-right: 10px"></i>费用报销模块</h2>
- <el-col :span="12">
- <el-menu
- default-active="1-1"
- class="el-menu-vertical-demo"
- @select="staffs"
- background-color="#ffffff"
- text-color="#666666"
- active-text-color="#20A0FF"
- style="width:100%">
- <el-submenu index="1">
- <template slot="title">
- <i class="el-icon-location"></i>
- <span>员工费用报表</span>
- </template>
- <el-menu-item index="1-1">一般费用填报</el-menu-item>
- <el-menu-item index="1-2">差旅费用填报</el-menu-item>
- <el-menu-item index="1-3">外包费用填报</el-menu-item>
- </el-submenu>
- <!-- <el-menu-item index="2" @select="bills">
- <i class="el-icon-setting"></i>
- <span slot="title">我的报销单据</span>
- </el-menu-item> -->
- </el-menu>
- <el-menu
- default-active="1-1"
- class="el-menu-vertical-demo"
- @select="bills"
- background-color="#ffffff"
- text-color="#666666"
- active-text-color="#20A0FF"
- style="width:100%">
- <el-menu-item index="2" @select="bills">
- <i class="el-icon-setting"></i>
- <span slot="title">我的报销单据</span>
- </el-menu-item>
- </el-menu>
- </el-col>
- </div>
- <!-- 内容主体区域 -->
- <!-- 上面部分 -->
- <div class="staff" style="margin-left: 250px" v-if="!displayTable">
- <!-- 公共 -->
- <div class="public">
- <el-form :model="form" label-width="80px">
- <!-- <el-form :model="form" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> -->
- <!-- 填报人 -->
- <el-form-item label="填报人">
- <el-select v-model="form.region" placeholder="请选择填报人" style="width: 150px">
- <el-option label="区域一" value="shanghai"></el-option>
- <el-option label="区域二" value="beijing"></el-option>
- </el-select>
- </el-form-item>
- <!-- 填报日期 -->
- <el-form-item label="活动时间" style="position: relative;top: 38px;">
- <el-col :span="11">
- <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 200px;"></el-date-picker>
- </el-col>
- </el-form-item>
- <!-- 发票张数 -->
- <el-form-item label="发票张数">
- <el-input v-model="form.name" style="width: 150px"></el-input>
- </el-form-item>
- <!-- 费用类型 -->
- <el-form-item label="费用类型">
- <el-select v-model="form.region" placeholder="请选择费用类型" style="width: 150px">
- <el-option label="一般" value="shanghai"></el-option>
- <el-option label="外包" value="beijing"></el-option>
- <el-option label="差旅" value="beijing"></el-option>
- </el-select>
- </el-form-item>
-
- <!-- 备注 -->
- <el-form-item label="备注" style="display: block; width: 70%; float: left;">
- <el-input type="textarea" v-model="form.desc"></el-input>
- </el-form-item>
- <!-- 总成本 -->
- <div style="float: left; line-height: 55px;margin-left:20px">总成本 1000 元</div>
- </el-form>
- </div>
- <!-- 按钮 -->
- <div class="pu_button">
- <el-button type="primary">新增</el-button>
- <el-button type="success">保存</el-button>
- <el-button type="warning">提交</el-button>
- </div>
- <!-- 表格 -->
- <div class="pu_table">
- <el-table
- :data="tableData"
- border
- style="width: 100%">
- <el-table-column
- prop="date"
- label="项目"
- width="180">
- </el-table-column>
- <el-table-column
- prop="name"
- label="费用日期"
- width="180">
- </el-table-column>
- <el-table-column
- prop="address"
- label="发票种类">
- </el-table-column>
- <el-table-column
- prop="a"
- label="费用金额">
- </el-table-column>
- <el-table-column
- prop="b"
- label="发票号">
- </el-table-column>
- <el-table-column
- prop="c"
- label="备注">
- </el-table-column>
- </el-table>
- </div>
- </div>
- <!-- 下面部分 -->
- <div class="staff" style="margin-left: 250px" v-if="displayTable">
- <div style="padding:10px;">
- <div>
- <el-form label-width="80px" inline>
- <!-- 填报日期 -->
- <el-form-item label="单据编号" >
- <el-input v-model="code" placeholder="单据编号" clearable="true"></el-input>
- </el-form-item>
- <!-- 填报日期 -->
- <el-form-item label="填报日期" >
- <el-date-picker type="date" clearable="true" placeholder="选择日期" value-format="yyyy-MM-dd" v-model="date" style="width: 200px;"></el-date-picker>
- </el-form-item>
- <!-- 费用类型 -->
- <el-form-item label="费用类型">
- <el-select v-model="type" placeholder="请选择费用类型" clearable="true" style="width: 150px">
- <el-option label="一般费用" value="0"></el-option>
- <el-option label="差旅费用" value="1"></el-option>
- <el-option label="外包费用" value="2"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button @click="getList">查找</el-button>
- </el-form-item>
- </el-form>
- </div>
- <el-divider ></el-divider>
- <!--列表-->
- <el-table :data="list" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
- <el-table-column prop="code" label="票据编号" ></el-table-column>
- <el-table-column prop="totalAmount" label="金额" ></el-table-column>
- <el-table-column prop="ownerName" label="填报人" ></el-table-column>
- <el-table-column prop="createDate" label="填报日期" ></el-table-column>
- <el-table-column prop="ticketNum" label="发票张数" ></el-table-column>
- <el-table-column prop="type" label="票据类型" >
- <template slot-scope="scope">
- {{feeType[scope.row.type]}}
- </template>
- </el-table-column>
- <el-table-column prop="remark" label="备注" width="250">
- <template slot-scope="scope">
- <span style="font-size:12px;">{{scope.row.remark}}</span>
- </template>
- </el-table-column>
- <el-table-column label="操作" width="160">
- <template slot-scope="scope">
- <el-button icon="el-icon-view" circle size="mini" @click.stop.native="downloadByA(scope.row)"></el-button>
- <el-button icon="el-icon-edit" circle size="mini" style="margin-left:10px;" @click.stop.native="showEditName(scope.row)"></el-button>
- <el-button icon="el-icon-delete" circle size="mini" style="margin-left:10px;" @click.stop.native="deleteItem(scope.row)"></el-button>
-
- </template>
- </el-table-column>
- </el-table>
- <!--工具条-->
- <el-col :span="24" class="toolbar">
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :page-sizes="[20 , 50 , 80 , 100]"
- :page-size="20"
- layout="total, sizes, prev, pager, next"
- :total="total"
- style="float:right;"
- ></el-pagination>
- </el-col>
- </div>
- </div>
- </section>
- </template>
- <script>
- export default {
- name: "expense",
- components: {},
- props: {},
- data() {
- return {
- feeType:["一般费用","差旅费用","外包费用"],
- listLoading:false,
- tableHeight:0,
- list:[],
- total:0,
- code:null,
- date:null,
- type:null,
- ownerId: null,
- displayTable: false,
- form: {
- name: '',
- region: '',
- date1: '',
- date2: '',
- delivery: false,
- type: [],
- resource: '',
- desc: '',
- kk: ''
- },
- tableData: [{
- date: '测试项目',
- name: '2021-5-18',
- address: '测试项目',
- a: '10000',
- b: '10086',
- c: 'abc'
- },{
- date: '测试项目',
- name: '2021-5-18',
- address: '测试项目',
- a: '10000',
- b: '10086',
- c: 'abc'
- },{
- date: '测试项目',
- name: '2021-5-18',
- address: '测试项目',
- a: '10000',
- b: '10086',
- c: 'abc'
- },{
- date: '测试项目',
- name: '2021-5-18',
- address: '测试项目',
- a: '10000',
- b: '10086',
- c: 'abc'
- },{
- date: '测试项目',
- name: '2021-5-18',
- address: '测试项目',
- a: '10000',
- b: '10086',
- c: 'abc'
- }],
- options: [{
- value: '选项1',
- label: '黄金糕'
- }, {
- value: '选项2',
- label: '双皮奶'
- }, {
- value: '选项3',
- label: '蚵仔煎'
- }, {
- value: '选项4',
- label: '龙须面'
- }, {
- value: '选项5',
- label: '北京烤鸭'
- }],
- addForm:{code:null,companyId:null,createDate:null, ticketNum:0,type:0,remark:null,totalAmount:0,},
- page: 1,
- size:20,
- };
- },
- computed: {},
- watch: {},
- created() {
- let height = window.innerHeight;
- this.tableHeight = height - 195;
- const that = this;
- window.onresize = function temp() {
- that.tableHeight = window.innerHeight - 195;
- };
- },
- mounted() {
- this.getList();
- },
- methods: {
- staffs() { // 控制员工费用报表
- this.displayTable = false;
- },
- bills() { // 控制
- this.displayTable = true
- },
- //获取单据列表
- getList() {
- this.http.post('/expense-sheet/list', {pageIndex: this.page,
- pageSize: this.size,
- code: this.code,
- createDate: this.date,
- ownerId:this.ownerId,
- type:this.type,
- },
- res => {
- if (res.code == "ok") {
- this.list = res.data.records;
- this.total = res.data.total;
- } else {
- this.$message({
- message: res.msg,
- type: "error"
- });
- }
- },
- error => {
- this.$message({
- message: error,
- type: "error"
- });
- });
- },
- //删除单据
- delete(id) {
- this.http.post('/expense-sheet/delete', {id: id},
- res => {
- if (res.code == "ok") {
- this.$message({
- message: '填报成功',
- type: "success"
- });
- } else {
- this.$message({
- message: res.msg,
- type: "error"
- });
- }
- },
- error => {
- this.$message({
- message: error,
- type: "error"
- });
- });
- },
- //创建单据
- add() {
- this.addForm.items = '';//这里要传发票列表的json转string
- this.http.post('/expense-sheet/add', this.addForm,
- res => {
- if (res.code == "ok") {
- this.$message({
- message: '填报成功',
- type: "success"
- });
- } else {
- this.$message({
- message: res.msg,
- type: "error"
- });
- }
- },
- error => {
- this.$message({
- message: error,
- type: "error"
- });
- });
- },
- //获取单据编码
- getNextCode() {
- this.http.post('/expense-sheet/getNextCode', {
- },
- res => {
- if (res.code == "ok") {
- this.addForm.code = res.data;
- } else {
- this.$message({
- message: res.msg,
- type: "error"
- });
- }
- },
- error => {
- this.$message({
- message: error,
- type: "error"
- });
- });
- },
-
- //分页
- handleCurrentChange(val) {
- this.page = val;
- this.getList();
- },
- handleSizeChange(val) {
- this.size = val;
- this.getList();
- },
- deleteItem(item) {
- this.$confirm("确认要删除吗?", "提示", {
- //type: 'warning'
- }).then(() => {
- this.http.post('/expense-sheet/delete', {id:item.id},
- res => {
- if (res.code == "ok") {
- this.getList();
- } else {
- this.$message({
- message: res.msg,
- type: "error"
- });
- }
- },
- error => {
- this.$message({
- message: error,
- type: "error"
- });
- });
- });
- },
- },
- };
- </script>
- <style scoped>
- .sidebars {
- height: 100%;
- position: absolute;
- border-right: 1px solid #E6E6E6;
- }
- .sidebars h2 {
- margin: 0;
- line-height: 45px;
- background: #20A0FF;
- font-weight: normal;
- color: #fff;
- padding-left: 20px;
- }
- .sidebars .el-col-12 {
- width: 100%
- }
- .staff {
- }
- .public {
- height: 185px;
- border-bottom: 1px solid #ddd;
- }
- .public .el-form-item {
- display: inline-block;
- }
- .pu_button {
- margin-top: 20px;
- width: 100%;
- height: 80px;
- background: #F2F2F2;
- padding: 20px 0 0 20px;
- box-sizing: border-box;
- }
- .pu_table {
- margin: 10px 10px 10px 10px;
- }
- /* 我的单据报销凭证 */
- </style>
|