Browse Source

'2025年7月2日18:40:53'

master
wq 1 month ago
parent
commit
8818fa91a9

+ 8
- 5
src/crud/components/Dialog.operation.vue View File

<div style="background-color: #999; height: 1px; flex: 1"></div> <div style="background-color: #999; height: 1px; flex: 1"></div>
</div> </div>
<!-- 此处的width决定了是否要换行 v-show="!item.form.hide"--> <!-- 此处的width决定了是否要换行 v-show="!item.form.hide"-->

{{ form[item.form.prop ? item.form.prop : item.prop] }}
<el-form-item style="position: relative" v-if=" <el-form-item style="position: relative" v-if="
!item.form.hideEdit && !item.form.hide && item.form.type != 'title' !item.form.hideEdit && !item.form.hide && item.form.type != 'title'
" class="as-bold" :label="item.label" :prop="item.prop" :label-width="item.form.formLabelWidth ? item.form.formLabelWidth : formLabelWidth " class="as-bold" :label="item.label" :prop="item.prop" :label-width="item.form.formLabelWidth ? item.form.formLabelWidth : formLabelWidth
" :error="item.form.error" :rules="rules[item.prop]">
" :error="item.form.error" :rules="rules[item.prop]">
<!-- 输入框 --> <!-- 输入框 -->
<div style="width: 100%" v-if="item.form.type === 'input'"> <div style="width: 100%" v-if="item.form.type === 'input'">
<!-- :readonly="true" 只读 --> <!-- :readonly="true" 只读 -->
item, item,
dialogArray dialogArray
) )
" :maxlength="item.form.maxlength ?? 60" @input="handleBeforeInput($event, item.form.checkContent, item)">
" :maxlength="item.form.maxlength ?? 60"
@input="handleBeforeInput($event, item.form.checkContent, item)">
<!-- 输入框单位 --> <!-- 输入框单位 -->
<template v-if="item.unit" #append> <template v-if="item.unit" #append>
<el-button @click="unitClick($event, item, form[item.prop])"> <el-button @click="unitClick($event, item, form[item.prop])">
<div style="width: 100%" v-else-if="item.form.type === 'upload'"> <div style="width: 100%" v-else-if="item.form.type === 'upload'">
<el-upload ref="upload" class="upload-demo" :file-list="fileList" drag :limit="item.form.limit || 1" <el-upload ref="upload" class="upload-demo" :file-list="fileList" drag :limit="item.form.limit || 1"
:on-exceed="(files) => handleExceed(files, item.form.limit)" :before-upload="(el) => :on-exceed="(files) => handleExceed(files, item.form.limit)" :before-upload="(el) =>
beforeAvatarUpload(el, item.form.suffixType, item.form.typeHint)
beforeAvatarUpload(el, item.form.suffixType, item.form.typeHint)
" :data="data" :action="uploadUrl" :on-remove="(el) => onRemove(el, item)" " :data="data" :action="uploadUrl" :on-remove="(el) => onRemove(el, item)"
@success="onSuccess($event, item)" :accept="item.form.accept"> @success="onSuccess($event, item)" :accept="item.form.accept">
<el-icon class="el-icon--upload"> <el-icon class="el-icon--upload">
//文件上传成功 //文件上传成功
const fileList = ref<any>([]) const fileList = ref<any>([])
function onSuccess(response: any, item: any) { function onSuccess(response: any, item: any) {
const url = response.data.ossFilePath
const url = response.data.ossFilePath
fileList.value.push(url) fileList.value.push(url)
props.form[item.prop] = fileList.value.join(';') props.form[item.prop] = fileList.value.join(';')
console.log(props.form[item.prop], fileList.value) console.log(props.form[item.prop], fileList.value)
} }
function onRemove(response: any, item: any) { function onRemove(response: any, item: any) {
const index = fileList.value.indexOf( const index = fileList.value.indexOf(
response.response.data.ossFilePath
response.response.data.ossFilePath
) )
if (index !== -1) { if (index !== -1) {
fileList.value.splice(index, 1) fileList.value.splice(index, 1)

+ 2
- 0
src/crud/components/DialogCollapse.operation.vue View File

<div style="background-color: #999; height: 1px; flex: 1"></div> <div style="background-color: #999; height: 1px; flex: 1"></div>
</div> </div>
<!-- 此处的width决定了是否要换行 v-show="!item.form.hide"--> <!-- 此处的width决定了是否要换行 v-show="!item.form.hide"-->
{{ form[item.form.prop ? item.form.prop : item.prop] }}
<el-form-item <el-form-item
style="position: relative" style="position: relative"
v-if=" v-if="


<!-- 选择框 --> <!-- 选择框 -->
<div style="width: 100%" v-else-if="item.form.type === 'select'"> <div style="width: 100%" v-else-if="item.form.type === 'select'">
<!-- {{ form[item.form.prop ? item.form.prop : item.prop] }} -->
<el-select <el-select
filterable filterable
clearable clearable

+ 7
- 2
src/crud/index.vue View File

const value = item.prop const value = item.prop
let atLast = scope.row[value] ?? '---' let atLast = scope.row[value] ?? '---'
//字典数据转换 //字典数据转换
console.log(222)
if (item.listData && item.form.listData) {
console.log(222,item.form)
if (item.listData && item.form && item.form.listData && !item.form.multiple) {
item.listData.forEach((element: any) => { item.listData.forEach((element: any) => {
if (element.value === scope.row[value] + '') { if (element.value === scope.row[value] + '') {
atLast = element.label atLast = element.label
for (let key in myData) { for (let key in myData) {
if ( if (
item.unit && item.unit &&
!item.startUnit &&
myData[key] && myData[key] &&
(item.unit == '元' || item.unit == '%') && (item.unit == '元' || item.unit == '%') &&
key == item.prop key == item.prop
recover() //复原 recover() //复原
title.value = '编辑' title.value = '编辑'
form.value = JSON.parse(JSON.stringify(toRaw(row))) form.value = JSON.parse(JSON.stringify(toRaw(row)))

console.log(form.value , '==============---------=============');

tableFrom.value.dialogArray.forEach((item) => { tableFrom.value.dialogArray.forEach((item) => {
Object.keys(form.value).forEach((key) => { Object.keys(form.value).forEach((key) => {
if (item.prop == key && item.isAmount) { if (item.prop == key && item.isAmount) {

+ 33
- 55
src/views/onlineBusinessHall/productManagement/releaseProduct/index.vue View File

if (!valid) return ElMessage.error('售后费存在必填项为空!') if (!valid) return ElMessage.error('售后费存在必填项为空!')
let api = '' let api = ''
if (typeOption.value === 'edit') { if (typeOption.value === 'edit') {
// api = releaseProducttEdit
// api = '/managew/api/product/releaseProductStandards/update'
api = '/managew/api/product/product/update' api = '/managew/api/product/product/update'
} else { } else {
// api = '/managew/api/product/releaseProductStandards/add'
api = '/managew/api/product/product/add' api = '/managew/api/product/product/add'
// || releaseProductAdd
} }
let datas = JSON.parse(JSON.stringify(toRaw(data))) let datas = JSON.parse(JSON.stringify(toRaw(data)))


// if (
// (datas.processingFeeList && datas.processingFeeList.length == 0) ||
// (datas.useFeeList && datas.useFeeList.length == 0)
// ) {
// return ElMessage.error('办理费和使用费不能为空!')
// }

datas.processingFeeList = datas.processingFeeList =
JSON.parse(JSON.stringify(toRaw(dataForm.processingFeeList ?? null))) ?? JSON.parse(JSON.stringify(toRaw(dataForm.processingFeeList ?? null))) ??
[] []
datas.useFeeList.forEach((item) => { datas.useFeeList.forEach((item) => {
item.useAmount = item.useAmount * 100 item.useAmount = item.useAmount * 100
}) })

if (datas.afterSaleFees) if (datas.afterSaleFees)
datas.afterSaleFees.forEach((item) => { datas.afterSaleFees.forEach((item) => {
item.amount = item.amount * 100 item.amount = item.amount * 100
// item.releaseId = datas.releaseId
}) })
if (datas.expenseType == 1) { if (datas.expenseType == 1) {
if (!datas.processingFeeList || datas.processingFeeList.length == 0) { if (!datas.processingFeeList || datas.processingFeeList.length == 0) {
} }
delete datas.useFeeList delete datas.useFeeList
} }

if (datas.expenseType == 2) { if (datas.expenseType == 2) {
if (!datas.useFeeList || datas.useFeeList.length == 0) { if (!datas.useFeeList || datas.useFeeList.length == 0) {
return ElMessage.error('使用费不能为空!') return ElMessage.error('使用费不能为空!')
} }
delete datas.processingFeeList delete datas.processingFeeList
} }

// datas.cardType = [datas.cardType]
datas.cardType = datas.cardType datas.cardType = datas.cardType
// datas.deductionChannelsId = '---'
// datas.deductionChannelsId = [datas.deductionChannelsId]
if (Array.isArray(datas.supAgree)) {
// datas.supAgree = datas.supAgree.join(';')
}
delete datas.undefined delete datas.undefined
console.log(datas, 'datasdatas')
// datas.dateOfDelist = datas.dateOfDelist.replace('T', ' ')
// datas.dateOfListing = datas.dateOfListing.replace('T', ' ')
datas.vehicleType = datas.vehicleType.map((items) => { datas.vehicleType = datas.vehicleType.map((items) => {
if (Array.isArray(items)) { if (Array.isArray(items)) {
return items[1] return items[1]
return items return items
} }
}) })
// datas.needPay = datas.needPay ? parseInt(datas.isPay) : ''
// datas.qtSign = datas.qtSign ? parseInt(datas.qtSign) : ''
// console.log('请请i参数', datas)
console.log('请请i参数', datas)
BaseService.postN(api, datas).then((res: any) => { BaseService.postN(api, datas).then((res: any) => {
if (res && res.code === 0) { if (res && res.code === 0) {
ElMessage.success('操作成功') ElMessage.success('操作成功')
} }
itemData.isTymy = itemData.tymy itemData.isTymy = itemData.tymy


itemData.cardType = itemData.cardType[0]
// itemData.cardType = itemData.cardType[0]
// itemData.deductionChannelsId = itemData.deductionChannelsId[0] // itemData.deductionChannelsId = itemData.deductionChannelsId[0]
// itemData.supAgree = itemData.supAgree.split(';') // itemData.supAgree = itemData.supAgree.split(';')
}) })
typeOption.value = 'edit' typeOption.value = 'edit'
isChangeInfoShow.value = false isChangeInfoShow.value = false
getEditFeeListData(row.id, row, () => { getEditFeeListData(row.id, row, () => {
customSelectorSelection(row.productStandardsId, 'productStandardsId', row)
customSelectorSelection(row.promotionMode, 'promotionMode', { ...row })
customSelectorSelection(row.extensionTool, 'extensionTool', row)
assignment(crudRef.value.form, row)
crudRef.value.form.changeReason = ''
isInfo.value = false
afterProcessingFeeList.value = []
afterAfterSaleFees.value = []

afterUseFeeList.value = []
handleChangeReason(false)
row.expenseType = row.processingFeeList?.length > 0 ? 1 : 2 row.expenseType = row.processingFeeList?.length > 0 ? 1 : 2
handleChangeExpenseType(row.expenseType, row)
handleReleaseId(false)
// customSelectorSelection(row.productStandardsId, 'productStandardsId', row)
// customSelectorSelection(row.promotionMode, 'promotionMode', { ...row })
// customSelectorSelection(row.extensionTool, 'extensionTool', row)
// assignment(crudRef.value.form, row)
// crudRef.value.form.changeReason = ''
// isInfo.value = false
// afterProcessingFeeList.value = []
// afterAfterSaleFees.value = []

// afterUseFeeList.value = []
// handleChangeReason(false)
// row.expenseType = row.processingFeeList?.length > 0 ? 1 : 2
// handleChangeExpenseType(row.expenseType, row)
// handleReleaseId(false)
}) })
} }
const handleReleaseId = (key) => { const handleReleaseId = (key) => {
dataForm.afterSaleFees = data.afterSaleFees dataForm.afterSaleFees = data.afterSaleFees
dataForm.useFeeList = data.useFeeList dataForm.useFeeList = data.useFeeList
dataForm.processingFeeList = data.processingFeeList dataForm.processingFeeList = data.processingFeeList
data.expenseType = data.processingFeeList?.length > 0 ? 1 : 2
crudRef.value.form = data crudRef.value.form = data
success() success()
} else { } else {
function handleInfo(idx: any, row: any) { function handleInfo(idx: any, row: any) {
isChangeInfoShow.value = false isChangeInfoShow.value = false
getEditFeeListData(row.id, row, () => { getEditFeeListData(row.id, row, () => {
// customSelectorSelection(row.agencyType, 'agencyType', row)
customSelectorSelection(row.productStandardsId, 'productStandardsId', row)
customSelectorSelection(row.promotionMode, 'promotionMode', { ...row })
customSelectorSelection(row.extensionTool, 'extensionTool', row)
assignment(crudRef.value.form, row)
handleChangeReason(true)
isInfo.value = true
afterProcessingFeeList.value = []
afterAfterSaleFees.value = []
afterUseFeeList.value = []
row.expenseType = row.processingFeeList?.length > 0 ? 1 : 2 row.expenseType = row.processingFeeList?.length > 0 ? 1 : 2
handleChangeFeeInfo(row.expenseType, row)
// customSelectorSelection(row.agencyType, 'agencyType', row)
// customSelectorSelection(row.productStandardsId, 'productStandardsId', row)
// customSelectorSelection(row.promotionMode, 'promotionMode', { ...row })
// customSelectorSelection(row.extensionTool, 'extensionTool', row)
// assignment(crudRef.value.form, row)
// handleChangeReason(true)
// isInfo.value = true
// afterProcessingFeeList.value = []
// afterAfterSaleFees.value = []
// afterUseFeeList.value = []
// row.expenseType = row.processingFeeList?.length > 0 ? 1 : 2
// handleChangeFeeInfo(row.expenseType, row)
}) })
} }
// 操作记录详情 // 操作记录详情
) )
if (title == 'extensionTool') { if (title == 'extensionTool') {
if (value.includes('ECP')) { if (value.includes('ECP')) {
handleEcpDetailShow(false)
handleEcpDetail +
Show(false)
} else { } else {
handleEcpDetailShow(true) handleEcpDetailShow(true)
} }
Object.assign(datas, row) Object.assign(datas, row)
datas.cardObuAmount = row.cardObuAmount ? row.cardObuAmount / 100 : 0 datas.cardObuAmount = row.cardObuAmount ? row.cardObuAmount / 100 : 0
datas.cancelAmount = row.cancelAmount ? row.cancelAmount / 100 : 0 datas.cancelAmount = row.cancelAmount ? row.cancelAmount / 100 : 0

// datas.profitRatio = row.profitRatio ? row.profitRatio / 100 : 0
datas.monthlyRate = row.monthlyRate ? row.monthlyRate / 100 : 0
customSelectorSelection(datas.isTymy, 'isTymy') customSelectorSelection(datas.isTymy, 'isTymy')
for (let key in datas) { for (let key in datas) {
if (typeof datas[key] === 'number') { if (typeof datas[key] === 'number') {
span: 3, span: 3,
label: '逾期违约金收取比例', label: '逾期违约金收取比例',
hide: true, hide: true,
startUnit: true,
unit: '%', unit: '%',
form: { form: {
checkContent: 'percentage', checkContent: 'percentage',

Loading…
Cancel
Save