|
@@ -4,7 +4,10 @@
|
|
|
v-model="form"
|
|
v-model="form"
|
|
|
:option="option"
|
|
:option="option"
|
|
|
:data="data"
|
|
:data="data"
|
|
|
|
|
+ :table-loading="loading"
|
|
|
ref="crud"
|
|
ref="crud"
|
|
|
|
|
+ @search-change="searchChange"
|
|
|
|
|
+ @search-reset="searchReset"
|
|
|
@row-save="rowSave"
|
|
@row-save="rowSave"
|
|
|
@row-update="rowUpdate"
|
|
@row-update="rowUpdate"
|
|
|
@row-del="rowDel"
|
|
@row-del="rowDel"
|
|
@@ -13,7 +16,7 @@
|
|
|
<i :class="scope.row.icon" style="font-size: 24px"></i>
|
|
<i :class="scope.row.icon" style="font-size: 24px"></i>
|
|
|
</template>
|
|
</template>
|
|
|
<template slot="menu" slot-scope="{ row, size, type }">
|
|
<template slot="menu" slot-scope="{ row, size, type }">
|
|
|
- <el-button :size="size" :type="type" @click="handleAdd(row)">
|
|
|
|
|
|
|
+ <el-button v-if="row.level !== 4" :size="size" :type="type" @click="handleAdd(row)">
|
|
|
新增子级
|
|
新增子级
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</template>
|
|
</template>
|
|
@@ -26,6 +29,7 @@ import { getList } from "@/api/basicResource/subjectSetting";
|
|
|
export default {
|
|
export default {
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ loading: false,
|
|
|
parentId: undefined,
|
|
parentId: undefined,
|
|
|
form: {},
|
|
form: {},
|
|
|
data: [],
|
|
data: [],
|
|
@@ -35,10 +39,11 @@ export default {
|
|
|
tip: false,
|
|
tip: false,
|
|
|
searchShow: true,
|
|
searchShow: true,
|
|
|
searchMenuSpan: 6,
|
|
searchMenuSpan: 6,
|
|
|
|
|
+ index: true,
|
|
|
border: true,
|
|
border: true,
|
|
|
searchLabelWidth: 140,
|
|
searchLabelWidth: 140,
|
|
|
labelWidth: 140,
|
|
labelWidth: 140,
|
|
|
- menuWidth: 290,
|
|
|
|
|
|
|
+ menuWidth: 220,
|
|
|
dialogClickModal: false,
|
|
dialogClickModal: false,
|
|
|
dialogWidth: 500,
|
|
dialogWidth: 500,
|
|
|
dialogType: "drawer",
|
|
dialogType: "drawer",
|
|
@@ -48,6 +53,26 @@ export default {
|
|
|
tree: true,
|
|
tree: true,
|
|
|
column: [
|
|
column: [
|
|
|
{
|
|
{
|
|
|
|
|
+ label: "上级科目",
|
|
|
|
|
+ prop: "parentId",
|
|
|
|
|
+ type: "tree",
|
|
|
|
|
+ dicData: [],
|
|
|
|
|
+ span: 24,
|
|
|
|
|
+ hide: true,
|
|
|
|
|
+ addDisabled: false,
|
|
|
|
|
+ props: {
|
|
|
|
|
+ value: "id",
|
|
|
|
|
+ label: "name"
|
|
|
|
|
+ },
|
|
|
|
|
+ rules: [
|
|
|
|
|
+ {
|
|
|
|
|
+ required: false,
|
|
|
|
|
+ message: "请选择上级菜单",
|
|
|
|
|
+ trigger: "click"
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
label: "科目名称",
|
|
label: "科目名称",
|
|
|
prop: "name",
|
|
prop: "name",
|
|
|
type: "input",
|
|
type: "input",
|
|
@@ -83,7 +108,7 @@ export default {
|
|
|
{
|
|
{
|
|
|
label: "会计科目",
|
|
label: "会计科目",
|
|
|
prop: "accSubject",
|
|
prop: "accSubject",
|
|
|
- type: "input",
|
|
|
|
|
|
|
+ type: "textarea",
|
|
|
span: 24,
|
|
span: 24,
|
|
|
minWidth: 160,
|
|
minWidth: 160,
|
|
|
showOverflowTooltip: true,
|
|
showOverflowTooltip: true,
|
|
@@ -91,7 +116,7 @@ export default {
|
|
|
{
|
|
{
|
|
|
label: "高新研发费用科目",
|
|
label: "高新研发费用科目",
|
|
|
prop: "rdSubject",
|
|
prop: "rdSubject",
|
|
|
- type: "input",
|
|
|
|
|
|
|
+ type: "textarea",
|
|
|
span: 24,
|
|
span: 24,
|
|
|
minWidth: 160,
|
|
minWidth: 160,
|
|
|
showOverflowTooltip: true,
|
|
showOverflowTooltip: true,
|
|
@@ -99,50 +124,83 @@ export default {
|
|
|
{
|
|
{
|
|
|
label: "加计扣除研发费用科目",
|
|
label: "加计扣除研发费用科目",
|
|
|
prop: "adSubject",
|
|
prop: "adSubject",
|
|
|
- type: "input",
|
|
|
|
|
|
|
+ type: "textarea",
|
|
|
span: 24,
|
|
span: 24,
|
|
|
minWidth: 160,
|
|
minWidth: 160,
|
|
|
showOverflowTooltip: true,
|
|
showOverflowTooltip: true,
|
|
|
},
|
|
},
|
|
|
|
|
+ {
|
|
|
|
|
+ label: "辅助核算",
|
|
|
|
|
+ prop: "fzhs",
|
|
|
|
|
+ span: 24,
|
|
|
|
|
+ width: 100,
|
|
|
|
|
+ display: false,
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ },
|
|
|
],
|
|
],
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
mounted() {
|
|
mounted() {
|
|
|
this.loadData();
|
|
this.loadData();
|
|
|
|
|
+ this.getMenuData();
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
- loadData() {
|
|
|
|
|
|
|
+ loopData(data, level, maxLevel) {
|
|
|
|
|
+ level++;
|
|
|
|
|
+ return data.map(item => {
|
|
|
|
|
+ item.level = level;
|
|
|
|
|
+ item.disabled = level === 4 ? true : false;
|
|
|
|
|
+ item.hasChildren = item.children && item.children.length ? false : true;
|
|
|
|
|
+
|
|
|
|
|
+ if (maxLevel) {
|
|
|
|
|
+ if (level >= maxLevel) {
|
|
|
|
|
+ delete item.children;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.loopData(item.children || [], level, maxLevel);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.loopData(item.children || [], level);
|
|
|
|
|
+ }
|
|
|
|
|
+ return item;
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ getMenuData() {
|
|
|
getList().then(res => {
|
|
getList().then(res => {
|
|
|
- console.log(res)
|
|
|
|
|
|
|
+ this.loading = false;
|
|
|
if (res.data.code == 200) {
|
|
if (res.data.code == 200) {
|
|
|
- const loopData = data => {
|
|
|
|
|
- return data.map(item => {
|
|
|
|
|
- item.hasChildren = item.children && item.children.length ? false : true;
|
|
|
|
|
- if (item.children && item.children.length) {
|
|
|
|
|
- loopData(item.children);
|
|
|
|
|
- }
|
|
|
|
|
- return item;
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- this.data = loopData(res.data.data);
|
|
|
|
|
- console.log(this.data)
|
|
|
|
|
- // this.data = res.data.data.map(item => {
|
|
|
|
|
- // item.children = item.children || [];
|
|
|
|
|
- // delete item.hasChildren;
|
|
|
|
|
- // return item;
|
|
|
|
|
- // });
|
|
|
|
|
- // console.log(this.data)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ const column = this.findObject(this.option.column, "parentId");
|
|
|
|
|
+ column.dicData = this.loopData(JSON.parse(JSON.stringify(res.data.data)), 0, 3);
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
|
|
+ loadData(params) {
|
|
|
|
|
+ this.loading = true;
|
|
|
|
|
+ getList(params).then(res => {
|
|
|
|
|
+ this.loading = false;
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+
|
|
|
|
|
+ this.data = this.loopData(res.data.data, 0);
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ searchReset() {
|
|
|
|
|
+ this.query = {};
|
|
|
|
|
+ this.parentId = 0;
|
|
|
|
|
+ this.loadData();
|
|
|
|
|
+ },
|
|
|
|
|
+ searchChange(params, done) {
|
|
|
|
|
+ this.query = params;
|
|
|
|
|
+ this.parentId = '';
|
|
|
|
|
+ this.loadData(params);
|
|
|
|
|
+ done();
|
|
|
|
|
+ },
|
|
|
rowDel(row, index, done) {
|
|
rowDel(row, index, done) {
|
|
|
done(row);
|
|
done(row);
|
|
|
},
|
|
},
|
|
|
rowSave(row, done) {
|
|
rowSave(row, done) {
|
|
|
- row.parentId = this.parentId;
|
|
|
|
|
- row.id = new Date().getTime();
|
|
|
|
|
- this.parentId = undefined;
|
|
|
|
|
|
|
+ this.parentId = row.parentId;
|
|
|
done(row);
|
|
done(row);
|
|
|
},
|
|
},
|
|
|
rowUpdate(row, index, done) {
|
|
rowUpdate(row, index, done) {
|
|
@@ -150,6 +208,10 @@ export default {
|
|
|
},
|
|
},
|
|
|
handleAdd(row) {
|
|
handleAdd(row) {
|
|
|
this.parentId = row.id;
|
|
this.parentId = row.id;
|
|
|
|
|
+ const column = this.findObject(this.option.column, "parentId");
|
|
|
|
|
+ column.value = row.id;
|
|
|
|
|
+ this.form.parentId = row.id;
|
|
|
|
|
+ column.addDisabled = true;
|
|
|
this.$refs.crud.rowAdd();
|
|
this.$refs.crud.rowAdd();
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|