订单纠纷 是否入池

main
fanfan 1 month ago
parent 81eb2e9af8
commit 559e061e3d
  1. 12
      src/api/order/event.js
  2. 29
      src/views/goods/Index.vue
  3. 46
      src/views/order/Index.vue
  4. 28
      src/views/setting/modules/CreateForm.vue
  5. 60
      src/views/setting/modules/EditForm.vue

@ -9,7 +9,17 @@ const api = {
extract: '/order.event/extract', extract: '/order.event/extract',
printer: '/order.event/printer' printer: '/order.event/printer'
} }
/**
* 设置纠纷订单
* @param {*} data
*/
export function disputeStatus(data) {
return axios({
url: '/order/disputeStatus',
method: 'post',
data
})
}
/** /**
* 修改订单价格 * 修改订单价格
* @param {*} data * @param {*} data

@ -100,6 +100,13 @@
<a-form-item label="商品ID"> <a-form-item label="商品ID">
<a-input v-decorator="['goodsId']" style="min-width: 100px" class="goodsWidth" placeholder="请输入商品ID" /> <a-input v-decorator="['goodsId']" style="min-width: 100px" class="goodsWidth" placeholder="请输入商品ID" />
</a-form-item> </a-form-item>
<a-form-item label="状态">
<a-select @change="getGoodsPool" style="width: 120px" placeholder="请选择">
<a-select-option :value="item.val" v-for="item in poolList" :key="item.val">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item class="search-btn"> <a-form-item class="search-btn">
<a-button type="primary" icon="search" html-type="submit">搜索</a-button> <a-button type="primary" icon="search" html-type="submit">搜索</a-button>
</a-form-item> </a-form-item>
@ -111,14 +118,17 @@
<div class="generatePrice"> <div class="generatePrice">
<span style="font-size: 12px"></span> <span style="font-size: 12px"></span>
<!-- {{ generateItem.goods_price_min }} --> <!-- {{ generateItem.goods_price_min }} -->
<a-input v-if="trimShow==2" <a-input
v-if="trimShow == 2"
@blur="searchChange" @blur="searchChange"
v-model:value="generateItem.goods_price_min" v-model:value="generateItem.goods_price_min"
style="width: 150px" style="width: 150px"
placeholder="请输入商品价格" placeholder="请输入商品价格"
allow-clear allow-clear
/> />
<span v-if="trimShow==1" style="padding-right:60px" @click="handleInputChange">{{generateItem.goods_price_min}}</span> <span v-if="trimShow == 1" style="padding-right: 60px" @click="handleInputChange">{{
generateItem.goods_price_min
}}</span>
<span <span
style="font-size: 12px; color: #999; font-weight: 500; text-decoration: line-through; line-height: 32px" style="font-size: 12px; color: #999; font-weight: 500; text-decoration: line-through; line-height: 32px"
>原价{{ generateItem.line_price_min }}</span >原价{{ generateItem.line_price_min }}</span
@ -199,8 +209,8 @@
<a-radio-button value="on_sale">出售中</a-radio-button> <a-radio-button value="on_sale">出售中</a-radio-button>
<a-radio-button value="off_sale">已下架</a-radio-button> <a-radio-button value="off_sale">已下架</a-radio-button>
<a-radio-button value="sold_out">已售罄</a-radio-button> <a-radio-button value="sold_out">已售罄</a-radio-button>
<a-radio-button value="in_pool">已入池</a-radio-button> <!-- <a-radio-button value="in_pool">已入池</a-radio-button>
<a-radio-button value="out_pool">未入池</a-radio-button> <a-radio-button value="out_pool">未入池</a-radio-button> -->
</a-radio-group> </a-radio-group>
</div> </div>
<a-button <a-button
@ -572,6 +582,7 @@ export default {
is_in_store: '', is_in_store: '',
is_paihang: '', is_paihang: '',
is_jingpin: '', is_jingpin: '',
is_pool: '',
}, },
setupIndex: 0, setupIndex: 0,
setupValue: 1, setupValue: 1,
@ -618,10 +629,15 @@ export default {
categoryVisible: false, categoryVisible: false,
jingPinVisible: false, jingPinVisible: false,
generateVisible: false, generateVisible: false,
trimShow:1, trimShow: 1,
generateItem: '', generateItem: '',
is_jingpin: 1, is_jingpin: 1,
categoryIds: [], categoryIds: [],
poolList: [
{ name: '待处理', val: 0 },
{ name: '已入池', val: 1 },
{ name: '未入池', val: 2 },
],
} }
}, },
created() { created() {
@ -668,6 +684,9 @@ export default {
}, },
getGoodsJingPin(val) { getGoodsJingPin(val) {
this.queryParam.is_jingpin = val this.queryParam.is_jingpin = val
},
getGoodsPool(val) {
this.queryParam.is_pool = val
}, },
// //
handleModify() { handleModify() {

@ -51,6 +51,13 @@
}}</a-select-option> }}</a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item label="纠纷异议">
<a-select v-decorator="['disputeStatus', { initialValue: 0 }]">
<a-select-option v-for="(item, index) in disputeList" :key="index" :value="item.val">{{
item.name
}}</a-select-option>
</a-select>
</a-form-item>
<a-form-item class="search-btn"> <a-form-item class="search-btn">
<a-button class="mr-15" type="primary" icon="search" html-type="submit">搜索</a-button> <a-button class="mr-15" type="primary" icon="search" html-type="submit">搜索</a-button>
<a-button @click="handleReset">重置</a-button> <a-button @click="handleReset">重置</a-button>
@ -85,6 +92,7 @@
<span class="mr-20">{{ item.create_time }}</span> <span class="mr-20">{{ item.create_time }}</span>
<span class="mr-20">订单号{{ item.order_no }}</span> <span class="mr-20">订单号{{ item.order_no }}</span>
<platform-icon :name="item.platform" :showTips="true" /> <platform-icon :name="item.platform" :showTips="true" />
<a-tag style="margin-left:10px" v-if="item.dispute_status==20" color="red">纠纷订单</a-tag>
<div v-if="item.merchant"> <div v-if="item.merchant">
<img <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"
@ -220,19 +228,28 @@
>删除</a >删除</a
> >
<a @click="copyText(item.copy_text)">复制</a> <a @click="copyText(item.copy_text)">复制</a>
<a @click="reviewDocuments(item, 1)" v-if="item.standard_count == 0&& item.delivery_status == 10">审单</a> <a
@click="reviewDocuments(item, 1)"
v-if="item.standard_count == 0 && item.delivery_status == 10 && item.order_status == 10"
>审单</a
>
<a <a
style="pointer-events: none; cursor: default; color: gray" style="pointer-events: none; cursor: default; color: gray"
v-if="item.standard_count == 1&& item.delivery_status == 10" v-if="item.standard_count == 1 && item.delivery_status == 10 && item.order_status == 10"
>审单</a >审单</a
> >
<a @click="reviewDocuments(item, 2)" v-if="item.standard_count == 1&& item.delivery_status == 10">再次审单</a> <a
@click="reviewDocuments(item, 2)"
v-if="item.standard_count == 1 && item.delivery_status == 10 && item.order_status == 10"
>再次审单</a
>
<a <a
style="pointer-events: none; cursor: default; color: gray" style="pointer-events: none; cursor: default; color: gray"
v-if="item.standard_count == 2&& item.delivery_status == 10" v-if="item.standard_count == 2 && item.delivery_status == 10 && item.order_status == 10"
>再次审单</a >再次审单</a
> >
<a @click="documentRecord(item)">审单记录</a> <a @click="documentRecord(item)">审单记录</a>
<a @click="documentDispute(item)" v-if="item.dispute_status==10">设置纠纷订单</a>
</div> </div>
</td> </td>
</template> </template>
@ -378,6 +395,11 @@ export default {
showTotal: (total) => `${total} 条记录`, // showTotal: (total) => `${total} 条记录`, //
// //
shopList: [], shopList: [],
disputeList: [
{ name: '全部', val: 0 },
{ name: '正常', val: 10 },
{ name: '纠纷', val: 20 },
],
} }
}, },
beforeCreate() { beforeCreate() {
@ -562,7 +584,21 @@ export default {
}, },
}) })
}, },
documentDispute(item) {
const app = this
const modal = app.$confirm({
title: '您确定要该订单记录设置为纠纷订单吗?',
content: '设置纠纷订单后不可恢复,请谨慎操作',
onOk() {
return EventApi.disputeStatus({orderId:item.order_id,form:{disputeStatus:20}})
.then((result) => {
app.$message.success(result.message, 1.5)
app.handleRefresh()
})
.finally((result) => modal.destroy())
},
})
},
// //
handleDelivery(record) { handleDelivery(record) {
this.$refs.DeliveryForm.show(record) this.$refs.DeliveryForm.show(record)

@ -23,6 +23,24 @@
v-decorator="['store_name', { rules: [{ required: true, min: 3, message: '请输入至少3个字符' }] }]" v-decorator="['store_name', { rules: [{ required: true, min: 3, message: '请输入至少3个字符' }] }]"
/> />
</a-form-item> </a-form-item>
<a-form-item label="法人姓名" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input v-decorator="['legal_person', { rules: [{ required: true, min: 3, message: '请输入法人姓名' }] }]" />
</a-form-item>
<a-form-item label="法人手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input v-decorator="['legal_person_phone', { rules: [{ required: true, min: 3, message: '请输入法人手机号' }] }]" />
</a-form-item>
<a-form-item label="法人身份证正面" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage v-decorator="['id_card_face_image', { rules: [{ required: true, message: '请上传法人身份证正面' }] }]" />
</a-form-item>
<a-form-item label="法人身份证反面" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage v-decorator="['id_card_back_image', { rules: [{ required: true, message: '请上传法人身份证反面' }] }]" />
</a-form-item>
<a-form-item label="营业执照" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage v-decorator="['license_image', { rules: [{ required: true, message: '请上传商营业执照图片' }] }]" />
</a-form-item>
<a-form-item label="法人手持营业执照" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage v-decorator="['legal_person_license_image', { rules: [{ required: true, message: '请上传法人手持营业执照' }] }]" />
</a-form-item>
<a-form-item label="加价率" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="加价率" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input <a-input
addon-after="%" addon-after="%"
@ -57,8 +75,11 @@
<script> <script>
import * as Api from '@/api/shop' import * as Api from '@/api/shop'
import { SelectImage } from '@/components'
export default { export default {
components: {
SelectImage
},
data() { data() {
return { return {
// //
@ -141,3 +162,8 @@ export default {
}, },
} }
</script> </script>
<style scoped>
/deep/.ant-form-item{
margin-bottom: 10px;
}
</style>

@ -10,9 +10,45 @@
> >
<a-spin :spinning="confirmLoading"> <a-spin :spinning="confirmLoading">
<a-form :form="form"> <a-form :form="form">
<a-form-item label="法人姓名" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input v-decorator="['legal_person', { rules: [{ required: true, min: 3, message: '请输入法人姓名' }] }]" />
</a-form-item>
<a-form-item label="法人手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
v-decorator="['legal_person_phone', { rules: [{ required: true, min: 3, message: '请输入法人手机号' }] }]"
/>
</a-form-item>
<a-form-item label="法人身份证正面" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage
:defaultList="record.id_card_face_image_url"
v-decorator="['id_card_face_image', { rules: [{ required: true, message: '请上传法人身份证正面' }] }]"
/>
</a-form-item>
<a-form-item label="法人身份证反面" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage
:defaultList="record.id_card_back_image_url"
v-decorator="['id_card_back_image', { rules: [{ required: true, message: '请上传法人身份证反面' }] }]"
/>
</a-form-item>
<a-form-item label="营业执照" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage
:defaultList="record.license_image_url"
v-decorator="['license_image', { rules: [{ required: true, message: '请上传商营业执照图片' }] }]"
/>
</a-form-item>
<a-form-item label="法人手持营业执照" :labelCol="labelCol" :wrapperCol="wrapperCol">
<SelectImage
:defaultList="record.legal_person_license_image_url"
v-decorator="[
'legal_person_license_image',
{ rules: [{ required: true, message: '请上传法人手持营业执照' }] },
]"
/>
</a-form-item>
<a-form-item label="加价率" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="加价率" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input <a-input
addon-after="%" v-decorator="['markup_rate', { rules: [{ required: true, message: '请输入加价率' }] }]" addon-after="%"
v-decorator="['markup_rate', { rules: [{ required: true, message: '请输入加价率' }] }]"
/> />
<div class="form-item-help"> <div class="form-item-help">
<p class="extra">可输入小数比如0.5</p> <p class="extra">可输入小数比如0.5</p>
@ -27,7 +63,11 @@
import pick from 'lodash.pick' import pick from 'lodash.pick'
import * as Api from '@/api/shop' import * as Api from '@/api/shop'
import moment from 'moment' import moment from 'moment'
import { SelectImage } from '@/components'
export default { export default {
components: {
SelectImage,
},
props: {}, props: {},
data() { data() {
return { return {
@ -65,6 +105,13 @@ export default {
// //
record.effective_time = this.formatDate(record.effective_time) record.effective_time = this.formatDate(record.effective_time)
this.record = record this.record = record
if (record) {
this.record.id_card_face_image_url = [ {preview_url: record.id_card_face_image_url} ]
this.record.id_card_back_image_url = [{ preview_url: record.id_card_back_image_url} ]
this.record.license_image_url = [{preview_url: record.license_image_url }]
this.record.legal_person_license_image_url = [{preview_url: record.legal_person_license_image_url} ]
}
console.log(record)
this.setFieldsValue() this.setFieldsValue()
}, },
@ -76,6 +123,12 @@ export default {
this.form.setFieldsValue( this.form.setFieldsValue(
pick(this.record, [ pick(this.record, [
'markup_rate', 'markup_rate',
'legal_person',
'legal_person_phone',
'id_card_face_image',
'id_card_back_image',
'license_image',
'legal_person_license_image',
]) ])
) )
}) })
@ -131,3 +184,8 @@ export default {
}, },
} }
</script> </script>
<style scoped>
/deep/.ant-form-item {
margin-bottom: 10px;
}
</style>
Loading…
Cancel
Save