This commit is contained in:
gboy 2024-04-09 20:29:43 +08:00
commit 730ece5ec6
7 changed files with 266 additions and 56 deletions

View File

@ -327,18 +327,54 @@ export function splitAccountMark(id) {
export function marginLstApi(data) { export function marginLstApi(data) {
return request.get(`margin/lst`, data) return request.get(`margin/lst`, data)
} }
/**
* @description 缴存服务费 -- 列表
*/
export function marginServiceLstApi(data) {
return request.get(`margin/service_lst`, data)
}
/**
* @description 缴存上架费 -- 列表
*/
export function marginGoodsLstApi(data) {
return request.get(`margin/goods_lst`, data)
}
/** /**
* @description 待缴保证金 -- 列表 * @description 待缴保证金 -- 列表
*/ */
export function marginDepositLstApi(data) { export function marginDepositLstApi(data) {
return request.get(`margin/make_up`, data) return request.get(`margin/make_up`, data)
} }
/**
* @description 待缴服务费 -- 列表
*/
export function marginServiceDepositLstApi(data) {
return request.get(`margin/make_service_up`, data)
}
/**
* @description 待缴上架费 -- 列表
*/
export function marginGoodsDepositLstApi(data) {
return request.get(`margin/make_goods_up`, data)
}
/** /**
* @description 待缴保证金 -- 线下付款 * @description 待缴保证金 -- 线下付款
*/ */
export function marginPaymentApi(id) { export function marginPaymentApi(id) {
return request.get(`margin/local/${id}/form`) return request.get(`margin/local/${id}/form`)
} }
/**
* @description 待缴服务费 -- 财务审核
*/
export function marginServicePaymentApi(id) {
return request.get(`margin/local_service/${id}/form`)
}
/**
* @description 待缴上架费 -- 财务审核
*/
export function marginGoodsPaymentApi(id) {
return request.get(`margin/local_goods/${id}/form`)
}
/** /**
* @description 退回保证金 -- 列表 * @description 退回保证金 -- 列表
*/ */

View File

@ -14,7 +14,12 @@ import request from './request'
export function feedbackListApi(data) { export function feedbackListApi(data) {
return request.get(`user/feedback/lst`, data) return request.get(`user/feedback/lst`, data)
} }
/**
* @description 导出订单
*/
export function exportOrderApi(data) {
return request.get(`user/feedback/export`, data)
}
/** /**
* @description 备注 * @description 备注
*/ */

View File

@ -24,7 +24,7 @@ export default function modalForm(formRequestPromise, config = {}) {
if (!data.config.form) data.config.form = {} if (!data.config.form) data.config.form = {}
if (!data.config.formData) data.config.formData = {} if (!data.config.formData) data.config.formData = {}
data.config.formData = { ...data.config.formData, ...config.formData } data.config.formData = { ...data.config.formData, ...config.formData }
data.config.form.labelWidth = '110px' // data.config.form.labelWidth = '110px'
data.config.form.size = "small" data.config.form.size = "small"
data.config.global = { data.config.global = {
upload: { upload: {

View File

@ -238,6 +238,26 @@
<span>{{ scope.row.is_margin == 1 ? scope.row.margin : (scope.row.ot_margin-scope.row.margin).toFixed(2) }}</span> <span>{{ scope.row.is_margin == 1 ? scope.row.margin : (scope.row.ot_margin-scope.row.margin).toFixed(2) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
v-if="type == 3"
key="15"
label="待缴金额"
min-width="100"
>
<template slot-scope="scope">
<span>{{ scope.row.is_service == 1 ? scope.row.service_cost : (scope.row.ot_service_cost-scope.row.service_cost).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column
v-if="type == 4"
key="15"
label="待缴金额"
min-width="100"
>
<template slot-scope="scope">
<span>{{ scope.row.is_goods == 1 ? scope.row.goods_cost : (scope.row.ot_goods_cost-scope.row.goods_cost).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column <el-table-column
v-if="type == 2" v-if="type == 2"
key="18" key="18"
@ -257,6 +277,7 @@
label="操作" label="操作"
min-width="150" min-width="150"
fixed="right" fixed="right"
v-if="type != 5 && type !=6"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -292,19 +313,18 @@
>退回信息</el-button >退回信息</el-button
> >
<el-button <el-button
v-if="type != 2" v-if="type != 2 && type != 3 && type != 4"
type="text" type="text"
size="small" size="small"
@click="handleRecord(scope.row.mer_id)" @click="handleRecord(scope.row.mer_id)"
>操作记录</el-button >操作记录</el-button
> >
<el-button <el-button
v-if="type == 2" v-if="type == 2 || type == 3 || type == 4"
type="text" type="text"
size="small" size="small"
@click="offline(scope.row.mer_id)" @click="offline(scope.row.mer_id)"
>财务审核</el-button >财务审核</el-button>
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -456,11 +476,17 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import { import {
marginLstApi, marginLstApi,
marginServiceLstApi,
marginGoodsLstApi,
marginRefundLstApi, marginRefundLstApi,
marginRefundStatus, marginRefundStatus,
marginRefundMark, marginRefundMark,
marginDepositLstApi, marginDepositLstApi,
marginServiceDepositLstApi,
marginGoodsDepositLstApi,
marginPaymentApi, marginPaymentApi,
marginServicePaymentApi,
marginGoodsPaymentApi,
getstoreTypeApi, getstoreTypeApi,
marginDeductionForm, marginDeductionForm,
getMerCateApi, getMerCateApi,
@ -493,11 +519,31 @@ export default {
type: "2", type: "2",
title: "待缴保证金", title: "待缴保证金",
}, },
{
count: "",
type: "3",
title: "待缴服务费",
},
{
count: "",
type: "4",
title: "待缴上架费",
},
{ {
count: "", count: "",
type: "1", type: "1",
title: "缴存保证金", title: "缴存保证金",
}, },
{
count: "",
type: "5",
title: "缴存服务费",
},
{
count: "",
type: "6",
title: "缴存上架费",
},
{ {
count: "", count: "",
type: "0", type: "0",
@ -599,6 +645,46 @@ export default {
this.listLoading = false; this.listLoading = false;
this.$message.error(res.message); this.$message.error(res.message);
}) })
: this.type == 3 ? marginServiceDepositLstApi(this.tableFrom) //
.then((res) => {
this.tableData.data = res.data.list;
this.tableData.total = res.data.count;
this.listLoading = false;
})
.catch((res) => {
this.listLoading = false;
this.$message.error(res.message);
})
: this.type == 4 ? marginGoodsDepositLstApi(this.tableFrom) //
.then((res) => {
this.tableData.data = res.data.list;
this.tableData.total = res.data.count;
this.listLoading = false;
})
.catch((res) => {
this.listLoading = false;
this.$message.error(res.message);
})
: this.type == 5 ? marginServiceLstApi(this.tableFrom) //
.then((res) => {
this.tableData.data = res.data.list;
this.tableData.total = res.data.count;
this.listLoading = false;
})
.catch((res) => {
this.listLoading = false;
this.$message.error(res.message);
})
: this.type == 6 ? marginGoodsLstApi(this.tableFrom) //
.then((res) => {
this.tableData.data = res.data.list;
this.tableData.total = res.data.count;
this.listLoading = false;
})
.catch((res) => {
this.listLoading = false;
this.$message.error(res.message);
})
: marginRefundLstApi(this.tableFrom) //退 : marginRefundLstApi(this.tableFrom) //退
.then((res) => { .then((res) => {
this.tableData.data = res.data.list; this.tableData.data = res.data.list;
@ -667,7 +753,11 @@ export default {
}, },
// 线 // 线
offline(id) { offline(id) {
this.$modalForm(marginPaymentApi(id)).then(() => this.getList("")); this.type == 2?
this.$modalForm(marginPaymentApi(id)).then(() => this.getList(""))
: this.type == 3 ?
this.$modalForm(marginServicePaymentApi(id)).then(() => this.getList(""))
:this.$modalForm(marginGoodsPaymentApi(id)).then(() => this.getList(""))
}, },
// 退 // 退
handleRecord(id) { handleRecord(id) {

View File

@ -67,12 +67,19 @@
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="是否惠美乡村:" prop="us_status"> <el-form-item label="是否惠美乡村:" prop="is_huimei">
<el-select v-model="tableFrom.is_huimei" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)"> <el-select v-model="tableFrom.is_huimei" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
<el-option label="是" value="1" /> <el-option label="是" value="1" />
<el-option label="否" value="0" /> <el-option label="否" value="0" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="审核状态:" prop="is_audited">
<el-select v-model="tableFrom.is_audited" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
<el-option label="首次提报" value="0" />
<el-option label="非首次提报" value="1" />
<el-option label="首次修改" value="2" />
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button> <el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
<el-button size="small" @click="searchReset()">重置</el-button> <el-button size="small" @click="searchReset()">重置</el-button>
@ -493,6 +500,8 @@ export default {
hot_type: '', hot_type: '',
star: '', star: '',
svip_price_type: '', svip_price_type: '',
is_audited:'',
is_huimei:'',
product_id: this.$route.query.id ? this.$route.query.id : "" product_id: this.$route.query.id ? this.$route.query.id : ""
}, },
categoryList: [], categoryList: [],

View File

@ -378,7 +378,7 @@
<el-radio :label="-1">拒绝</el-radio> <el-radio :label="-1">拒绝</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="佐证图片" prop="status_img" label-width="80px" v-if="ruleForm.status===1"> <el-form-item label="佐证图片" prop="status_img" label-width="80px">
<div class="acea-row"> <div class="acea-row">
<div <div
v-for="(item, index) in ruleForm.status_img" v-for="(item, index) in ruleForm.status_img"
@ -390,7 +390,12 @@
@dragenter="handleDragEnter($event, item)" @dragenter="handleDragEnter($event, item)"
@dragend="handleDragEnd($event, item)" @dragend="handleDragEnd($event, item)"
> >
<img :src="item"> <!-- <img :src="item"> -->
<el-image
style="width: 60px; height: 60px"
:src="item"
:preview-src-list="[item]"
/>
<i <i
class="el-icon-error btndel" class="el-icon-error btndel"
@click="handleRemove(index)" @click="handleRemove(index)"
@ -470,7 +475,8 @@ const defaultObj = {
stock: null, stock: null,
bar_code: '', bar_code: '',
weight: null, weight: null,
volume: null volume: null,
gist_url:null
}], }],
attr: [], attr: [],
selectRule: '', selectRule: '',
@ -502,6 +508,9 @@ const objTitle = {
}, },
volume: { volume: {
title: '体积(m³)' title: '体积(m³)'
},
gist_url: {
title: '依据链接'
} }
} }
const proOptions = [{ name: '是否热卖', value: 'is_hot' }, { name: '优品推荐', value: 'is_good' }, { name: '促销单品', value: 'is_benefit' }, { name: '是否精品', value: 'is_best' }, { name: '是否新品', value: 'is_new' }] const proOptions = [{ name: '是否热卖', value: 'is_hot' }, { name: '优品推荐', value: 'is_good' }, { name: '促销单品', value: 'is_benefit' }, { name: '是否精品', value: 'is_best' }, { name: '是否新品', value: 'is_new' }]
@ -526,9 +535,9 @@ export default {
refusal: [ refusal: [
{ required: true, message: '请填写拒绝原因', trigger: 'blur' } { required: true, message: '请填写拒绝原因', trigger: 'blur' }
], ],
status_img: [ // status_img: [
{type: 'array', required: true, message: '请上传佐证图片', trigger: 'blur' } // {type: 'array', required: true, message: '', trigger: 'blur' }
] // ]
}, },
isAppend: true, isAppend: true,
proId: 0, proId: 0,
@ -676,6 +685,8 @@ export default {
this.proId = id this.proId = id
this.loading = true this.loading = true
this.ruleForm.status_img = [] this.ruleForm.status_img = []
this.ruleForm.status = 1
this.ruleForm.refusal = ''
productDetailApi(id).then(res => { productDetailApi(id).then(res => {
this.projectData = res.data, this.projectData = res.data,
this.ruleForm.status_img = res.data.status_img this.ruleForm.status_img = res.data.status_img

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="divBox"> <div class="divBox">
<div class="selCard"> <div class="selCard">
<el-form :model="tableFrom" ref="searchForm" inline size="small" label-width="75px" @submit.native.prevent> <el-form :model="tableFrom" ref="searchForm" inline size="small" label-width="80px" @submit.native.prevent>
<el-form-item label="关键字:" prop="keyword"> <el-form-item label="关键字:" prop="keyword">
<el-input <el-input
v-model="tableFrom.keyword" v-model="tableFrom.keyword"
@ -10,6 +10,28 @@
class="selWidth" class="selWidth"
/> />
</el-form-item> </el-form-item>
<el-form-item label="回复状态:" prop="status">
<el-select v-model="tableFrom.status" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
<el-option label="已回复" value="1" />
<el-option label="未回复" value="0" />
</el-select>
</el-form-item>
<el-form-item label="时间选择:" prop="time">
<el-date-picker
v-model="timeVal"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
type="daterange"
placement="bottom-end"
placeholder="自定义时间"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 280px;"
:picker-options="pickerOptions"
@change="onchangeTime"
clearable
/>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button> <el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
<el-button size="small" @click="searchReset(1)">重置</el-button> <el-button size="small" @click="searchReset(1)">重置</el-button>
@ -17,7 +39,7 @@
</el-form> </el-form>
</div> </div>
<el-card class="mt14"> <el-card class="mt14">
<el-button size="small" type="primary" class="mb20" @click="exports">导出记录</el-button>
<el-table v-loading="listLoading" :data="tableData.data" size="small"> <el-table v-loading="listLoading" :data="tableData.data" size="small">
<el-table-column prop="feedback_id" label="ID" min-width="60" /> <el-table-column prop="feedback_id" label="ID" min-width="60" />
<el-table-column prop="uid" label="用户ID" min-width="100" /> <el-table-column prop="uid" label="用户ID" min-width="100" />
@ -47,6 +69,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="create_time" label="反馈时间" min-width="150" /> <el-table-column prop="create_time" label="反馈时间" min-width="150" />
<el-table-column prop="update_time" label="回复时间" min-width="150" />
<el-table-column label="操作" min-width="100" fixed="right"> <el-table-column label="操作" min-width="100" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<!--<el-button type="text" size="small" @click="onEdit(scope.row.feedback_id)">备注</el-button>--> <!--<el-button type="text" size="small" @click="onEdit(scope.row.feedback_id)">备注</el-button>-->
@ -56,7 +79,6 @@
@click="handleDelete(scope.row.feedback_id, scope.$index)" @click="handleDelete(scope.row.feedback_id, scope.$index)"
>删除</el-button> >删除</el-button>
<el-button <el-button
v-if="scope.row.status != 1"
type="text" type="text"
size="small" size="small"
@click="handleReply(scope.row.feedback_id)" @click="handleReply(scope.row.feedback_id)"
@ -93,9 +115,11 @@ import {
feedbackListApi, feedbackListApi,
feedbackReplyApi, feedbackReplyApi,
feedbackDeleteApi, feedbackDeleteApi,
replyFeedbackApi replyFeedbackApi,
exportOrderApi
} from "@/api/userFeedback"; } from "@/api/userFeedback";
import createWorkBook from '@/utils/newToExcel.js';
import timeOptions from '@/utils/timeOptions';
export default { export default {
name: "Classify", name: "Classify",
data() { data() {
@ -104,10 +128,13 @@ export default {
data: [], data: [],
total: 0 total: 0
}, },
pickerOptions: timeOptions,
timeVal: [],
tableFrom: { tableFrom: {
page: 1, page: 1,
limit: 20, limit: 20,
keyword: "" keyword: "",
status: ""
}, },
listLoading: true listLoading: true
}; };
@ -116,11 +143,43 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
//
onchangeTime(e) {
this.timeVal = e
this.tableFrom.time = e ? this.timeVal.join('-') : ''
this.getList(1)
},
/**重置 */ /**重置 */
searchReset(){ searchReset(){
this.timeVal = []
this.tableFrom.time = ""
this.$refs.searchForm.resetFields() this.$refs.searchForm.resetFields()
this.getList(1) this.getList(1)
}, },
async exports() {
let excelData = JSON.parse(JSON.stringify(this.tableFrom)), data = []
excelData.page = 1
let pageCount = 1
let lebData = {};
for (let i = 0; i < pageCount; i++) {
lebData = await this.downData(excelData)
pageCount = Math.ceil(lebData.count/excelData.limit)
if (lebData.export.length) {
data = data.concat(lebData.export)
excelData.page++
}
}
createWorkBook(lebData.header, lebData.title, data, lebData.foot,lebData.filename);
return
},
/**订单列表 */
downData(excelData) {
return new Promise((resolve, reject) => {
exportOrderApi(excelData).then((res) => {
return resolve(res.data)
})
})
},
// //
getList(num) { getList(num) {
this.tableFrom.page = num || this.tableFrom.page; this.tableFrom.page = num || this.tableFrom.page;