|
@@ -276,7 +276,7 @@
|
|
|
icon="el-icon-delete"
|
|
|
size="mini"
|
|
|
:disabled="multiple"
|
|
|
- @click="handleDelete"
|
|
|
+ @click="handleDeleteDetails"
|
|
|
v-hasPermi="['goal_management:annualSaleMergeDetails:remove']"
|
|
|
>删除</el-button>
|
|
|
</el-col>
|
|
@@ -304,22 +304,23 @@
|
|
|
<el-table-column label="十月目标" align="center" prop="octoberGoal" />
|
|
|
<el-table-column label="十一月目标" align="center" prop="novemberGoal" />
|
|
|
<el-table-column label="十二月目标" align="center" prop="decemberGoal" />
|
|
|
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180px">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
|
size="mini"
|
|
|
type="text"
|
|
|
icon="el-icon-edit"
|
|
|
- @click="handleUpdate(scope.row)"
|
|
|
+ @click="handleUpdateDetails(scope.row)"
|
|
|
v-hasPermi="['goal_management:annualSaleMergeDetails:edit']"
|
|
|
>修改</el-button>
|
|
|
<el-button
|
|
|
size="mini"
|
|
|
type="text"
|
|
|
icon="el-icon-delete"
|
|
|
- @click="handleDelete(scope.row)"
|
|
|
+ @click="handleDeleteDetails(scope.row)"
|
|
|
v-hasPermi="['goal_management:annualSaleMergeDetails:remove']"
|
|
|
>删除</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-paperclip" @click="copyDetails(scope.row)">复制</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -439,9 +440,97 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
+
|
|
|
+ <el-row :gutter="10" class="mb8">
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-lollipop"
|
|
|
+ size="mini"
|
|
|
+ @click="annualGoalMergeFromEdit"
|
|
|
+ >合并</el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-plus"
|
|
|
+ size="mini"
|
|
|
+ @click="openDetailsAddDrawer"
|
|
|
+ v-hasPermi="['goal_management:annualSaleMergeDetails:add']"
|
|
|
+ >新增</el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button
|
|
|
+ type="danger"
|
|
|
+ plain
|
|
|
+ icon="el-icon-delete"
|
|
|
+ size="mini"
|
|
|
+ :disabled="multiple"
|
|
|
+ @click="handleDeleteDetails"
|
|
|
+ v-hasPermi="['goal_management:annualSaleMergeDetails:remove']"
|
|
|
+ >删除</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-tabs v-model="activeName">
|
|
|
+ <el-tab-pane label="年销售目标合并明细" name="年销售目标合并明细">
|
|
|
+ <el-table v-loading="loading" :data="annualSaleMergeDetailsList1" @selection-change="handleSelectionChange" size="mini">
|
|
|
+ <el-table-column type="selection" width="55" align="center" />
|
|
|
+ <el-table-column label="销售组织" align="center" prop="saleOrg" />
|
|
|
+ <el-table-column label="销售区域" align="center" prop="saleZone" />
|
|
|
+ <el-table-column label="客户" align="center" prop="custom" />
|
|
|
+ <el-table-column label="负责人" align="center" prop="creator" />
|
|
|
+ <el-table-column label="一级分类" align="center" prop="oneLevelClassify" />
|
|
|
+ <el-table-column label="二级分类" align="center" prop="twoLevelClassify" />
|
|
|
+ <el-table-column label="目标合计" align="center" prop="goalSum" />
|
|
|
+ <el-table-column label="一月目标" align="center" prop="januaryGoal" />
|
|
|
+ <el-table-column label="二月目标" align="center" prop="februaryGoal" />
|
|
|
+ <el-table-column label="三月目标" align="center" prop="marchGoal" />
|
|
|
+ <el-table-column label="四月目标" align="center" prop="aprilGoal" />
|
|
|
+ <el-table-column label="五月目标" align="center" prop="mayGoal" />
|
|
|
+ <el-table-column label="六月目标" align="center" prop="juneGoal" />
|
|
|
+ <el-table-column label="七月目标" align="center" prop="julyGoal" />
|
|
|
+ <el-table-column label="八月目标" align="center" prop="augustGoal" />
|
|
|
+ <el-table-column label="九月目标" align="center" prop="septemberGoal" />
|
|
|
+ <el-table-column label="十月目标" align="center" prop="octoberGoal" />
|
|
|
+ <el-table-column label="十一月目标" align="center" prop="novemberGoal" />
|
|
|
+ <el-table-column label="十二月目标" align="center" prop="decemberGoal" />
|
|
|
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180px">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="handleUpdateDetails(scope.row)"
|
|
|
+ v-hasPermi="['goal_management:annualSaleMergeDetails:edit']"
|
|
|
+ >修改</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleDeleteDetails(scope.row)"
|
|
|
+ v-hasPermi="['goal_management:annualSaleMergeDetails:remove']"
|
|
|
+ >删除</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-paperclip" @click="copyDetails(scope.row)">复制</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <pagination
|
|
|
+ v-show="totalDetails1>0"
|
|
|
+ :total="totalDetails1"
|
|
|
+ :page.sync="queryDetailsParam1.pageNum"
|
|
|
+ :limit.sync="queryDetailsParam1.pageSize"
|
|
|
+ @pagination="getDetailsListFromEdit"
|
|
|
+ />
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="区域目标汇总(年)" name="区域目标汇总(年)">配置管理</el-tab-pane>
|
|
|
+ <el-tab-pane label="客户目标汇总(年)" name="客户目标汇总(年)">角色管理</el-tab-pane>
|
|
|
+
|
|
|
+ </el-tabs>
|
|
|
</el-drawer>
|
|
|
|
|
|
- <el-drawer title="年销售目标合并--新增" :visible.sync="drawerInnerAdd" :direction="direction" :before-close="handleDrawerClose" :append-to-body="true">
|
|
|
+ <el-drawer title="年销售目标合并--子表部分" :visible.sync="drawerInnerAdd" :direction="direction" :before-close="handleDrawerClose" :append-to-body="true">
|
|
|
<el-form :rules="rulesDetails" :model="formDetails" ref="formDetails" :inline="true" label-width="110px">
|
|
|
<el-form-item label="明细编码" prop="mergeCode">
|
|
|
<el-input v-model="formDetails.mergeCode" placeholder="编码后端自动生成" disabled />
|
|
@@ -517,13 +606,12 @@
|
|
|
<el-input v-model="formDetails.decemberGoal" placeholder="请输入十二月目标" />
|
|
|
</el-form-item>
|
|
|
<el-form-item style="margin-left: 115px">
|
|
|
- <el-button type="primary" icon="el-icon-search" size="mini" @click="submitFormDetails" v-hasPermi="['goal_management:annualSaleMergeDetails:add']">新增</el-button>
|
|
|
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="submitFormDetails">确 认</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</el-drawer>
|
|
|
|
|
|
<TreeRefers ref="tree" :single="true" @doSubmit="selectionsToTreeInput"></TreeRefers>
|
|
|
- <TreeRefers ref="tree" :single="true" @doSubmit="selectionsToTreeInputDetails"></TreeRefers>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -540,7 +628,13 @@ import {
|
|
|
mergeAnnualSaleGoalDetails,
|
|
|
setGoalMergeCodeIsNotNull,
|
|
|
updateAnnualSaleMergeDetails,
|
|
|
- addAnnualSaleMergeDetails
|
|
|
+ addAnnualSaleMergeDetails,
|
|
|
+ getDetailsAfterAdding,
|
|
|
+ delAnnualSaleMergeDetails,
|
|
|
+ getAnnualSaleMergeDetails,
|
|
|
+ copyDetails,
|
|
|
+ getMergeDetailsByCode,
|
|
|
+ annualGoalMergeFromEdit
|
|
|
} from "@/api/business/spd/goal_management/annualSaleMergeDetails";
|
|
|
|
|
|
// 树形参照
|
|
@@ -714,12 +808,35 @@ export default {
|
|
|
},
|
|
|
getDetailsList() {
|
|
|
this.loading = true;
|
|
|
- addAnnualSaleMergeDetails(this.queryDetailsParam1).then(response => {
|
|
|
+ this.queryDetailsParam1.pageNum = 1
|
|
|
+ this.queryDetailsParam1.pageSize = 10
|
|
|
+ this.form.goalTotal = 0
|
|
|
+ getDetailsAfterAdding(this.queryDetailsParam1).then(response => {
|
|
|
+ console.log(response);
|
|
|
this.annualSaleMergeDetailsList1 = response.rows;
|
|
|
this.totalDetails1 = response.total;
|
|
|
this.loading = false;
|
|
|
+ const list = response.rows
|
|
|
+ for (const listElement of list) {
|
|
|
+ this.form.goalTotal = this.form.goalTotal + listElement.goalSum
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
+ getDetailsListFromEdit(code) {
|
|
|
+ this.loading = true;
|
|
|
+ this.queryDetailsParam1.pageNum = 1
|
|
|
+ this.queryDetailsParam1.pageSize = 10
|
|
|
+ this.form.goalTotal = 0
|
|
|
+ getMergeDetailsByCode(this.queryDetailsParam1, code).then(response => {
|
|
|
+ this.annualSaleMergeDetailsList1 = response.rows
|
|
|
+ this.totalDetails1 = response.total
|
|
|
+ this.loading = false;
|
|
|
+ const list = response.rows
|
|
|
+ for (const listElement of list) {
|
|
|
+ this.form.goalTotal = this.form.goalTotal + listElement.goalSum
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
// 取消按钮
|
|
|
cancel() {
|
|
|
this.open = false;
|
|
@@ -796,16 +913,29 @@ export default {
|
|
|
},
|
|
|
/** 新增按钮操作 */
|
|
|
handleAdd() {
|
|
|
+ this.activeName = '年销售目标合并明细'
|
|
|
this.reset();
|
|
|
this.drawerAdd = true;
|
|
|
},
|
|
|
/** 修改按钮操作 */
|
|
|
handleUpdate(row) {
|
|
|
+ this.activeName = '年销售目标合并明细'
|
|
|
this.reset();
|
|
|
const id = row.id || this.ids
|
|
|
getAnnualSaleGoalMerge(id).then(response => {
|
|
|
+ console.log(response);
|
|
|
this.form = response.data;
|
|
|
this.drawerEdit = true;
|
|
|
+ this.getDetailsListFromEdit(this.form.code)
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleUpdateDetails(row) {
|
|
|
+ this.resetDetails();
|
|
|
+ const id = row.id || this.ids
|
|
|
+ getAnnualSaleMergeDetails(id).then(response => {
|
|
|
+ console.log(response);
|
|
|
+ this.formDetails = response.data;
|
|
|
+ this.drawerInnerAdd = true;
|
|
|
});
|
|
|
},
|
|
|
/** 提交按钮 */
|
|
@@ -854,6 +984,7 @@ export default {
|
|
|
this.$modal.msgSuccess("新增成功");
|
|
|
this.drawerAdd = false;
|
|
|
this.getList();
|
|
|
+ this.annualSaleMergeDetailsList1 = []
|
|
|
});
|
|
|
}
|
|
|
this.rules.saleZone = [{required: true, message: '销售区域不能为空', trigger: 'blur'}]
|
|
@@ -866,22 +997,36 @@ export default {
|
|
|
console.log(this.formDetails);
|
|
|
this.$refs["formDetails"].validate(valid => {
|
|
|
if (valid) {
|
|
|
- if (this.formDetails.id != null) {
|
|
|
- updateAnnualSaleMergeDetails(this.formDetails).then(response => {
|
|
|
- this.$modal.msgSuccess("修改成功");
|
|
|
- this.drawerInnerAdd = false;
|
|
|
- this.getDetailsList();
|
|
|
- });
|
|
|
+ if (this.form.id === null && this.form.id === '') {
|
|
|
+ if (this.formDetails.id != null) {
|
|
|
+ updateAnnualSaleMergeDetails(this.formDetails).then(response => {
|
|
|
+ this.$modal.msgSuccess("修改成功");
|
|
|
+ this.drawerInnerAdd = false;
|
|
|
+ this.getDetailsList();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ addAnnualSaleMergeDetails(this.formDetails).then(response => {
|
|
|
+ this.$modal.msgSuccess("新增成功");
|
|
|
+ this.drawerInnerAdd = false;
|
|
|
+ this.getDetailsList();
|
|
|
+ });
|
|
|
+ }
|
|
|
} else {
|
|
|
- addAnnualSaleMergeDetails(this.formDetails).then(response => {
|
|
|
- this.$modal.msgSuccess("新增成功");
|
|
|
- this.drawerInnerAdd = false;
|
|
|
- this.getDetailsList();
|
|
|
- });
|
|
|
+ if (this.formDetails.id != null) {
|
|
|
+ updateAnnualSaleMergeDetails(this.formDetails).then(response => {
|
|
|
+ this.$modal.msgSuccess("修改成功");
|
|
|
+ this.drawerInnerAdd = false;
|
|
|
+ this.getDetailsListFromEdit(this.form.code);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.formDetails.mergeCode = this.form.code
|
|
|
+ addAnnualSaleMergeDetails(this.formDetails).then(response => {
|
|
|
+ this.$modal.msgSuccess("新增成功");
|
|
|
+ this.drawerInnerAdd = false;
|
|
|
+ this.getDetailsListFromEdit(this.form.code);
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
- this.rules.saleZone = [{required: true, message: '销售区域不能为空', trigger: 'blur'}]
|
|
|
- this.rules.oneLevelClassify = [{required: true, message: '一级分类不能为空', trigger: 'blur'}]
|
|
|
- this.rules.twoLevelClassify = [{required: true, message: '二级分类不能为空', trigger: 'blur'}]
|
|
|
}
|
|
|
});
|
|
|
},
|
|
@@ -895,6 +1040,19 @@ export default {
|
|
|
this.$modal.msgSuccess("删除成功");
|
|
|
}).catch(() => {});
|
|
|
},
|
|
|
+ handleDeleteDetails(row) {
|
|
|
+ const ids = row.id || this.ids;
|
|
|
+ this.$modal.confirm('是否确认删除年销售目标合并编号为"' + ids + '"的数据项?').then(function() {
|
|
|
+ return delAnnualSaleMergeDetails(ids);
|
|
|
+ }).then(() => {
|
|
|
+ if (this.form.id === null || this.form.id === '') {
|
|
|
+ this.getDetailsList();
|
|
|
+ } else {
|
|
|
+ this.getDetailsListFromEdit(this.form.code)
|
|
|
+ }
|
|
|
+ this.$modal.msgSuccess("删除成功");
|
|
|
+ }).catch(() => {});
|
|
|
+ },
|
|
|
/** 导出按钮操作 */
|
|
|
handleExport() {
|
|
|
this.download('goal_management/annualSaleGoalMerge/export', {
|
|
@@ -905,9 +1063,13 @@ export default {
|
|
|
handleClose(done) {
|
|
|
this.$confirm('确认关闭?').then(_ => {
|
|
|
done();
|
|
|
+ this.annualSaleMergeDetailsList1 = []
|
|
|
this.reset()
|
|
|
this.getList()
|
|
|
- this.setGoalMergeCodeIsNotNull()
|
|
|
+ if (this.annualSaleMergeDetailsList1.length !== 0) {
|
|
|
+ this.setGoalMergeCodeIsNotNull()
|
|
|
+ this.annualSaleMergeDetailsList1 = []
|
|
|
+ }
|
|
|
}).catch(_ => {})
|
|
|
},
|
|
|
handleDrawerClose(done) {
|
|
@@ -955,29 +1117,17 @@ export default {
|
|
|
}
|
|
|
this.form.oneLevelClassify = selection.name
|
|
|
this.form.oneLevelClassifyCode = selection.code
|
|
|
+ this.formDetails.oneLevelClassify = selection.name
|
|
|
} else if (this.referCondition.title === '二级物料分类') {
|
|
|
if (selection.code.length !== 4) {
|
|
|
return this.$message.error('请在二级物料分类中选择数据')
|
|
|
}
|
|
|
this.form.twoLevelClassify = selection.name
|
|
|
this.form.twoLevelClassifyCode = selection.code
|
|
|
- }
|
|
|
- },
|
|
|
- selectionsToTreeInputDetails(selection) {
|
|
|
- this.classList.push(selection)
|
|
|
- if (this.referCondition.title === '一级物料分类') {
|
|
|
- if (selection.code.length !== 1) {
|
|
|
- return this.$message.error('请在一级物料分类中选择数据')
|
|
|
- }
|
|
|
- this.formDetails.oneLevelClassify = selection.name
|
|
|
- } else if (this.referCondition.title === '二级物料分类') {
|
|
|
- if (selection.code.length !== 4) {
|
|
|
- return this.$message.error('请在二级物料分类中选择数据')
|
|
|
- }
|
|
|
this.formDetails.twoLevelClassify = selection.name
|
|
|
}
|
|
|
},
|
|
|
- // 根据目标分类合并数据
|
|
|
+ // 在新增页根据目标分类合并数据
|
|
|
annualGoalMerge() {
|
|
|
if (this.activeName !== '年销售目标合并明细') {
|
|
|
return this.$message.info(this.activeName + '不支持新增、合并、删除操作')
|
|
@@ -1009,7 +1159,7 @@ export default {
|
|
|
this.loading = false
|
|
|
const list = response.rows
|
|
|
for (const listElement of list) {
|
|
|
- this.form.goalTotal = this.form.goalTotal + listElement.totalGoal
|
|
|
+ this.form.goalTotal = this.form.goalTotal + listElement.goalSum
|
|
|
}
|
|
|
})
|
|
|
},
|
|
@@ -1017,13 +1167,61 @@ export default {
|
|
|
setGoalMergeCodeIsNotNull() {
|
|
|
setGoalMergeCodeIsNotNull().then(response => {
|
|
|
console.log(response);
|
|
|
- this.annualSaleMergeDetailsList1 = []
|
|
|
})
|
|
|
},
|
|
|
// 打开新增细节抽屉
|
|
|
openDetailsAddDrawer() {
|
|
|
this.resetDetails()
|
|
|
this.drawerInnerAdd = !this.drawerInnerAdd
|
|
|
+ },
|
|
|
+ // 复制单据
|
|
|
+ copyDetails(row) {
|
|
|
+ copyDetails(row).then(response => {
|
|
|
+ console.log(response);
|
|
|
+ this.$message.success('复制成功')
|
|
|
+ if (this.form.id === null || this.form.id === '') {
|
|
|
+ this.getDetailsList()
|
|
|
+ } else {
|
|
|
+ this.getDetailsListFromEdit(this.form.code)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 在编辑页中合并数据
|
|
|
+ annualGoalMergeFromEdit() {
|
|
|
+ if (this.activeName !== '年销售目标合并明细') {
|
|
|
+ return this.$message.info(this.activeName + '不支持新增、合并、删除操作')
|
|
|
+ }
|
|
|
+ this.queryDetailsParam1.goalCategory = this.form.goalCategory
|
|
|
+ if (this.queryDetailsParam1.goalCategory === null || this.queryDetailsParam1.goalCategory === '') {
|
|
|
+ return this.$message.info('请在主表输入“目标分类”')
|
|
|
+ } else if (this.queryDetailsParam1.goalCategory === '销售区域') {
|
|
|
+ this.queryDetailsParam1.condition = this.form.saleZone
|
|
|
+ if (this.queryDetailsParam1.condition === null || this.queryDetailsParam1.condition === '') {
|
|
|
+ return this.$message.info('请在主表输入“销售区域”')
|
|
|
+ }
|
|
|
+ } else if (this.queryDetailsParam1.goalCategory === '一级分类') {
|
|
|
+ this.queryDetailsParam1.condition = this.form.oneLevelClassify
|
|
|
+ if (this.queryDetailsParam1.condition === null || this.queryDetailsParam1.condition === '') {
|
|
|
+ return this.$message.info('请在主表输入“一级分类”')
|
|
|
+ }
|
|
|
+ } else if (this.queryDetailsParam1.goalCategory === '二级分类') {
|
|
|
+ this.queryDetailsParam1.condition = this.form.twoLevelClassify
|
|
|
+ if (this.queryDetailsParam1.condition === null || this.queryDetailsParam1.condition === '') {
|
|
|
+ return this.$message.info('请在主表输入“二级分类”')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.loading = true
|
|
|
+ const code = this.form.code
|
|
|
+ annualGoalMergeFromEdit(this.queryDetailsParam1, code).then(response => {
|
|
|
+ console.log(response);
|
|
|
+ this.annualSaleMergeDetailsList1 = response.rows
|
|
|
+ this.totalDetails1 = response.total
|
|
|
+ this.loading = false
|
|
|
+ const list = response.rows
|
|
|
+ for (const listElement of list) {
|
|
|
+ this.form.goalTotal = this.form.goalTotal + listElement.goalSum
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
};
|