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