Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-crm-manage-web into dev-cl
This commit is contained in:
@@ -5,7 +5,7 @@ export const getPaymentList = async (params) => {
|
|||||||
return await request.get({ url: '/admin-api/crm/sign-pay-record/list', params })
|
return await request.get({ url: '/admin-api/crm/sign-pay-record/list', params })
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询(精简)列表
|
// 查询列表
|
||||||
export const getPaymentPage = async (params) => {
|
export const getPaymentPage = async (params) => {
|
||||||
return await request.get({ url: '/admin-api/crm/sign-pay-record/page', params })
|
return await request.get({ url: '/admin-api/crm/sign-pay-record/page', params })
|
||||||
}
|
}
|
||||||
@@ -45,3 +45,8 @@ export const updateApplyPayment = async (data) => {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 导出
|
||||||
|
export const exportPayment = async (params) => {
|
||||||
|
return await request.download({ url: '/admin-api/crm/sign-pay-record/export-excel', params })
|
||||||
|
}
|
||||||
|
|||||||
@@ -16,6 +16,11 @@
|
|||||||
<el-input v-else v-model="row.wxGroup" size="small" clearable @blur="rowChange(row)" />
|
<el-input v-else v-model="row.wxGroup" size="small" clearable @blur="rowChange(row)" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="群二维码" width="90">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<img :src="row.wxCode" width="80px" height="80px" alt="" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="操作" width="100">
|
<el-table-column label="操作" width="100">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div>
|
<div>
|
||||||
@@ -23,32 +28,94 @@
|
|||||||
修改群名称
|
修改群名称
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div v-if="['每日', '每月'].includes(row.sendFrequency)">
|
||||||
<el-button type="primary" style="padding: 5px 0" text @click="row.edit = true">
|
<el-button type="primary" style="padding: 5px 0" text @click="changeSendTime(row)">
|
||||||
修改发送时间
|
修改发送时间
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
|
<Dialog :title="`修改【${sendTimeInfo.name}】发送时间`" v-model="showSendTime" width="500px">
|
||||||
|
<el-text type="danger">
|
||||||
|
<span v-if="sendTimeInfo.sendFrequency == '每日'">
|
||||||
|
请按照时间格式输入,多个时间以“、”分割,如09:00、15:00、18:00
|
||||||
|
</span>
|
||||||
|
<span v-else-if="sendTimeInfo.sendFrequency == '每月'">
|
||||||
|
请按照"日期-时间"格式输入,多个日期以“、”分割,如26-18:00、28-14:00、30-15:00、30-18:00
|
||||||
|
</span>
|
||||||
|
</el-text>
|
||||||
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
class="mt-20px mb-20px"
|
||||||
|
:autosize="{ minRows: 3 }"
|
||||||
|
v-model="sendTimeInfo.sendTime"
|
||||||
|
placeholder="请输入"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
<template #footer>
|
||||||
|
<el-button :disabled="formLoading" type="primary" @click="submitSendTime">确 定</el-button>
|
||||||
|
<el-button @click="showSendTime = false">取 消</el-button>
|
||||||
|
</template>
|
||||||
|
</Dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="WXSetting">
|
<script setup name="WXSetting">
|
||||||
|
const message = useMessage() // 消息弹窗
|
||||||
|
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const tableList = ref([
|
const tableList = ref([
|
||||||
{
|
{
|
||||||
name: '分配通知',
|
name: '分配通知',
|
||||||
sendType: []
|
sendType: [],
|
||||||
|
sendFrequency: '每次',
|
||||||
|
sendTime: '触发时立刻发送',
|
||||||
|
remark: '线索分配给除本人之外的用户时,通知对方注意接收'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '发货通知',
|
name: '发货通知',
|
||||||
sendType: []
|
sendType: [],
|
||||||
|
sendFrequency: '每次',
|
||||||
|
sendTime: '触发时立刻发送',
|
||||||
|
remark: '攀尼下单后,点击发货,发送发货模板到微信/群'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '审核失败通知',
|
||||||
|
sendType: [],
|
||||||
|
sendFrequency: '每次',
|
||||||
|
sendTime: '触发时立刻发送',
|
||||||
|
remark: 'crm中的回款、售后等审核失败,通知申请人'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '喜报',
|
||||||
|
sendType: [],
|
||||||
|
sendFrequency: '每次',
|
||||||
|
sendTime: '触发时立刻发送',
|
||||||
|
remark: '销售成交登记时,发送喜报到微信/群',
|
||||||
|
wxGroup: '寻驾'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '周业绩排名',
|
||||||
|
sendType: [],
|
||||||
|
sendFrequency: '每日',
|
||||||
|
sendTime: '10:00、15:00、18:00',
|
||||||
|
remark: '发送业绩排名到微信/群',
|
||||||
|
wxGroup: '爱顽熊'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '月业绩排名',
|
name: '月业绩排名',
|
||||||
sendType: []
|
sendType: [],
|
||||||
|
sendFrequency: '每月',
|
||||||
|
sendTime: '26-18:00、28-14:00、30-15:00、30-18:00',
|
||||||
|
remark: '发送业绩排名到微信/群'
|
||||||
}
|
}
|
||||||
|
// {
|
||||||
|
// name: '周报',
|
||||||
|
// sendType: [],
|
||||||
|
// sendFrequency: '触发时立刻发送'
|
||||||
|
// }
|
||||||
])
|
])
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
@@ -76,6 +143,36 @@ async function rowChange(row) {
|
|||||||
row.edit = false
|
row.edit = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const showSendTime = ref(false)
|
||||||
|
const sendTimeInfo = ref({})
|
||||||
|
function changeSendTime(row) {
|
||||||
|
showSendTime.value = true
|
||||||
|
sendTimeInfo.value = row
|
||||||
|
}
|
||||||
|
|
||||||
|
function submitSendTime() {
|
||||||
|
// 校验时间是否有效
|
||||||
|
const arr = sendTimeInfo.value.sendTime.split('、')
|
||||||
|
if (sendTimeInfo.value.sendFrequency == '每日') {
|
||||||
|
// 正则校验是否HH:MM
|
||||||
|
if (arr.some((it) => !/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/.test(it))) {
|
||||||
|
message.error('请检查输入格式是否正确!!!')
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
message.success('校验成功!')
|
||||||
|
}
|
||||||
|
} else if (sendTimeInfo.value.sendFrequency == '每月') {
|
||||||
|
// 正则校验是否【1-31】-HH:MM
|
||||||
|
const reg = /^([1-9]|[1-2]\d|3[01])-([01]?[0-9]|2[0-3]):[0-5][0-9]$/
|
||||||
|
if (arr.some((it) => !reg.test(it))) {
|
||||||
|
message.error('请检查输入格式是否正确!!!')
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
message.success('校验成功!')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
||||||
|
|||||||
@@ -192,6 +192,7 @@
|
|||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button @click="handleSearch" v-hasPermi="['clue:order:return-search']">查询</el-button>
|
<el-button @click="handleSearch" v-hasPermi="['clue:order:return-search']">查询</el-button>
|
||||||
<el-button @click="handleReset" v-hasPermi="['clue:order:return-reset']">重置</el-button>
|
<el-button @click="handleReset" v-hasPermi="['clue:order:return-reset']">重置</el-button>
|
||||||
|
<el-button @click="handleExport" v-hasPermi="['clue:order:return-export']">导出</el-button>
|
||||||
<el-button @click="batchAudit" v-hasPermi="['clue:order:return-batch-audit']">
|
<el-button @click="batchAudit" v-hasPermi="['clue:order:return-batch-audit']">
|
||||||
批量审核
|
批量审核
|
||||||
</el-button>
|
</el-button>
|
||||||
@@ -423,8 +424,10 @@ import DialogFeebackDetail from './DialogFeebackDetail.vue'
|
|||||||
import DialogBatchAudit from './DialogBatchAudit.vue'
|
import DialogBatchAudit from './DialogBatchAudit.vue'
|
||||||
|
|
||||||
import { removeNullField } from '@/utils'
|
import { removeNullField } from '@/utils'
|
||||||
|
import download from '@/utils/download'
|
||||||
import { useAppStore } from '@/store/modules/app'
|
import { useAppStore } from '@/store/modules/app'
|
||||||
import { dateFormatter, formatDate } from '@/utils/formatTime'
|
import { dateFormatter, formatDate } from '@/utils/formatTime'
|
||||||
|
import { ElLoading } from 'element-plus'
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
@@ -518,6 +521,26 @@ async function getList() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function handleExport() {
|
||||||
|
try {
|
||||||
|
ElLoading.service({
|
||||||
|
lock: true,
|
||||||
|
text: '正在导出数据,请稍后...',
|
||||||
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
})
|
||||||
|
const params = removeNullField(searchForm.value)
|
||||||
|
delete params.pageNo
|
||||||
|
delete params.pageSize
|
||||||
|
const data = await FeebackApi.exportPayment(params)
|
||||||
|
download.excel(data, `汇款记录表${new Date().getTime()}.xls`)
|
||||||
|
} finally {
|
||||||
|
setTimeout(() => {
|
||||||
|
const loadingInstance = ElLoading.service()
|
||||||
|
loadingInstance.close()
|
||||||
|
}, 400)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const batchIds = ref([])
|
const batchIds = ref([])
|
||||||
function handleSelectionChange(val) {
|
function handleSelectionChange(val) {
|
||||||
batchIds.value = val.map((it) => it.id)
|
batchIds.value = val.map((it) => it.id)
|
||||||
|
|||||||
Reference in New Issue
Block a user