|
@@ -21,9 +21,9 @@
|
|
|
售 后<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
</el-button>
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
- <el-dropdown-item @click.native="applySettlement('申请')">申请退款
|
|
|
+ <el-dropdown-item @click.native="applySettlement('申请')" :disabled="isApplySettlement">申请退款
|
|
|
</el-dropdown-item>
|
|
|
- <el-dropdown-item @click.native="applySettlement('确认')">确认退款
|
|
|
+ <el-dropdown-item @click.native="confirmRefundBtn('确认')" :disabled="isConfirmRefundBtn">确认退款
|
|
|
</el-dropdown-item>
|
|
|
</el-dropdown-menu>
|
|
|
</el-dropdown>
|
|
@@ -32,13 +32,12 @@
|
|
|
审 批<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
</el-button>
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
- <el-dropdown-item @click.native="applySettlement('审批')">审批
|
|
|
+ <el-dropdown-item @click.native="examineBtn('审批')" :disabled="isExamineBtn">审批
|
|
|
</el-dropdown-item>
|
|
|
- <el-dropdown-item @click.native="applySettlement('请核')">请核进度
|
|
|
+ <el-dropdown-item @click.native="checkScheduleDialog = true, checkId = form.id">请核进度
|
|
|
</el-dropdown-item>
|
|
|
- <el-dropdown-item @click.native="applySettlement('撤销')">撤销请核
|
|
|
+ <el-dropdown-item @click.native="revocationRequest('撤销')" :disabled="isRevocationRequest">撤销请核
|
|
|
</el-dropdown-item>
|
|
|
-
|
|
|
</el-dropdown-menu>
|
|
|
</el-dropdown>
|
|
|
</div>
|
|
@@ -111,22 +110,42 @@
|
|
|
</el-tabs>
|
|
|
</trade-card>
|
|
|
<report-dialog :switchDialog="switchDialog" @onClose="onClose()"></report-dialog>
|
|
|
+ <el-dialog append-to-body title="审批" class="el-dialogDeep" :visible.sync="checkDialog" width="50%"
|
|
|
+ :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
|
|
|
+ <check :checkData="checkData" :checkDetail="true" :idList="[]" @operationType="operationType"
|
|
|
+ @choceCheckFun="choceCheckFun">
|
|
|
+ </check>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog append-to-body title="审批进度" class="el-dialogDeep" :visible.sync="checkScheduleDialog" width="40%"
|
|
|
+ :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
|
|
|
+ <check-schedule :checkId="checkId" :batchNo="batchNo" @choceScheduleFun="choceScheduleFun"></check-schedule>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { getDetails as getCustom } from "@/api/tirePartsMall/basicData/customerInformation"
|
|
|
-import { getDetails, submit, generateShipTask, tradingBox,delOrderItem } from "@/api/tirePartsMall/salesManagement/saleOrder";
|
|
|
+import { getDetails, submit, generateShipTask, tradingBox, delOrderItem, checkOrder, confirmRefund, revokeCheckOrder } from "@/api/tirePartsMall/salesManagement/saleOrder";
|
|
|
import { dotList, goodsDetail } from "@/api/tirePartsMall/purchasingManagement/warehouseEntryOrder";
|
|
|
import reportDialog from "@/components/report-dialog/main";
|
|
|
-
|
|
|
+import checkSchedule from "@/components/check/checkSchedule";
|
|
|
+import check from "@/components/check/check";
|
|
|
export default {
|
|
|
name: "detailsPage",
|
|
|
data() {
|
|
|
return {
|
|
|
isDisabled: false,
|
|
|
contactsOption: [],
|
|
|
+ checkData: {},
|
|
|
+ checkScheduleDialog: false,
|
|
|
+ isApplySettlement: true,
|
|
|
+ isConfirmRefundBtn: true,
|
|
|
+ isExamineBtn: true,
|
|
|
+ isRevocationRequest: true,
|
|
|
+ checkDialog: false,
|
|
|
+ checkId: '',
|
|
|
+ batchNo: '',
|
|
|
switchDialog: false,
|
|
|
activeName: "sale_detail",
|
|
|
disabled: false,
|
|
@@ -359,13 +378,14 @@ export default {
|
|
|
prop: 'goodsId',
|
|
|
width: 200,
|
|
|
disabled: false,
|
|
|
+ remote: true,
|
|
|
overHidden: true,
|
|
|
type: 'select',
|
|
|
props: {
|
|
|
label: 'cname',
|
|
|
value: 'id'
|
|
|
},
|
|
|
- dicUrl: '/api/blade-sales-part/goodsDesc/goodsListAll'
|
|
|
+ dicUrl: '/api/blade-sales-part/goodsDesc/goodsListAll?cname={{key}}'
|
|
|
}, {
|
|
|
label: '物料编码',
|
|
|
prop: 'goodsNo',
|
|
@@ -435,7 +455,12 @@ export default {
|
|
|
prop: 'goodsNum',
|
|
|
overHidden: true,
|
|
|
disabled: false,
|
|
|
- width: 100
|
|
|
+ width: 100,
|
|
|
+ rules: [{
|
|
|
+ required: true,
|
|
|
+ message: " ",
|
|
|
+ trigger: "blur"
|
|
|
+ }]
|
|
|
},
|
|
|
|
|
|
{
|
|
@@ -444,6 +469,11 @@ export default {
|
|
|
overHidden: true,
|
|
|
width: 100,
|
|
|
disabled: false,
|
|
|
+ rules: [{
|
|
|
+ required: true,
|
|
|
+ message: " ",
|
|
|
+ trigger: "blur"
|
|
|
+ }]
|
|
|
},
|
|
|
|
|
|
{
|
|
@@ -452,8 +482,9 @@ export default {
|
|
|
disabled: false,
|
|
|
overHidden: true,
|
|
|
width: 100,
|
|
|
- disabled: true
|
|
|
-
|
|
|
+ disabled: true,
|
|
|
+ editDisplay: false,
|
|
|
+ addDisplay: false
|
|
|
},
|
|
|
// {
|
|
|
// label: '利润',
|
|
@@ -466,7 +497,9 @@ export default {
|
|
|
prop: 'subTotalMoney',
|
|
|
overHidden: true,
|
|
|
width: 100,
|
|
|
- disabled: true
|
|
|
+ disabled: true,
|
|
|
+ editDisplay: false,
|
|
|
+ addDisplay: false
|
|
|
},
|
|
|
// {
|
|
|
// label: '返利',
|
|
@@ -479,15 +512,19 @@ export default {
|
|
|
prop: 'costprie',
|
|
|
overHidden: true,
|
|
|
width: 100,
|
|
|
- disabled: true
|
|
|
+ disabled: true,
|
|
|
+ editDisplay: false,
|
|
|
+ addDisplay: false
|
|
|
+
|
|
|
},
|
|
|
{
|
|
|
label: '毛利',
|
|
|
prop: 'grossProfit',
|
|
|
overHidden: true,
|
|
|
width: 100,
|
|
|
- disabled: true
|
|
|
-
|
|
|
+ disabled: true,
|
|
|
+ editDisplay: false,
|
|
|
+ addDisplay: false
|
|
|
},
|
|
|
{
|
|
|
label: '备注',
|
|
@@ -564,14 +601,13 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- components: { reportDialog },
|
|
|
+ components: { reportDialog, check, checkSchedule },
|
|
|
props: {
|
|
|
onLoad: Object,
|
|
|
detailData: Object
|
|
|
},
|
|
|
async created() {
|
|
|
this.findObject(this.optionContactsBack.column, "goodsId").change = ({ value, column }) => {
|
|
|
- console.log('走i在');
|
|
|
if (this.formContacts.goodsId !== value) {
|
|
|
goodsDetail({ id: value }).then(res => {
|
|
|
this.formContacts.goodsNo = res.data.data.code
|
|
@@ -594,9 +630,8 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
- console.log(1);
|
|
|
this.optionContacts = await this.getColumnData(this.getColumnName(269.1), this.optionContactsBack);
|
|
|
- console.log('this.optionContacts.column',this.optionContacts.column);
|
|
|
+ console.log('this.optionContacts.column', this.optionContacts.column);
|
|
|
this.findObject(this.optionContacts.column, "goodsId").change = ({ value, column }) => {
|
|
|
console.log('走i在');
|
|
|
if (this.formContacts.goodsId !== value) {
|
|
@@ -628,17 +663,18 @@ export default {
|
|
|
console.log(1);
|
|
|
this.refresh(this.onLoad.id, true)
|
|
|
} else if (this.onLoad.id) {
|
|
|
- console.log(2);
|
|
|
this.refresh(this.onLoad.id, true)
|
|
|
}
|
|
|
-
|
|
|
+ if(!this.form.id){
|
|
|
+ this.$set(this.optionContacts, "addBtn", true)
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
generateOutbound() {
|
|
|
- if(this.form.orderItemsList.length <=0){
|
|
|
+ if (this.form.orderItemsList.length <= 0) {
|
|
|
this.$message.error('请录入明细');
|
|
|
-
|
|
|
- }else{
|
|
|
+
|
|
|
+ } else {
|
|
|
this.$refs["form"].validate((valid, done) => {
|
|
|
done();
|
|
|
if (valid) {
|
|
@@ -658,7 +694,6 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
-
|
|
|
//联系人change
|
|
|
contactsChange(e) {
|
|
|
console.log(e);
|
|
@@ -667,8 +702,8 @@ export default {
|
|
|
// 假设this.contactsOption是你的数组对象
|
|
|
let matchedContact = this.contactsOption.find(item => item.contacts == e);
|
|
|
// 判断是否找到匹配的对象
|
|
|
- this.$set(this.form,'phone',matchedContact.tel)
|
|
|
- this.$set(this.form,'recAddress',matchedContact.belongtoarea + matchedContact.detailedAddress)
|
|
|
+ this.$set(this.form, 'phone', matchedContact.tel)
|
|
|
+ this.$set(this.form, 'recAddress', matchedContact.belongtoarea + matchedContact.detailedAddress)
|
|
|
|
|
|
},
|
|
|
//修改提交触发
|
|
@@ -707,17 +742,42 @@ export default {
|
|
|
getDetails({ id: id }).then(res => {
|
|
|
console.log('res', res);
|
|
|
this.form = res.data.data
|
|
|
- console.log(this.form.businessSource);
|
|
|
+ if (this.form.status !== '录入' && this.form.status !== '退款中' && this.form.status !== '已取消' && this.form.status !== '退款请核') {
|
|
|
+ console.log(1);
|
|
|
+ this.isApplySettlement = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.form.status == '退款中' ) {
|
|
|
+ console.log(2);
|
|
|
+ this.isConfirmRefundBtn = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.form.status == '退款请核') {
|
|
|
+ console.log(3);
|
|
|
+ this.isExamineBtn = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log(this.form.status == '退款请核' || this.form.status == '退款中');
|
|
|
+
|
|
|
+ if (this.form.status == '退款请核' || this.form.status == '退款中') {
|
|
|
+ console.log(4);
|
|
|
+ this.isRevocationRequest = false;
|
|
|
+ }
|
|
|
this.form.orderItemsList.forEach((items) => {
|
|
|
if (!items.subTotalMoney) {
|
|
|
items.subTotalMoney = items.goodsNum * items.price
|
|
|
items.grossProfit = items.subTotalMoney - items.costprie
|
|
|
}
|
|
|
})
|
|
|
-
|
|
|
loading.close();
|
|
|
+
|
|
|
if (this.form.businessSource == "外部销售") {
|
|
|
console.log('外部销售');
|
|
|
+ this.optionForm.column.forEach(its => {
|
|
|
+ if (its.prop == 'customerId') {
|
|
|
+ this.$set(its, 'disabled', true)
|
|
|
+ }
|
|
|
+ })
|
|
|
//不能录入不能删除
|
|
|
this.$set(this.optionContactsBack, "addBtn", false)
|
|
|
this.isDisabled = true
|
|
@@ -750,6 +810,7 @@ export default {
|
|
|
item.disabled = true;
|
|
|
}
|
|
|
})
|
|
|
+ console.log(324324);
|
|
|
this['optionContacts'] = this['optionContactsBack'];
|
|
|
this.delColumnData(this.getColumnName(269.1), this['optionContactsBack']);
|
|
|
}
|
|
@@ -759,6 +820,92 @@ export default {
|
|
|
loading.close();
|
|
|
})
|
|
|
},
|
|
|
+ //请核关闭
|
|
|
+ choceScheduleFun() {
|
|
|
+ this.checkScheduleDialog = false
|
|
|
+ },
|
|
|
+ //关闭审核
|
|
|
+ choceCheckFun() {
|
|
|
+ this.checkDialog = false;
|
|
|
+ },
|
|
|
+ //申请退款
|
|
|
+ applySettlement(type) {
|
|
|
+ this.$confirm("您确定申请退款吗?", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(() => {
|
|
|
+ this.$refs["form"].validate((valid, done) => {
|
|
|
+ done()
|
|
|
+ if (valid) {
|
|
|
+ console.log(this.form);
|
|
|
+ console.log(this.$store.getters.domSaleStatus);
|
|
|
+ const data = {
|
|
|
+ id: this.form.id,
|
|
|
+ url: '/tirePartsMall/salesManagement/saleOrder/index',
|
|
|
+ pageStatus: "this.$store.getters.domSaleStatus",
|
|
|
+ pageLabel: "销售订单",
|
|
|
+ }
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '加载中',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(255,255,255,0.7)'
|
|
|
+ });
|
|
|
+ checkOrder({ ...data }).then((res) => {
|
|
|
+ loading.close();
|
|
|
+ this.$message.success('申请退款成功');
|
|
|
+ console.log(res);
|
|
|
+ }).catch(() => { loading.close(); })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //确认退款
|
|
|
+ confirmRefundBtn() {
|
|
|
+ this.$confirm("您确定退款吗?", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(() => {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '加载中',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(255,255,255,0.7)'
|
|
|
+ });
|
|
|
+ confirmRefund({ ...this.form }).then((res) => {
|
|
|
+ loading.close()
|
|
|
+ this.$message.success('确定退款成功');
|
|
|
+ }).catch(() => { loading.close(); })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //审批
|
|
|
+ examineBtn() {
|
|
|
+ console.log(this.$route.query.check);
|
|
|
+ this.checkData = this.$route.query.check
|
|
|
+ this.checkDialog = true;
|
|
|
+ },
|
|
|
+ //撤销请核
|
|
|
+ revocationRequest() {
|
|
|
+ this.$confirm("您确定撤回此次申请吗?", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(() => {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '加载中',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(255,255,255,0.7)'
|
|
|
+ });
|
|
|
+ revokeCheckOrder({ ...this.form }).then(res => {
|
|
|
+ loading.close();
|
|
|
+ this.$message.success('撤回成功')
|
|
|
+ this.refresh(this.form.id)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
rowDelBox(row, index, type) {
|
|
|
this.$confirm("确定将选择数据删除?", {
|
|
|
confirmButtonText: "确定",
|
|
@@ -768,7 +915,7 @@ export default {
|
|
|
if (row.id) {
|
|
|
console.log(index);
|
|
|
console.log(this.form.orderItemsList);
|
|
|
- delOrderItem({ids:row.id}).then(res => {
|
|
|
+ delOrderItem({ ids: row.id }).then(res => {
|
|
|
this.form.orderItemsList.splice(index, 1);
|
|
|
this.$message.success("操作成功!");
|
|
|
});
|