Merge branch 'master' into repair
# Conflicts: # src/store/modules/permission.js
This commit is contained in:
commit
ab82fc9228
22
src/api/inspection/reminderConfig/index.js
Normal file
22
src/api/inspection/reminderConfig/index.js
Normal file
@ -0,0 +1,22 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function getInfo(){
|
||||
return request({
|
||||
url: '/inspection-reminder-config',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
export function add(data){
|
||||
return request({
|
||||
url: '/inspection-reminder-config',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
export function update(data){
|
||||
return request({
|
||||
url: '/inspection-reminder-config',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
210
src/views/inspection/reminderConfig/index.vue
Normal file
210
src/views/inspection/reminderConfig/index.vue
Normal file
@ -0,0 +1,210 @@
|
||||
<template>
|
||||
<div class="inspection-reminder-config">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>年审和年检提醒配置</span>
|
||||
</div>
|
||||
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
label-width="180px"
|
||||
label-position="right"
|
||||
>
|
||||
<el-form-item label="开启提醒-状态" prop="status">
|
||||
<el-switch
|
||||
v-model="form.status"
|
||||
:active-value="0"
|
||||
:inactive-value="1"
|
||||
active-text="启用"
|
||||
inactive-text="禁用"
|
||||
>
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="年审提前提醒天数" prop="annualEviewDay">
|
||||
<el-input-number
|
||||
v-model="form.annualEviewDay"
|
||||
:min="1"
|
||||
placeholder="请输入年审提前提醒天数"
|
||||
></el-input-number>
|
||||
<span class="tip-text">天</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="保险提前提醒天数" prop="insuranceDay">
|
||||
<el-input-number
|
||||
v-model="form.insuranceDay"
|
||||
:min="1"
|
||||
placeholder="请输入保险提前提醒天数"
|
||||
></el-input-number>
|
||||
<span class="tip-text">天</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="提醒对象" prop="reminderPeople">
|
||||
<el-radio-group v-model="form.reminderPeople">
|
||||
<el-radio :label="0">车主</el-radio>
|
||||
<el-radio :label="1">经办人</el-radio>
|
||||
<el-radio :label="2">都提醒</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="短信AppId" prop="sdkAppId">
|
||||
<el-input
|
||||
v-model="form.sdkAppId"
|
||||
placeholder="请输入短信AppId"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="短信签名" prop="signName">
|
||||
<el-input
|
||||
v-model="form.signName"
|
||||
placeholder="请输入短信签名"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="短信模板ID" prop="templateId">
|
||||
<el-input
|
||||
v-model="form.templateId"
|
||||
placeholder="请输入短信模板ID"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm">保存配置</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { add, getInfo, update } from "@/api/inspection/reminderConfig";
|
||||
|
||||
export default {
|
||||
name: "index",
|
||||
data() {
|
||||
return {
|
||||
form: {
|
||||
id: null,
|
||||
annualEviewDay: null,
|
||||
insuranceDay: null,
|
||||
status: 0,
|
||||
reminderPeople: 2,
|
||||
sdkAppId: "",
|
||||
signName: "",
|
||||
templateId: "",
|
||||
},
|
||||
rules: {
|
||||
annualEviewDay: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入年审提前提醒天数",
|
||||
trigger: "blur",
|
||||
},
|
||||
{
|
||||
type: "number",
|
||||
min: 1,
|
||||
message: "天数必须在1-30之间",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
insuranceDay: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入保险提前提醒天数",
|
||||
trigger: "blur",
|
||||
},
|
||||
{
|
||||
type: "number",
|
||||
min: 1,
|
||||
message: "天数必须在1-30之间",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
reminderPeople: [
|
||||
{ required: true, message: "请选择提醒对象", trigger: "change" },
|
||||
],
|
||||
sdkAppId: [
|
||||
{ required: true, message: "请输入短信AppId", trigger: "blur" },
|
||||
],
|
||||
signName: [
|
||||
{ required: true, message: "请输入短信签名", trigger: "blur" },
|
||||
],
|
||||
templateId: [
|
||||
{ required: true, message: "请输入短信模板ID", trigger: "blur" },
|
||||
],
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.fetchConfig();
|
||||
},
|
||||
methods: {
|
||||
// 获取配置数据
|
||||
async fetchConfig() {
|
||||
const response = await getInfo();
|
||||
if (response.data) {
|
||||
this.form = response.data;
|
||||
}
|
||||
},
|
||||
|
||||
// 提交表单
|
||||
async submitForm() {
|
||||
this.$refs.form.validate(async (valid) => {
|
||||
if (valid) {
|
||||
// 这里替换为实际的API调用
|
||||
if (this.form.id) {
|
||||
const res = await update(this.form);
|
||||
if (res.code === 0) {
|
||||
this.$message.success("配置修改成功");
|
||||
this.fetchConfig(); // 重新加载最新配置
|
||||
}
|
||||
} else {
|
||||
const res = await add(this.form);
|
||||
if (res.code === 0) {
|
||||
this.$message.success("配置保存成功");
|
||||
this.fetchConfig();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 重置表单
|
||||
resetForm() {
|
||||
this.$refs.form.resetFields();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.inspection-reminder-config {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.box-card {
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.tip-text {
|
||||
margin-left: 10px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.el-input-number {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.el-input {
|
||||
width: 300px;
|
||||
}
|
||||
</style>
|
7
src/views/inspection/statistics/api/statistics.js
Normal file
7
src/views/inspection/statistics/api/statistics.js
Normal file
@ -0,0 +1,7 @@
|
||||
export function getServerData1(params) {
|
||||
return request({
|
||||
url: '/partnerOwn/partner/chartInfoAmount',
|
||||
method: 'get',
|
||||
params: params
|
||||
})
|
||||
}
|
370
src/views/inspection/statistics/statistics.vue
Normal file
370
src/views/inspection/statistics/statistics.vue
Normal file
@ -0,0 +1,370 @@
|
||||
<template>
|
||||
<div class="statistics-container">
|
||||
<!-- 检测数量统计 -->
|
||||
<el-card class="box-card" shadow="hover">
|
||||
<div slot="header">
|
||||
<span>检测数量统计</span>
|
||||
<el-date-picker
|
||||
v-model="ranges"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="slectRangeInspectionCount"
|
||||
style="float: right;"
|
||||
/>
|
||||
</div>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="4">
|
||||
<div class="stat-item" @click="goOrderList">
|
||||
<div class="stat-title">订单数量</div>
|
||||
<div class="stat-value">{{ data2.allNum || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<div class="stat-item">
|
||||
<div class="stat-title">完成数量</div>
|
||||
<div class="stat-value">{{ data2.ywcNum || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<div class="stat-item">
|
||||
<div class="stat-title">检测中数量</div>
|
||||
<div class="stat-value">{{ data2.jxzNum || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<div class="stat-item">
|
||||
<div class="stat-title">重检数量</div>
|
||||
<div class="stat-value">{{ data2.reinspectNum || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<div class="stat-item">
|
||||
<div class="stat-title">复检数量</div>
|
||||
<div class="stat-value">{{ data2.recheckNum || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<div class="stat-item">
|
||||
<div class="stat-title">退办理数量</div>
|
||||
<div class="stat-value">{{ data2.tblNum || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<!-- 营业额统计 -->
|
||||
<el-card class="box-card" shadow="hover" style="margin-top: 20px;">
|
||||
<div slot="header">
|
||||
<span>营业额统计</span>
|
||||
<el-date-picker
|
||||
v-model="rangeYYE"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="slectRangeYYECount"
|
||||
style="float: right;"
|
||||
/>
|
||||
</div>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6" v-for="item in amountList" :key="item.key">
|
||||
<div class="stat-item" @click="goOrderStatistic(item.clickParam)">
|
||||
<div class="stat-title">{{ item.title }}</div>
|
||||
<div class="stat-value">{{ data1[item.key] || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<!-- 业务渠道统计 -->
|
||||
<el-card class="box-card" shadow="hover" style="margin-top: 20px;">
|
||||
<div slot="header">
|
||||
<span>业务渠道统计</span>
|
||||
<el-date-picker
|
||||
v-model="rangeBusiness"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="slectRangeBusinessCount"
|
||||
style="float: right;"
|
||||
/>
|
||||
</div>
|
||||
<el-table :data="data3" style="width: 100%;" v-if="data3.length > 0">
|
||||
<el-table-column prop="name" label="业务渠道"></el-table-column>
|
||||
<el-table-column prop="theNum" label="数量"></el-table-column>
|
||||
<el-table-column prop="theAmount" label="公示金额"></el-table-column>
|
||||
</el-table>
|
||||
<div v-else style="padding: 20px; text-align: center;">暂无数据…</div>
|
||||
</el-card>
|
||||
|
||||
<!-- 资料统计 -->
|
||||
<el-card class="box-card" shadow="hover" style="margin-top: 20px;">
|
||||
<div slot="header">
|
||||
<span>资料统计</span>
|
||||
<el-date-picker
|
||||
v-model="rangeZL"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="slectRangeZLCount"
|
||||
style="float: right;"
|
||||
/>
|
||||
</div>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<div class="stat-item" @click="goxiangqing2(6, 'add')">
|
||||
<div class="stat-title">新增</div>
|
||||
<div class="stat-value">{{ fileRes.addCount || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="stat-item" @click="goxiangqing2(6, 'update')">
|
||||
<div class="stat-title">修改</div>
|
||||
<div class="stat-value">{{ fileRes.updateCount || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<!-- 检测车型统计 -->
|
||||
<el-card class="box-card" shadow="hover" style="margin-top: 20px;">
|
||||
<div slot="header">
|
||||
<span>检测车型统计</span>
|
||||
<el-button type="text" @click="goxiangqing(2)" style="float: right;">更多 ></el-button>
|
||||
</div>
|
||||
<el-table :data="data4" style="width: 100%;" v-if="data4.length > 0">
|
||||
<el-table-column prop="goodsTitle" label="车型"></el-table-column>
|
||||
<el-table-column prop="theNum" label="数量"></el-table-column>
|
||||
</el-table>
|
||||
<div v-else style="padding: 20px; text-align: center;">暂无数据…</div>
|
||||
</el-card>
|
||||
|
||||
<!-- 检测类型统计 -->
|
||||
<el-card class="box-card" shadow="hover" style="margin-top: 20px;">
|
||||
<div slot="header">
|
||||
<span>检测类型统计</span>
|
||||
<el-button type="text" @click="goxiangqing(4)" style="float: right;">更多 ></el-button>
|
||||
</div>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="4" v-for="skuData in skuList" :key="skuData.skuName">
|
||||
<div class="stat-item">
|
||||
<div class="stat-title">{{ skuData.skuName }}</div>
|
||||
<div class="stat-value">{{ skuData.orderCount || 0 }}</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div v-if="skuList.length === 0" style="padding: 20px; text-align: center;">暂无数据…</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '@/utils/request'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
ranges: [],
|
||||
rangeYYE: [],
|
||||
rangeBusiness: [],
|
||||
rangeZL: [],
|
||||
data1: {},
|
||||
data2: {},
|
||||
data3: [],
|
||||
data4: [],
|
||||
skuList: [],
|
||||
fileRes: {},
|
||||
amountList: [
|
||||
{ title: '公示价格', key: 'gsAmount', clickParam: '' },
|
||||
{ title: '应收款', key: 'ysAmount', clickParam: '' },
|
||||
{ title: '已收款', key: 'yjsAmount', clickParam: '1' },
|
||||
{ title: '待收款', key: 'dsAmount', clickParam: '0' }
|
||||
]
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
// this.getServerData();
|
||||
await this.getServerData1();
|
||||
await this.getServerData2();
|
||||
await this.getServerData3();
|
||||
await this.chartLineInspectionAmount()
|
||||
await this.chartLineInspectionNum()
|
||||
await this.getInspectionSku()
|
||||
// this.sanxiang()
|
||||
await this.getfive()
|
||||
},
|
||||
methods: {
|
||||
async getServerData1() {
|
||||
let data = {
|
||||
partnerId: this.partnerId,
|
||||
unit: this.unit,
|
||||
startTime: this.rangeYSK[0],
|
||||
endTime: this.rangeYSK[1]
|
||||
}
|
||||
let rex = await request({
|
||||
url: '/partnerOwn/partner/chartInfoAmount',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
let res = rex.data
|
||||
|
||||
this.chartData2 = JSON.parse(JSON.stringify(res));
|
||||
this.opts1.xAxis.itemCount = res.categories.length
|
||||
|
||||
},
|
||||
async getfive() {
|
||||
let data1 = {
|
||||
startTime: this.range[0],
|
||||
endTime: this.range[1]
|
||||
}
|
||||
let res1 = await request({
|
||||
url: '/partnerOwn/partner/staticsTable1',
|
||||
method: 'get',
|
||||
params: data1
|
||||
})
|
||||
this.data1 = res1.data
|
||||
// 2
|
||||
let data2 = {
|
||||
startTime: this.ranges[0],
|
||||
endTime: this.ranges[1]
|
||||
}
|
||||
let res2 = await request({
|
||||
url: '/partnerOwn/partner/staticsTable2',
|
||||
method: 'get',
|
||||
params: data2
|
||||
})
|
||||
this.data2 = res2.data
|
||||
// 3
|
||||
let data3 = {
|
||||
startTime: this.rangeBusiness[0],
|
||||
endTime: this.rangeBusiness[1]
|
||||
}
|
||||
let res3 = await request({
|
||||
url: '/partnerOwn/partner/staticsTable3',
|
||||
method: 'get',
|
||||
params: data3
|
||||
})
|
||||
this.data3 = res3.data
|
||||
console.log('业务渠道数据', this.data3);
|
||||
// 4
|
||||
let data4 = {
|
||||
startTime: this.rangeGoods[0],
|
||||
endTime: this.rangeGoods[1]
|
||||
}
|
||||
let res4 = await request({
|
||||
url: '/partnerOwn/partner/staticsTable4',
|
||||
method: 'get',
|
||||
params: data4
|
||||
})
|
||||
this.data4 = res4.data
|
||||
// 5
|
||||
let data5 = {
|
||||
startTime: this.rangeDsk[0],
|
||||
endTime: this.rangeDsk[1]
|
||||
}
|
||||
let res5 = await request({
|
||||
url: '/partnerOwn/partner/staticsTable5',
|
||||
method: 'get',
|
||||
params: data5
|
||||
})
|
||||
this.data5 = res5.data
|
||||
let fileRes = await request({
|
||||
url: '/partnerOwn/partner/fileStatistics',
|
||||
method: 'get',
|
||||
params: {
|
||||
startTime: this.rangeZL[0],
|
||||
servicePackageId: 'jiance',
|
||||
endTime: this.rangeZL[1]
|
||||
}
|
||||
})
|
||||
this.fileRes = fileRes.data
|
||||
|
||||
},
|
||||
// 检测类型统计
|
||||
getInspectionSku() {
|
||||
let data = {
|
||||
startTime: this.rangeSku[0],
|
||||
endTime: this.rangeSku[1]
|
||||
}
|
||||
request({
|
||||
url: '/partnerOwn/partner/queryInspectionSkuList',
|
||||
method: 'get',
|
||||
params: data
|
||||
}).then((res) => {
|
||||
this.skuList = res.data
|
||||
})
|
||||
},
|
||||
async slectRangeInspectionCount(e) {
|
||||
this.ranges = e
|
||||
console.log(this.ranges);
|
||||
let data2 = {
|
||||
startTime: this.ranges[0],
|
||||
endTime: this.ranges[1]
|
||||
}
|
||||
// 根据时间范围查询
|
||||
let res2 = await request({
|
||||
url: '/partnerOwn/partner/staticsTable2',
|
||||
method: 'get',
|
||||
params: data2
|
||||
})
|
||||
this.data2 = res2.data
|
||||
},
|
||||
// 数量
|
||||
async getServerData2() {
|
||||
let data = {
|
||||
partnerId: this.partnerId,
|
||||
unit: this.unit1,
|
||||
}
|
||||
let rex = await request({
|
||||
url: '/partnerOwn/partner/chartInfoNum',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
let res = rex.data
|
||||
|
||||
this.chartData2 = JSON.parse(JSON.stringify(res));
|
||||
|
||||
},
|
||||
// 合格率
|
||||
async getServerData3() {
|
||||
let data = {
|
||||
partnerId: this.partnerId,
|
||||
unit: this.unit2,
|
||||
}
|
||||
let rex = await request({
|
||||
url: '/partnerOwn/partner/chartInfoRatio',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
let res = rex.data
|
||||
|
||||
this.chartData3 = JSON.parse(JSON.stringify(res));
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.statistics-container {
|
||||
padding: 20px;
|
||||
}
|
||||
.stat-item {
|
||||
background: #f5f5f5;
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.stat-title {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
}
|
||||
.stat-value {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
margin-top: 4px;
|
||||
}
|
||||
</style>
|
@ -185,3 +185,11 @@ export function batchSettlement(data) {
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function getBatchList(query) {
|
||||
return request({
|
||||
url: '/batchSettlement/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
@ -7,14 +7,17 @@
|
||||
<el-collapse-item title="收款信息" name="1">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="优惠金额" prop="cashierConfirm">
|
||||
<el-input disabled v-model="formData.reduceMoney / 100" placeholder="暂未优惠"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="收款金额" prop="cashierConfirm">
|
||||
<el-input disabled v-model="orderInfo.payMoney / 100" placeholder="暂未结算"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="收费备注" prop="cashierConfirm">
|
||||
<el-input disabled v-model="orderInfo.payRemark" placeholder="暂无备注"></el-input>
|
||||
<el-input disabled v-model="formData.payMoney / 100" placeholder="暂未结算"></el-input>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="收费备注" prop="cashierConfirm">-->
|
||||
<!-- <el-input disabled v-model="formData.payRemark" placeholder="暂无备注"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="查看附件" prop="cashierConfirm">
|
||||
<el-button @click="handleViewFiles(orderInfo.files)">查看附件</el-button>
|
||||
<el-button @click="handleViewFiles(formData.files)">查看附件</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -253,7 +256,7 @@ export default {
|
||||
try {
|
||||
// 查询检测工单
|
||||
const res = await getOrderInfo(id)
|
||||
this.orderInfo = res.data
|
||||
this.formData = res.data
|
||||
// const res = await SchoolCourseOrderApi.getSchoolCourseOrder(id)
|
||||
// this.formData = res.data
|
||||
// this.title = '修改驾照报名订单'
|
||||
|
@ -16,6 +16,14 @@
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="车龄" prop="carYear">
|
||||
<el-input
|
||||
v-model="queryParams.carYear"
|
||||
placeholder="请输入车龄"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="检测类型" prop="goodsTitle">
|
||||
<el-select
|
||||
v-model="queryParams.skuName"
|
||||
@ -77,9 +85,23 @@
|
||||
</el-select>
|
||||
<!-- </template> -->
|
||||
</el-form-item>
|
||||
<el-form-item label="检测时间" prop="startTime">
|
||||
<el-form-item label="筛选类型" prop="dateType">
|
||||
<el-select
|
||||
v-model="queryParams.dateType"
|
||||
placeholder="请选择日期类型"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
>
|
||||
<el-option label="检测时间" value="jcTime"/>
|
||||
<el-option label="保险到期时间(交强)" value="bxTime"/>
|
||||
<el-option label="保险到期时间(商业)" value="bxVehicleTime"/>
|
||||
<el-option label="下次年检时间" value="nextInspectionTime"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :label="dateTypeLabel" prop="datetimeRange">
|
||||
<el-date-picker
|
||||
v-model="queryParams.jcTime"
|
||||
v-model="queryParams.datetimeRange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
@ -88,16 +110,19 @@
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>搜索
|
||||
</el-button
|
||||
>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>重置
|
||||
</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@ -109,7 +134,7 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
>录入
|
||||
>录入
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@ -119,7 +144,7 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
>导出
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="showCashierColumn">
|
||||
@ -129,7 +154,7 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleBatchSettle('cn')"
|
||||
>批量结算
|
||||
>批量结算
|
||||
</el-button>
|
||||
</el-col>
|
||||
|
||||
@ -140,7 +165,7 @@
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleBatchSettle('kj')"
|
||||
>批量审核
|
||||
>批量审核
|
||||
</el-button>
|
||||
</el-col>
|
||||
<div style="margin-left: 72%; font-weight: bold">
|
||||
@ -154,9 +179,10 @@
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="infoList"
|
||||
:columns="columns"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<el-table-column label="车牌号" align="center">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.carNum || scope.row.certificateNum || "----" }}
|
||||
@ -176,8 +202,8 @@
|
||||
<span v-else>进行中</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="车辆类型" align="center" prop="goodsTitle" />
|
||||
<el-table-column label="检测项目" align="center" prop="skuName" />
|
||||
<el-table-column label="车辆类型" align="center" prop="goodsTitle"/>
|
||||
<el-table-column label="检测项目" align="center" prop="skuName"/>
|
||||
<el-table-column
|
||||
label="公示应收价格"
|
||||
align="center"
|
||||
@ -193,18 +219,38 @@
|
||||
<span>{{ scope.row.realPayMoney / 100 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="收款时间" align="center" prop="payTime" />
|
||||
<el-table-column label="收款时间" align="center" prop="payTime"/>
|
||||
<!-- <el-table-column label="客户" align="center" prop="buyName" />-->
|
||||
<el-table-column label="客户手机号" align="center" prop="buyPhone" />
|
||||
<el-table-column label="客户手机号" align="center" prop="buyPhone"/>
|
||||
<!-- <el-table-column label="接待员" align="center" prop="workerName"/>-->
|
||||
<el-table-column label="接待员手机号" align="center" prop="workerPhone" />
|
||||
<el-table-column label="接待员手机号" align="center" prop="workerPhone"/>
|
||||
<el-table-column label="支付方式" align="center" prop="payType">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.pay_type" :value="scope.row.payType" />
|
||||
<dict-tag :options="dict.type.pay_type" :value="scope.row.payType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开始时间" align="center" prop="startTime" />
|
||||
<el-table-column label="结束时间" align="center" prop="endTime" />
|
||||
<el-table-column
|
||||
label="承保公司"
|
||||
align="center"
|
||||
prop="insuranceCompanyName"
|
||||
/>
|
||||
<el-table-column
|
||||
label="下次年检时间"
|
||||
align="center"
|
||||
prop="nextInspectionDate"
|
||||
/>
|
||||
<el-table-column
|
||||
label="交强险到期日期"
|
||||
align="center"
|
||||
prop="insuranceExpiryDate"
|
||||
/>
|
||||
<el-table-column
|
||||
label="商业险到期日期"
|
||||
align="center"
|
||||
prop="vehicleInsuranceExpiryDate"
|
||||
/>
|
||||
<el-table-column label="开始时间" align="center" prop="startTime"/>
|
||||
<el-table-column label="结束时间" align="center" prop="endTime"/>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
@ -216,7 +262,7 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="watchWork(scope.row)"
|
||||
>打印
|
||||
>打印
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
@ -238,14 +284,14 @@
|
||||
scope.row.makeCert != 1
|
||||
"
|
||||
@click="zhizheng(scope.row)"
|
||||
>制证
|
||||
>制证
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="detail(scope.row)"
|
||||
>详情
|
||||
>详情
|
||||
</el-button>
|
||||
<!-- <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.status && scope.row.status == 0"-->
|
||||
<!-- @click="jieshu(scope.row)">完工-->
|
||||
@ -255,14 +301,14 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>修改
|
||||
>修改
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -378,7 +424,7 @@
|
||||
style="margin-left: 90%; margin-top: 20px"
|
||||
v-print="'#printMe'"
|
||||
size="small"
|
||||
>打印
|
||||
>打印
|
||||
</el-button>
|
||||
</el-dialog>
|
||||
<!-- 弹窗 -->
|
||||
@ -460,7 +506,11 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="收款账号">
|
||||
<el-select v-model="receivablesAccount" clearable placeholder="请选择收款账号">
|
||||
<el-select
|
||||
v-model="receivablesAccount"
|
||||
clearable
|
||||
placeholder="请选择收款账号"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in BankAccountList"
|
||||
:key="item.label"
|
||||
@ -650,93 +700,167 @@
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<InspectionCashierConfirmForm ref="cashierConfirmRef" @success="getList" />
|
||||
<InspectionCashierConfirmForm ref="cashierConfirmRef" @success="getList"/>
|
||||
|
||||
<!-- 批量结算弹窗 -->
|
||||
<el-dialog title="批量结算" :visible.sync="batchSettleVisible" width="80%">
|
||||
<el-form :inline="true" :model="batchQueryParams" size="small">
|
||||
<el-form-item label="支付状态" v-if="batchType == 'cn'">
|
||||
<el-select
|
||||
v-model="batchQueryParams.payStatus"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option label="未支付" :value="0" />
|
||||
<el-option label="已支付" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间">
|
||||
<el-date-picker
|
||||
v-model="batchQueryParams.datetimeRange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="业务渠道">
|
||||
<el-select
|
||||
v-model="batchQueryParams.businessChannel"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择业务渠道"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in businessList"
|
||||
:key="dict.id"
|
||||
:label="dict.name"
|
||||
:value="dict.name"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户来源">
|
||||
<el-select
|
||||
v-model="batchQueryParams.customerSource"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择客户来源"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in customerData"
|
||||
:key="dict.id"
|
||||
:label="dict.name"
|
||||
:value="dict.name"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handleBatchQuery">筛选</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-dialog :title="batchType == 'cn' ? '批量结算' : '批量审核'" :visible.sync="batchSettleVisible" width="80%">
|
||||
<div v-show="selectBatchType == 'cn'">
|
||||
<el-form :inline="true" :model="batchQueryParams" size="small">
|
||||
<el-form-item label="支付状态" v-if="batchType == 'cn'">
|
||||
<el-select
|
||||
v-model="batchQueryParams.payStatus"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option label="未支付" :value="0"/>
|
||||
<el-option label="已支付" :value="1"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间">
|
||||
<el-date-picker
|
||||
v-model="batchQueryParams.datetimeRange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="业务渠道">
|
||||
<el-select
|
||||
v-model="batchQueryParams.businessChannel"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择业务渠道"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in businessList"
|
||||
:key="dict.id"
|
||||
:label="dict.name"
|
||||
:value="dict.name"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户来源">
|
||||
<el-select
|
||||
v-model="batchQueryParams.customerSource"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择客户来源"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in customerData"
|
||||
:key="dict.id"
|
||||
:label="dict.name"
|
||||
:value="dict.name"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handleBatchQuery">筛选</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-table
|
||||
:data="batchOrderList"
|
||||
@selection-change="handleBatchSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
<el-table-column label="车牌号" prop="carNum">
|
||||
<template slot-scope="scope">{{
|
||||
scope.row.carNum || scope.row.certificateNum || "----"
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="客户名称" prop="buyName"></el-table-column>
|
||||
<el-table-column label="客户手机号" prop="buyPhone"></el-table-column>
|
||||
<el-table-column
|
||||
label="业务渠道"
|
||||
prop="businessChannel"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="客户来源"
|
||||
prop="customerSource"
|
||||
></el-table-column>
|
||||
<el-table-column label="检测项目" prop="skuName"></el-table-column>
|
||||
<el-table-column label="应收金额" prop="goodsPrice">
|
||||
<template slot-scope="scope">{{
|
||||
scope.row.goodsPrice / 100
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table
|
||||
:data="batchOrderList"
|
||||
@selection-change="handleBatchSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
<el-table-column label="车牌号" prop="carNum">
|
||||
<template slot-scope="scope">{{
|
||||
scope.row.carNum || scope.row.certificateNum || "----"
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="客户名称" prop="buyName"></el-table-column>
|
||||
<el-table-column label="客户手机号" prop="buyPhone"></el-table-column>
|
||||
<el-table-column
|
||||
label="业务渠道"
|
||||
prop="businessChannel"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="客户来源"
|
||||
prop="customerSource"
|
||||
></el-table-column>
|
||||
<el-table-column label="检测项目" prop="skuName"></el-table-column>
|
||||
<el-table-column label="应收金额" prop="goodsPrice">
|
||||
<template slot-scope="scope">{{
|
||||
scope.row.goodsPrice / 100
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-show="selectBatchType == 'kj'">
|
||||
<el-form :inline="true" :model="batchQueryParams" size="small">
|
||||
<el-form-item label="时间">
|
||||
<el-date-picker
|
||||
v-model="batchQueryParams.datetimeRange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handleBatchQuery">筛选</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="batchOrderList"
|
||||
@selection-change="handleBatchSelectionChange"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="55">
|
||||
</el-table-column>
|
||||
<el-table-column type="expand">
|
||||
<template slot-scope="props">
|
||||
<el-table
|
||||
:data="props.row.orderInfoList"
|
||||
style="width: 100%"
|
||||
border
|
||||
stripe
|
||||
>
|
||||
<el-table-column prop="carNum" label="车牌号"></el-table-column>
|
||||
|
||||
<el-table-column prop="buyName" label="车主姓名"></el-table-column>
|
||||
<el-table-column prop="buyPhone" label="车主联系方式"></el-table-column>
|
||||
<el-table-column prop="customerSource" label="客户来源"></el-table-column>
|
||||
<el-table-column prop="businessChannel" label="业务渠道"></el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="payMoney"
|
||||
label="支付金额"
|
||||
sortable
|
||||
width="180"
|
||||
>
|
||||
<template slot-scope="scope">{{
|
||||
scope.row.payMoney / 100
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="reduceMoney"
|
||||
label="优惠金额"
|
||||
sortable
|
||||
width="180"
|
||||
>
|
||||
<template slot-scope="scope">{{
|
||||
scope.row.reduceMoney / 100
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cashierName" label="出纳"></el-table-column>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
label="出纳确认时间"
|
||||
:formatter="formatDate">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<div slot="footer">
|
||||
<pagination
|
||||
@ -751,7 +875,8 @@
|
||||
<el-button
|
||||
@click="batchSettleVisible = false"
|
||||
style="margin-right: 10px"
|
||||
>取消</el-button
|
||||
>取消
|
||||
</el-button
|
||||
>
|
||||
<el-button
|
||||
style="margin-top: 10px"
|
||||
@ -798,6 +923,16 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="优惠金额" v-if="batchType == 'cn'">
|
||||
<el-input-number
|
||||
:min="0"
|
||||
@input="batchJisuan"
|
||||
:max="settleForm.realPayMoney"
|
||||
type="text"
|
||||
v-model="settleForm.reduceMoney"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
label="实付金额"
|
||||
prop="realPayMoney"
|
||||
@ -824,7 +959,7 @@
|
||||
>
|
||||
<el-option
|
||||
v-for="item in BankAccountList"
|
||||
:key="item.label"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.label"
|
||||
></el-option>
|
||||
@ -856,9 +991,7 @@
|
||||
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="settleDialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="handleSettleSubmit"
|
||||
>确认</el-button
|
||||
>
|
||||
<el-button type="primary" @click="handleSettleSubmit">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
@ -886,6 +1019,7 @@ import {
|
||||
getWeorkNodesById,
|
||||
getCustomerSource,
|
||||
batchSettlement,
|
||||
getBatchList,
|
||||
} from "./api/workOrder";
|
||||
import print from "vue-print-nb";
|
||||
import moment from "moment";
|
||||
@ -920,6 +1054,7 @@ export default {
|
||||
settleDialogVisible: false,
|
||||
batchSelectedOrders: [],
|
||||
batchSelectedMoney: [],
|
||||
selectBatchType: undefined,
|
||||
batchQueryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 100,
|
||||
@ -928,12 +1063,12 @@ export default {
|
||||
},
|
||||
cashierConfirmOption: [
|
||||
{
|
||||
value: '0',
|
||||
label: '未到账'
|
||||
value: "0",
|
||||
label: "未到账",
|
||||
},
|
||||
{
|
||||
value: '1',
|
||||
label: '已到账'
|
||||
value: "1",
|
||||
label: "已到账",
|
||||
},
|
||||
],
|
||||
batchOrderList: [],
|
||||
@ -1020,6 +1155,12 @@ export default {
|
||||
total: 0,
|
||||
// 道路救援模块表格数据
|
||||
infoList: [],
|
||||
columns: [
|
||||
{
|
||||
prop: "carNum",
|
||||
label: "车牌号",
|
||||
},
|
||||
],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
addOpen: false,
|
||||
@ -1056,13 +1197,13 @@ export default {
|
||||
// 表单校验
|
||||
rules: {
|
||||
connectionName: [
|
||||
{ required: true, message: "联系人名称不能为空", trigger: "blur" },
|
||||
{required: true, message: "联系人名称不能为空", trigger: "blur"},
|
||||
],
|
||||
connectionPhone: [
|
||||
{ required: true, message: "联系人手机号不能为空", trigger: "blur" },
|
||||
{required: true, message: "联系人手机号不能为空", trigger: "blur"},
|
||||
],
|
||||
licenseNum: [
|
||||
{ required: true, message: "车牌号不能为空", trigger: "blur" },
|
||||
{required: true, message: "车牌号不能为空", trigger: "blur"},
|
||||
],
|
||||
isAppointment: [
|
||||
{
|
||||
@ -1093,21 +1234,21 @@ export default {
|
||||
},
|
||||
],
|
||||
feeType: [
|
||||
{ required: true, message: "收费类型不能为空", trigger: "change" },
|
||||
{required: true, message: "收费类型不能为空", trigger: "change"},
|
||||
],
|
||||
},
|
||||
settleRules: {
|
||||
payType: [
|
||||
{ required: true, message: "请选择支付方式", trigger: "change" },
|
||||
{required: true, message: "请选择支付方式", trigger: "change"},
|
||||
],
|
||||
realPayMoney: [
|
||||
{ required: true, message: "请输入实付金额", trigger: "blur" },
|
||||
{required: true, message: "请输入实付金额", trigger: "blur"},
|
||||
],
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.dict = { type: {} };
|
||||
this.dict = {type: {}};
|
||||
for (let i = 0; i < this.$options.dicts.length; i++) {
|
||||
request({
|
||||
url: "/rescue/dict/data/type/" + this.$options.dicts[i],
|
||||
@ -1125,14 +1266,14 @@ export default {
|
||||
// 根据角色判断是否显示对应的列
|
||||
showCashierColumn() {
|
||||
// return this.$store.getters.roles.includes('cn')
|
||||
return ["cn", "jcnc","tenant_admin"].some((role) =>
|
||||
return ["cn", "jcnc", "tenant_admin"].some((role) =>
|
||||
this.$store.getters.roles.includes(role)
|
||||
);
|
||||
},
|
||||
// 根据角色判断是否显示对应的列
|
||||
showAccountingColumn() {
|
||||
// return this.$store.getters.roles.includes('cn')
|
||||
return ["kj", "jckj","tenant_admin"].some((role) =>
|
||||
return ["kj", "jckj", "tenant_admin"].some((role) =>
|
||||
this.$store.getters.roles.includes(role)
|
||||
);
|
||||
},
|
||||
@ -1142,7 +1283,9 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
handleBatchSettle(type) {
|
||||
if(type == 'cn') {
|
||||
this.selectBatchType = type;
|
||||
this.batchOrderList = [];
|
||||
if (type == "cn") {
|
||||
this.batchQueryParams.payStatus = 0;
|
||||
} else {
|
||||
this.batchQueryParams.payStatus = 2;
|
||||
@ -1151,16 +1294,30 @@ export default {
|
||||
this.batchSettleVisible = true;
|
||||
this.handleBatchQuery();
|
||||
},
|
||||
formatDate(row, column, cellValue) {
|
||||
if (!cellValue) return ''; // 处理空值
|
||||
const date = new Date(cellValue);
|
||||
return date.toISOString().split('T')[0]; // 2023-10-25
|
||||
// 或使用更灵活的格式化方式(如 moment.js 或 day.js)
|
||||
},
|
||||
handleBatchQuery() {
|
||||
const params = {
|
||||
...this.batchQueryParams,
|
||||
pageNum: this.batchQueryParams.pageNum || 1,
|
||||
pageSize: this.batchQueryParams.pageSize || 100,
|
||||
accountingConfirm: '1'
|
||||
};
|
||||
listWorkOrder(params).then((response) => {
|
||||
this.batchOrderList = response.data.records;
|
||||
this.batchTotal = response.data.total;
|
||||
});
|
||||
if (this.selectBatchType == "cn") {
|
||||
listWorkOrder(params).then((response) => {
|
||||
this.batchOrderList = response.data.records;
|
||||
this.batchTotal = response.data.total;
|
||||
});
|
||||
} else {
|
||||
getBatchList(params).then((response) => {
|
||||
this.batchOrderList = response.data.records;
|
||||
this.batchTotal = response.data.total;
|
||||
});
|
||||
}
|
||||
},
|
||||
handleBatchSelectionChange(selection) {
|
||||
this.batchSelectedOrders = selection.map((item) => item.id);
|
||||
@ -1170,7 +1327,7 @@ export default {
|
||||
// 判断是否选中 如果没有选中则提示
|
||||
|
||||
if (this.batchSelectedOrders.length === 0) {
|
||||
this.$message.warning("请选择结算工单");
|
||||
this.$message.warning("请选择工单");
|
||||
return;
|
||||
}
|
||||
this.settleDialogVisible = true;
|
||||
@ -1183,6 +1340,7 @@ export default {
|
||||
},
|
||||
0
|
||||
);
|
||||
this.settleForm.goodsPrice = this.settleForm.realPayMoney;
|
||||
},
|
||||
handleSettleSubmit() {
|
||||
this.$refs.settleForm.validate((valid) => {
|
||||
@ -1192,6 +1350,7 @@ export default {
|
||||
...this.settleForm,
|
||||
realPayMoney: this.settleForm.realPayMoney * 100, // 将元转换为分
|
||||
type: this.batchType,
|
||||
reduceMoney: this.settleForm.reduceMoney * 100,
|
||||
};
|
||||
this.$modal.loading("正在提交结算信息...");
|
||||
batchSettlement(params)
|
||||
@ -1223,7 +1382,7 @@ export default {
|
||||
}
|
||||
},
|
||||
checkoutBatchSettlement(ids) {
|
||||
const data = { ids: ids };
|
||||
const data = {ids: ids};
|
||||
this.$modal
|
||||
.confirm("确定要结算吗?")
|
||||
.then(() => {
|
||||
@ -1299,6 +1458,13 @@ export default {
|
||||
}
|
||||
this.payMoney = this.goodsPrice / 100 - this.reduceMoney;
|
||||
},
|
||||
batchJisuan() {
|
||||
if (this.settleForm.reduceMoney > this.settleForm.goodsPrice) {
|
||||
this.settleForm.reduceMoney = this.settleForm.goodsPrice;
|
||||
}
|
||||
this.settleForm.realPayMoney =
|
||||
this.settleForm.goodsPrice - this.settleForm.reduceMoney;
|
||||
},
|
||||
tijiao() {
|
||||
console.log(this.fileUrls);
|
||||
if (Array.isArray(this.fileUrls)) {
|
||||
@ -1423,7 +1589,7 @@ export default {
|
||||
// this.workerList = res.rows
|
||||
// })
|
||||
getBankAccountList().then((res) => {
|
||||
this.BankAccountList = res.data
|
||||
this.BankAccountList = res.data;
|
||||
// res.data.forEach((it) => {
|
||||
// let temp = {};
|
||||
// temp.key = it.remark + it.label;
|
||||
@ -1638,7 +1804,8 @@ export default {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
@ -1698,7 +1865,10 @@ export default {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
* 对话框整体样式 * / .custom-dialog {
|
||||
* 对话框整体样式 *
|
||||
|
||||
/
|
||||
.custom-dialog {
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user