|
@@ -1,7 +1,7 @@
|
|
<template>
|
|
<template>
|
|
<div>
|
|
<div>
|
|
<BaseDialog
|
|
<BaseDialog
|
|
- width="1800px"
|
|
|
|
|
|
+ width="1200px"
|
|
:isShow.sync="isShow"
|
|
:isShow.sync="isShow"
|
|
:title="title"
|
|
:title="title"
|
|
@close="close"
|
|
@close="close"
|
|
@@ -9,11 +9,12 @@
|
|
@open="init"
|
|
@open="init"
|
|
>
|
|
>
|
|
<div class="bop-tip">
|
|
<div class="bop-tip">
|
|
- <div><i class="el-icon-warning-outline"></i>说明</div>
|
|
|
|
- <div>
|
|
|
|
- ●
|
|
|
|
- 如果提成方式是按阶梯价计算,则需设置阶梯价格区间(最高价无穷大,则填写
|
|
|
|
- “ * ” )。如果无需按阶梯价计算提成,留空即可。
|
|
|
|
|
|
+ <div style="font-weight: 600">
|
|
|
|
+ <i class="el-icon-warning-outline"></i>说明
|
|
|
|
+ </div>
|
|
|
|
+ <div style="padding-left: 20px">
|
|
|
|
+ ● 如果按阶梯价计算,则需设置阶梯价格区间(最高价无穷大,则填写 “ * ”
|
|
|
|
+ );如果无需按阶梯价计算提成,留空即可;
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<el-form
|
|
<el-form
|
|
@@ -53,197 +54,220 @@
|
|
>
|
|
>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
- <div v-for="(item, index) in form.itemList" :key="index">
|
|
|
|
- <el-form-item
|
|
|
|
- :prop="'itemList.' + index + '.itemName'"
|
|
|
|
- :label="index == 0 ? '成本设置:' : ' '"
|
|
|
|
- :rules="rules['itemName']"
|
|
|
|
- label-width="100px"
|
|
|
|
- >
|
|
|
|
- <el-input
|
|
|
|
- placeholder="请输入成本项名称"
|
|
|
|
- v-model="item.itemName"
|
|
|
|
- ></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item
|
|
|
|
- label=""
|
|
|
|
- :prop="'itemList.' + index + '.itemCategory'"
|
|
|
|
- :rules="rules['itemCategory']"
|
|
|
|
- >
|
|
|
|
- <el-select v-model="item.itemCategory" placeholder="请选择成本类别">
|
|
|
|
- <el-option
|
|
|
|
- :label="item.categoryName"
|
|
|
|
- :value="item.categoryId"
|
|
|
|
- v-for="item in categoryList"
|
|
|
|
- :key="item.categoryId"
|
|
|
|
- ></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item
|
|
|
|
- label=""
|
|
|
|
- :prop="'itemList.' + index + '.educationTypeId'"
|
|
|
|
- :rules="rules['educationTypeId']"
|
|
|
|
- >
|
|
|
|
- <el-select
|
|
|
|
- @change="changeEdu(item)"
|
|
|
|
- v-model="item.educationTypeId"
|
|
|
|
- placeholder="请选择教育类型"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in eduList"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="
|
|
|
|
- item.schemeName +
|
|
|
|
- (item.schemeName ? '-' : '') +
|
|
|
|
- item.educationName
|
|
|
|
- "
|
|
|
|
- :value="item.id"
|
|
|
|
- >
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item
|
|
|
|
- v-if="item.educationTypeId != -1"
|
|
|
|
- label=""
|
|
|
|
- :prop="'itemList.' + index + '.businessId'"
|
|
|
|
- :rules="rules['businessId']"
|
|
|
|
|
|
+ <div
|
|
|
|
+ class="cost df"
|
|
|
|
+ v-for="(item, index) in form.itemList"
|
|
|
|
+ :key="index"
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ class="cost__label"
|
|
|
|
+ :style="{ visibility: index != 0 ? 'hidden' : '' }"
|
|
>
|
|
>
|
|
- <el-select
|
|
|
|
- filterable
|
|
|
|
- v-model="item.businessId"
|
|
|
|
- placeholder="请选择业务层次"
|
|
|
|
|
|
+ 成本设置:
|
|
|
|
+ </div>
|
|
|
|
+ <div class="cost-item">
|
|
|
|
+ <el-form-item
|
|
|
|
+ :prop="'itemList.' + index + '.itemName'"
|
|
|
|
+ label=""
|
|
|
|
+ :rules="rules['itemName']"
|
|
|
|
+ label-width="100px"
|
|
>
|
|
>
|
|
- <el-option
|
|
|
|
- v-for="level in backbusinessList(item.educationTypeId)"
|
|
|
|
- :key="level.businessId"
|
|
|
|
- :label="level.aliasName"
|
|
|
|
- :value="level.businessId"
|
|
|
|
- @click.native="changeBus(item, level.projectId)"
|
|
|
|
- >
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item
|
|
|
|
- label=""
|
|
|
|
- :prop="'itemList.' + index + '.itemType'"
|
|
|
|
- :rules="rules['itemType']"
|
|
|
|
- >
|
|
|
|
- <el-select v-model="item.itemType" placeholder="请选择成本类型">
|
|
|
|
- <el-option label="百分比" :value="1"></el-option>
|
|
|
|
- <el-option label="固定" :value="2"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item
|
|
|
|
- label=""
|
|
|
|
- :prop="'itemList.' + index + '.minValue'"
|
|
|
|
- :rules="rules['minValue']"
|
|
|
|
- class="range"
|
|
|
|
- >
|
|
|
|
- <el-col :span="11">
|
|
|
|
<el-input
|
|
<el-input
|
|
- v-int
|
|
|
|
- placeholder="最低价"
|
|
|
|
- v-model.number="item.minValue"
|
|
|
|
- ></el-input>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col class="line" :span="2" style="magrin: 10px">-</el-col>
|
|
|
|
- <el-col :span="11">
|
|
|
|
- <el-input
|
|
|
|
- @keyup.native="regValue(item)"
|
|
|
|
- placeholder="最高价"
|
|
|
|
- @change="changeMaxValue('itemList.' + index + '.minValue')"
|
|
|
|
- v-model.number="item.maxValue"
|
|
|
|
|
|
+ placeholder="请输入成本项名称"
|
|
|
|
+ v-model="item.itemName"
|
|
></el-input>
|
|
></el-input>
|
|
- </el-col>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item
|
|
|
|
- v-if="item.itemType"
|
|
|
|
- class="ddd"
|
|
|
|
- label-width="0"
|
|
|
|
- :prop="'itemList.' + index + '.typeValue'"
|
|
|
|
- label=" "
|
|
|
|
- :rules="rules['typeValue']"
|
|
|
|
- >
|
|
|
|
- <el-input
|
|
|
|
- v-if="item.itemType == 1"
|
|
|
|
- placeholder="输入百分比"
|
|
|
|
- v-model="item.typeValue"
|
|
|
|
- key="2"
|
|
|
|
- v-int="{ max: 100 }"
|
|
|
|
- >
|
|
|
|
- <template slot="append"> % </template>
|
|
|
|
- </el-input>
|
|
|
|
- <el-input
|
|
|
|
- key="1"
|
|
|
|
- v-else
|
|
|
|
- placeholder="固定金额"
|
|
|
|
- v-model="item.typeValue"
|
|
|
|
- v-int
|
|
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label=""
|
|
|
|
+ :prop="'itemList.' + index + '.itemCategory'"
|
|
|
|
+ :rules="rules['itemCategory']"
|
|
>
|
|
>
|
|
- <template slot="append"> 元 </template>
|
|
|
|
- </el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <template v-if="item.itemCategory == 1">
|
|
|
|
- <el-form-item label="">
|
|
|
|
- <el-checkbox
|
|
|
|
- :true-label="1"
|
|
|
|
- :false-label="0"
|
|
|
|
- v-model="item.dockStatus"
|
|
|
|
- >成本扣除</el-checkbox
|
|
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="item.itemCategory"
|
|
|
|
+ placeholder="请选择成本类别"
|
|
>
|
|
>
|
|
|
|
+ <el-option
|
|
|
|
+ :label="item.categoryName"
|
|
|
|
+ :value="item.categoryId"
|
|
|
|
+ v-for="item in categoryList"
|
|
|
|
+ :key="item.categoryId"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <template v-if="item.dockStatus == 1">
|
|
|
|
- <el-form-item
|
|
|
|
- label=""
|
|
|
|
- :prop="'itemList.' + index + '.dockType'"
|
|
|
|
- :rules="rules['dockType']"
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
+ label=""
|
|
|
|
+ :prop="'itemList.' + index + '.educationTypeId'"
|
|
|
|
+ :rules="rules['educationTypeId']"
|
|
|
|
+ >
|
|
|
|
+ <el-select
|
|
|
|
+ @change="changeEdu(item)"
|
|
|
|
+ v-model="item.educationTypeId"
|
|
|
|
+ placeholder="请选择教育类型"
|
|
>
|
|
>
|
|
- <el-select v-model="item.dockType" placeholder="请选择扣除类型">
|
|
|
|
- <el-option label="百分比扣除" :value="1"></el-option>
|
|
|
|
- <el-option label="固定扣除" :value="2"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item
|
|
|
|
- v-if="item.dockType"
|
|
|
|
- class="ddd"
|
|
|
|
- label-width="0"
|
|
|
|
- :prop="'itemList.' + index + '.dockValue'"
|
|
|
|
- label=" "
|
|
|
|
- :rules="rules['dockValue']"
|
|
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in eduList"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="
|
|
|
|
+ item.schemeName +
|
|
|
|
+ (item.schemeName ? '-' : '') +
|
|
|
|
+ item.educationName
|
|
|
|
+ "
|
|
|
|
+ :value="item.id"
|
|
|
|
+ >
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ v-if="item.educationTypeId != -1"
|
|
|
|
+ label=""
|
|
|
|
+ :prop="'itemList.' + index + '.businessId'"
|
|
|
|
+ :rules="rules['businessId']"
|
|
|
|
+ >
|
|
|
|
+ <el-select
|
|
|
|
+ filterable
|
|
|
|
+ v-model="item.businessId"
|
|
|
|
+ placeholder="请选择业务层次"
|
|
>
|
|
>
|
|
- <el-input
|
|
|
|
- v-if="item.dockType == 1"
|
|
|
|
- placeholder="输入百分比"
|
|
|
|
- v-model="item.dockValue"
|
|
|
|
- key="2"
|
|
|
|
- v-int="{ max: 100 }"
|
|
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="level in backbusinessList(item.educationTypeId)"
|
|
|
|
+ :key="level.businessId"
|
|
|
|
+ :label="level.aliasName"
|
|
|
|
+ :value="level.businessId"
|
|
|
|
+ @click.native="changeBus(item, level.projectId)"
|
|
>
|
|
>
|
|
- <template slot="append"> % </template>
|
|
|
|
- </el-input>
|
|
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label=""
|
|
|
|
+ :prop="'itemList.' + index + '.itemType'"
|
|
|
|
+ :rules="rules['itemType']"
|
|
|
|
+ >
|
|
|
|
+ <el-select v-model="item.itemType" placeholder="请选择成本类型">
|
|
|
|
+ <el-option label="百分比" :value="1"></el-option>
|
|
|
|
+ <el-option label="固定" :value="2"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label=""
|
|
|
|
+ :prop="'itemList.' + index + '.minValue'"
|
|
|
|
+ :rules="rules['minValue']"
|
|
|
|
+ class="range"
|
|
|
|
+ >
|
|
|
|
+ <el-col :span="11">
|
|
<el-input
|
|
<el-input
|
|
- key="1"
|
|
|
|
- v-else
|
|
|
|
- placeholder="固定金额"
|
|
|
|
- v-model="item.dockValue"
|
|
|
|
v-int
|
|
v-int
|
|
|
|
+ placeholder="最低价"
|
|
|
|
+ v-model.number="item.minValue"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col class="line" :span="2" style="magrin: 10px">-</el-col>
|
|
|
|
+ <el-col :span="11">
|
|
|
|
+ <el-input
|
|
|
|
+ @keyup.native="regValue(item)"
|
|
|
|
+ placeholder="最高价"
|
|
|
|
+ @change="changeMaxValue('itemList.' + index + '.minValue')"
|
|
|
|
+ v-model.number="item.maxValue"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ v-if="item.itemType"
|
|
|
|
+ class="ddd"
|
|
|
|
+ label-width="0"
|
|
|
|
+ :prop="'itemList.' + index + '.typeValue'"
|
|
|
|
+ label=" "
|
|
|
|
+ :rules="rules['typeValue']"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-if="item.itemType == 1"
|
|
|
|
+ placeholder="输入百分比"
|
|
|
|
+ v-model="item.typeValue"
|
|
|
|
+ key="2"
|
|
|
|
+ v-int="{ max: 100 }"
|
|
|
|
+ >
|
|
|
|
+ <template slot="append"> % </template>
|
|
|
|
+ </el-input>
|
|
|
|
+ <el-input
|
|
|
|
+ key="1"
|
|
|
|
+ v-else
|
|
|
|
+ placeholder="固定金额"
|
|
|
|
+ v-model="item.typeValue"
|
|
|
|
+ v-int
|
|
|
|
+ >
|
|
|
|
+ <template slot="append"> 元 </template>
|
|
|
|
+ </el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <template v-if="item.itemCategory == 1">
|
|
|
|
+ <el-form-item label="">
|
|
|
|
+ <el-checkbox
|
|
|
|
+ class="border"
|
|
|
|
+ :true-label="1"
|
|
|
|
+ :false-label="0"
|
|
|
|
+ text-color="#606266"
|
|
|
|
+ v-model="item.dockStatus"
|
|
|
|
+ >成本扣除</el-checkbox
|
|
>
|
|
>
|
|
- <template slot="append"> 元 </template>
|
|
|
|
- </el-input>
|
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <template v-if="item.dockStatus == 1">
|
|
|
|
+ <el-form-item
|
|
|
|
+ label=""
|
|
|
|
+ :prop="'itemList.' + index + '.dockType'"
|
|
|
|
+ :rules="rules['dockType']"
|
|
|
|
+ >
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="item.dockType"
|
|
|
|
+ placeholder="请选择扣除类型"
|
|
|
|
+ >
|
|
|
|
+ <el-option label="百分比扣除" :value="1"></el-option>
|
|
|
|
+ <el-option label="固定扣除" :value="2"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ v-if="item.dockType"
|
|
|
|
+ class="ddd"
|
|
|
|
+ label-width="0"
|
|
|
|
+ :prop="'itemList.' + index + '.dockValue'"
|
|
|
|
+ label=" "
|
|
|
|
+ :rules="rules['dockValue']"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-if="item.dockType == 1"
|
|
|
|
+ placeholder="输入百分比"
|
|
|
|
+ v-model="item.dockValue"
|
|
|
|
+ key="2"
|
|
|
|
+ v-int="{ max: 100 }"
|
|
|
|
+ >
|
|
|
|
+ <template slot="append"> % </template>
|
|
|
|
+ </el-input>
|
|
|
|
+ <el-input
|
|
|
|
+ key="1"
|
|
|
|
+ v-else
|
|
|
|
+ placeholder="固定金额"
|
|
|
|
+ v-model="item.dockValue"
|
|
|
|
+ v-int
|
|
|
|
+ >
|
|
|
|
+ <template slot="append"> 元 </template>
|
|
|
|
+ </el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </template>
|
|
</template>
|
|
</template>
|
|
- </template>
|
|
|
|
- <el-form-item label-width="0" label=" ">
|
|
|
|
<div class="btns">
|
|
<div class="btns">
|
|
- <i @click="add(index, item)" class="el-icon-connection"></i>
|
|
|
|
- <i @click="add(index)" class="el-icon-circle-plus-outline"></i>
|
|
|
|
|
|
+ <span class="df" @click="add(index, item)">
|
|
|
|
+ <img
|
|
|
|
+ src="../../../assets/images/icon_copy.png"
|
|
|
|
+ alt=""
|
|
|
|
+ srcset=""
|
|
|
|
+ />
|
|
|
|
+ </span>
|
|
|
|
+ <i @click="add(index)" class="el-icon-circle-plus"></i>
|
|
<i
|
|
<i
|
|
v-if="index != 0"
|
|
v-if="index != 0"
|
|
@click="del(index)"
|
|
@click="del(index)"
|
|
- class="el-icon-remove-outline"
|
|
|
|
|
|
+ class="el-icon-remove"
|
|
></i>
|
|
></i>
|
|
</div>
|
|
</div>
|
|
- </el-form-item>
|
|
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</el-form>
|
|
</el-form>
|
|
</BaseDialog>
|
|
</BaseDialog>
|
|
@@ -604,26 +628,81 @@ export default {
|
|
width: 105px;
|
|
width: 105px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+.border {
|
|
|
|
+ border: 1px solid #dcdfe6;
|
|
|
|
+ padding: 0 10px;
|
|
|
|
+ height: 36px;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+}
|
|
.line {
|
|
.line {
|
|
text-align: center;
|
|
text-align: center;
|
|
}
|
|
}
|
|
-.btns {
|
|
|
|
- height: 36px;
|
|
|
|
- display: flex;
|
|
|
|
- align-items: center;
|
|
|
|
- i {
|
|
|
|
- font-size: 24px;
|
|
|
|
- cursor: pointer;
|
|
|
|
- margin-left: 5px;
|
|
|
|
|
|
+
|
|
|
|
+.cost {
|
|
|
|
+ min-height: 120px;
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+ .cost__label {
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ text-align: right;
|
|
|
|
+ vertical-align: middle;
|
|
|
|
+ color: #606266;
|
|
|
|
+ padding: 0 12px 0 18px;
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ }
|
|
|
|
+ .cost-item {
|
|
|
|
+ width: 1160px;
|
|
|
|
+ padding: 20px 20px 0;
|
|
|
|
+ box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.35);
|
|
|
|
+ position: relative;
|
|
|
|
+ .btns {
|
|
|
|
+ position: absolute;
|
|
|
|
+ right: 20px;
|
|
|
|
+ bottom: 10px;
|
|
|
|
+ height: 36px;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ span {
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ background: #aaaaaa;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ width: 24px;
|
|
|
|
+ height: 24px;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ img {
|
|
|
|
+ width: 15px;
|
|
|
|
+ height: 15px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ i {
|
|
|
|
+ font-size: 24px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ margin-left: 5px;
|
|
|
|
+ &::before {
|
|
|
|
+ color: #aaaaaa;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/deep/ .is-checked {
|
|
|
|
+ .el-checkbox__label {
|
|
|
|
+ color: #606266 !important;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.bop-tip {
|
|
.bop-tip {
|
|
- background: #fff6f7;
|
|
|
|
|
|
+ background: rgba(64, 158, 255, 0.0980392156862745);
|
|
margin: 0 0 20px 10px;
|
|
margin: 0 0 20px 10px;
|
|
padding: 8px 10px;
|
|
padding: 8px 10px;
|
|
|
|
+ color: #409eff;
|
|
|
|
+ div {
|
|
|
|
+ margin-bottom: 6px;
|
|
|
|
+ }
|
|
i {
|
|
i {
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
color: #e6a23c;
|
|
color: #e6a23c;
|
|
|
|
+ padding-right: 6px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|