Files
ss-crm-manage-web/src/views/Clue/Set/Comp/ClueGet.vue

109 lines
3.0 KiB
Vue
Raw Normal View History

2024-04-28 16:20:45 +08:00
<template>
<div>
2024-06-07 17:01:46 +08:00
<el-table v-loading="loading" :data="list" border>
2024-04-28 16:20:45 +08:00
<el-table-column type="index" width="50" />
2024-05-16 11:50:50 +08:00
<el-table-column label="来源名称" width="200px">
2024-04-28 16:20:45 +08:00
<template #default="{ row }">
2024-06-07 17:01:46 +08:00
<el-input v-model="row.source" placeholder="请输入" :clearable="false" />
2024-04-28 16:20:45 +08:00
</template>
</el-table-column>
2024-05-16 11:50:50 +08:00
<el-table-column label="渠道" width="300px">
2024-04-28 16:20:45 +08:00
<template #default="{ row }">
2024-05-16 11:50:50 +08:00
<el-select
v-if="row.edit"
v-model="row.resource"
placeholder="选择渠道"
clearable
filterable
@change="handleChange(row)"
>
<el-option
v-for="item in resourceOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
2024-06-07 17:01:46 +08:00
<span>{{ row.channel }}</span>
2024-04-28 16:20:45 +08:00
</template>
</el-table-column>
2024-06-07 17:01:46 +08:00
<el-table-column label="获取连接" prop="url" />
2024-05-16 11:50:50 +08:00
<el-table-column label="参数详情" prop="params" />
2024-05-10 16:21:07 +08:00
<el-table-column label="是否启用" width="100px">
<template #default="{ row }">
2024-06-07 17:01:46 +08:00
<el-switch v-model="row.status" :active-value="0" :inactive-value="1" />
2024-05-10 16:21:07 +08:00
</template>
</el-table-column>
2024-04-28 16:20:45 +08:00
<el-table-column label="操作" width="100px">
<template #default="{ $index }">
<el-button type="primary" style="padding: 0px" text @click="handleRemove($index)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<div class="mt-20px flex justify-center">
<el-button type="primary" @click="handleInsert">新增规则</el-button>
<el-button type="primary" @click="onSubmit">保存</el-button>
</div>
</div>
</template>
2024-06-07 17:01:46 +08:00
<script setup name="ClueSet">
import { getClueGainRuleList, deleteClueGainRule } from '@/api/clue/clueGetSet'
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
2024-05-16 11:50:50 +08:00
2024-06-07 17:01:46 +08:00
const list = ref([])
const loading = ref(false)
const resourceOptions = ref([])
async function getList() {
loading.value = true
try {
const data = await getClueGainRuleList()
list.value = data
} finally {
loading.value = false
}
}
2024-04-28 16:20:45 +08:00
function handleInsert() {
2024-06-07 17:01:46 +08:00
list.value.push({ source: '', url: '', edit: true, status: 0 })
2024-04-28 16:20:45 +08:00
}
function onSubmit() {
console.log('保存成功')
}
2024-06-07 17:01:46 +08:00
async function handleRemove(idx) {
if (list.value[idx].ruleId) {
try {
// 删除的二次确认
await message.delConfirm()
// 发起删除
await deleteClueGainRule(list.value[idx].ruleId)
message.success(t('common.delSuccess'))
// 刷新列表
await getList()
} catch (err) {
console.log(err)
}
} else {
list.value.splice(idx, 1)
}
2024-04-28 16:20:45 +08:00
}
2024-05-16 11:50:50 +08:00
function handleChange(row) {
2024-06-07 17:01:46 +08:00
row.url = `https://sscrm.ahduima.com/clue/get?cid=1001&aid=1001&res=${row.resource}`
2024-05-16 11:50:50 +08:00
row.params = '参数详情'
}
2024-06-07 17:01:46 +08:00
onMounted(() => {
getList()
})
2024-04-28 16:20:45 +08:00
</script>
<style lang="scss" scoped></style>