|
@@ -41,6 +41,9 @@
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
|
+ <el-tooltip class="item" effect="dark" :content="showSearch?'隐藏搜索':'显示搜索'" placement="top">
|
|
|
+ <el-button type="warning" :icon="showSearch?'el-icon-caret-top':'el-icon-caret-bottom'" circle @click="showSearch = !showSearch"></el-button>
|
|
|
+ </el-tooltip>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -164,7 +167,6 @@
|
|
|
</el-dropdown-menu>
|
|
|
</el-dropdown>
|
|
|
</el-col>
|
|
|
- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
|
|
|
<el-table v-loading="loading" :data="monthSaleGoalList" @selection-change="handleSelectionChange">
|
|
@@ -309,13 +311,16 @@
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
<div>
|
|
|
- <el-row :gutter="10" class="mb8" style="margin-left: 87%">
|
|
|
+ <el-row :gutter="10" class="mb8" style="margin-left: 80%">
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入明细</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
|
|
|
</el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button type="primary" plain icon="el-icon-edit-outline" size="mini" @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
<el-tabs v-model="activeName">
|
|
|
<el-tab-pane label="月销售目标明细" name="monthSaleGoalDetails">
|
|
@@ -462,6 +467,60 @@
|
|
|
<el-button @click="upload.open = false">取 消</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+ <!-- 批量修改对话框-->
|
|
|
+ <el-dialog title="批量修改" width="30%" :visible.sync="dialogUpdateMore.dialogFormVisible" append-to-body @closed="resetDialogUpdateMore">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="修改项" label-width="100px">
|
|
|
+ <el-select @change="changeDialogData" v-model="dialogUpdateMore.updateName" placeholder="请选择需要批量修改的字段">
|
|
|
+ <el-option v-for="item in dialogUpdateMore.optionList" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="修改值" label-width="100px">
|
|
|
+ <el-popover-select-v2 v-if="dialogUpdateMore.updateName === 1"
|
|
|
+ v-model="dialogUpdateMore.updateData" title="销售组织" valueKey="name"
|
|
|
+ referName="ORG_PARAM"
|
|
|
+ :dataMapping="{updateData: 'name'}"
|
|
|
+ :source.sync="dialogUpdateMore" placeholder="请输入销售组织">
|
|
|
+ </el-popover-select-v2>
|
|
|
+ <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 2"
|
|
|
+ v-model="dialogUpdateMore.updateData" title="销售区域" valueKey="name"
|
|
|
+ referName="MK_SALESAREA_PARAM"
|
|
|
+ :dataMapping="{updateData: 'name'}"
|
|
|
+ :source.sync="dialogUpdateMore" placeholder="请输入销售区域">
|
|
|
+ </el-popover-select-v2>
|
|
|
+ <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 3"
|
|
|
+ v-model="dialogUpdateMore.updateData" title="客户" valueKey="name"
|
|
|
+ referName="CUSTOMER_PARAM"
|
|
|
+ :dataMapping="{updateData: 'name'}"
|
|
|
+ :source.sync="dialogUpdateMore" placeholder="请输入客户">
|
|
|
+ </el-popover-select-v2>
|
|
|
+ <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 4"
|
|
|
+ v-model="dialogUpdateMore.updateData" title="部门" valueKey="name"
|
|
|
+ referName="DEPT_PARAM"
|
|
|
+ :dataMapping="{updateData: 'name'}"
|
|
|
+ :source.sync="dialogUpdateMore" placeholder="请输入部门">
|
|
|
+ </el-popover-select-v2>
|
|
|
+ <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 5"
|
|
|
+ v-model="dialogUpdateMore.updateData" title="制单人" valueKey="name"
|
|
|
+ referName="CONTACTS_PARAM"
|
|
|
+ :dataMapping="{updateData: 'name'}"
|
|
|
+ :source.sync="dialogUpdateMore" placeholder="请输入制单人">
|
|
|
+ </el-popover-select-v2>
|
|
|
+ <el-input v-else-if="dialogUpdateMore.updateName === 6"
|
|
|
+ v-model="dialogUpdateMore.updateData" placeholder="请输入科室"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker v-else-if="dialogUpdateMore.updateName === 7"
|
|
|
+ v-model="dialogUpdateMore.updateData" value-format="yyyy-MM"
|
|
|
+ type="month"
|
|
|
+ placeholder="选择月">
|
|
|
+ </el-date-picker>
|
|
|
+ <el-input v-else placeholder="请输入修改项" disabled></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="dialogUpdateMoreSave">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -623,6 +682,12 @@ export default {
|
|
|
// 上传的地址
|
|
|
url: process.env.VUE_APP_BASE_API + "/goal_management/monthSaleGoal/importData"
|
|
|
},
|
|
|
+ dialogUpdateMore: {
|
|
|
+ updateName: null,
|
|
|
+ dialogFormVisible: false,
|
|
|
+ updateData: null,
|
|
|
+ optionList:[{value: 1, label: '销售组织'}, {value: 2, label: '销售区域'}, {value: 3, label: '客户'}, {value: 4, label: '部门'}, {value: 5, label: '制单人'}, {value: 6, label: '科室'}, {value: 7, label: '月份'}]
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
@@ -742,7 +807,7 @@ export default {
|
|
|
material: null,
|
|
|
department: null,
|
|
|
num: null,
|
|
|
- monthly: null,
|
|
|
+ monthly: new Date().getFullYear().toString() + '-' + (new Date().getMonth() + 1).toString().padStart(2, '0'),
|
|
|
goalValue: 0
|
|
|
}
|
|
|
this.monthSaleGoalDetailsList.push(list)
|
|
@@ -780,7 +845,7 @@ export default {
|
|
|
/** 提交按钮 */
|
|
|
submitForm() {
|
|
|
if (!this.justiceDetailsList()) {
|
|
|
- return this.$message.error('子表有必填字段未填')
|
|
|
+ return this.$message.error('子表有必填字段未填,或者目标值为0')
|
|
|
}
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|
|
@@ -897,11 +962,13 @@ export default {
|
|
|
justiceDetailsList() {
|
|
|
const arr = JSON.parse(JSON.stringify(this.monthSaleGoalDetailsList))
|
|
|
for (const element of arr) {
|
|
|
- if (element.saleOrg === null || element.saleZone === null || element.custom === null || element.dept === null || element.creator === null || element.oneLevelClassify === null || element.twoLevelClassify === null || element.monthly === null || element.goalValue === 0) {
|
|
|
- return false
|
|
|
+ const flag1 = (element.saleOrg !== null) && (element.saleZone !== null) && (element.custom !== null) && (element.dept !== null) && (element.creator !== null) && (element.materialCode !== null) && (element.material !== null) && (element.monthly !== null) && (element.goalValue !== 0)
|
|
|
+ const flag2 = (element.saleOrg !== undefined) && (element.saleZone !== undefined) && (element.custom !== undefined) && (element.dept !== undefined) && (element.creator !== undefined) && (element.materialCode !== undefined) && (element.material !== undefined) && (element.monthly !== undefined)
|
|
|
+ if (flag1 && flag2) {
|
|
|
+ return true
|
|
|
}
|
|
|
}
|
|
|
- return true
|
|
|
+ return false
|
|
|
},
|
|
|
setBeginAndEnd() {
|
|
|
let array = this.documentDateRange
|
|
@@ -976,6 +1043,45 @@ export default {
|
|
|
obj.oneLevelClassify = oneArray[0]
|
|
|
obj.twoLevelClassifyCode = twoArray[1]
|
|
|
obj.twoLevelClassify = twoArray[0]
|
|
|
+ },
|
|
|
+ // 批量修改对话框的方法
|
|
|
+ dialogUpdateMoreSave() {
|
|
|
+ console.log(this.dialogUpdateMore);
|
|
|
+ if (this.dialogUpdateMore.updateData === null) {
|
|
|
+ return this.$message.error('请输入修改值')
|
|
|
+ }
|
|
|
+ const array = JSON.parse(JSON.stringify(this.monthSaleGoalDetailsList))
|
|
|
+ if (array.length !== 0) {
|
|
|
+ let condition = this.dialogUpdateMore.updateName
|
|
|
+ for (const element of array) {
|
|
|
+ if (condition === 1) {
|
|
|
+ element.saleOrg = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
|
|
|
+ } else if (condition === 2) {
|
|
|
+ element.saleZone = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
|
|
|
+ } else if (condition === 3) {
|
|
|
+ element.custom = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
|
|
|
+ } else if (condition === 4) {
|
|
|
+ element.dept = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
|
|
|
+ } else if (condition === 5) {
|
|
|
+ element.creator = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
|
|
|
+ } else if (condition === 6) {
|
|
|
+ element.department = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
|
|
|
+ } else if (condition === 7) {
|
|
|
+ element.monthly = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.monthSaleGoalDetailsList = array
|
|
|
+ this.dialogUpdateMore.dialogFormVisible = !this.dialogUpdateMore.dialogFormVisible
|
|
|
+ this.dialogUpdateMore.updateData = null
|
|
|
+ this.dialogUpdateMore.updateName = null
|
|
|
+ },
|
|
|
+ changeDialogData() {
|
|
|
+ this.dialogUpdateMore.updateData = null
|
|
|
+ },
|
|
|
+ resetDialogUpdateMore() {
|
|
|
+ this.dialogUpdateMore.updateName = null
|
|
|
+ this.dialogUpdateMore.updateData = null
|
|
|
}
|
|
|
}
|
|
|
}
|