@ -9,6 +9,21 @@
< div >
< el -input v-model ="select.question" placeholder="Question" > < / el -input >
< / div >
< div >
< el -input v-model ="select.email" placeholder="Email" > < / el -input >
< / div >
< div >
< el -select clearable style = "width:100%" v-model ="select.type" placeholder="Type" >
< el -option v-for ="(item,index) in typeList" :key="index" :label="item.value" :value="item.id" >
< / e l - o p t i o n >
< / e l - s e l e c t >
< / div >
< div >
< el -date -picker format = "yyyy-MM-dd HH:mm:ss" value -format = " yyyy -MM -dd HH : mm : ss " @change ="changeDate"
v - model = "dateRange" type = "datetimerange" range - separator = "To" start - placeholder = "Start Date"
end - placeholder = "End Date" >
< / e l - d a t e - p i c k e r >
< / div >
< div >
< el -button type = "primary" size = "small" @click ="select.page=1,getList()" > search < / el -button >
< / div >
@ -24,13 +39,23 @@
< / l x - h e a d e r >
< / div >
< / div >
< xy -table :list ="list" :total ="total" @pageIndexChange ="pageIndexChange"
@ pageSizeChange = "pageSizeChange" : table - item = "table_item" >
< xy -table :list ="list" :total ="total" @pageIndexChange ="pageIndexChange" @pageSizeChange ="pageSizeChange"
: table - item = "table_item" >
< template v -slot : type >
< el -table -column align = 'left' label = "Type" width = "180" header -align = " center " >
< template slot -scope = " scope " >
< div v-for ="item in typeList" >
< span v-if ="item.id==scope.row.type" > {{ item.value }} < / span >
< / div >
< / template >
< / e l - t a b l e - c o l u m n >
< / template >
< template v -slot : btns >
< el -table -column align = 'center' fixed = "right" label = "Operate" width = "180" header -align = " center " >
< template slot -scope = " scope " >
< el -button type = "primary" size = "small" @click ="editNote('editor',scope.row.id)" > edit < / el -button >
< el -popconfirm confirm -button -text = " confirm " cancel -button -text = " cancel " style = "margin:0 10px" @confirm ="deleteList(scope.row.id)" title = "Are you sure to delete it?" >
< el -popconfirm confirm -button -text = " confirm " cancel -button -text = " cancel " style = "margin:0 10px"
@ confirm = "deleteList(scope.row.id)" title = "Are you sure to delete it?" >
< el -button type = "danger" size = "small" slot = "reference" > delete < / e l - b u t t o n >
< / e l - p o p c o n f i r m >
< / template >
@ -43,9 +68,9 @@
< script >
import addMessage from './components/addMessage.vue' ;
import {
index ,
destroy
import {
index ,
destroy
} from "@/api/customer/message.js"
export default {
components : {
@ -55,20 +80,46 @@
return {
select : {
question : '' ,
email : '' ,
type : '' ,
page : 1 ,
page _size : 10 ,
} ,
dateRange : [ ] ,
range : '' ,
total : 0 ,
list : [ ] ,
typeList : [ {
id : 1 ,
value : 'Question'
} , {
id : 2 ,
value : 'Request Free Sample'
} , {
id : 3 ,
value : 'Contact Us'
} ] ,
table _item : [ {
type : 'index' ,
width : 50 ,
fixed : 'left'
} , {
prop : 'question' ,
label : 'Question' ,
} , {
prop : 'type' ,
label : 'Type' ,
align : 'left' ,
/ / w i d t h : 2 4 0
} , {
prop : 'email' ,
label : 'Email' ,
align : 'left' ,
}
/ / w i d t h : 2 4 0
} , {
prop : 'created_at' ,
label : 'Created At' ,
align : 'left' ,
width : 180
} ,
]
}
@ -80,7 +131,7 @@
editNote ( type , id ) {
if ( type == 'editor' ) {
this . $refs . addMessage . id = id
}
}
this . $refs . addMessage . type = type
this . $refs . addMessage . isShow = true
} ,
@ -96,24 +147,48 @@
resetSearch ( ) {
this . select . page = 1
this . select . question = ''
this . select . email = ''
this . select . type = ''
this . range = ''
this . dateRange = ''
this . getList ( )
} ,
async getList ( ) {
const res = await index ( {
... this . select ,
filter : [ {
key : 'question' ,
op : 'like' ,
value : this . select . question
} ]
changeDate ( e ) {
if ( e ) {
console . log ( "e" , e )
this . range = e . join ( "," ) + ''
} else {
this . range = ''
}
} ,
async getList ( ) {
const res = await index ( {
... this . select ,
filter : [ {
key : 'question' ,
op : 'like' ,
value : this . select . question
} , {
key : 'type' ,
op : 'eq' ,
value : this . select . type
} , {
key : 'email' ,
op : 'like' ,
value : this . select . email
} , {
key : 'created_at' ,
op : 'range' ,
value : this . range ? this . range : ''
} ]
} )
this . list = res . data
this . total = res . total
} ,
deleteList ( id ) {
var that = this ;
destroy ( {
id : id
destroy ( {
id : id
} ) . then ( response => {
this . $Message . success ( 'Success' ) ;
this . getList ( )