master
fanfan 4 months ago
parent fc6610460b
commit 0c09041537
  1. 2
      src/views/goods/Index.vue
  2. 57
      src/views/order/Index.vue
  3. 110
      src/views/order/modules/DocumentRecord.vue
  4. 138
      src/views/order/modules/DocumentRecordDetails.vue
  5. 174
      src/views/order/modules/DocumentRecordList.vue
  6. 5
      src/views/order/modules/index.js

@ -389,7 +389,7 @@
>编辑</router-link
> -->
<a @click="handleEdit(item.goods_id)">编辑</a>
<a @click="handleCopy(item)">复制文</a>
<a @click="handleCopy(item)">复制文</a>
<a @click="handleImage(item)" ref="test">生成图片</a>
<router-link
v-if="

@ -87,11 +87,11 @@
<platform-icon :name="item.platform" :showTips="true" />
<div v-if="item.merchant">
<img
v-if="item.merchant && Object.keys(item.merchant).length > 0 &&item.merchant.logoImage"
v-if="item.merchant && Object.keys(item.merchant).length > 0 && item.merchant.logoImage"
:src="item.merchant.logoImage[0].external_url"
style="width: 60px; height: 60px; margin: 0 10px 0 20px; border-radius: 8px"
/>
<span v-if="item.merchant && Object.keys(item.merchant).length > 0 " class="mr-20">{{
<span v-if="item.merchant && Object.keys(item.merchant).length > 0" class="mr-20">{{
item.merchant.shop_name
}}</span>
</div>
@ -220,7 +220,7 @@
>删除</a
>
<a @click="copyText(item.copy_text)">复制</a>
<!-- <a
<a
style="pointer-events: none; cursor: default; color: gray"
v-if="item.standard_count == 1"
>审单</a
@ -231,7 +231,7 @@
v-if="item.standard_count == 2"
>再次审单</a
>
<a @click="documentRecord(item)">审单记录</a> -->
<a @click="documentRecord(item)">审单记录</a>
</div>
</td>
</template>
@ -264,6 +264,7 @@
<DeliveryForm ref="DeliveryForm" @handleSubmit="handleRefresh" />
<ExtractForm ref="ExtractForm" @handleSubmit="handleRefresh" />
<CancelForm ref="CancelForm" @handleSubmit="handleRefresh" />
<DocumentRecordList ref="DocumentRecordList" @handleSubmit="handleRefresh" />
</a-spin>
</a-card>
</template>
@ -285,7 +286,7 @@ import {
ReceiptStatusEnum,
} from '@/common/enum/order'
import { PaymentMethodEnum } from '@/common/enum/payment'
import { DeliveryForm, ExtractForm, CancelForm } from './modules'
import { DeliveryForm, ExtractForm, CancelForm,DocumentRecord,DocumentRecordList } from './modules'
//
const columns = [
@ -352,6 +353,8 @@ export default {
DeliveryForm,
ExtractForm,
CancelForm,
DocumentRecordList,
DocumentRecord
},
data() {
return {
@ -472,7 +475,49 @@ export default {
getDataType() {
return this.$route.path.split('/')[3].replace('-', '_')
},
reviewDocuments(item, type) {
if (type == 1) {
const app = this
const modal = app.$confirm({
title: '是否确定审单?',
onOk() {
return Api.standard({
orderId: item.order_id,
form: {
type: 10,
},
})
.then((result) => {
app.$message.success(result.message, 1.5)
app.handleRefresh()
})
.finally((result) => modal.destroy())
},
})
}
if (type == 2) {
const app = this
const modal = app.$confirm({
title: '是否确定再次审单?',
onOk() {
return Api.standard({
orderId: item.order_id,
form: {
type: 20,
},
})
.then((result) => {
app.$message.success(result.message, 1.5)
app.handleRefresh()
})
.finally((result) => modal.destroy())
},
})
}
},
documentRecord(record) {
this.$refs.DocumentRecordList.show(record)
},
async copyText(text) {
try {
const textToCopy = text

@ -0,0 +1,110 @@
<template>
<a-modal
:title="title"
:width="560"
:visible="visible"
:isLoading="isLoading"
:confirmLoading="isLoading"
:maskClosable="false"
@ok="handleSubmit"
@cancel="handleCancel"
>
<a-spin :spinning="isLoading">
<a-form :form="form">
<a-form-item label="审核状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group
v-decorator="['standard_status', { initialValue: 10, rules: [{ required: true }] }]"
@change="handleStatus"
>
<a-radio :value="10">同意</a-radio>
<a-radio :value="20">拒绝</a-radio>
</a-radio-group>
</a-form-item>
<a-form-item label="拒绝原因" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="refuse_show">
<a-textarea
placeholder="拒绝原因"
:rows="2"
v-decorator="['cause', { initialValue: '', rules: [{ required: true, message: '拒绝原因不能为空' }] }]"
/>
</a-form-item>
</a-form>
</a-spin>
</a-modal>
</template>
<script>
import * as Api from '@/api/order'
export default {
data() {
return {
refuse_show: false,
//
title: '审核',
//
labelCol: { span: 7 },
//
wrapperCol: { span: 13 },
// modal()
visible: false,
// modal() loading
isLoading: false,
//
form: this.$form.createForm(this),
//
record: {},
}
},
created() {},
methods: {
//
show(record) {
//
this.visible = true
//
this.record = record
},
handleStatus(e) {
if (e.target.value === 20) {
this.form.setFieldsValue({ cause: '' })
this.refuse_show = true
} else {
this.refuse_show = false
}
},
//
handleSubmit(e) {
e.preventDefault()
//
const {
form: { validateFields },
} = this
validateFields((errors, values) => {
// api
!errors && this.onFormSubmit(values)
})
},
//
handleCancel() {
this.visible = false
this.form.resetFields()
},
// api
onFormSubmit(values) {
this.isLoading = true
Api.updateStandard({ standardId: this.record.id, form: values })
.then((result) => {
//
this.$message.success(result.message, 1.5)
//
this.handleCancel()
//
this.$emit('handleSubmit')
})
.finally(() => (this.isLoading = false))
},
},
}
</script>

@ -0,0 +1,138 @@
<template>
<a-modal
:title="title"
:width="800"
:visible="visible"
:isLoading="isLoading"
:confirmLoading="isLoading"
:maskClosable="false"
:footer="null"
@cancel="handleCancel"
>
<a-spin :spinning="isLoading">
<a-form :form="form" v-if="record">
<a-row>
<a-col :span="24">
<a-form-item label="客户来源" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>{{ isFrom[record.from] }}</span>
</a-form-item></a-col
>
</a-row>
<a-row>
<a-col :span="24"
><a-form-item label="是否同一城市" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>{{ isYes[record.is_city] }}</span>
</a-form-item></a-col
></a-row
>
<a-row>
<a-col :span="24"
><a-form-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span v-if="record.standard_status == 10">审审通过</span>
<span v-if="record.standard_status == 20">审审不通过</span>
<span v-if="record.standard_status == 30">审核中</span>
</a-form-item></a-col
></a-row
><a-row>
<a-col :span="24">
<a-form-item label="微信聊天截图" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage
v-if="idOrderShow"
ref="childComponent"
:type="1"
multiple
:source="1"
:maxNum="10"
:defaultList="record.order_image_url"
/> </a-form-item
></a-col>
</a-row>
<a-row>
<a-col :span="24" style="margin-bottom: 30px">
<a-form-item label="转账截图" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage
v-if="transferShow"
:type="1"
ref="childComponent"
multiple
:source="1"
:maxNum="10"
:defaultList="record.transfer_image_url"
/> </a-form-item
></a-col>
</a-row>
</a-form>
</a-spin>
</a-modal>
</template>
<script>
import * as Api from '@/api/market/settle'
import { SelectImage } from '@/components'
const isFrom = {
10: '本地同城线下真实零售客户',
20: '电商平台客户',
30: '短视频平台客户',
}
const isYes = {
10: '是',
20: '否',
}
export default {
components: {
SelectImage,
},
data() {
return {
isFrom,
isYes,
title: '审单详情',
//
//
labelCol: { span: 7 },
//
wrapperCol: { span: 13 },
// modal()
visible: false,
// modal() loading
isLoading: false,
//
form: this.$form.createForm(this),
//
record: {},
idOrderShow: false,
transferShow: false,
}
},
created() {},
methods: {
details(record) {
this.visible = true
this.idOrderShow = false
this.transferShow = false
this.record = record
if (this.record) {
this.idOrderShow = true
this.transferShow = true
}
},
//
handleCancel() {
this.visible = false
this.idOrderShow = false
this.transferShow = false
this.form.resetFields()
},
},
}
</script>
<style lang="less" scoped>
.ant-form-item {
margin-bottom: 5px;
}
</style>

@ -0,0 +1,174 @@
<template>
<a-modal
:title="title"
:width="1000"
:visible="visible"
:isLoading="isLoading"
:confirmLoading="isLoading"
:maskClosable="false"
:footer="null"
@cancel="handleCancel"
>
<a-spin :spinning="isLoading">
<a-table
v-if="!isLoading"
rowKey="category_id"
:columns="columns"
:dataSource="documentList"
:defaultExpandAllRows="true"
:expandIconColumnIndex="1"
:pagination="false"
:loading="isLoading"
>
<!-- 文章封面图 -->
<span slot="transfer_image_url" slot-scope="text">
<a v-if="text" title="点击查看原图">
<img height="50" :src="text[0].preview_url" alt="转账图片" />
</a>
</span>
<span slot="order_image_url" slot-scope="text">
<a v-if="text" title="点击查看原图">
<img height="50" :src="text[0].preview_url" alt="聊天截图" />
</a>
</span>
<!-- 状态 -->
<span slot="is_city" slot-scope="text">
<a-tag :color="text == 10 ? 'green' : ''">{{ text == 10 ? '是' : '否' }}</a-tag>
</span>
<span slot="from" slot-scope="text">
<span v-if="text == 10">本地同城线下真实零售客户</span>
<span v-if="text == 20">电商平台客户</span>
<span v-if="text == 30">短视频平台客户</span>
</span>
<span slot="standard_status" slot-scope="text">
<span v-if="text == 10">单审通过</span>
<span v-if="text == 20">审审不通过</span>
<span v-if="text == 30">审核中</span>
</span>
<span slot="action" slot-scope="text, item">
<a style="margin-right: 8px" @click="handleEdit(item)">详情</a>
<a @click="onClickRecord(item)" v-if="item.standard_status == 30">审单</a>
</span>
</a-table>
</a-spin>
<DocumentRecord ref="DocumentRecord" @handleSubmit="handleRefresh" />
<DocumentRecordDetails ref="DocumentRecordDetails" />
</a-modal>
</template>
<script>
import * as Api from '@/api/order'
import DocumentRecord from './DocumentRecord.vue'
import DocumentRecordDetails from './DocumentRecordDetails.vue'
import { STable } from '@/components'
export default {
components: {
DocumentRecord,
DocumentRecordDetails,
STable,
},
data() {
return {
//
title: '审单记录',
//
labelCol: { span: 7 },
//
wrapperCol: { span: 13 },
// modal()
visible: false,
// modal() loading
isLoading: false,
//
//
record: {},
documentList: [],
//
columns: [
{
title: '审单ID',
dataIndex: 'id',
},
{
title: '客户来源',
width: '120px',
dataIndex: 'from',
scopedSlots: { customRender: 'from' },
},
{
title: '是否同一城市',
width: '100px',
dataIndex: 'is_city',
scopedSlots: { customRender: 'is_city' },
},
{
title: '微信聊天截图',
dataIndex: 'order_image_url',
scopedSlots: { customRender: 'order_image_url' },
},
{
title: '转账截图',
dataIndex: 'transfer_image_url',
scopedSlots: { customRender: 'transfer_image_url' },
},
{
title: '状态',
dataIndex: 'standard_status',
scopedSlots: { customRender: 'standard_status' },
},
{
title: '添加时间',
dataIndex: 'create_time',
},
{
title: '操作',
dataIndex: 'action',
width: '120px',
scopedSlots: { customRender: 'action' },
},
],
}
},
created() {},
methods: {
/**
* 刷新列表
* @param Boolean bool 强制刷新到第一页
*/
handleRefresh(bool = false) {
bool && (this.page = 1)
this.getDocumentList()
},
//
show(record) {
//
this.visible = true
//
this.record = record
if (this.record) {
this.getDocumentList()
}
},
//
getDocumentList(bool) {
bool && (this.isLoading = true)
Api.getStandardList({ orderId: this.record.order_id })
.then((result) => {
this.documentList = result.data.list
})
.finally(() => (this.isLoading = false))
},
onClickRecord(record) {
this.$refs.DocumentRecord.show(record)
},
handleEdit(record) {
this.$refs.DocumentRecordDetails.details(record)
},
//
handleCancel() {
this.visible = false
this.form.resetFields()
},
},
}
</script>

@ -7,4 +7,7 @@ import RemarkFormAdd from './RemarkFormAdd'
import RemarkFormEdit from './RemarkFormEdit'
import JingDong from './JingDong'
import DeliveryFormEdit from './DeliveryFormEdit'
export { DeliveryForm, ExtractForm, CancelForm, PrinterForm, PriceForm,RemarkFormEdit, RemarkFormAdd,JingDong,DeliveryFormEdit }
import DocumentRecord from './DocumentRecord'
import DocumentRecordList from './DocumentRecordList'
import DocumentRecordDetails from './DocumentRecordDetails'
export { DeliveryForm, ExtractForm, CancelForm, PrinterForm, PriceForm,RemarkFormEdit, RemarkFormAdd,JingDong,DeliveryFormEdit,DocumentRecord,DocumentRecordList,DocumentRecordDetails }

Loading…
Cancel
Save