初始化

This commit is contained in:
qsh
2024-04-28 16:20:45 +08:00
parent 3f2749b6c4
commit 58929c05ef
687 changed files with 90151 additions and 13 deletions

View File

@@ -0,0 +1,52 @@
<template>
<div>
<el-table :data="list" border stripe>
<el-table-column type="index" width="50" />
<el-table-column label="来源名称">
<template #default="{ row }">
<el-input v-model="row.name" placeholder="请输入" :clearable="false" />
</template>
</el-table-column>
<el-table-column label="获取连接">
<template #default="{ row }">
<el-input v-model="row.link" placeholder="请输入" :clearable="false" />
</template>
</el-table-column>
<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>
<el-button>重置</el-button>
</div>
</div>
</template>
<script setup>
const list = ref([
{ name: '一点通账号1', link: 'http://baidu.com' },
{ name: '一点通账号2', link: 'http://baidu.com' },
{ name: '宝典账号', link: 'http://baidu.com' },
{ name: '抖音', link: 'http://baidu.com' }
])
function handleInsert() {
list.value.push({ name: '', link: '' })
}
function onSubmit() {
console.log('保存成功')
}
function handleRemove(idx) {
list.value.splice(idx, 1)
}
</script>
<style lang="scss" scoped></style>

View File

@@ -0,0 +1,138 @@
<template>
<el-form :model="form" ref="sendForm" :rules="rules" label-width="100px" :inline="false">
<el-form-item label="是否自动分配">
<el-radio-group v-model="form.isAuto">
<el-radio :label="1"> 自动分配 </el-radio>
<el-radio :label="0"> 手动分配 </el-radio>
</el-radio-group>
</el-form-item>
<div v-if="form.isAuto">
<el-form-item label="分配对象">
<div>
<el-checkbox
v-model="checkUserAll"
:indeterminate="userIndeterminate"
@change="userCheckAllChange"
>
全选
</el-checkbox>
<el-checkbox-group v-model="form.users" @change="userCheckedChange">
<el-checkbox
v-for="(item, index) in userOptions"
:key="index"
:label="item.value"
:value="item.value"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
<el-form-item label="线索来源">
<div>
<el-checkbox
v-model="checkResourceAll"
:indeterminate="resourceIndeterminate"
@change="resourceCheckAllChange"
>
全选
</el-checkbox>
<el-checkbox-group v-model="form.resource" @change="resourceCheckedChange">
<el-checkbox
v-for="(item, index) in resourceOptions"
:key="index"
:label="item.value"
:value="item.value"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
<el-form-item label="权重配置">
<div>
<div v-for="(item, index) in intentionOptions" :key="index" class="flex mb-10px">
<div class="mr-15px" style="width: 100px">{{ item.label }}</div>
<el-input v-model="item.value" type="number" placeholder="请输入权重">
<template #suffix> % </template>
</el-input>
</div>
</div>
</el-form-item>
<el-form-item label="分配时间">
<el-time-picker
v-model="form.sendTime"
placeholder="任意时间点"
format="HH:mm"
value-format="HH:mm"
:clearable="false"
/>
</el-form-item>
</div>
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
<el-button>重置</el-button>
</el-form-item>
</el-form>
</template>
<script setup>
const form = ref({
isAuto: 1,
users: [1, 2],
resource: [3],
sendTime: '00:00'
})
const rules = ref({})
const checkUserAll = ref(false)
const userIndeterminate = ref(true)
const userOptions = ref([
{ label: '张三', value: 1 },
{ label: '李四', value: 2 },
{ label: '王二', value: 3 }
])
function userCheckAllChange(val) {
form.value.users = val ? userOptions.value.map((it) => it.value) : []
userIndeterminate.value = false
}
function userCheckedChange(val) {
const checkedCount = val.length
checkUserAll.value = checkedCount == userOptions.value.length
userIndeterminate.value = checkedCount > 0 && checkedCount < userOptions.value.length
}
function onSubmit() {
console.log('hhahah')
}
const checkResourceAll = ref(false)
const resourceIndeterminate = ref(true)
const resourceOptions = ref([
{ label: '抖音', value: 1 },
{ label: '一点通', value: 2 },
{ label: '驾考宝典', value: 3 }
])
function resourceCheckAllChange(val) {
form.value.resource = val ? resourceOptions.value.map((it) => it.value) : []
resourceIndeterminate.value = false
}
function resourceCheckedChange(val) {
const checkedCount = val.length
checkResourceAll.value = checkedCount == resourceOptions.value.length
resourceIndeterminate.value = checkedCount > 0 && checkedCount < resourceOptions.value.length
}
const intentionOptions = ref([
{ label: '高意向', value: 20 },
{ label: '中意向', value: 20 },
{ label: '低意向', value: 20 },
{ label: '未知意向', value: 40 }
])
</script>
<style lang="scss" scoped></style>

View File

@@ -0,0 +1,122 @@
<template>
<el-row :gutter="80">
<el-col :span="10" :offset="0">
<el-button class="mb-10px" type="primary" @click="handleInsert">新增属性</el-button>
<el-table :data="tableList">
<el-table-column prop="name" label="名称" />
<el-table-column label="启用状态">
<template #default="{ row }">
<el-switch
v-model="row.status"
:active-value="1"
:inactive-value="0"
:disabled="!row.canUpdate"
@change="changeStatus(row)"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80px">
<template #default="{ row }">
<el-button
type="primary"
text
:disabled="!row.canUpdate"
style="padding: 0"
@click="remove(row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="14" :offset="0">
<el-form :model="form" ref="fieldForm" :rules="rules" label-width="80px" :inline="false">
<el-form-item label="属性名称" prop="name">
<el-input v-model="form.name" placeholder="请输入属性名称" />
</el-form-item>
<el-form-item label="属性类型" prop="type">
<el-select
v-model="form.type"
placeholder="请选择属性类型"
clearable
filterable
style="width: 100%"
>
<el-option
v-for="item in typeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item
v-if="['Checkbox', 'Radio', 'Select'].includes(form.type)"
label="选项"
prop="option"
key="option"
>
<div>
<el-button type="primary" @click="optionList.push([])"> 新增选项 </el-button>
<div
class="flex justify-between mt-10px"
v-for="(item, index) in optionList"
:key="index"
>
<el-input v-model="item.label" placeholder="请输入选项内容" clearable />
<el-button type="primary" text @click="optionList.splice(index, 1)">删除</el-button>
</div>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
</template>
<script setup>
const tableList = ref([{ name: '咨询车型', status: 0, canUpdate: false }])
const form = ref({
name: undefined,
type: undefined,
option: undefined
})
const typeOptions = ref([
{ label: '输入框', value: 'Input' },
{ label: '多选', value: 'Checkbox' },
{ label: '单选', value: 'Radio' },
{ label: '下拉选', value: 'Select' },
{ label: '开关', value: 'Switch' },
{ label: '日期选择', value: 'DatePicker' },
{ label: '时间选择', value: 'TimePicker' },
{ label: '富文本', value: 'Editor' },
{ label: '图片', value: 'UploadImg' },
{ label: '文件', value: 'UploadFile' }
])
const rules = {}
const optionList = ref([])
function handleInsert() {
console.log('新增')
}
function changeStatus(row) {
console.log(row.status)
}
function remove(row) {
console.log(row.status)
}
function onSubmit() {
console.log('保存')
}
</script>
<style lang="scss" scoped></style>

View File

@@ -0,0 +1,122 @@
<template>
<el-row :gutter="80">
<el-col :span="10" :offset="0">
<el-button class="mb-10px" type="primary" @click="handleInsert">新增属性</el-button>
<el-table :data="tableList">
<el-table-column prop="name" label="名称" />
<el-table-column label="启用状态">
<template #default="{ row }">
<el-switch
v-model="row.status"
:active-value="1"
:inactive-value="0"
:disabled="!row.canUpdate"
@change="changeStatus(row)"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80px">
<template #default="{ row }">
<el-button
type="primary"
text
:disabled="!row.canUpdate"
style="padding: 0"
@click="remove(row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="14" :offset="0">
<el-form :model="form" ref="fieldForm" :rules="rules" label-width="80px" :inline="false">
<el-form-item label="属性名称" prop="name">
<el-input v-model="form.name" placeholder="请输入属性名称" />
</el-form-item>
<el-form-item label="属性类型" prop="type">
<el-select
v-model="form.type"
placeholder="请选择属性类型"
clearable
filterable
style="width: 100%"
>
<el-option
v-for="item in typeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item
v-if="['Checkbox', 'Radio', 'Select'].includes(form.type)"
label="选项"
prop="option"
key="option"
>
<div>
<el-button type="primary" @click="optionList.push([])"> 新增选项 </el-button>
<div
class="flex justify-between mt-10px"
v-for="(item, index) in optionList"
:key="index"
>
<el-input v-model="item.label" placeholder="请输入选项内容" clearable />
<el-button type="primary" text @click="optionList.splice(index, 1)">删除</el-button>
</div>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
</template>
<script setup>
const tableList = ref([{ name: '额外支出费用', status: 1, canUpdate: true }])
const form = ref({
name: undefined,
type: undefined,
option: undefined
})
const typeOptions = ref([
{ label: '输入框', value: 'Input' },
{ label: '多选', value: 'Checkbox' },
{ label: '单选', value: 'Radio' },
{ label: '下拉选', value: 'Select' },
{ label: '开关', value: 'Switch' },
{ label: '日期选择', value: 'DatePicker' },
{ label: '时间选择', value: 'TimePicker' },
{ label: '富文本', value: 'Editor' },
{ label: '图片', value: 'UploadImg' },
{ label: '文件', value: 'UploadFile' }
])
const rules = {}
const optionList = ref([])
function handleInsert() {
console.log('新增')
}
function changeStatus(row) {
console.log(row.status)
}
function remove(row) {
console.log(row.status)
}
function onSubmit() {
console.log('保存')
}
</script>
<style lang="scss" scoped></style>

View File

@@ -0,0 +1,198 @@
<template>
<div class="flex">
<el-card shadow="always" :body-style="{ padding: '10px' }">
<div
class="flex text-14px cursor-pointer"
v-for="(item, index) in list"
:key="index"
style="height: 48px; line-height: 48px; width: 240px"
@click="handleChoose(item.value)"
:class="{ actived: item.value == msgType }"
>
<div class="font-bold pl-20px">{{ item.name }}</div>
</div>
</el-card>
<el-card shadow="always" :body-style="{ padding: '10px' }" class="ml-20px flex-1">
<el-form :model="form" ref="msgForm" :rules="rules" label-width="100px" :inline="false">
<el-form-item prop="isEnable">
<template #label>
<div class="flex justify-center" style="align-items: center">
<Tooltip message="是否发送对应消息通知" />
<span>是否启用</span>
</div>
</template>
<el-radio-group v-model="form.isEnable">
<el-radio :label="1"> 启用 </el-radio>
<el-radio :label="0"> 禁用 </el-radio>
</el-radio-group>
</el-form-item>
<div v-if="form.isEnable">
<el-form-item label="微信通知" prop="wxMsg">
<el-radio-group v-model="form.wxMsg">
<el-radio :label="1"> 启用 </el-radio>
<el-radio :label="0"> 禁用 </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="发送对象" prop="msgTo">
<div>
<el-checkbox-group v-model="form.msgTo">
<el-checkbox :label="1"> 创建人 </el-checkbox>
<el-checkbox :label="2"> 跟进人 </el-checkbox>
<el-checkbox :label="3"> 指定用户 </el-checkbox>
<el-checkbox v-if="form.wxMsg" :label="4"> 微信群 </el-checkbox>
</el-checkbox-group>
<div class="flex">
<div v-if="form.msgTo.includes(3)" class="flex mr-20px" style="align-items: center">
<div class="mr-15px" style="width: 80px">指定用户</div>
<el-select
v-model="form.msgToUsers"
placeholder="选择用户,可多选"
filterable
multiple
style="width: 300px"
>
<el-option
v-for="item in userOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<div v-if="form.msgTo.includes(4)" class="flex mr-20px" style="align-items: center">
<div
class="mr-15px flex"
style="align-items: center; width: 180px; text-align: right"
>
<Tooltip message="已添加微信机器人的群" />
<span>微信群名称</span>
</div>
<el-input v-model="form.wxGroup" placeholder="请输入群名称" />
</div>
</div>
</div>
</el-form-item>
<el-form-item label="发送时间" prop="sendTime">
<div>
<el-radio-group v-model="form.sendTime">
<el-radio :label="1"> 立即发送 </el-radio>
<el-radio :label="2"> 指定时间 </el-radio>
</el-radio-group>
<div v-if="form.sendTime == 2">
<span class="mr-15px">指定时间</span>
<el-radio-group v-model="form.msgTimeType" @change="form.days = []">
<el-radio :label="1"> 每日 </el-radio>
<el-radio :label="2"> 次日 </el-radio>
<el-radio :label="3"> 每周 </el-radio>
<el-radio :label="4"> 每月 </el-radio>
</el-radio-group>
<div v-if="[3, 4].includes(form.msgTimeType)" class="mt-15px">
<span class="mr-15px">日期</span>
<el-select v-model="form.days" placeholder="选择日期,可多选" multiple filterable>
<el-option
v-for="item in dayOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<div class="mt-15px">
<span class="mr-15px">具体时间</span>
<el-time-picker
v-model="form.msgTime"
placeholder="具体时间"
:clearable="false"
format="HH:mm"
value-format="HH:mm"
class="ml-20px"
/>
</div>
</div>
</div>
</el-form-item>
<el-form-item label="消息模板" prop="msgTemplate">
<el-input
v-model="form.msgTemplate"
type="textarea"
:autosize="{ minRows: 4, maxRows: 6 }"
placeholder="请输入模板内容"
/>
</el-form-item>
</div>
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
<el-button>重置</el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</template>
<script setup>
const list = [
{ name: '成交通知', value: 'CJTZ' },
{ name: '释放预警通知', value: 'SFYJTZ' },
{ name: '待跟进通知', value: 'DGJTZ' },
{ name: '撞单通知', value: 'ZDTZ' },
{ name: '待审核通知', value: 'DSHTZ' },
{ name: '审核结果通知', value: 'SHJGTZ' }
]
const msgType = ref('CJTZ')
const form = ref({
isEnable: true,
wxMsg: false,
msgTo: [],
msgToUsers: [],
wxGroup: '',
sendTime: 1,
msgTimeType: 1,
msgTime: '00:00',
days: []
})
const rules = ref({})
const userOptions = ref([
{ label: '张张', value: '1' },
{ label: '李李', value: '2' },
{ label: '王王', value: '3' },
{ label: '赵赵', value: '4' }
])
const dayOptions = computed(() => {
const weekList = [
{ label: '周一', value: 1 },
{ label: '周二', value: 2 },
{ label: '周三', value: 3 },
{ label: '周四', value: 4 },
{ label: '周五', value: 5 },
{ label: '周六', value: 6 },
{ label: '周日', value: 7 }
]
let monthList = []
for (let i = 0; i < 28; i++) {
monthList.push({ label: `${i + 1}`, value: i + 1 })
}
let obj = {
3: weekList,
4: monthList
}
return obj[form.value.msgTimeType] || []
})
function handleChoose(type) {
msgType.value = type
}
function onSubmit() {
console.log('保存成功')
}
</script>
<style lang="scss" scoped>
.actived {
background-color: #f0f7ff;
}
</style>