Commit dc8c5e16 authored by 罗超's avatar 罗超

1

parent 74e9e55a
......@@ -121,12 +121,12 @@ service.interceptors.response.use(
position:"top"
})
if (response.data.Code === 10000 || response.data.Code === 10001) {
console.log(124, response.data)
localStorage.clear()
router.replace({
path: '/auth/login'
setTimeout(() => {
router.replace({
path: '/auth/login'
})
})
location.reload()
}
}
} else {
......
......@@ -43,7 +43,7 @@
:tick-strategy="strategy"
:default-expand-all="defaultExpandAll"
no-connectors
v-model:ticked="defaultArray"
v-model:ticked="ticketArr"
@update:ticked="tickedTree"
:filter="filter"
:filter-method="myFilterMethod"
......@@ -75,13 +75,13 @@
<q-card-actions align="right" class="bg-white text-teal">
<q-btn flat label="取消" v-close-popup />
<q-btn color="primary" @click="goback" label="确定" />
<q-btn color="primary" @click="goback" label="确定" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script lang="ts">
import { ref, watch } from 'vue'
import { ref } from 'vue'
interface parmas {
[key: string]: any
......@@ -89,7 +89,7 @@ interface parmas {
interface SelectParams {
Id: string,
Name: string,
Type:number
Type: number
}
export default {
props: {
......@@ -142,6 +142,7 @@ export default {
let tree = ref<any>(null);
let keys = ref<Array<string>>([])
let selectArray = ref<Array<SelectParams>>([])
let ticketArr = ref<Array<any>>([])
let hideDialog = () => {
ctx.emit("update:modelValue", false)
}
......@@ -155,25 +156,27 @@ export default {
let clearInput = () => {
filter.value = ''
}
// 有默认值-----start-------
let flag=true
let initDefault = () => {
selectArray.value = []
if (props.defaultArray && props.defaultArray.length > 0) {
if (props.defaultArray && props.defaultArray.length > 0&&flag) {
props.defaultArray.map((e, i) => {
setTimeout(() => {
if (e.slice(0, 1) == 1) {
const node = tree.value.getNodeByKey(e)
if (node[props.childrenKey] && node[props.childrenKey].length > 0) {
// eslint-disable-next-line vue/no-mutating-props
props.defaultArray.splice(i, 1)
findChild(node[props.childrenKey])
} else {
// eslint-disable-next-line vue/no-mutating-props
props.defaultArray.push(node.DataType + '-' + node.DeptId)
}
if (e.slice(0, 1) == 1) {
const node = tree.value.getNodeByKey(e)
if (node[props.childrenKey] && node[props.childrenKey].length > 0) {
ticketArr.value.splice(i, 1)
findChild(node[props.childrenKey])
} else {
ticketArr.value.push(node.DataType + '-' + node.DeptId)
}
}, 100)
} else {
ticketArr.value.push(e)
}
})
flag=false
}
}
let findChild = (arr: Array<parmas>) => {
......@@ -181,22 +184,22 @@ export default {
if (e[props.childrenKey] && e[props.childrenKey].length > 0) {
findChild(e[props.childrenKey])
} else {
// eslint-disable-next-line vue/no-mutating-props
props.defaultArray.push(e.DataType + '-' + e.DeptId)
ticketArr.value.push(e.DataType + '-' + e.DeptId)
}
})
}
// 有默认值----end--------
let showDialog = () => {
initDefault()
getselectArray(props.treeData)
}
//处理选中值-------------
const getselectArray = (arr: parmas[]) => {
for (var i = 0; i < arr.length; i++) {
let j = arr[i]
let flag = tree.value.isTicked(j[props.nodeKey])
if (flag == true) {
selectArray.value.push({ Id: j[props.nodeKey], Name: j.DeptName ,Type: j.DataType})
selectArray.value.push({ Id: j[props.nodeKey], Name: j.DeptName, Type: j.DataType })
} else {
if (j[props.childrenKey] && j[props.childrenKey].length > 0) {
getselectArray(j[props.childrenKey])
......@@ -205,9 +208,8 @@ export default {
}
}
let tickedTree = (val) => {
ctx.emit("update:defaultArray", val)
let filt = val.filter(e => e.slice(0, 1) == 2).length
ctx.emit('getNum',filt)
ctx.emit('getNum', filt)
setTimeout(() => {
selectArray.value = []
getselectArray(props.treeData)
......@@ -246,14 +248,11 @@ export default {
tree.value.setTicked(keys.value, false)
selectArray.value.splice(i, 1)
}
watch(() => [...selectArray.value], (val) => {
ctx.emit('select', [...val])
}, { deep: true })
let goback =()=>{
ctx.emit('select_t', selectArray.value)
// eslint-disable-next-line vue/no-mutating-props
let goback = () => {
ctx.emit('select', selectArray.value)
}
return {
ticketArr,
myFilterMethod,
filter,
filterRef,
......
......@@ -121,26 +121,15 @@
<div
v-if="x.Name == '标签' && (x.Direction == 1 || x.Direction == 2 || x.Direction == 3 || x.Direction == '')"
class="input_label"
@click="showlabel(y)"
@click="showlabel(x, y)"
>
<div style="display: flex;" v-if="x.StartValue && x.StartValue.length > 0">
<div style="display: flex;" v-if="lableList && lableList.length > 0">
<div class="text-clamp-1 tag-select-input">{{ lableList[0].Name }}</div>
<div
class="text-clamp-1 tag-select-input"
style="max-width:110px;"
>{{ x.StartValue[0].Name }}</div>
<div
v-if="x.StartValue.length > 1"
v-if="lableList.length > 1"
class="tag-select-input"
style="margin-left: 5px;"
>{{ x.StartValue.length - 1 }}+</div>
</div>
<div v-if="x.StartValue && x.StartValue.length > 0" class="lablec">
<i
style="font-size: 16px;"
class="el-icon-error"
@click.stop="addMsg[y].StartValue = []"
></i>
>{{ lableList.length - 1 }}+</div>
</div>
</div>
<div
......@@ -241,7 +230,7 @@
</div>
<labelgroup
v-if="isshowlabel"
:list="LableList"
:list="lableList"
@close="isshowlabel = false"
@submit="getlabel"
></labelgroup>
......@@ -264,7 +253,7 @@ interface params {
IsCustom: number
Type: number | string
Id?: number | string
Direction?: string|number
Direction?: string | number
StartValue?: string | Array<any>
EndValue?: string
disable?: boolean
......@@ -285,6 +274,10 @@ export default defineComponent({
type: Number,
default: 1
},
defaultData: {
type: Array,
default: () => []
}
},
components: {
labelgroup,
......@@ -293,10 +286,11 @@ export default defineComponent({
let rangeArr = ref<Dayjs[]>([])
let birthday = ref([])//只有一个
let filedList = ref<Array<params>>([]); //客户字段数组
let addMsg = ref<Array<params>>([]) //筛选数组
let addMsg = ref<Array<any>>([]) //筛选数组
let isshowlabel = ref(false) //标签弹出显示
let selectindex = ref(0) //现在筛选数组 索引
let LableList = ref<Array<any> | string>([]) //标签的数组
let lables = ref<Array<any>>([]) //标签的数组
let lableList = ref<Array<any>>([]) //标签的数组
//日期数组
let dateOptions = ref<Array<dateParams>>([])
let year: any = new Date().getFullYear()
......@@ -363,7 +357,13 @@ export default defineComponent({
Id: 5,
Name: '小于等于'
},]
const init = () => {
console.log('props.defaultData')
console.log(1, props.defaultData)
if (props.defaultData.length > 0) {
// addMsg.value=props.defaultData
}
}
let changeAddCondition = (val) => {
ctx.emit('update:addCondition', val)
}
......@@ -396,16 +396,19 @@ export default defineComponent({
IsCustom: 2
}
filedList.value.unshift(obj2)
addMsg.value.push({
Id: '标签',
Name: '标签',
Type: 1,
Direction: '',
StartValue: '',
EndValue: '',
IsCustom: 2,
directionList: directionList1
})
if (props.defaultData.length === 0) {
addMsg.value.push({
Id: '标签',
Name: '标签',
Type: 1,
Direction: '',
StartValue: '',
EndValue: '',
IsCustom: 2,
directionList: directionList1
})
}
console.log("标签", filedList.value)
})
}
......@@ -426,19 +429,16 @@ export default defineComponent({
addMsg.value.push(obj)
}
const showlabel = (y) => {
const showlabel = (x, y) => {
console.log(x, y)
selectindex.value = y;
if (addMsg.value[y].StartValue == '') { //为空赋值为数组
LableList.value = []
} else {
LableList.value = addMsg.value[y].StartValue || ''
}
isshowlabel.value = true
}
const getlabel = (list) => {
isshowlabel.value = false;
addMsg.value[selectindex.value].StartValue = list
lableList.value = list
addMsg.value[selectindex.value].StartValue = list.map(e => e.Id).toString()
}
//----------------------------------------------------------------------------
// 禁用标签
......@@ -502,7 +502,6 @@ export default defineComponent({
if (find) {
addMsg.value[y].Name = find.Name
}
console.log(500, find)
switch (find.Type) {
case 1: {
addMsg.value[y].directionList = directionList2
......@@ -564,36 +563,35 @@ export default defineComponent({
addMsg.value[y].EndValue = b
}
const checkRule = (val:params[]) => {
const checkRule = (val: params[]) => {
let flag = false
flag = val.every(e => {
if(e.Type==1){
if(e.Direction==1||e.Direction==2||e.Direction==3){
if (e.Type == 1) {
if (e.Direction == 1 || e.Direction == 2 || e.Direction == 3) {
return !!e.Id && !!e.StartValue
}else{
return !!e.Id&&e.Direction
} else {
return !!e.Id && e.Direction
}
}else if(e.Type==2){
console.log(222222222222)
if(e.Direction==1||e.Direction==2){
} else if (e.Type == 2) {
if (e.Direction == 1 || e.Direction == 2) {
return !!e.Id && !!e.StartValue
}else{
return e.Id &&e.Direction
} else {
return e.Id && e.Direction
}
}else if(e.Type==3){
return e.Id&&e.StartValue
}else if(e.Type==4){
return e.Id&&e.StartValue&& e.EndValue
}else{
return e.Id&&e.Direction && e.StartValue
} else if (e.Type == 3) {
return e.Id && e.StartValue
} else if (e.Type == 4) {
return e.Id && e.StartValue && e.EndValue
} else {
return e.Id && e.Direction && e.StartValue
}
})
if (!flag) {
Notify.create({
type:'warning',
position:'top',
type: 'warning',
position: 'top',
message: '规则适用范围不可空'
})
}
......@@ -616,11 +614,11 @@ export default defineComponent({
delete item.isSelect
newVal.push(item)
})
console.log('watch', newVal)
ctx.emit('change', newVal)
}, { deep: true })
onMounted(() => { //进入页面就调用
getCustomerFiledList(); //获取客户字段
init()
})
return {
birthday,
......@@ -633,7 +631,8 @@ export default defineComponent({
addsList,
isshowlabel,
selectindex,
LableList,
lables,
lableList,
showlabel,
getlabel,
changeName,
......
......@@ -2,11 +2,12 @@ import { ref, reactive } from 'vue'
import customerService from '@/api/customer'
import customerService2 from '@/api/customer2'
import router from '@/router/index'
import message from '@/utils/message'
interface dataParams {
showDialog: boolean
shape: number
dataTree: Array<any>
defaultArray: Array<number | string>
// defaultArray: Array<number | string>
editMsg: any
peopleNum:number
}
......@@ -18,11 +19,12 @@ const msg = () => {
}
}
const condition = ref<any>(null)
let defaultArray : Array<any>= []
const data = reactive<dataParams>({
showDialog: false,
shape: 0,
dataTree: [],
defaultArray: [],
editMsg: {
Id: 0,
RuleSelectType: 1, //客户的查询类型 1并且 2或者
......@@ -44,7 +46,12 @@ const data = reactive<dataParams>({
// )
const jumpBeforePage = () => {
router.go(-1)
router.push({
path: '/customerSetup',
query: {
type: 'clue'
}
})
}
const changeDialog = () => {
......@@ -58,6 +65,7 @@ const editRuleModule = () => {
}
//获取已选部门成员
const getdpt = val => {
data.showDialog = false
data.editMsg.DeptList = []
data.editMsg.EmpList = []
val.map(e => {
......@@ -73,6 +81,7 @@ const editRuleModule = () => {
})
}
})
console.log(val,'dpt')
}
//获取已选人数
const getNum = (n) => {
......@@ -81,7 +90,7 @@ const editRuleModule = () => {
//获取线索详情
const getDetail = () => {
customerService.getCustomerClueRuleDetail(msg()).then(res => {
data.defaultArray = []
defaultArray = []
const d = res.data.Data
data.editMsg.DeptList = d.DeptList
data.editMsg.EmpList = d.EmpList
......@@ -95,8 +104,8 @@ const editRuleModule = () => {
const Emp= d.EmpList.map(e => {
return '2-'+ e.Id
})
data.defaultArray = [...Dep, ...Emp]
console.log( data.defaultArray, '数据2')
defaultArray = [...Dep, ...Emp]
console.log(defaultArray, 'ConditionList')
})
}
//获取部门数据
......@@ -129,12 +138,22 @@ const editRuleModule = () => {
console.log(94, data.editMsg)
// if (!flag) return
customerService.setCustomerClueRuleInfo(data.editMsg).then(res => {
console.log('setCustomerClueRuleInfo', res)
message.successMsg(res.data.Message)
setTimeout(() => {
router.push({
path: '/customerSetup',
query: {
type: 'clue'
}
})
},2000)
})
}
return {
msg,
condition,
defaultArray,
data,
getDetail,
getEmployeeData,
......
......@@ -27,14 +27,12 @@
<table class="payTable">
<thead>
<tr>
<th>序号</th>
<th>排序</th>
<th>查询类型</th>
<th>是否默认</th>
<th>部门列表</th>
<th>人员列表</th>
<th>分配方式</th>
<th>条件描述</th>
<th>排序</th>
<th width="10%">编辑</th>
<th width="5%"></th>
</tr>
......@@ -49,15 +47,12 @@
<span v-if="item.RuleSelectType === 1">并且</span>
<span v-if="item.RuleSelectType === 2">或者</span>
</td>
<td>
<span v-if="item.IsDefault == 1"></span>
<span v-else></span>
</td>
<td>
<span>{{ item.DeptList.join(',') }}</span>
<div v-for="(e) in item.DeptList" :key="e.DeptId">{{ e.DeptName }}</div>
</td>
<td>
<span>{{ item.EmpList.join(',') }}</span>
<div v-for="(e) in item.EmpList" :key="e.Id">{{ e.EmployeeName }}</div>
</td>
<td>
<span v-if="item.RuleAllotWay === 1">依次轮流</span>
......@@ -66,9 +61,6 @@
<td>
<span>未匹配设定规则的客户</span>
</td>
<td>
<span>{{ item.Sort }}</span>
</td>
<td>
<q-btn
flat
......@@ -89,23 +81,25 @@
item-key="Id"
@update="datadragEnd"
v-if="data.length > 0"
:move="getDragId"
>
<template #item="{ element, index }">
<template #item="{ element }">
<tr>
<td>{{ index + 1 }}</td>
<td>
<span v-if="element.RuleSelectType === 1">并且</span>
<span v-if="element.RuleSelectType === 2">或者</span>
<span style="color:#606266">{{ element.Sort + 1 }}</span>
</td>
<td>
<span v-if="element.IsDefault == 1"></span>
<span v-else></span>
<span v-if="element.RuleSelectType === 1">并且</span>
<span v-if="element.RuleSelectType === 2">或者</span>
</td>
<td>
<span>{{ element.DeptList.join(',') }}</span>
<div
v-for="(e) in element.DeptList"
:key="e.DeptId"
>{{ e.DeptName }}</div>
</td>
<td>
<span>{{ element.EmpList.join(',') }}</span>
<div v-for="(e) in element.EmpList" :key="e.Id">{{ e.EmployeeName }}</div>
</td>
<td>
<span v-if="element.RuleAllotWay === 1">依次轮流</span>
......@@ -114,9 +108,7 @@
<td>
<span>{{ element.ConditionStrList.join(',') }}</span>
</td>
<td>
<span>{{ element.Sort }}</span>
</td>
<td>
<q-btn
flat
......@@ -135,7 +127,7 @@
color="negative"
class="q-mr-xs"
label="删除"
@click="godelete(element, 3, index)"
@click="del(element.Id)"
/>
</td>
<td>
......@@ -174,11 +166,14 @@
</template>
<script lang="ts">
import {
ref,
defineComponent,
reactive,
onMounted
} from 'vue'
import draggable from "vuedraggable";
import { Dialog } from 'quasar'
import message from '@/utils/message'
import customerService from '@/api/customer';
import router from '@/router/index'
......@@ -203,23 +198,35 @@ export default defineComponent({
draggable,
},
setup() {
let stateMsg = {
RuleId: 0,
Type: 1,// 1移动规则 2删除
TargetId: 0,//移动至目标的后面 0 表示移动至第一个
let defaultData = ref<Array<dataType>>([])
let data = ref<Array<dataType>>([])
let dragId = ref(0)
const getDragId = (e: any) => {
dragId.value = e.draggedContext.element.Id
}
let defaultData: Array<dataType> = reactive([])
let data: Array<dataType> = reactive([])
const datadragEnd = (e: any) => {
console.log('拖动结束', e)
let olddragId = 0
if (e.newIndex > 0) {
olddragId = data.value[e.newIndex - 1].Id
} else {
olddragId = 0
}
let msg = {
RuleId: dragId.value,
Type: 1,
TargetId: olddragId,
}
setState(msg)
}
const getClueList = () => {
defaultData.value = []
data.value = []
customerService.getCustomerClueRuleList({}).then(res => {
res.data.Data.map((item: dataType) => {
if (item.IsDefault === 1) {
defaultData.push(item)
defaultData.value.push(item)
} else {
data.push(item)
data.value.push(item)
}
})
})
......@@ -243,15 +250,33 @@ export default defineComponent({
}
})
}
const del = (id) => {
Dialog.create({
title: "提示",
message: "确认删除?",
cancel: '取消',
ok: "确认"
}).onOk(() => {
console.log('>>>> OK', id)
let msg = {
RuleId: id,
Type: 2,
}
setState(msg)
})
}
const configChange = () => {
customerService.setCustomerClueRuleConfig(configMsg).then(res => {
console.log(228, res.data)
})
}
const setState = () => {
customerService.setCustomerClueRuleState(stateMsg).then(res => {
console.log(232, res.data)
const setState = (msg) => {
customerService.setCustomerClueRuleState(msg).then(res => {
message.successMsg(res.data.Message)
if(msg.Type==2){
getClueList()
}
})
}
onMounted(() => {
......@@ -259,13 +284,14 @@ export default defineComponent({
getCustomerClueRuleConfig();
})
return {
getDragId,
configChange,
defaultData,
data,
datadragEnd,
jumpPage,
configMsg,
setState
del
}
}
})
......@@ -279,7 +305,7 @@ export default defineComponent({
.payTable tr th {
background: #fff;
height: 40px;
height: 60px;
font-size: 12px;
font-weight: bold;
color: #2d2d2d;
......@@ -289,7 +315,7 @@ export default defineComponent({
.payTable tr {
background: #fff;
text-align: center;
height: 40px;
height: 60px;
}
.payTable tr td {
......
......@@ -11,7 +11,7 @@
<div class="content-block">
<div class="fission-title">选择待分配客户</div>
<div class="fission-subtitle">当待分配客户符合以下条件时</div>
<requestGroup v-model:addCondition="editMsg.RuleSelectType" ref="condition" @change="getCondition"/>
<requestGroup v-model:addCondition="editMsg.RuleSelectType" :defaultData="editMsg.ConditionList" ref="condition" @change="getCondition"/>
</div>
<div class="content-block mt20">
<div class="fission-title">分配给以下部门/成员</div>
......@@ -42,7 +42,7 @@
</div>
<departmentStaff
v-model="showDialog"
v-model:defaultArray="defaultArray"
:defaultArray="defaultArray"
nodeKey="newId"
labelKey="DeptName"
childrenKey="ChildList"
......@@ -73,6 +73,7 @@ export default defineComponent({
changeDialog,
msg,
data,
defaultArray,
condition,
getDetail,
getEmployeeData,
......@@ -83,8 +84,15 @@ export default defineComponent({
} = editRuleModule();
onMounted(() => {
if (msg().RuleId > 0) {
console.log('getDetail', msg())
data.editMsg.Id=msg().RuleId
getDetail()
}else{
data.editMsg.DeptList=[]
data.editMsg.EmpList=[]
data.editMsg.ConditionList=[]
data.editMsg.RuleSelectType=1
data.editMsg.RuleAllotWay=1
defaultArray=[]
}
getEmployeeData()
})
......@@ -93,6 +101,7 @@ export default defineComponent({
changeDialog,
condition,
...toRefs(data),
defaultArray,
setCustomerClueRuleInfo,
getCondition,
getdpt,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment