feat: 添加回收订单 修改其他
This commit is contained in:
parent
7c0b7f8a66
commit
9cb9ce5cfb
@ -5,21 +5,34 @@
|
||||
"ComponentPublicInstance": true,
|
||||
"ComputedRef": true,
|
||||
"Debounce": true,
|
||||
"DirectiveBinding": true,
|
||||
"EMAIL_REGEXP": true,
|
||||
"EffectScope": true,
|
||||
"ElMessage": true,
|
||||
"ExtractDefaultPropTypes": true,
|
||||
"ExtractPropTypes": true,
|
||||
"ExtractPublicPropTypes": true,
|
||||
"InjectionKey": true,
|
||||
"MOBILE_REGEXP": true,
|
||||
"MaybeRef": true,
|
||||
"MaybeRefOrGetter": true,
|
||||
"PASSWORD_REGEXP": true,
|
||||
"PropType": true,
|
||||
"Ref": true,
|
||||
"STAR_MOBILE_REGEXP": true,
|
||||
"UNIFIED_SOCIAL_CREDIT_CODE": true,
|
||||
"USER_NAME_REGEXP": true,
|
||||
"VNode": true,
|
||||
"WritableComputedRef": true,
|
||||
"addClass": true,
|
||||
"addDomain": true,
|
||||
"byteLength": true,
|
||||
"checkFile": true,
|
||||
"checkIDCard": true,
|
||||
"cleanArray": true,
|
||||
"computed": true,
|
||||
"configDefInfo": true,
|
||||
"countComboPrice": true,
|
||||
"createApp": true,
|
||||
"createUniqueString": true,
|
||||
"customRef": true,
|
||||
@ -29,28 +42,32 @@
|
||||
"defineComponent": true,
|
||||
"effectScope": true,
|
||||
"encrypt": true,
|
||||
"filterAsyncRoutes": true,
|
||||
"excelRequest": true,
|
||||
"flatten": true,
|
||||
"formatConfigInfo": true,
|
||||
"formatHtml": true,
|
||||
"formatTime": true,
|
||||
"formatPrice": true,
|
||||
"formatTime": true,
|
||||
"generateTitle": true,
|
||||
"getAreaNameList": true,
|
||||
"getCurrentInstance": true,
|
||||
"getCurrentScope": true,
|
||||
"getDateTimeRange": true,
|
||||
"getLevels": true,
|
||||
"getParseTime": true,
|
||||
"getQueryObject": true,
|
||||
"getTime": true,
|
||||
"getToken": true,
|
||||
"getUUID": true,
|
||||
"h": true,
|
||||
"handleArr": true,
|
||||
"handleOrderItems": true,
|
||||
"hasClass": true,
|
||||
"html2Text": true,
|
||||
"idList": true,
|
||||
"inject": true,
|
||||
"isAuth": true,
|
||||
"isArray": true,
|
||||
"isAuth": true,
|
||||
"isCreditCode": true,
|
||||
"isEmail": true,
|
||||
"isExternal": true,
|
||||
@ -61,9 +78,9 @@
|
||||
"isReactive": true,
|
||||
"isReadonly": true,
|
||||
"isRef": true,
|
||||
"isStarMobile": true,
|
||||
"isString": true,
|
||||
"isUserName": true,
|
||||
"loadView": true,
|
||||
"markRaw": true,
|
||||
"nextTick": true,
|
||||
"noSpacesBothSides": true,
|
||||
@ -83,6 +100,7 @@
|
||||
"onServerPrefetch": true,
|
||||
"onUnmounted": true,
|
||||
"onUpdated": true,
|
||||
"onWatcherCleanup": true,
|
||||
"param": true,
|
||||
"param2Obj": true,
|
||||
"parseTime": true,
|
||||
@ -95,9 +113,11 @@
|
||||
"request": true,
|
||||
"resolveComponent": true,
|
||||
"setToken": true,
|
||||
"setupStore": true,
|
||||
"shallowReactive": true,
|
||||
"shallowReadonly": true,
|
||||
"shallowRef": true,
|
||||
"store": true,
|
||||
"toRaw": true,
|
||||
"toRef": true,
|
||||
"toRefs": true,
|
||||
@ -107,17 +127,22 @@
|
||||
"triggerRef": true,
|
||||
"uniqueArr": true,
|
||||
"unref": true,
|
||||
"useAllinpayStore": true,
|
||||
"useAppStore": true,
|
||||
"useAttrs": true,
|
||||
"useCommonStore": true,
|
||||
"useProdStore": true,
|
||||
"useCssModule": true,
|
||||
"useCssVars": true,
|
||||
"useId": true,
|
||||
"useIncludeRouterName": true,
|
||||
"useLink": true,
|
||||
"useModel": true,
|
||||
"usePermissionStore": true,
|
||||
"useProdStore": true,
|
||||
"useRoute": true,
|
||||
"useRouter": true,
|
||||
"useSlots": true,
|
||||
"useTemplateRef": true,
|
||||
"useUserStore": true,
|
||||
"useWebConfigStore": true,
|
||||
"validAlphabets": true,
|
||||
@ -125,42 +150,13 @@
|
||||
"validLowerCase": true,
|
||||
"validNoEmptySpace": true,
|
||||
"validPassword": true,
|
||||
"validPassword2": true,
|
||||
"validURL": true,
|
||||
"validUpperCase": true,
|
||||
"validUsername": true,
|
||||
"watch": true,
|
||||
"watchEffect": true,
|
||||
"watchPostEffect": true,
|
||||
"watchSyncEffect": true,
|
||||
"stores": true,
|
||||
"allinpay": true,
|
||||
"useAllinpayStore": true,
|
||||
"useTestStore": true,
|
||||
"DirectiveBinding": true,
|
||||
"ExtractDefaultPropTypes": true,
|
||||
"ExtractPropTypes": true,
|
||||
"ExtractPublicPropTypes": true,
|
||||
"MaybeRef": true,
|
||||
"MaybeRefOrGetter": true,
|
||||
"STAR_MOBILE_REGEXP": true,
|
||||
"WritableComputedRef": true,
|
||||
"addDomain": true,
|
||||
"checkFile": true,
|
||||
"checkIDCard": true,
|
||||
"countComboPrice": true,
|
||||
"excelRequest": true,
|
||||
"generateTitle": true,
|
||||
"getDateTimeRange": true,
|
||||
"getParseTime": true,
|
||||
"handleOrderItems": true,
|
||||
"isStarMobile": true,
|
||||
"onWatcherCleanup": true,
|
||||
"setupStore": true,
|
||||
"store": true,
|
||||
"useId": true,
|
||||
"useIncludeRouterName": true,
|
||||
"useModel": true,
|
||||
"useTemplateRef": true,
|
||||
"validPassword2": true
|
||||
"watchSyncEffect": true
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,10 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Autor : cl
|
||||
* @Date : 2025-04-11 20:20:26
|
||||
*/
|
||||
module.exports = {
|
||||
// lintOnSave: false,
|
||||
env: {
|
||||
browser: true,
|
||||
es2021: true
|
||||
|
@ -1,6 +1,6 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name cloud-admin.mall4j.com;
|
||||
server_name cloud-admin.Tmerclub.com;
|
||||
|
||||
location / {
|
||||
root /usr/share/nginx/html/admin;
|
||||
|
@ -11,7 +11,6 @@
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
<script>
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('mall4j.v240115')
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,6 +1,6 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name cloud-multishop.mall4j.com;
|
||||
server_name cloud-multishop.Tmerclub.com;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /;
|
||||
|
@ -202,3 +202,47 @@ export function deleteStickDefect (params) {
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 获取回收订单
|
||||
export function getRecycleOrder (params) {
|
||||
return request({
|
||||
url: '/tmerclub_local/admin/cueOrder/page',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 获取回收订单详情
|
||||
export function getRecycleOrderDetail (params) {
|
||||
return request({
|
||||
url: '/tmerclub_local/admin/cueOrder',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 修改审核状态
|
||||
export function updateRecycleOrderStatus (data) {
|
||||
return request({
|
||||
url: '/tmerclub_local/admin/cueOrder/updateAuditStatus',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 修改评估状态
|
||||
export function updateRecycleOrderEvaluateStatus (data) {
|
||||
return request({
|
||||
url: '/tmerclub_local/admin/cueOrder/updateEvaluateStatus',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 退回
|
||||
export function returnRecycleOrder (data) {
|
||||
return request({
|
||||
url: '/tmerclub_local/admin/cueOrder/cueRetracted',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
:close-on-click-modal="false"
|
||||
:title="'修改密码'"
|
||||
:append-to-body="true"
|
||||
class="Mall4j"
|
||||
class="Tmerclub"
|
||||
>
|
||||
<el-form
|
||||
ref="dataFormRef"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div
|
||||
class="Mall4j container"
|
||||
class="Tmerclub container"
|
||||
:style="isDecorate? '':'margin-top: 40px;'"
|
||||
>
|
||||
<el-card
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="Mall4j navbar">
|
||||
<div class="Tmerclub navbar">
|
||||
<div class="navbar-content">
|
||||
<!-- 1.左边部分 -->
|
||||
<div class="left-menu">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<aside class="Mall4j site-sidebar">
|
||||
<aside class="Tmerclub site-sidebar">
|
||||
<div class="menu-mod">
|
||||
<el-scrollbar style="height: 100%">
|
||||
<div class="menu-left">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="Mall4j menu-mod">
|
||||
<div class="Tmerclub menu-mod">
|
||||
<div v-if="expandMenu.children">
|
||||
<el-sub-menu :index="expandMenu.id + ''">
|
||||
<template #title>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="Mall4j">
|
||||
<div class="Tmerclub">
|
||||
<div class="menu-right-el">
|
||||
<el-menu
|
||||
class="el-menu-vertical-demo"
|
||||
|
@ -1,7 +1,12 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Autor : cl
|
||||
* @Date : 2025-04-11 20:20:26
|
||||
-->
|
||||
<template>
|
||||
<div
|
||||
:class="classObj"
|
||||
class="Mall4j app-wrapper"
|
||||
class="Tmerclub app-wrapper"
|
||||
>
|
||||
<div :class="{'fixed-header':fixedHeader}">
|
||||
<Navbar v-if="isDecorate" />
|
||||
|
@ -23,9 +23,9 @@ export const useWebConfigStore = defineStore('webConfigStore', {
|
||||
this.webConfig = webConfigDataForm
|
||||
const lang = localStorage.getItem('cloudLang')
|
||||
if (lang !== 'en') {
|
||||
document.title = webConfigDataForm.titleContentCn || 'Mall4j白洞版-商家端'
|
||||
document.title = webConfigDataForm.titleContentCn || 'Tmerclub白洞版-商家端'
|
||||
} else {
|
||||
document.title = webConfigDataForm.titleContentEn || 'Mall4j White hole version Shop side'
|
||||
document.title = webConfigDataForm.titleContentEn || 'Tmerclub White hole version Shop side'
|
||||
}
|
||||
|
||||
let facicon = document.querySelector('link[rel="icon"]')
|
||||
|
@ -7,9 +7,9 @@ const configDefInfo = {
|
||||
// 版权声明-英文
|
||||
copyrightEn: '',
|
||||
// 标题文本-中文
|
||||
titleContentCn: 'Mall4j 白洞版 商家端',
|
||||
titleContentCn: 'Tmerclub 白洞版 商家端',
|
||||
// 标题文本-英文
|
||||
titleContentEn: 'Mall4j 白洞版 商家端',
|
||||
titleContentEn: 'Tmerclub 白洞版 商家端',
|
||||
// 网站标题图标
|
||||
titleImg: new URL('@/assets/website-config/title-icon.png', import.meta.url).href,
|
||||
// 菜单栏顶部图标
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class=" Mall4j dashboard-container">
|
||||
<div class=" Tmerclub dashboard-container">
|
||||
<!-- 1.店铺状态信息提示 -->
|
||||
<div
|
||||
v-if="shopStatusInfo.shopStatus !== null && shopStatusInfo.shopStatus !== 1"
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="Mall4j page-login login-container">
|
||||
<div class="Tmerclub page-login login-container">
|
||||
<div class="login-frame">
|
||||
<div class="login-img">
|
||||
<img
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="Mall4j">
|
||||
<div class="Tmerclub">
|
||||
<router-view />
|
||||
</div>
|
||||
</template>
|
||||
|
14
src/views/modules/product/recycle/order-detail/index.vue
Normal file
14
src/views/modules/product/recycle/order-detail/index.vue
Normal file
@ -0,0 +1,14 @@
|
||||
<template>
|
||||
<div class="order-detail" />
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
</script>
|
||||
<style scoped>
|
||||
.order-detail {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #fff;
|
||||
|
||||
}
|
||||
</style>
|
323
src/views/modules/product/recycle/order-page/add-or-update.vue
Normal file
323
src/views/modules/product/recycle/order-page/add-or-update.vue
Normal file
@ -0,0 +1,323 @@
|
||||
<!--
|
||||
* @Author: 快乐橙 1760016317@qq.com
|
||||
* @Date: 2025-04-14 21:53:04
|
||||
* @LastEditors: 快乐橙 1760016317@qq.com
|
||||
* @LastEditTime: 2025-04-15 20:09:31
|
||||
* @FilePath: \tmerclub-platform\src\views\modules\product\recycle\club\add-or-update.vue
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
-->
|
||||
<template>
|
||||
<div>
|
||||
<div class="club-manage">
|
||||
<el-dialog
|
||||
v-model="visible"
|
||||
:title="dataForm.productId ? $t('table.edit') : $t('table.create')"
|
||||
:close-on-click-modal="false"
|
||||
width="600px"
|
||||
:destroy-on-close="true"
|
||||
top="5vh"
|
||||
class="el-dialog-bodyt"
|
||||
@close="closeDialog"
|
||||
>
|
||||
<el-form
|
||||
ref="dataFormRef"
|
||||
:rules="rules"
|
||||
:model="dataForm"
|
||||
label-position="right"
|
||||
label-width="110px"
|
||||
style="width: 500px; margin-left: 35px"
|
||||
@submit.prevent
|
||||
>
|
||||
<!-- 商品名称 -->
|
||||
<el-form-item
|
||||
label="商品名称:"
|
||||
prop="productName"
|
||||
>
|
||||
<el-input
|
||||
v-model="dataForm.productName"
|
||||
type="text"
|
||||
maxlength="10"
|
||||
placeholder="商品名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 商品图片 -->
|
||||
<el-form-item
|
||||
label="商品图片:"
|
||||
prop="productImages"
|
||||
>
|
||||
<img-upload
|
||||
v-model="dataForm.productImages"
|
||||
@input="onPropChange('productImages')"
|
||||
/>
|
||||
<div
|
||||
class=""
|
||||
style="width: 100%"
|
||||
>
|
||||
建议图片尺寸为1920*45 0
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!-- 商品价格 -->
|
||||
<el-form-item
|
||||
label="商品价格:"
|
||||
prop="productPrice"
|
||||
>
|
||||
<el-input
|
||||
v-model="dataForm.productPrice"
|
||||
type="text"
|
||||
maxlength="10"
|
||||
placeholder="商品价格"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 品牌选择 -->
|
||||
<el-form-item
|
||||
label="品牌选择:"
|
||||
prop="brandId"
|
||||
>
|
||||
<el-select
|
||||
v-model="dataForm.brandId"
|
||||
placeholder="请选择品牌"
|
||||
:empty-values="[null, undefined]"
|
||||
value-key="brandId"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in stickBrandList"
|
||||
:key="item.brandId"
|
||||
:disabled="item.brandStatus == 0"
|
||||
:label="item.brandName"
|
||||
:value="item.brandId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 类型选择 -->
|
||||
<el-form-item
|
||||
label="类型选择:"
|
||||
prop="typeId"
|
||||
>
|
||||
<el-select
|
||||
v-model="dataForm.typeId"
|
||||
placeholder="请选择类型"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in stickTypeList"
|
||||
:key="item.typeId"
|
||||
:disabled="item.typeStatus == 0"
|
||||
:label="item.typeName"
|
||||
:value="item.typeId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 获取系列 -->
|
||||
<el-form-item
|
||||
label="系列选择:"
|
||||
prop="seriesId"
|
||||
>
|
||||
<el-select
|
||||
v-model="dataForm.seriesId"
|
||||
placeholder="请选择系列"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in stickSeriesList"
|
||||
:key="item.seriesId"
|
||||
:disabled="item.seriesStatus == 0"
|
||||
:label="item.seriesName"
|
||||
:value="item.seriesId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 排序 -->
|
||||
<el-form-item
|
||||
label="排序:"
|
||||
prop="productSeq"
|
||||
>
|
||||
<el-input
|
||||
v-model="dataForm.productSeq"
|
||||
type="text"
|
||||
maxlength="10"
|
||||
placeholder="排序"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 状态 -->
|
||||
<el-form-item
|
||||
label="状态:"
|
||||
prop="productStatus"
|
||||
>
|
||||
<el-radio-group v-model="dataForm.productStatus">
|
||||
<el-radio :label="1">
|
||||
上架
|
||||
</el-radio>
|
||||
<el-radio :label="0">
|
||||
下架
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="visible = false">
|
||||
取消
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
:loading="btnLoading"
|
||||
@click="onSubmit()"
|
||||
>
|
||||
确认
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { getStickDetail, addStick, updateStick } from '@/api/product/recycle'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
const props = defineProps({
|
||||
stickBrandList: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
stickTypeList: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
stickSeriesList: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['refresh-data-list'])
|
||||
const { proxy } = getCurrentInstance()
|
||||
const dataFormRef = ref(null)
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const visible = ref(false)
|
||||
const title = ref('')
|
||||
const type = ref('')
|
||||
const clubList = ref([])
|
||||
const attrValue = ref('')
|
||||
const btnLoading = ref(false)
|
||||
const dataForm = ref({
|
||||
productId: null,
|
||||
productName: '',
|
||||
productDescription: '',
|
||||
productImages: '',
|
||||
productPrice: '',
|
||||
productSeq: '',
|
||||
productStatus: 1,
|
||||
typeId: null,
|
||||
brandId: null,
|
||||
seriesId: null
|
||||
})
|
||||
const rules = reactive({
|
||||
productName: [{ required: true, message: '请输入商品名称', trigger: 'blur' }],
|
||||
productPrice: [
|
||||
{ required: true, message: '请输入商品价格', trigger: 'blur' },
|
||||
// 价格必须为数字值 且不能小于0
|
||||
{
|
||||
pattern: /^\d+$/,
|
||||
message: '价格必须为数字值且不能小于0',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
productImages: [
|
||||
{ required: true, message: '请选择商品图片', trigger: 'blur' }
|
||||
],
|
||||
productSeq: [
|
||||
{ required: true, message: '请输入商品排序', trigger: 'blur' },
|
||||
{
|
||||
pattern: /^\d+$/,
|
||||
message: '排序必须为数字值且不能小于0',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
productStatus: [
|
||||
{ required: true, message: '请选择商品状态', trigger: 'blur' }
|
||||
],
|
||||
typeId: [{ required: true, message: '请选择球杆类型', trigger: 'blur' }],
|
||||
brandId: [{ required: true, message: '请选择球杆品牌', trigger: 'blur' }],
|
||||
seriesId: [{ required: true, message: '请选择球杆系列', trigger: 'blur' }]
|
||||
})
|
||||
const init = (productId) => {
|
||||
console.log('init', productId)
|
||||
visible.value = true
|
||||
dataForm.value.productId = productId || null
|
||||
|
||||
dataFormRef.value?.clearValidate()
|
||||
if (productId) {
|
||||
getClubInfo()
|
||||
}
|
||||
}
|
||||
const closeDialog = () => {
|
||||
visible.value = false
|
||||
dataForm.value = {
|
||||
productId: null,
|
||||
productName: '',
|
||||
productDescription: '',
|
||||
productImages: '',
|
||||
productPrice: '',
|
||||
productSeq: '',
|
||||
productStatus: 1,
|
||||
typeId: null,
|
||||
brandId: null,
|
||||
seriesId: null
|
||||
}
|
||||
}
|
||||
const getClubInfo = () => {
|
||||
getStickDetail({ productId: dataForm.value.productId }).then((res) => {
|
||||
Object.keys(dataForm.value).forEach((key) => {
|
||||
dataForm.value[key] = res[key]
|
||||
})
|
||||
console.log(props.stickBrandList)
|
||||
nextTick(() => {
|
||||
dataFormRef.value?.forceUpdate()
|
||||
})
|
||||
console.log(dataForm.value)
|
||||
})
|
||||
}
|
||||
const onPropChange = (prop) => {
|
||||
dataFormRef.value?.validateField(prop)
|
||||
}
|
||||
|
||||
const onSubmit = () => {
|
||||
console.log(dataForm.value)
|
||||
|
||||
dataFormRef.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
btnLoading.value = true
|
||||
if (!dataForm.value.productId) {
|
||||
addStick(dataForm.value).then(() => {
|
||||
ElMessage.success('新增成功')
|
||||
emit('refresh-data-list')
|
||||
btnLoading.value = false
|
||||
closeDialog()
|
||||
}).catch((err) => {
|
||||
btnLoading.value = false
|
||||
console.log(err)
|
||||
})
|
||||
} else {
|
||||
updateStick(dataForm.value).then(() => {
|
||||
ElMessage.success('修改成功')
|
||||
emit('refresh-data-list')
|
||||
btnLoading.value = false
|
||||
closeDialog()
|
||||
}).catch((err) => {
|
||||
btnLoading.value = false
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
visible.value = false
|
||||
} else {
|
||||
console.log('error submit!!')
|
||||
return false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
355
src/views/modules/product/recycle/order-page/index.vue
Normal file
355
src/views/modules/product/recycle/order-page/index.vue
Normal file
@ -0,0 +1,355 @@
|
||||
<!--
|
||||
* @Author: 快乐橙 1760016317@qq.com
|
||||
* @Date: 2025-04-14 21:19:35
|
||||
* @LastEditors: 快乐橙 1760016317@qq.com
|
||||
* @LastEditTime: 2025-04-20 22:43:49
|
||||
* @FilePath: \tmerclub-platform\src\views\modules\product\recycle\club\index.vue
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
-->
|
||||
<!--
|
||||
* @Author: 快乐橙 1760016317@qq.com
|
||||
* @Date: 2025-04-14 21:19:35
|
||||
* @LastEditors: 快乐橙 1760016317@qq.com
|
||||
* @LastEditTime: 2025-04-14 22:25:43
|
||||
* @FilePath: \tmerclub-platform\src\views\modules\recycle\club\index.vue
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
-->
|
||||
<template>
|
||||
<div class="app-container order-home">
|
||||
<!-- 搜索相关区域 -->
|
||||
<div class="search-bar">
|
||||
<!-- native modifier has been removed, please confirm whether the function has been affected -->
|
||||
<el-form
|
||||
ref="searchRef"
|
||||
:inline="true"
|
||||
:model="pageQuery"
|
||||
class="demo-form-inline"
|
||||
@submit.prevent
|
||||
>
|
||||
<div class="input-row">
|
||||
<!-- 类型 -->
|
||||
<el-form-item
|
||||
label="类型:"
|
||||
prop="cueOrderType"
|
||||
>
|
||||
<el-select
|
||||
v-model="pageQuery.cueOrderType"
|
||||
placeholder="请选择类型"
|
||||
:empty-values="[null, undefined]"
|
||||
value-key="brandId"
|
||||
>
|
||||
<el-option
|
||||
label="回收"
|
||||
:value="1"
|
||||
/>
|
||||
<el-option
|
||||
label="置换"
|
||||
:value="2"
|
||||
/>
|
||||
<el-option
|
||||
label="寄售"
|
||||
:value="3"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 是否审核 -->
|
||||
<el-form-item
|
||||
label="审核:"
|
||||
prop="orderStatus"
|
||||
>
|
||||
<el-select
|
||||
v-model="pageQuery.orderStatus"
|
||||
placeholder="请选择"
|
||||
:empty-values="[null, undefined]"
|
||||
value-key="brandId"
|
||||
>
|
||||
<el-option
|
||||
label="待审核"
|
||||
:value="0"
|
||||
/>
|
||||
<el-option
|
||||
label="审核"
|
||||
:value="1"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="onGetPage(true)"
|
||||
>
|
||||
{{ $t("table.search") }}
|
||||
</el-button>
|
||||
<el-button @click="onClearSearchInfo()">
|
||||
{{ $t("table.reset") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="main-content">
|
||||
<div class="operation-bar">
|
||||
<el-button
|
||||
v-permission="['product:attr:save']"
|
||||
type="primary"
|
||||
class="filter-item"
|
||||
@click="onAddOrUpdate()"
|
||||
>
|
||||
{{ $t("table.create") }}
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="table-con">
|
||||
<!-- 列表相关区域 -->
|
||||
<el-table
|
||||
v-loading="pageLoading"
|
||||
:data="pageVO.list"
|
||||
header-cell-class-name="table-header"
|
||||
row-class-name="table-row-low"
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
>
|
||||
<!-- 商品名称 -->
|
||||
<el-table-column
|
||||
label="商品名称"
|
||||
prop="productName"
|
||||
align="left"
|
||||
/>
|
||||
<!-- 商品图片 -->
|
||||
<el-table-column
|
||||
label="商品图片"
|
||||
prop="productImages"
|
||||
align="left"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<img-show :src="row.productImages" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="品牌"
|
||||
prop="brandName"
|
||||
align="left"
|
||||
/>
|
||||
<el-table-column
|
||||
label="类型"
|
||||
prop="typeName"
|
||||
align="left"
|
||||
/>
|
||||
<el-table-column
|
||||
label="回收类型"
|
||||
prop="cueOrderType"
|
||||
align="left"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.cueOrderType == 1"> 回收</span>
|
||||
<span v-if="row.cueOrderType == 2">置换</span>
|
||||
<span v-if="row.cueOrderType == 3">寄售</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 商品价格 -->
|
||||
<el-table-column
|
||||
label="价格"
|
||||
prop="productPrice"
|
||||
align="left"
|
||||
/>
|
||||
<el-table-column
|
||||
label="状态"
|
||||
prop="orderStatus"
|
||||
align="left"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.orderStatus == 5">已完成</span>
|
||||
<span v-if="row.orderStatus == 10">待审核</span>
|
||||
<span v-if="row.orderStatus == 11">审核通过(待发货)</span>
|
||||
<span v-if="row.orderStatus == 12">审核拒绝</span>
|
||||
<span v-if="row.orderStatus == 13">已发货</span>
|
||||
<span v-if="row.orderStatus == 14">已收货(评估中)</span>
|
||||
<span v-if="row.orderStatus == 15">评估成功</span>
|
||||
<span v-if="row.orderStatus == 16">评估失败</span>
|
||||
<span v-if="row.orderStatus == 17">评估失败用户已填写回邮地址</span>
|
||||
<span v-if="row.orderStatus == 18">评估失败(已退回)</span>
|
||||
<span v-if="row.orderStatus == 19">拒绝(已填写回邮地址)</span>
|
||||
<span v-if="row.orderStatus == 20">已完成</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 创建时间 -->
|
||||
<el-table-column
|
||||
:label="$t('table.createTime')"
|
||||
prop="createTime"
|
||||
align="center"
|
||||
min-width="180"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span>{{ row.createTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 更新时间 -->
|
||||
<el-table-column
|
||||
:label="$t('table.updateTime')"
|
||||
prop="updateTime"
|
||||
align="center"
|
||||
min-width="180"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span>{{ row.updateTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('table.actions')"
|
||||
align="center"
|
||||
width="230"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<div class="table-btn-con">
|
||||
<el-button
|
||||
v-permission="['product:attr:update']"
|
||||
type="primary"
|
||||
link
|
||||
@click="review(row.orderId)"
|
||||
>
|
||||
查看详情
|
||||
</el-button>
|
||||
<!-- <el-button v-permission="['product:attr:update']" type="primary" link
|
||||
@click="onAddOrUpdate(row.productId)">
|
||||
{{ $t("table.edit") }}
|
||||
</el-button> -->
|
||||
<!-- <el-button v-permission="['product:attr:delete']" type="primary" link @click="onDelete(row.productId)">
|
||||
{{ $t("table.delete") }}
|
||||
</el-button> -->
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 分页条 -->
|
||||
<pagination
|
||||
v-show="pageVO.total > 0"
|
||||
v-model:page="pageQuery.pageNum"
|
||||
v-model:limit="pageQuery.pageSize"
|
||||
:total="pageVO.total"
|
||||
@pagination="onGetPage()"
|
||||
/>
|
||||
<add-or-update
|
||||
ref="addOrUpdateRef"
|
||||
:stick-brand-list="stickBrandList"
|
||||
:stick-type-list="stickTypeList"
|
||||
:stick-series-list="stickSeriesList"
|
||||
@refresh-data-list="onGetPage()"
|
||||
/>
|
||||
<review-dialog ref="reviewDialogRef" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
getRecycleOrder,
|
||||
getStickBrand,
|
||||
getStickType,
|
||||
getStickSeries,
|
||||
deleteStick
|
||||
} from '@/api/product/recycle'
|
||||
import AddOrUpdate from './add-or-update.vue'
|
||||
import reviewDialog from './review-dialog.vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
const router = useRouter()
|
||||
const addOrUpdateRef = ref(null)
|
||||
const reviewDialogRef = ref(null)
|
||||
const searchRef = ref(null)
|
||||
const pageLoading = ref(false)
|
||||
const addOrUpdateVisible = ref(false)
|
||||
const pageQuery = reactive({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
cueOrderType: null,
|
||||
orderStatus: null
|
||||
})
|
||||
const pageVO = reactive({
|
||||
total: 0,
|
||||
list: []
|
||||
})
|
||||
|
||||
const stickBrandList = ref([]) // 获取品牌列表
|
||||
const stickTypeList = ref([]) // 获取球杆类型列表
|
||||
const stickSeriesList = ref([]) // 获取球杆系列列表
|
||||
const onGetPage = () => {
|
||||
pageLoading.value = true
|
||||
getRecycleOrder(pageQuery)
|
||||
.then((res) => {
|
||||
console.log(res)
|
||||
pageVO.list = res.list
|
||||
pageVO.total = res.total
|
||||
})
|
||||
.finally(() => {
|
||||
pageLoading.value = false
|
||||
})
|
||||
}
|
||||
// 清空搜索内容
|
||||
const onClearSearchInfo = () => {
|
||||
searchRef.value.resetFields()
|
||||
onGetPage()
|
||||
}
|
||||
|
||||
const onAddOrUpdate = (id) => {
|
||||
addOrUpdateVisible.value = true
|
||||
nextTick(() => {
|
||||
addOrUpdateRef.value.init(id)
|
||||
})
|
||||
}
|
||||
// 获取品牌列表
|
||||
const getStickBrandList = (val) => {
|
||||
getStickBrand({
|
||||
pageNum: 1,
|
||||
pageSize: 10000
|
||||
}).then((res) => {
|
||||
stickBrandList.value = res.list
|
||||
})
|
||||
}
|
||||
// 获取球杆类型列表
|
||||
const getStickTypeList = (val) => {
|
||||
getStickType({
|
||||
pageNum: 1,
|
||||
pageSize: 10000
|
||||
}).then((res) => {
|
||||
stickTypeList.value = res.list
|
||||
})
|
||||
}
|
||||
// 获取球杆系列列表
|
||||
const getStickSeriesList = (val) => {
|
||||
getStickSeries({
|
||||
pageNum: 1,
|
||||
pageSize: 10000
|
||||
}).then((res) => {
|
||||
stickSeriesList.value = res.list
|
||||
})
|
||||
}
|
||||
|
||||
// 删除球杆
|
||||
const onDelete = (productId) => {
|
||||
ElMessageBox.confirm('确定删除该球杆吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
deleteStick({ productId }).then(() => {
|
||||
ElMessage.success('删除成功')
|
||||
onGetPage()
|
||||
})
|
||||
})
|
||||
.catch(() => { })
|
||||
}
|
||||
|
||||
const review = (orderId) => {
|
||||
reviewDialogRef.value.init(orderId)
|
||||
}
|
||||
onMounted(() => {
|
||||
onGetPage()
|
||||
getStickBrandList()
|
||||
getStickTypeList()
|
||||
getStickSeriesList()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
344
src/views/modules/product/recycle/order-page/review-dialog.vue
Normal file
344
src/views/modules/product/recycle/order-page/review-dialog.vue
Normal file
@ -0,0 +1,344 @@
|
||||
<!--
|
||||
* @Author: 快乐橙 1760016317@qq.com
|
||||
* @Date: 2025-04-20 19:12:10
|
||||
* @LastEditors: 快乐橙 1760016317@qq.com
|
||||
* @LastEditTime: 2025-04-20 22:32:16
|
||||
* @FilePath: \tmerclub-multishop\src\views\modules\product\recycle\order-page\review-dialog.vue
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
-->
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog
|
||||
v-model="visible"
|
||||
title="详情"
|
||||
width="900"
|
||||
@close="resetFormData"
|
||||
>
|
||||
<div class="container">
|
||||
<el-descriptions
|
||||
:column="2"
|
||||
border
|
||||
>
|
||||
<el-descriptions-item label="商品名称">
|
||||
{{ orderInfo.productName || '无' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="商品图片">
|
||||
<el-image
|
||||
v-if="orderInfo.productImages"
|
||||
:src="orderInfo.productImageUrl"
|
||||
:preview-src-list="[orderInfo.productImageUrl]"
|
||||
style="width: 100px; height: 100px"
|
||||
/>
|
||||
<span v-else>无</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="品牌">
|
||||
{{ orderInfo.brandName || '无' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="类型">
|
||||
{{ orderInfo.typeName || '无' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="用户手机号">
|
||||
{{ orderInfo.userPhone || '无' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="收货物流单号">
|
||||
{{ orderInfo.sendNumber || '无' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="退货物流单号">
|
||||
{{ orderInfo.returnTrackingNumber || '无' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="订单类型">
|
||||
{{ orderInfo.cueOrderType === 1 ? '回收' : orderInfo.cueOrderType === 2 ?
|
||||
'置换' : '寄售' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item
|
||||
label="缺陷"
|
||||
:span="2"
|
||||
>
|
||||
<div style="display: flex; flex-wrap: wrap; align-items: center; gap: 10px;">
|
||||
<div
|
||||
v-for="(item, index) in orderInfo.flawList"
|
||||
:key="index"
|
||||
>
|
||||
{{ item.flawName }} ({{ item.isFlaw === 1 ? '是' : '否' }})
|
||||
</div>
|
||||
<span v-if="!orderInfo.flawList || orderInfo.flawList.length === 0">无</span>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item
|
||||
label="缺陷图片"
|
||||
:span="2"
|
||||
>
|
||||
<div style="display: flex; flex-wrap: wrap; align-items: center; gap: 10px;">
|
||||
<el-image
|
||||
v-for="(image, index) in imageList.slice(0, 8)"
|
||||
:key="index"
|
||||
:src="image"
|
||||
:alt="image"
|
||||
:preview-src-list="imageList"
|
||||
style="width: 100px; height: 100px"
|
||||
/>
|
||||
|
||||
<span v-if="!imageList || imageList.length === 0">无</span>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="visible = false">取消</el-button>
|
||||
<el-button
|
||||
v-if="orderInfo.orderStatus === 10"
|
||||
type="primary"
|
||||
@click="formVisible2 = true"
|
||||
>审核</el-button>
|
||||
<el-button
|
||||
v-if="orderInfo.orderStatus === 14 || orderInfo.orderStatus == 13"
|
||||
type="primary"
|
||||
@click="formVisible = true"
|
||||
>评估</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
v-model="formVisible"
|
||||
title="评估表单"
|
||||
width="600"
|
||||
>
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
:rules="rules"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item
|
||||
label="实际金额:"
|
||||
prop="actualAmount"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.actualAmount"
|
||||
type="number"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="代金券金额:"
|
||||
prop="voucherAmount"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.voucherAmount"
|
||||
type="number"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="佣金:"
|
||||
prop="brokerage"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.brokerage"
|
||||
type="number"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="服务费:"
|
||||
prop="serviceCharge"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.serviceCharge"
|
||||
type="number"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="updateEvaluateStatus"
|
||||
>
|
||||
提交
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
v-model="formVisible2"
|
||||
title="预估"
|
||||
role="rules2"
|
||||
width="600"
|
||||
>
|
||||
<el-form
|
||||
ref="formRef2"
|
||||
:model="formData2"
|
||||
:rules="rules"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item
|
||||
label="预估金额:"
|
||||
prop="estimatedAmount"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.estimatedAmount"
|
||||
type="number"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="updateStatus(11)"
|
||||
>
|
||||
提交
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
import { getRecycleOrderDetail, updateRecycleOrderStatus, updateRecycleOrderEvaluateStatus } from '@/api/product/recycle'
|
||||
const visible = ref(false)
|
||||
const formVisible = ref(false)
|
||||
const formVisible2 = ref(false)
|
||||
const formRef = ref(null)
|
||||
const formRef2 = ref(null)
|
||||
const orderInfo = ref({})
|
||||
const imageList = ref([])
|
||||
const formData = ref({
|
||||
actualAmount: 0,
|
||||
voucherAmount: 0,
|
||||
brokerage: 0,
|
||||
serviceCharge: 0
|
||||
})
|
||||
const formData2 = ref({
|
||||
estimatedAmount: 0
|
||||
})
|
||||
const rules = {
|
||||
actualAmount: [
|
||||
{ pattern: /^\d+(\.\d{1,2})?$/, message: '请输入正确的数字格式', trigger: 'blur' }
|
||||
],
|
||||
voucherAmount: [
|
||||
{ pattern: /^\d+(\.\d{1,2})?$/, message: '请输入正确的数字格式', trigger: 'blur' }
|
||||
],
|
||||
brokerage: [
|
||||
{ pattern: /^\d+(\.\d{1,2})?$/, message: '请输入正确的数字格式', trigger: 'blur' }
|
||||
],
|
||||
serviceCharge: [
|
||||
{ pattern: /^\d+(\.\d{1,2})?$/, message: '请输入正确的数字格式', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
const rules2 = {
|
||||
estimatedAmount: [
|
||||
{ pattern: /^\d+(\.\d{1,2})?$/, message: '请输入正确的数字格式', trigger: 'blur' }
|
||||
]
|
||||
|
||||
}
|
||||
const init = (orderId) => {
|
||||
console.log('init')
|
||||
visible.value = true
|
||||
getRecycleOrderDetail({
|
||||
orderId
|
||||
}).then(res => {
|
||||
console.log(res)
|
||||
orderInfo.value = {
|
||||
...res,
|
||||
productImageUrl: res.productImages ? import.meta.env.VITE_APP_RESOURCES_URL + '/' + res.productImages : null
|
||||
}
|
||||
imageList.value = res.flawImgUrl.split(',').map(v => {
|
||||
return import.meta.env.VITE_APP_RESOURCES_URL + '/' + v
|
||||
})
|
||||
console.log(orderInfo.value.flawList)
|
||||
})
|
||||
}
|
||||
const updateStatus = (status) => {
|
||||
formRef2.value.validate((valid) => {
|
||||
if (valid) {
|
||||
updateRecycleOrderStatus({
|
||||
orderId: orderInfo.value.orderId,
|
||||
orderStatus: status,
|
||||
userId: orderInfo.value.userId,
|
||||
mallOrderId: orderInfo.value.mallOrderId,
|
||||
estimatedAmount: formData2.value.estimatedAmount
|
||||
}).then(res => {
|
||||
visible.value = false
|
||||
formVisible2.value = false
|
||||
ElMessage.success('操作成功')
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
}
|
||||
// {
|
||||
// "orderId": 22,
|
||||
// "orderStatus": 5,
|
||||
// "userId":5001,
|
||||
// "mallOrderId":2504204005002001,
|
||||
// "actualAmount": 100,
|
||||
// "voucherAmount": 150,
|
||||
// "brokerage": null,
|
||||
// "serviceCharge":null,
|
||||
// "cueOrderType":1
|
||||
// }
|
||||
const resetFormData = () => {
|
||||
formData.value = {
|
||||
actualAmount: 0,
|
||||
voucherAmount: 0,
|
||||
brokerage: 0,
|
||||
serviceCharge: 0
|
||||
}
|
||||
formData2.value.estimatedAmount = 0
|
||||
}
|
||||
|
||||
const updateEvaluateStatus = () => {
|
||||
formRef.value.validate((valid) => {
|
||||
if (valid) {
|
||||
updateRecycleOrderEvaluateStatus({
|
||||
orderId: orderInfo.value.orderId,
|
||||
orderStatus: 15,
|
||||
userId: orderInfo.value.userId,
|
||||
mallOrderId: orderInfo.value.mallOrderId,
|
||||
cueOrderType: orderInfo.value.cueOrderType,
|
||||
actualAmount: formData.value.actualAmount,
|
||||
voucherAmount: formData.value.voucherAmount,
|
||||
brokerage: formData.value.brokerage,
|
||||
serviceCharge: formData.value.serviceCharge
|
||||
}).then(res => {
|
||||
visible.value = false
|
||||
formVisible.value = false
|
||||
ElMessage.success('操作成功')
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
}
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
<style scoped>
|
||||
.image-row {
|
||||
width: 100%;
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
/* flex-wrap: wrap; */
|
||||
gap: 10px;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.product-image {
|
||||
width: calc((100% - 70px) / 8);
|
||||
height: 70px;
|
||||
object-fit: cover;
|
||||
margin-top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
height: 800px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.label {
|
||||
width: 120px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="Mall4j page-picture-manager">
|
||||
<div class="Tmerclub page-picture-manager">
|
||||
<div class="file-group">
|
||||
<div class="upload-btn">
|
||||
<div class="up-btn">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="Mall4j selx-imgbox page-video-manager">
|
||||
<div class="Tmerclub selx-imgbox page-video-manager">
|
||||
<div class="file-group">
|
||||
<div class="upload-btn">
|
||||
<div class="up-btn">
|
||||
|
Loading…
x
Reference in New Issue
Block a user