|
@@ -236,6 +236,23 @@
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="客户标签" prop="customerLabelId">
|
|
|
+ <el-select v-model="form.customerLabelId"
|
|
|
+ style="width: 100%"
|
|
|
+ v-if="editStatus"
|
|
|
+ size="small">
|
|
|
+ <el-option
|
|
|
+ v-for="item in options"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.lable"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ <span v-else>{{ selectedOptionLabel }}</span>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </el-col>
|
|
|
<el-col :span="14">
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
<el-input
|
|
@@ -287,12 +304,12 @@
|
|
|
margin-bottom: 10px;
|
|
|
"
|
|
|
>
|
|
|
- <el-col :span="5" style="padding-top: 18px">
|
|
|
+ <el-col :span="4" style="padding-top: 18px">
|
|
|
<el-form-item label="服务项目">
|
|
|
{{ item.taskTypeName }}
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="5" style="padding-top: 18px">
|
|
|
+ <el-col :span="4" style="padding-top: 18px">
|
|
|
<el-form-item label="月单价">
|
|
|
<el-input-number
|
|
|
v-if="editStatus"
|
|
@@ -309,7 +326,7 @@
|
|
|
<div v-else>{{ rowNum(item.price) }}</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="5" style="padding-top: 18px">
|
|
|
+ <el-col :span="4" style="padding-top: 18px">
|
|
|
<el-form-item label="服务月数">
|
|
|
<el-input-number
|
|
|
v-if="editStatus"
|
|
@@ -331,7 +348,7 @@
|
|
|
<div v-else>{{ item.serviceNum }}</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="5" style="padding-top: 18px">
|
|
|
+ <el-col :span="4" style="padding-top: 18px">
|
|
|
<el-form-item label="赠送月数">
|
|
|
<el-input-number
|
|
|
v-if="editStatus"
|
|
@@ -354,7 +371,24 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="4" style="padding-top: 18px">
|
|
|
- <el-form-item label="总金额">
|
|
|
+ <el-form-item label="优惠金额">
|
|
|
+ <el-input-number
|
|
|
+ v-if="editStatus"
|
|
|
+ v-model="item.discountAmount"
|
|
|
+ :precision="2"
|
|
|
+ :step="0.1"
|
|
|
+ :min="0"
|
|
|
+ :controls="false"
|
|
|
+ @change="
|
|
|
+ (arg) =>
|
|
|
+ inputChangeHandler('loop', 'discountAmount', item, arg)
|
|
|
+ "
|
|
|
+ />
|
|
|
+ <div v-else>{{ rowNum(item.discountAmount) }}</div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4" style="padding-top: 18px">
|
|
|
+ <el-form-item label="合计金额">
|
|
|
<div>{{ rowNum(item.amount) }}</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -985,18 +1019,7 @@
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="优惠金额:">
|
|
|
- <el-input-number
|
|
|
- v-if="editStatus"
|
|
|
- v-model="form.discountAmount"
|
|
|
- :precision="2"
|
|
|
- :step="0.1"
|
|
|
- :controls="false"
|
|
|
- @change="
|
|
|
- (arg) =>
|
|
|
- inputChangeHandler('default', 'discountAmount', form, arg)
|
|
|
- "
|
|
|
- />
|
|
|
- <div v-else>{{ rowNum(form.discountAmount) }}</div>
|
|
|
+ <span>{{ rowNum(form.discountAmount) }}</span>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
@@ -1019,9 +1042,8 @@
|
|
|
:show-file-list="false"
|
|
|
multiple
|
|
|
>
|
|
|
- <el-button size="small" type="primary" icon="Upload"
|
|
|
- >点击上传</el-button
|
|
|
- >
|
|
|
+ <el-button style="margin-top: 10px; margin-bottom:10px;" size="small" type="primary" icon="Upload"
|
|
|
+ >点击上传</el-button>
|
|
|
</el-upload>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -1176,7 +1198,9 @@
|
|
|
</template>
|
|
|
<script setup>
|
|
|
import { uploadFile } from "@/api/tool/file";
|
|
|
+import { listLableNoPage } from "@/api/business/lable";
|
|
|
import AddCompanyDialog from "../AddCompanyDialog";
|
|
|
+import match from "@/utils/match";
|
|
|
import {
|
|
|
getOrder,
|
|
|
initTaskTypes,
|
|
@@ -1281,7 +1305,7 @@ const provinces = ref(proxy.region.getProvinces());
|
|
|
provinces.value.unshift({ code: "", name: "全部" });
|
|
|
const cities = ref([]);
|
|
|
const districts = ref([]);
|
|
|
-
|
|
|
+const options = ref([]);
|
|
|
const contractEmpty = {
|
|
|
serviceType: 1,
|
|
|
contractType: 0,
|
|
@@ -1338,6 +1362,7 @@ function open(id) {
|
|
|
editStatus.value = false;
|
|
|
title.value = "修改订单信息";
|
|
|
initRegion();
|
|
|
+
|
|
|
});
|
|
|
// getOrder(id).then(response => {
|
|
|
// })
|
|
@@ -1350,7 +1375,17 @@ function open(id) {
|
|
|
editStatus.value = true;
|
|
|
title.value = "添加订单信息";
|
|
|
}
|
|
|
+ getOption()
|
|
|
}
|
|
|
+function getOption(){
|
|
|
+ listLableNoPage().then(res =>{
|
|
|
+ options.value = res.data
|
|
|
+ })
|
|
|
+}
|
|
|
+const selectedOptionLabel = computed(() => {
|
|
|
+ const selectedOption = options.value.find(option => option.id === form.value.customerLabelId);
|
|
|
+ return selectedOption ? selectedOption.lable : '';
|
|
|
+ });
|
|
|
|
|
|
function openSimple(id, optionType) {
|
|
|
reset();
|
|
@@ -1669,6 +1704,7 @@ function changeDetails(type, arg) {
|
|
|
}
|
|
|
|
|
|
function inputChangeHandler(type, field, item, value, parent) {
|
|
|
+ console.log(111,type, field, item, value, parent);
|
|
|
let amount = 0;
|
|
|
switch (type) {
|
|
|
case "loop":
|
|
@@ -1676,22 +1712,27 @@ function inputChangeHandler(type, field, item, value, parent) {
|
|
|
case "price":
|
|
|
amount =
|
|
|
(item.serviceNum ? Number(item.serviceNum) : 0) *
|
|
|
- (value ? Number(value) : 0);
|
|
|
+ (value ? Number(value) : 0) -(item.discountAmount?Number(item.discountAmount):0);
|
|
|
item.amount = amount;
|
|
|
break;
|
|
|
case "serviceNum":
|
|
|
amount =
|
|
|
- (item.price ? Number(item.price) : 0) * (value ? Number(value) : 0);
|
|
|
+ (item.price ? Number(item.price) : 0) * (value ? Number(value) : 0) -(item.discountAmount?Number(item.discountAmount):0);
|
|
|
item.amount = amount;
|
|
|
|
|
|
break;
|
|
|
case "freeNum":
|
|
|
amount =
|
|
|
(item.price ? Number(item.price) : 0) *
|
|
|
- (item.serviceNum ? Number(item.serviceNum) : 0);
|
|
|
+ (item.serviceNum ? Number(item.serviceNum) : 0) -(item.discountAmount?Number(item.discountAmount):0);
|
|
|
item.amount = amount;
|
|
|
break;
|
|
|
- }
|
|
|
+ case "discountAmount":
|
|
|
+ amount =
|
|
|
+ (item.price ? Number(item.price) : 0) *
|
|
|
+ (item.serviceNum ? Number(item.serviceNum) : 0) -(value ? Number(value) : 0);
|
|
|
+ item.amount = amount;
|
|
|
+ }
|
|
|
break;
|
|
|
case "once":
|
|
|
computedItem(item);
|
|
@@ -1724,14 +1765,19 @@ function computedItem(parent) {
|
|
|
}
|
|
|
|
|
|
function computedService() {
|
|
|
+ //子表中的实际金额
|
|
|
let amount = 0;
|
|
|
+ let discountAmount = 0;
|
|
|
+ let trueAmount = 0;
|
|
|
switch (form.value.serviceType) {
|
|
|
case 1:
|
|
|
loopDetails.value.forEach((l) => {
|
|
|
amount += l.amount;
|
|
|
+ discountAmount += l.discountAmount;
|
|
|
+ trueAmount += l.trueAmount;
|
|
|
});
|
|
|
amount = amount >= 0 ? amount : 0;
|
|
|
-
|
|
|
+ discountAmount = discountAmount >= 0 ? discountAmount : 0;
|
|
|
break;
|
|
|
case 2:
|
|
|
onceDetails.value.forEach((l) => {
|
|
@@ -1745,10 +1791,9 @@ function computedService() {
|
|
|
});
|
|
|
break;
|
|
|
}
|
|
|
- form.value.amount = amount;
|
|
|
- form.value.trueAmount =
|
|
|
- amount -
|
|
|
- (form.value.discountAmount ? Number(form.value.discountAmount) : 0);
|
|
|
+ form.value.discountAmount = discountAmount;
|
|
|
+ form.value.trueAmount =amount
|
|
|
+ form.value.amount = match.add(amount,discountAmount);
|
|
|
}
|
|
|
|
|
|
/** 输入框输出建议 */
|